本文参考自[野火EmbedFire]《RT-Thread内核实现与应用开发实战——基于STM32》,仅作为个人学习笔记。更详细的内容和步骤请查看原文(可到野火资料下载中心下载)
目录
3、屏蔽原系统时钟配置函数的调用,在后面添加本芯片对应的系统时钟配置
一、获取STM32裸机工程模板
从野火的资料里拷贝一份STM32裸机工程模板,我的芯片型号为STM32F103VET6(指南者),以固件库点亮LED灯实验的工程作为工程模板:
二、下载 RT-Thread Nano 源码
链接:Arm Keil | RealThread RT-Thread
下载最新版本即可
三、安装 RT-Thread Package
.pack文件下载完成后,直接安装,记住安装的路径,待会需要在该路径拷贝RT-Thread源码。
四、将RT-Thread源码添加到工程
从刚刚的路径中,把RT-Thread文件夹拷贝到裸机工程根目录,如下图:
拷贝board.c和rtconfig.h到user/目录下
在工程中添加board.c和rtconfig.h文件
新建rtt/source和rtt/ports组
将RT-Thread下的src文件添加到rtt/source
由于我的开发板型号是M3系列,将RT-Thread->libcpu->ARM->cortex-m3 文件夹中的context_rvds.S和cpuport.c添加到rtt/ports
最终结果如图所示,如果文件带有小钥匙,把只读取消掉,重新打开项目即可。
五、指定RT-Thread头文件路径
六、修改rtconfig.h
七、修改board.c
1、添加"board.h"头文件
2、屏蔽系统时钟的配置函数
3、屏蔽原系统时钟配置函数的调用,在后面添加本芯片对应的系统时钟配置
SysTick
初始化函数由固件库文件
core_cm3/4/7
里面的 SysTick_Config()函数替代。
八、编译
编译之后会出现3个错误,这些都是重复定义造成的
解决方法是将Usr/stm32f10x_it.c
里的这三个函数都进行注释,再进行编译运行,就成功了。