
RT-Thread作为国产OS之光,实际应用中总会遇到的。如何结合Cubemx快捷移植RTT呢?下面结合H533板卡简单的测试一下,然后就是举一反三了。 首先打开cubemx工具,点击help->Embeded software packages manager菜单,打开软件包管理界面,cubemx提供了离线及在线安装软件包方式,选择左下角From Url…,弹出的对话框中点击new,如图1所示:5 u7 [/ q! t. u, N& O5 h ![]() 8 G- O6 C1 ^8 z0 u7 |1 N6 X" A 图1; a+ w8 A5 w) [ J8 K 输入RTT的网址,https://www.rt-thread.org/download/cube/RealThread.RT-Thread.pdsc,然后点击check,旁边显示绿色,既显示校验通过。点击OK,回到User Defined Packs Manager界面,再次点击OK。这时,CubeMx自动连接服务器,获取包描述文件,选择RT-Thread Software Components,点击install now,等待安装好后。 7 o" F; ?5 |/ r* p9 [ 安装好后,显示绿色。如图2所示: ![]() 图2 然后回到主界面,选择芯片,双击进入工程参数设置。( q. @9 x. i% I 7 m+ z# t) T3 _, T: e8 Y5 D 点击左边栏的Middleware and Software Packs->X-CUBE-RT-Thread_Nano,进入组件配置界面,选择RealThread.X-CUBE-RT-Thread_Nano,当前四个都选上,如图3所示:. [1 Y6 b# ^0 U! ~ ![]() 1 } M) _& @$ [9 B0 g% q5 p$ ~ 图3# A7 B: Q7 E* W+ _( u 回到主界面,在左边的菜单Middeleware and Software Packs中,再点击X-CUBE-RT-Thread_Nano,选择RTOS RT-Thread,参数默认,如图4所示: ![]() , k# z' u: N; p 图43 w6 T5 `( W$ } 配置PA5作为输出测试引脚。配置时钟等,无需多言。 需要在NVIC中去掉三个中断,HardFault_interrupt,Pendable_request interrupt,System tick timer,如图5所示:. V: @- \ I$ [: m3 e9 ^ ![]() * |* h& h. O3 j0 I1 z 图58 f) N+ f' d, Y' v | y$ ~ 因为RTOS使用了systick,所以为了避免冲突,SYS->Timebae Source 选择TIM15。如图6所示: ![]() # ^" G7 S* ?" b$ r k 图6, T" F$ m* i9 R4 { 然后配置Project Manager,Toolchain/IDE使用MDK-ARM.' v) W4 f& | L9 e3 S# v$ Z Generate code. s# A. t5 O* L4 }5 ^. L) n( ~8 l 在生成的main函数中添加#include "rtthread.h",编译。 会发现提示board.c文件中,UartHandler错误,没有定义。是因为CubeMX中没有配置这部分。回到CubeMx中,选择UART2,如图7所示 ![]() 图7 按照参数进行配置即可。重新Generate code.; Y6 N& ^$ Y' }# Y! b/ i * G6 h8 \# b8 p 编译,正常5 b7 R3 d8 ]0 Q; N& A 在main.c文件中添加一个线程,如下所示:
( t! d/ }1 p1 z4 C; b' |" k main函数中启动线程,并开启调度函数,如下:
![]() + o$ `1 t+ \5 K& ?/ M; J% v0 [& m 移植没啥问题了,就可以多任务模块添加了。 |
初学者适合看看 |
【STM32C0测评】Nucleo-C092开发板功耗测试
【STM32C0测评】Nucleo-C092开发板IIC通信测试(硬件IIC)
【STM32C0测评】Nucleo-C092开发板IIC通信测试(软件IIC)
【STM32C0测评】Nucleo-C092开发板使用PWM控制板载LED呼吸灯
【STM32C0评测】Rt-thread nano 添加PIN驱动
【STM32C0评测】STM32C092 适配运行RT-thread
【STM32C0评测】基于I2C驱动温度传感器
【STM32C0评测】基于模拟SPI驱动1.8寸tft屏
【STM32C0评测】FreeRTOS测试
【STM32C0评测】串口输出ADC值