一、获取STM32F4固件库和RT-Thread源码
STM32F4固件库(v1.6.1):
RT-Thread源码(github下载,版本2.1.0):
二、建立MDK工程模板
建议使用移植的模板进行,这样就不用管CPU的堆栈中断等处理过程的代码(本例使用stm32f40x)。
同时,建议在使用官方权威源码时尽可能保留目录一致性。
例如本移植采用RT-Thread源码目录一致的结构:
所需文件根据RT-Thread文档即可。
注意问题点:
1.HardFault_Handler、PendSV_Handler和SysTick_Handler中断函数从stm32f4xx_it.c文件转移出去。
2.以下函数没声明(暂时注释掉):rt_application_init、stm32_hw_usart_init和stm32_hw_pin_init。
3.main函数在startup.c中已经实现,不要重定义。
三、修改源码
1.stm32f4时钟系统
右侧为修改的,注意该文件还需改SystemCoreClock = 168000000;
四、继续修改代码
去注释上一步注释的stm32_hw_usart_init函数
添加rtdevice.h头文件(在\components\drivers\include中)
添加serial.c、completion.c和dataqueue.c文件
同时需要修改硬件的USART接口
至此,RT-Thread系统启动时,会从串口输出系统版本信息,即表示移植成功。
完成移植时间:6个小时