【前言】
RT-Thread是国产的开源的物联网操作系统,RTT官网已经对他进行了非常好的适配,还出了一款“星火一号”开发板,也有非常多的实例。这次我使用的是“星火一号”开发板,因为RTT适配的图形界面是LVGL,而我想挑战一下用TouchGFX来驱动图形界面,所以需要使用手工来适配RTT。
【硬件】
“星火一号” 一款专为工程师和高校学生设计的嵌入式 RTOS 开发学习板。在这个科技飞速发展的时代,嵌入式系统已经成为了现代工业、交通、通信等众多领域的核心驱动力。而 RTOS 实时操作系统作为嵌入式领域的基石,更是工程师们必须熟练掌握的核心技术。作为业界主流的 RTOS 实时操作系统 RT-Thread,我们有义务帮助更多开发者掌握这项技术。为此,我们精心打造了一款专为工程师和高校学生设计的嵌入式开发学习板。
星火一号主控选用了目前行业中比较常用且学习门槛较低的 STM32F407,性能强劲、功能丰富,完全能够满足嵌入式入门的需求。此开发板不仅具有众多的板载资源(Flash 存储、WIFI 通信、多个传感器),还支持丰富的扩展接口,让您轻松实现各种复杂的应用场景。通过使用这款开发学习板,您将能够深入了解 RTOS/RT-Thread 的工作原理,提升自己的技能水平,为当前以及未来的职业生涯做好充分准备。
【软件】
1、STM32CubeMX 6.12
2、MDK5.38
【实现步骤】
移植rtthread nano版本的教程非常多,但是大家熟悉的mdk移植中,手工添加文件是非常麻烦,又非常耗时的一件事。在前两年我看stm32cubMX里面集成了RTThread3.05的软件包,这次我也想试试使用cube软件包来实现。
1、打开Stm32CubeMX的软件包管理工具,打开RealTread选项,安装X-CUBE-RT-Thread_Nano包。
2、打开stm32cubeMX,找到SoftWare Packs下的Select Components,快捷键“Alt-O",开启kernel、device、shell、libcpu。
2、安装RealThread软件包,然后就可以使用以下的图形界面来配置
3、我们需要使用USART1来实现shell打开,在stm32CubeMX中打开USART1,使用stlink的虚拟串口来打印日志,所以先确认一下GPIO,配置如下图:
配置好时钟后,使用MDK打开工程,打开rtconfig.h打开FinSH。
生成工程之后,需要注释掉stm32f4xx_it.c下面的HardFanult_Handler函数,因为他已经由RTT来实现了。
【实验效果】
在主函数中Main函中添加rt_thread_delay(500);,然后编译下载,打开串口终端,效果如下:
到此手工移植RTT就完成了。
【总结】
STM32CubeMX已经将RTT的软件包集成到了他的软件包中,使用起来非常之方便。而且从前面的3.0.8升级到了4.1.1版本。当然如果需要更加强大的RTT标准版本,还需要手工来移植代码。