STM32F4移植FreeRTOS

官方的移植指南,在其记录学习过程

移植步骤文档

stm32F407Free

官网地址

目录

一、FreeRTOS的移植

如果想要在项目中利用RTOS对任务进行调度,则需要把RTOS的源码移植到自己的项目中,移植的步骤如下:

(1) 去FreeRTOS的官网下载源码包,源码包的版本可以是V9.0.0或更新的版本 (比较稳定

(2) 把源码包解压到本地,分析源码包中哪些文件需要移植,可以浏览源码包的readme.txt

image

(3) 了解了需要移植的文件之后,就可以以标准库的工程模板为基础来移植FreeRTOS源码

(4) 把FreeRTOS源码包中需要移植的文件拷贝到自己工程中对应的文件夹

(5) 打开自己的工程,把拷贝过来文件添加到KEIL5工程中,编辑文件夹的结构

(6) 配置KEIL5工程的头文件的路径,确保编译器可以找到关于FreeRTOS的头文件

(7) 编译工程,如果编译之后报错,根据错误原因解决错误,直到编译通过为止

编译工程是报错,提示找不到FreeRTOSConfig.h头文件,该头文件和FreeRTOS的配置有关,但是移植的源码包中没有该头文件,所以去官网搜索该头文件的资料。

image

再次编译,可以发现提示port.c中有一个变量未定义,原因是该变量没有进行外部声明

image
image

提示:__ICCARM__宏定义是和开发工具相关的,该宏定义是IAR软件需要使用的,而目前采用的开发工具是KEIL,KEIL软件需要使用其他的宏定义。

再次编译,发现有函数出现重复定义的情况,port.c和stm32f4xx_it.c中出现,所以可以选择分别进行分析,可以把stm32f4xx_it.c中重复的函数名称删除即可。

再次编译,发现有5个函数未定义,命名规则是有规律的,都是HooK结尾,Hook是钩子函数,其实属于回调函数的一种,注销掉在FreeRTOSConfig.h宏定义

还有其他问题就不举例了

最好的办法是知道移植的步骤,然后用别人移植好的先学习


参考李明轩老师的笔记
posted @ 2024-07-19 20:24  shishusheng  阅读(77)  评论(0编辑  收藏  举报