移植 RT-Thread 到 STM32

1、获取 STM32 的裸机工程模板(获取对应的芯片模板)
移植 RT-Thread 到 STM32_第1张图片
2、下载 RT-Thread Nano 源码
kill官网下载地址:http://www.keil.com/dd2/pack/
下载地址:https://pan.baidu.com/s/1Z2MFBJA2raf_QazSTx9A_A
3、安装 RT-Thread Package
下载下来之后是一个以 exe 为后缀的文件,点击安装即可, 安装目录与你的 KEIL 安
装目录一样,安装成功之后,可以在 KEIL 的 PACK 目录下找到刚刚安装的 Package 的所
有的文件,具体下图:
移植 RT-Thread 到 STM32_第2张图片
这样安装成功之后, 就可以在 KEIL 里面的软件包管理器中将 RT-Thread Nano 直接添
加到工程里面,具体见下图
移植 RT-Thread 到 STM32_第3张图片
3、拷贝 RT-Thread Package 到裸机工程根目录
移植 RT-Thread 到 STM32_第4张图片
RT-Thread 文件夹下就是 RT-Thread Nano 的所有东西,该文件夹下的具体内容如下
移植 RT-Thread 到 STM32_第5张图片
4、拷贝 rtconfig.h 文件到 user 文件夹
将 RT-Thread/3.0.3/bsp 文件夹下面的 rtconfig.h 文件拷贝到工程根目录下面的 user文件夹, 可以通过修改这个 RT-Thread 内核的配置头文件来裁剪 RT-Thread 的功能
移植 RT-Thread 到 STM32_第6张图片
5、拷贝 board.c 文件到 user 文件夹
将 RT-Thread/3.0.3/bsp 文件夹下面的 board.c 文件拷贝到工程根目录下面的 user 文件夹, 等下我们需要对这个 board.c 进行修改。
移植 RT-Thread 到 STM32_第7张图片
6、添加 RT-Thread 源码到工程组文件夹
新建 rtt/source 和 rtt/ports 两个组文件夹,其中 rtt/source 用于存放 src 文件夹的内容, rtt/ports 用于存放 libcpu/arm/cortex-m? 文件夹的内容,“?”表示 3、 4 或者 7。(特别注意箭头处)
移植 RT-Thread 到 STM32_第8张图片
7、指定 RT-Thread 头文件的路径
RT-Thread 的 源 码 里 面 只 有 RTThread\3.0.3\components\finsh、 RTThread\3.0.3\include 和 RT-Thread\3.0.3\include\libc 和 user 文件夹下rtconfig.h 有头文件,只需要将这四个头文件的路径在开发环境里面指定即可。
移植 RT-Thread 到 STM32_第9张图片
8、修改 rtconfig.h
按下图所示进行修改
移植 RT-Thread 到 STM32_第10张图片
9、在 user 目录下新建一个 board.h 头文件,用来包含固件库和BSP 相关的头文件和存放 board.c 里面的函数声明,同时在board.c文件中包含board.h文件,即 #include “board.h”
移植 RT-Thread 到 STM32_第11张图片
10、修改board.c文件
按下图所示进行修改
移植 RT-Thread 到 STM32_第12张图片
移植 RT-Thread 到 STM32_第13张图片
在 void rt_hw_board_init(void) 添加 SysTick_Config(SystemCoreClock / RT_TICK_PER_SECOND);说明SysTick_Config函数在core_cm3.h中。如下图
移植 RT-Thread 到 STM32_第14张图片
11、SysTick 中断服务函数在固件库文件 stm32f10x_it.c 中也定义了,而现在在 board.c 中又定义一次,那么编译的时候会出现重复定义的错误,解决方法是可以把 stm32f10x_it.c 中的注释或者删除即可。如下图
移植 RT-Thread 到 STM32_第15张图片
移植 RT-Thread 到 STM32_第16张图片
12、修改main.c
如下图所示:
移植 RT-Thread 到 STM32_第17张图片
13、编译。

你可能感兴趣的:(RT-Thread相关)