本帖最后由 纪国圣 于 2020-4-5 09:01 编辑
FreeRTOS IO是FreeRTOS下的一个功能组件,为用户提供一种类似于POSIX的外设驱动框架。
官网关于FreeRTOS IO介绍如下:
官网上有关于FreeRTOS IO的使用例程,但基于的是LPC1769单片机。因此本帖以此为蓝本,介绍如何将FreeRTOS IO移植到STM32上。
硬件平台为STM32F429-Nucleo
软件平台为STM32CubeMXv5.5+keilv5(采用零级优化)
HAL库版本为V1.25
FreeRTOS版本为10.2.1
本例程是在已移植好FreeRTOS的例程上修改。
首先解压LPC1769_FreeRTOS_Plus_Featured_Demo_002.zip文件,将LPC1769_FreeRTOS_Plus_Featured_Demo_002\FreeRTOS-Products\FreeRTOS-Plus-IO文件拷贝至工程中。
其中Device和使用的硬件平台相关,为本次修改重点,其余的文件为FreeRTOS IO的源码,修改较少。
添加头文件路径和.c文件:
先屏蔽串口中断和初始化:
然后修改以下文件:
FreeRTOS_STM32F4xx_uart.c的修改请见具体文件。
然后开一个任务,写一个非常简单的例程验证移植是否正确:
效果如下:
通过发送字符串,可以看到开发板上的灯闪烁。
注意,在编译过程中会出现警告,按下图配置忽略警告:
至此移植完成。
官网源码:
LPC1769_FreeRTOS_Plus_Featured_Demo_002.zip
(1.09 MB)
移植好的源码:
FreeRTOS_IO.zip
(2.47 MB)
|