CubeIDE 配置移植 RT-Thread ,实时操作系统工程模板

RT-Thread 移植,模版制作完成后续的内核学习将基于本工程,该工程基于 STM32 中的模版

当我们进入嵌入式领域时,通常首先接触的是单片机裸机编程。即在没有引入任何实时操作系统(RTOS)的情况下进行编程,所有操作都在一个循环中完成。现实生活中许多中小型电子产品仍采用裸机系统,也能满足需求。然而,随着功能要求的增加,纯粹的裸机系统已不能完美解决问题,反而会使编程变得复杂。为了降低编程难度,我们可以考虑引入 RTOS 来实现多任务管理,这是使用 RTOS 最大的优势。

一、CubeIDE 安装 RT-Thread

1、点击 help 选择 Manage Embeedded Software Packages

2、点击 From Url … 按键以在线安装

3、在打开的 User Defined Packs Manager 界面,点击 New 按钮,填写 RT-Thread (注意该选框只能右键后 paste 不知道是不是我遇到的 bug )在线安装包的源地址:https://www.rt-thread.org/download/cube/RealThread.RT-Thread.pdsc 点击Check检查源地址是否可行,OK的话输入框右侧会出现“ √ ”

4、点击 OK 回到 User Defined Packs Manager 界面,勾选后再次点击 OK

5、等待 CubeMX 自动连接服务器,并获取包描述文件。回到 Embedded Software Packages Manager 界面,就会发现 RealThread 下的 RT-Thread Nano 软件包列表,选择该软件包版本,点击 Install ,当然你需要同意 license 啦,安装完毕可以看到该组件前方的选择框变绿即为安装成功咯,就可以点击 Close 退出咯

二、模版工程中添加RT-Thread支持

1、添加组建

点击 Softwares Packages 选择 Select Components 以进入组件配置界面

选择 RealThread.RT-Thread , 然后根据需求选择 RT-Thread 组件,然后点击 OK

这里简单说明一下RT-Thread软件包中包含 kernelshelldevice 三个部分,

  • 仅选择 kernel 表示只使用 RT-Thread 内核

  • 选择 kernelshell 表示在使用 RT-Thread的基础上使用 FinSH Shell 组件,工程中会添加内核代码与 FinSH 组件的代码。

  • 选择 device 表示使用 RT-Threaddevice 框架,用户基于此框架编写外设驱动并注册后,就可以使用 device 统一接口操作外设

之后的工程基于该工程都会使用到,因此这里大龙小龙我们全都要

2、选择组建

Middleware and Software Packs 中点击 RT_Thread ,其右侧 Mode 选项框全部勾选

RT-Thread 操作系统重定义了 HardFault_HandlerPendSV_Handler以及SysTick_Handler 三个中断函数,需要在中断配置中,代码生成的选项中,取消选择三个中断函数以避免重复定义的问题(对应选项为 Hard fault interrupt, Pendable request , Time base :System tick timer )点开 NVIC 选项时系统可能提示 RT-Thread 默认更改,检查一下如下图即可

3、更新时钟源

SysTick 是以最低的中断优先级运行,因此在执行此中断时,必须取消所有中断的屏蔽。为避免不必要的 warning ,需要将系统时钟由 SysTick 替换为 TIM ,不懂没关系跟着设置就行了,设置完成即可生成代码

三、工程调整与程序编写

1、引用 RT-Thread 的头文件

2、编写主函数

啊哈很简单,HAL_Delay 已经成为弃子啦,我们用系统的延时函数 rt_thread_mdelay 函数验证 RT-Thread 是否生效

rt_thread_mdelay(1000);//该函数为ms 所以写1000方便后续建议时基

编译,哟西,一堆错误

3、问题解决

修改启动文件

修改启动文件的 bl main 改为 bl entry ,更改此处使芯片在进入 main 之前启动 RT-Thread

更改配置

左上角 File 中选择 Properties 打开选项界面

如图所示添加一行指令

-Wa,-mimplicit-it=thumb

最后按照报错指示打开 rtconfig.h 的注释

4、编译下载

OK,没有问题,串口按照预期每秒进行一次输出,正确打印信息

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DarianT

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值