一、新建工程
在stm32cubemx中安装rt-thread,然后新建工程,本文参考文档RT-Thread
二、适配 RT-Thread Nano(以NUCLEO-F401RE板为例)
按照官方文档添加好RT-Thread组件并勾选,然后在NVIC中取消相关的中断(详见上方链接:中断与异常处理),到此即可生成工程
需要注意的几个地方
- SYS中的Timebse Source 尽量不要使用Systick,此处我选择为TIM1
- 在工程中需要更改的地方
-
修改启动文件 bl main 改为 bl entry(图片中第97行),更改此处使芯片在进入main之前启动rt-thread
-
修改board.c,初始化时钟等(见下图第69行)
-
HAL_Init();
SystemClock_Config();
需在前面添加(第61行)
#include "main.h"
extern void SystemClock_Config(void);
- 官方文档中未提到的一个地方,与浮点相关的一个错误(前半部分)
- 需要更改的地方(此部分更改方法错误,会导致芯片无法运行,请看2.)
Properties --> C/C++ Build --> Settings --> Tool Settings --> MCU Setting中的Floating-point ABI改为Softwae,该问题在stm32的g0中没有出现,初始化是即为该选项
- 正确方法如下
更改Properties --> C/C++ Build --> Settings --> Tool Settings --> MCU GCC Assembler --> Misellaneous 里添加
-Wa,-mimplicit-it=thumb
然后apply and close
- 若在配置之前构建过工程,请清理后再次构建,到此,工程构建成功
Simple Example
在main.c中添加头文件
#include <rtthread.h>
在main函数的while循环里添加
HAL_GPIO_TogglePin(LD2_GPIO_Port, LD2_Pin);
rt_thread_mdelay(500);
编译下载即可