rt-thread 软件安装
首先在此链接下载
rt-thread studio软件,基于eclipse开发而来:rt-thread.org/download.html#download-rt-thread-studio安装后登录会进入欢迎页面,点击左上角的恢复窗口,进入项目页面


rt-thread 软件配置
- 在项目页面,我们可以点击红框的图标,这是
rt-thread的SDK下载链接,里面包含有rt-thread系统,芯片BSP库,开发板库等。

- 如下图,我按需下载了
rt-thread的系统库与STM32的BSP库,即可在rt-thread上开发STM32


rt-thread 新建项目
- 新建一个
rt-thread项目我们需要点开左上角的文件,然后选择rt-thread或者NANO项目

- 这里我们可以基于芯片,比如
STM32F103C8T6来创建rt-thread项目,rt-thread会默认占用一组串口做调试交互控制台,一般我们会保持默认选择

- 新建工程的目录如图片左边所示,下面的表格是目录功能的说明
| 目录 | 说明 |
|---|---|
| applications | 用户代码所在目录 |
| driver | RT-Thread 的硬件驱动api |
| libraries | 芯片的BSP库 |
| linkscripts | 空间链接脚本 |
| packages | 第三方功能包 |
| rt-thread | rtt 内核 |

- 首先第一件事就是更改时钟配置,在
board.c硬件初始化函数可以看到,初始化时要选择时钟,这部分可以在cubemx看到图形化配置时钟的界面。

- 点进去我们就会在
board.h里看到时钟默认时HSI内部时钟,一般我们都会选HSE外部高速8Mhz的时钟,然后倍频到72Mhz

使用外部HSE (8 MHz 外部晶振),经 PLL得到 72 MHz
- 在
board.c开头有个RT_WEAK,这是rt-thread官方对C语言弱函数定义weak的二次封装,不过大写版本已经被弃用了,我们需要手动改为小写的rt_weak就可以了,否则编译会报错。

- 下图红框区域就是编译与下载按键

- 在上方窗口选项卡可以把终端窗口选项打开,下方多功能区就会多出终端,使用终端可以打开
rt-thread的调试交互控制台,通过log可以看到rt-thread已经运行起来了


rt-thread 建立线程
rt-thread的学习还是要看rt-thread官方的文档,可以点击链接查看学习:RT-Thread 文档中心

rt-thread的线程API与freertos类似,都是调用线程函数,然后实现句柄,函数,优先级与时间片定义等,然后启动线程即可,可把下方代码覆盖main测试。
1 | /* |
- 通过终端,我们可以看到,
main与test两个线程已经运行起来了

freertos与rtthread最大的区别
rt-thread还有很多API都在文档中心可以查看示例,freertos与rtthread最大的区别,个人认为是rt-thread进行了硬件二次抽象封装工作,提供了大量第三方库,用户大部分时候可以不用再去学习每一家MCU厂商的API,统一使用相同的rt-thread API,类似于最开始前几代Linux的思想,这样可以减少学习成本。freertos只是与厂商的BSP融合,没做硬件api封装抽象工作,即多线程等操作使用freertos的API,硬件操作继续使用MCU厂商API两种方式并没有什么好坏之分,只是使用场景不一样,
rt-thread也有很多硬件功能无法完全抽象,还是需要厂商BSP的API来实现

