找回密码
 立即注册
查看: 1064|回复: 7

【PIO】添加自定义Board

[复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:469
  • 最近打卡:2025-05-02 11:38:17

44

主题

230

回帖

2845

积分

金牌会员

积分
2845
发表于 2024-1-3 00:37:10 | 显示全部楼层 |阅读模式
背景
对于只用STC 51内核单片机的同学来说这篇文章可以不用看了。
对于SDCC来说,STC几乎所有型号的单片机都有相应的头文件。
对于PIO来说,STC几乎支持了所有型号单片机的Board
Board就是创建PIO工程的时候选择的芯片型号)。
之所以说几乎,因为我也不清楚具体多少,至少我需要的已经支持了。

具体可以去PIO的官网
PIO支持的STC芯片型号)或者在创建工程的地方:
    001.png
    但是对于有其他芯片厂商51内核单片机使用需求的同学,可以看看这篇文章,主要是说如何添加的Board的。
    那么board是什么呢? 如何添加?

概念
    在说明Board的概念之前,先来介绍一下platform的概念,这里的platform指的不是这款集成开发环境的名称。而是这个集成开发环境一个很重要的组成部分。下面是截取的官方的文档:
也可以之间看官方文档:PIO platform 概念
    002.png
    PlatformIO生态系统具有去中心化架构,允许开发一系列开发平台(platform)。开发平台(简称:平台)往往是指一个特定的微处理器或者一种处理器体系结构(比如 mcs-51),PlatformIO构建的工程能够在平台上运行。(极少数平台的不同IC使用不同的处理器结构,比如:Teensy)。 官网目前已经支持了很多平台,具体地址:PIO支持的平台 。还有些平台能在ARM Linux中运行比如树莓派。
    可以简单的理解平台就是内核架构。至少这里的mcs-51就是一些列51单片机内核。那么Board就可以理解成基于这个内核的不同厂商或者相同厂商不同型号的单片机芯片;


自定义Board
    PlatformIO对一些流行的芯片已经支持了。可以通过网页,或者在pio环境下运行pio boards 命令来查看。 也可以通过修改已经存在Board的设置来定义官方目前不支持的Board。Board所有的配置都通过json格式的文件,以建值对的方式定义;可以参考:自定义Board官方文档
Json 结构文件
IC定义文件的关键配置项有:
  • build:这里的值都是芯片相关的值,比如时钟频率,ram大小,rom大小等。他们将会被开发平台或者开发框架对应的编译器使用;
  • frameworks:这个Board支持的框架列表;关于框架是另一个概念,msc-51没有使用就不介绍了;
  • platform:这个IC所属的开发平台;
  • upload:基于平台的烧录设置;
下面以mcs-51平台下的STC8G2K64S4这个IC为例:
  1. {
  2.   "build": {
  3.     "core": "naked",
  4.     "extra_flags": "-DSTC8G2KXXS4 -DSTC8G2K64S4 -DNAKED_ARCH_MCS51 -DNAKED_MCS51_STC8G2KXXS4",
  5.     "f_cpu": "11059200L",
  6.     "size_iram": 256,
  7.     "size_xram": 2048,
  8.     "size_code": 65536,
  9.     "size_heap": 128,
  10.     "mcu": "stc8g2k64s4",
  11.     "cpu": "mcs51",
  12.     "variant": "stc8g2kxxs4"
  13.   },
  14.   "frameworks": [],
  15.   "upload": { // 烧录设置,
  16.     "maximum_ram_size": 2304, // 最大ram
  17.     "maximum_size": 65536,    // 最大flash
  18.     "protocol": "stcgal",     // 烧录使用的协议(工具链)
  19.     "stcgal_protocol": "stc8",//
  20.     "protocols": [
  21.       "stcgal"                // 烧录使用的工具链
  22.     ]
  23.   },
  24.   "name": "Generic STC8G2K64S4",
  25.   "url": "www.STCAIMCU.com",
  26.   "vendor": "STC"
  27. }
复制代码
自定义(特别注意这个目录是存放msc-51这个内核所支持的Board的
    只需要按照上边的结构在存放配置的目录下(C:\Users\Administrator\.platformio\platforms\intel_mcs51\boards 注意前边的内容改成pio的安装目录)新建一个XXXXX_IC.json 文件即可。比如我有一颗RD8T37P48。 就在这个目录下新建 RD8T37P48.json, 内容如下:
  1. {
  2.   "build": {
  3.     "core": "naked",
  4.     "extra_flags": "-DRD8T3X -DNAKED_ARCH_MCS51 -DNAKED_MCS51_RD8T3X",
  5.     "f_cpu": "32000000L",
  6.     "size_iram": 256,
  7.     "size_xram": 8448,
  8.     "size_code": 131072,
  9.     "size_heap": 128,
  10.     "mcu": "RD8T37P48R",
  11.     "cpu": "mcs51",
  12.     "variant": "RD8T3X"
  13.   },
  14.   "frameworks": [],
  15.   "upload": {
  16.     "maximum_ram_size": 8448,
  17.     "maximum_size": 131072,
  18.     "protocol": "stcgal",
  19.     "stcgal_protocol": "stc8",
  20.     "protocols": [
  21.       "stcgal"
  22.     ]
  23.   },
  24.   "name": "TK RD8T37P48R",
  25.   "url": "www.STCAIMCU.com,
  26.   "vendor": "RD"
  27. }
复制代码
    最后需要重启一下PIO这样它才能加在新配置的Board:
    2024-01-03-00-28-37.png



最后
    关于PIO的生态和架构大家感兴趣可以自己去官网了解。
    暂时了解到如何添加PIO暂时不支持的Board就可以了。
    PIO底层其实是使用了一个叫SCons的构建工具来进行工程的构建和打包的。




















2024-01-03-00-25-52.png
1 喜欢他/她就送朵鲜花吧,赠人玫瑰,手有余香!
不争是争
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:55
  • 最近打卡:2025-05-02 08:32:59

717

主题

1万

回帖

1万

积分

管理员

积分
15617
发表于 2024-1-3 07:46:50 | 显示全部楼层
建议 楼主 到 我们 SDCC 版块 担当 荣誉版主
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:382
  • 最近打卡:2025-04-30 16:48:47

10

主题

214

回帖

1519

积分

金牌会员

积分
1519
发表于 2024-1-3 08:27:54 | 显示全部楼层
能力越大责任越大
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:513
  • 最近打卡:2025-05-02 07:32:37

21

主题

564

回帖

2678

积分

金牌会员

积分
2678
发表于 2024-1-3 08:32:03 | 显示全部楼层
好好搞搞,把手推车都添加进来
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:415
  • 最近打卡:2025-04-30 09:58:34
已绑定手机

39

主题

2006

回帖

6843

积分

论坛元老

积分
6843
发表于 2024-1-3 09:29:02 | 显示全部楼层
"url": "http://www.stcmicro.com/stc/stc51.html",  《====  这不是 STC 的网址,这只是个碰瓷我们的贸易商的网址


这个网址建议改成STC官方网址:www.stcai.com,或者 www.stcaimcu.com
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:469
  • 最近打卡:2025-05-02 11:38:17

44

主题

230

回帖

2845

积分

金牌会员

积分
2845
发表于 2024-1-3 16:52:56 | 显示全部楼层
神*** 发表于 2024-1-3 07:46
建议 楼主 到 我们 SDCC 版块 担当 荣誉版主

感谢大佬认可,只是我学习的都是皮毛,意在抛砖引玉。 让开源的好用的工具壮大起来,构成相互促进的良性循环。 另外平时确实很忙,版主的确实难以胜任。
不争是争
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:43
  • 最近打卡:2025-05-02 09:46:41
已绑定手机

4

主题

178

回帖

540

积分

高级会员

积分
540
发表于 2025-1-20 15:54:15 | 显示全部楼层
我应该学废了,谢谢
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:98
  • 最近打卡:2025-04-29 07:45:37

3

主题

74

回帖

358

积分

中级会员

积分
358
发表于 2025-3-13 09:29:05 | 显示全部楼层
厉害
回复

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 13:11 , Processed in 0.207106 second(s), 106 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表