RT-Thread Nano 是 RT-Thread 推出的极简版实时操作系统,适用于家电、消费电子、医疗设备、工控等领域大量使用的 32 位 ARM 入门级 MCU 的场合。 RT-Thread Nano 是一个精炼的硬实时内核,内存资源占用极小,功能包括任务处理、软件定时器、信号量、邮箱和实时调度等相对完整的实时操作系统特性。MDK5 以后采用 pack 形式管理芯片及各种相关组件,RT-Thread Nano 也是通过 MDK pack 方式发布,RT-Thread Nano pack 包括 device drivers、kernel 和 shell (msh) 三部分功能。: J6 O9 I4 P/ J1 c) S$ P& J7 _ 今天就趁着 Nucleo-Stm32G71RB 的热度,来一波RT Thread Nano的简单移植。。。分享。。 别的就不多介绍了,上图了。。。 8 q* w. q- n2 A: m 4 Z6 {2 }( b) J' B) U 7 p$ ?/ B# }* ?( n: L+ Z . Z+ h8 l @8 @8 M; ^$ H9 c/ g + h" t p/ \9 D4 ~% V% ~ 配置串口2+板载led PA5 7 H6 u2 w5 Q2 R( Q$ F5 x% G+ f6 l ' M8 h. w5 \* U. t. ? 系统使用内部HSI时钟 64Mhz ) f2 u( m$ G+ D) Z7 g 好了,使用CubeMx直接生成工程后,我们需要到5 N9 t$ S: g0 Z: w Q Manage Run-Time-Environment 添加RT Thread Nano RTOS到工程里, d0 q! |$ L5 h 2 R( W1 H5 I1 w9 r! X 添加好了,RTOS接着就需要对他进行对应的配置 我们需要对main.c和stm32g0xx_it.c的系统初始化函数和中断函数# A @& T" T/ N% R8 b" K! [ 进行必要的修改。。; z$ Y6 W5 S( j9 G( { ! R) T. K/ q5 M 我们需要对stm32g0xx_it.c里的以下函数,/ B+ l$ n, h1 B3 C& @9 s 进行掉注释的操作,因为RT Thread Nano RTOS 将接管系统的中断。。 4 V2 E" v Y0 P3 g& d) o& d //void HardFault_Handler(void) //void PendSV_Handler(void) //void SysTick_Handler(void)+ C+ [1 d; N9 w9 }4 g: Z 然后还需要到Main.c里注释掉 // HAL_Init(); // SystemClock_Config(); // MX_GPIO_Init();' F* J5 N2 H( ^) z // MX_USART2_UART_Init();7 N( q+ Q/ X/ ~2 \9 l) C 2 l% Q: o F" G( M& K ) R( o% d! ]0 I6 e8 K 准备工作做好了,接着需要,配置 rtconfig.h文件,来配置对应的接口# z& m% V3 l9 u/ X7 b" G0 C . P& w" q. b4 [% x( Z " b# {7 Z8 }" ]4 P y1 ~8 V5 Y( Y; r; u ' M8 z1 [% D" e. z$ { 然后需要在board.c #include "stm32g0xx_hal.h". c( }+ R& I0 m q 2 u( h% @- d1 f; W- w/ t# G4 k% ^ 然后把main.c里注释掉的系统初始化,都添加到( p) D- X% D5 _$ K* l X void rt_hw_board_init()函数里 # D O* A+ H, a! Q: e2 _ 然后把stm32g0xx_it.c里注释掉的 中断函数都添加到3 ^' D `, F! P void SysTick_Handler(void) 好的了配置好了rt thread的系统配置,我还需要回到main.c添加 独立的串口转接函数,方便提供rt_kprintf()函数输出串口信息。。 " i$ u/ z& B4 L' }4 m; m$ P 然后创建一个led闪烁线程。。0 y" Z9 j" Q( V2 D/ N, \ , E' N0 f8 e" Q9 F! f0 Z rt_thread_create("led1",led1_thread_entry,RT_NULL,256,3,20);' s2 C1 }$ V: o9 i/ D+ p 然后我添加了,显示内部UID通过rt_kprintf() 函数输出显示。。。2 C$ ~ T* _5 @ I* m0 s; J2 { 好了,RT Thread Nano的移植就完成, 现在开启串口工具,就可以看到串口信息了 好了最后上传一个Nucleo-Stm32G71RB的官方原理图: |
你的KEIL MDK 版本是5.26吗? 我的5.25中下载不了RT-Thread Nano。出现下面提示
Cannot download file http://www.rt-thread.org/downloa ... tthread.3.0.3.pack: Cannot download URL (connection interrupted)/ B# t9 T8 g6 [
y7 g0 a/ g+ o2 |/ r! W8 v0 n
1 L2 ^3 t5 U/ j: K) q: r- Y. ] C
我的5.23。多试试,
是不是你网路问题啊,直接去官网下载,挂迅雷,速度快很多,用keil的pack manager慢死了
对的。我后面直接登RT-Thread的官网,然后下载。
不过官方下载文件组织的不是很友好,我是从一篇文章中找到下载链接的。
" Q- ?/ C$ I3 X* s2 f
另外就是RT-Thread的官网中关于RT-Thread Nano的介绍太简单了。