RT Thread教你如何根据自己的板子制作BSP

首先当然是要准备RT Thread源码啦,最新版本是4.0.3,下载地址是https://gitee.com/rtthread/rt-thread.git

制作BSP分5个步骤

  1. 复制通用模板
  2. 使用 CubeMX 工具配置工程
  3. 修改 BSP 中的 Kconfig 文件
  4. 修改构建工程相关文件
  5. 重新生成工程

下载完成后解压、打开、找到bsp\stm32\libraries,这是制作自己bsp的通用库。

RT Thread教你如何根据自己的板子制作BSP_第1张图片

第一步

复制一份同系列的BSP作为模板基础,通过修改BSP来得到自己的BSP。

本人使用的芯片型号是STM32F103RCT6,所以复制RT-Thread\rt-thread-master\bsp\stm32\libraries\templates路径下的stm32f10x文件夹作为基础BSP。

RT Thread教你如何根据自己的板子制作BSP_第2张图片

粘贴到RT-Thread\rt-thread-master\bsp\stm32路径下,并改文件名为stm32f103-my-bsp

RT Thread教你如何根据自己的板子制作BSP_第3张图片

打开stm32f103-my-bsp,文件目录如下

RT Thread教你如何根据自己的板子制作BSP_第4张图片

第二步

需要创建一个基于目标芯片的 CubeMX 工程。默认的 CubeMX 工程在 CubeMX_Config文件夹中,双击打开 CubeMX_Config.ioc 工程,注意看文件路径

RT Thread教你如何根据自己的板子制作BSP_第5张图片

打开CubeMX选择自己板子上具体的芯片型号,我这里选择STM32F103RCT6

RT Thread教你如何根据自己的板子制作BSP_第6张图片

然后配置基本的GPIO口和一路串口作为shell组件的输出口,我的板子上用的是UART3作为串口,所以配置一下PB10和PB11.

RT Thread教你如何根据自己的板子制作BSP_第7张图片

然后在Connectivity下配置串口工作模式,并打开串口中断。

RT Thread教你如何根据自己的板子制作BSP_第8张图片

然后切换到Clock Configuration页面配置时钟,我的板子上使用的是单片机的内部晶振,最高频率可以跑到64MHz。

RT Thread教你如何根据自己的板子制作BSP_第9张图片

然后切换到Prject Manager页面,配置工程名字和路径在指定地址重新生成CubeMX工程。

RT Thread教你如何根据自己的板子制作BSP_第10张图片

生成MDK工程后只需要保留这四个文件,其他文件可以删除。

RT Thread教你如何根据自己的板子制作BSP_第11张图片

然后在Src文件下找到main.c文件,打开复制SystemClock_Config初始化代码。

RT Thread教你如何根据自己的板子制作BSP_第12张图片

RT Thread教你如何根据自己的板子制作BSP_第13张图片

将配置好的时钟初始化代码替换掉board.c中的时钟初始化代码。

RT Thread教你如何根据自己的板子制作BSP_第14张图片

RT Thread教你如何根据自己的板子制作BSP_第15张图片

board.h中配置了芯片的Flash和RAM大小,根据实际使用的芯片改成对应大小。STM32F103RCT6的Flash位256KRAM是48K

RT Thread教你如何根据自己的板子制作BSP_第16张图片

第三步

修改 board/Kconfig 文件,打开Kconfig文件

RT Thread教你如何根据自己的板子制作BSP_第17张图片

RT Thread教你如何根据自己的板子制作BSP_第18张图片

然后要修改工程构建相关文件,修改链接脚本,打开linker_scripts下的link.sct文件。

根据芯片的Flash和RAM大小修改这三个地方,要以十六进制表示。

RT Thread教你如何根据自己的板子制作BSP_第19张图片

其他两个链接脚本的文件分别为 iar 使用的 link.icf 和 gcc 编译器使用的 link.lds

然后打开SConscript文件,修改启动文件和芯片型号。

RT Thread教你如何根据自己的板子制作BSP_第20张图片

RT Thread教你如何根据自己的板子制作BSP_第21张图片

注意:如果在文件夹中找不到相应系列的 .s 文件,可能是多个系列的芯片重用了相同的启动文件,此时可以在 CubeMX 中生成目标芯片的工程,查看使用了哪个启动文件,然后再修改启动文件名。

template文件是生成 MDK/IAR 工程的模板文件,通过修改该文件可以设置工程中使用的芯片型号以及下载方式。MDK4/MDK5/IAR 的工程模板文件,如下图所示

RT Thread教你如何根据自己的板子制作BSP_第22张图片

双击打开模板,修改芯片型号和选择下载和仿真器。

RT Thread教你如何根据自己的板子制作BSP_第23张图片

RT Thread教你如何根据自己的板子制作BSP_第24张图片

RT Thread教你如何根据自己的板子制作BSP_第25张图片

选择完成后就可关闭工程了。

然后在env界面输入命令menuconfig对工程进行配置,并生成新的rtconfig.h文件。

RT Thread教你如何根据自己的板子制作BSP_第26张图片

并将RT-Thread Kernel下的Kernel Device Object里的the device name for console改为uart3.

RT Thread教你如何根据自己的板子制作BSP_第27张图片

退出保存后再env中输入命令scons --target=mdk5重新生成工程

RT Thread教你如何根据自己的板子制作BSP_第28张图片

到这里新的BSP就可以使用了,双击打开工程

RT Thread教你如何根据自己的板子制作BSP_第29张图片

编译完成后打开PuTTY,下载、成功打印出RT Thread的Logo信息。BSP制作完成。

RT Thread教你如何根据自己的板子制作BSP_第30张图片

BSP制作完成后想要复制到别的路径下去怎么办?

scons --dist

使用此命令会在 BSP 目录下生成 dist 目录,这便是开发项目的目录结构,包含了RT-Thread源码及BSP相关工程,不相关的BSP文件夹及libcpu都会被移除,并且可以随意拷贝此工程到任何目录下使用。

RT Thread教你如何根据自己的板子制作BSP_第31张图片

使用完这个命令会在当前工程目录下生产dist文件夹,文件里包含改工程所用到的所有文件。

RT Thread教你如何根据自己的板子制作BSP_第32张图片

打开文件复制里面的stm32f103-my-bsp文件夹到需要的路径下,即可开始新项目的开发。

本文参考http://www.sohu.com/a/298141306_467791

你可能感兴趣的:(单片机开发,创建RT,Thread基础工程模板)