前言
在上一章我们准备好了RT-Thread和STM32的相关资源,在这一章我们将从一个最基础的工程开始移植RT-Thread,最终实现在STM32上运行一个简单的操作系统。
本文仅介绍创建过程,请结合实际情况按需移植,具体代码请参考工程文件,工程文件将在文末以百度云盘链接形式分享。
一、准备基础工程
首先准备一份基础的工程文件, 创建过程可以参考正点原子相关教程,为了节约时间分享一份已经创建好了的工程文件 百度云盘链接 提取码:w8yp, 解压到RT-Thread 4.0.2目录下的bsp文件夹中,程序运行后可以观察到DS1在以500ms时间间隔闪烁。
二、移植RT-Thread
1.修改Project items并创建对应目录
2.添加CPU相关文件
3.添加Kernel相关文件
注意不要添加components.c文件
4.添加头文件声明
5.添加Application应用层相关文件及代码
创建完成后添加至Application目录下
5.1创建startup.c初始化系统
5.2 创建application.c初始化线程
5.3 创建thread1.c线程
在线程1中我们将循环点亮PB5对应的DS0及熄灭PE5对应的DS1
5.4 创建thread2.c线程
在线程1中我们将循环熄灭PB5对应的DS0及点亮PE5对应的DS1
6.修改Driver目录下相关文件及代码
6.1 创建drv_common.c及drv_common.h
存放通用函数(如HAL_Delay)及板子初始化和错误处理函数的文件
6.2 修改board.c及board.h
添加动态堆栈的定义,删去原Error_Handler函数声明
6.3 删去stm32f1xx_it.c
该部分中断由RT-Thread系统接管
7.创建rtconfig.h
RTT系统相关定义声明
8. 编译并下载
使用AC6编译器编译通过,下载到开发板上可以观察到DS0和DS1在以500ms频率闪烁,说明系统运行一切正常
若使用AC5编译器编译将产生一个Warning,该warning与编译器相关,不影响系统运行,可忽视
总结
通过以上步骤我们就完成了RT-Thread系统的简单移植,系统也成功地在开发板上运行了起来。
STM32_RT-Thread工程 提取码:lndl