目的
通过官方的模板制作自己开发板的BSP
第一步 复制相关文件
- 官网下载下来的源代码解压得到rt-thread文件夹,在另一个地方给我们的工程新建一个目录,比如命名为rt-thread-port。把rt-thread目录中除了bsp之外的文件夹和文件都复制过来。
- 在rt-thread-port中新建bsp文件夹,bsp下新建stm32,stm32下面新建libraries
我的开发板是stm32f103rct6, 所以只把rt-thread/bps/stm32/libraries
下的HAL_Drivers 、STM32F1xx_HAL和Kconfig
复制过来。
- 把
rt-thread/bps/stm32/libraries/templates
下的stm32f10x复制到rt-thread-port\bsp\stm32
下,重新命名为自己想要的名字,我这开发板是微雪的open103r,我这里命名为open103r_bsp 所以如下
第二步 cubemx配置工程
官方教程这部分说的有点含糊,这里具体说明
-
来到
open103r_bsp
目录,把board
下CubeMX_Config整个文件夹删除 -
打开stm32cubemx软件, mcu选择
stm32f103rctx
分别配置时钟、SYS(Debug选择Serial Wire
)、串口1(打开全局中断) -
接下来工程配置很关键, 搞不好就会生成运行不了的固件,一定要按如下配置
可以生成了。生成完后是这样的: -
修改board.c board.h文件
将Src/main.c中SystemClock_Config
替换board.c中的SystemClock_Config
;stm32rct6的flash是256k, ram是48k ,对应的修改board.h如下 -
修改链接脚本,我用gcc ,把以只需要修改
linker_scripts/link.lds
文件 -
修改SConscipt文件, 启动文件和宏定义根据实际情况修改
第三步 构建
- 修改board目录下的kconfig
在我们的bsp根目录运行menuconfig
(env/scons等开发工具使用教程参考官网文档)
这里要注意选择串口1作为控制台
要使能串口1
完了之后 ,保存退出 - 终端直接输入scons,编译成功之后 是这样的
把rtthread.bin(就在bsp目录open103r_bsp
下)烧进板子,USB串口助手连接板子(这里是PA9(TX) PA10(RX))使用putty之类的终端, 重启
成功了。