RT-Thread是一个中国开源嵌入式系统,目前版本为2.2,已经支持许多微控制器,例如STM32系列,甚至可以在蓝牙BLE芯片中运行。尽管微控制器中资源紧张,但是部署一个易用的微操作系统对项目开发和代码管理是很有益的。
准备工具
- STM32开发版一个,支持USB下载功能
- Ubuntu系统
- USB转串口线
这里我使用了古老的ALIENTEK STM32 MINI V2.0 开发板,芯片型号为STM32F103RBT6,Ubuntu系统版本为16.04
1.下载交叉编译工具链
- 下载
gcc-arm-none-eabi交叉编译工具链,对于16.04系统,直接使用apt install gcc-arm-none-eabi进行安装
2.下载RT-Thread编译工具
- 该系统使用scons编译,对于16.04系统,使用
apt install scons进行安装
3.下载系统源码
- 下载RT-Thread系统,地址为:
https://github.com/RT-Thread - 解压目录
4.修改编译工程
- 进入目录
bsp/stm32f10x - 编辑文件
rtconfig.py - 修改 CROSS_TOOL 为 gcc
5.针对板子进行配置
stm32f10x.h中对晶振进行配置HSE_VALUE,例如800000board.h中对RAM进行配置STM32_SRAM_SIZE,例如20led.c中对 led进行配置
6.编译源码
- 在
bsp/stm32f10x目录下运行scons,输入rtthread.bin文件
7.烧录代码
- 你可以使用Jlink进行下载,须在Jlink官网下载Linux执行文件,由于我是debian系统,可以直接打开JLink_Linux_V614a_x86_64.deb文件进行安装。然后在系统文件下lib/目录下执行
JlinkExe文件,即可以通过Jlink进行下载烧录程序。 - 这里我采用了更为方便的串口烧录。首先将开发板的B0接高电平,B1接低电平,然后使用STM32flash-5.0这个软件进行烧录。
- 下载地址
https://sourceforge.net/projects/stm32flash/ - 解压目录,在该目录下运行make,得到stm32flash
- 将
rtthread.bin复制到该目录下,接入USB转串口线,然后输入sudo ./stm32flash -w rtthread.bin -v -g 0x0 /dev/ttyUSB0,其中ttyUSB0是串口设备
- 下载地址
8.检查是否成功
- 若能看到LED灯闪烁,则成功