> 文档中心 > RT Thread根据开发板制作BSP方法

RT Thread根据开发板制作BSP方法

之前一直不懂怎么使用RT Thread的软件包,感谢网上的大神,看了你们的博客后大概了解一些,在此做下记录。用RT Thread软件包需要RT Thread的系统,但是RT Thread和RT Thread nano不一样,具体区别见 RT Thread官网,注意文件路径请查看图片,写的有些仓促不好意思了各位;

一、RT Thread制作自己的bsp需要准备的工具如下:

1、env配置工具及配置方法看官网:https://www.rt-thread.org/document/site/programming-manual/env/env/

2、RT Thread系统软件包:https://gitee.com/rtthread/rt-thread

二、文档说明:

1、在RT Thread软件包中有如何移植BSP驱动的方法,我这里只记录我是怎么移植成功的可能和教程有点点区别;


三、 BSP 制作方法:

制作stm32f103C8T6开发板的 BSP 为例,讲解如何为一个新的开发板添加 BSP。
BSP 的制作过程分为如下五个步骤:
1. 复制通用模板
2. 使用 CubeMX 工具配置工程
3. 修改 BSP 中的 Kconfig 文件
4. 修改构建工程相关文件

 

1、复制通用模板:制作新 BSP 的第一步是复制一份同系列的 BSP 模板作为基础,通过对 BSP 模板的修改来获得新 BSP。

2、使用 CubeMX 配置工程:在制作 BSP 的第二步,需要创建一个基于目标芯片的 CubeMX 工程。

 

3、拷贝初始化函数

3.1、在 **board.c** 文件中存放了函数 `SystemClock_Config()` ,该函数负责初始化系统时钟。当使用 CubeMX 工具对系统时钟重新配置的时候,需要更新这个函数。
该函数由 CubeMX 工具生成,默认存放在`board/CubeMX_Config/Src/main.c` 文件中。但是该文件并没有被包含到我们的工程中,因此需要将这个函数从 main.c 中拷贝到 board.c 文件中。在整个 BSP 的制作过程中,这个函数是唯一要要拷贝的函数,该函数内容如下所示:

3.2、在 **board.h** 文件中配置了 FLASH 和 RAM 的相关参数,这个文件中需要修改的是 `STM32_FLASH_SIZE` 和 `STM32_SRAM_SIZE` 这两个宏控制的参数。本次制作的 BSP 所用的 STM32F103C8T6 芯片的 flash 大小为 64k,ram 的大小为 20k,因此对该文件作出如下的修改:

4、修改 Kconfig 选项:在本小节中修改 `board/Kconfig` 文件的内容有如下:

5、修改链接脚本:下面以 MDK 使用的链接脚本 link.sct 为例,演示如何修改链接脚本:

6、修改构建脚本:**SConscript** 脚本决定 MDK/IAR 工程的生成以及编译过程中要添加文件。在这一步中需要修改芯片型号以及芯片启动文件的地址,修改内容如下图所示:因为没有STM32F103C8T6的所以未作修改;

7、修改工程模板:修改该文件可以设置工程中使用的芯片型号以及下载方式。

8、重新生成工程:重新生成工程需要使用 env 工具。

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

使用 env 工具输入命令 `scons --target=mdk5` 重新生成工程,如下图所示:

重新生成工程成功,打开工程,并修改MDK配置:

以上移植成功;

 

源码链接:链接:https://pan.baidu.com/s/1cnTND06a3wabNWwTbY1Ljw 
提取码:kbvv