IAR软件移植FreeRTOS操作系统软件

1、 前言
1.1 FreeRTOS操作系统的移植,自己在移植过程中遇到的一些问题。将它记录下来,希望对读者有帮助。大家共同成长
1.2 FreeRTOS有官方的源码,但是太过于庞大不适合我们用。
2、准备
从FreeRTOS官方下载一份源码,到本地。
说明:FreeRTOS官方源码地址:https://www.freertos.org/a00111.html
下载FreeRTOS源码的版本,图片来自FreeRTOS官方的页面
IAR软件移植FreeRTOS操作系统软件_第1张图片
3、先展示一下结果,移植完的代码目录结果,编译无错误无警告。
3.1 代码结果目录
IAR软件移植FreeRTOS操作系统软件_第2张图片
3.2 编译无错误无警告
IAR软件移植FreeRTOS操作系统软件_第3张图片
4、现在我们正式开始移植
1、在本地IAR工程新建一个FreeRTOS,由于我这里写的有误RTOS
IAR软件移植FreeRTOS操作系统软件_第4张图片

本地下载FreeRTOS关于源码
IAR软件移植FreeRTOS操作系统软件_第5张图片
2、移植source中的文件夹,将官方源码中source目录源码全部移植到我们建立的IAR工程FreeRTOS文件中。
IAR软件移植FreeRTOS操作系统软件_第6张图片
3、在本地IAR工程中RTOS中portable进行裁剪,只保留以下两个文件夹。
IAR:IAR软件启动的文件
MemMang:内存管理的源代码
IAR软件移植FreeRTOS操作系统软件_第7张图片
4、在IAR软件中新建两个组,并添加文件。这两个组FreeRTOS_CORE和FreeRTOS_PORTABLE
4.1 FreeRTOS_CORE组
IAR软件移植FreeRTOS操作系统软件_第8张图片
4.2 FreeRTOS_PORTABLE
由于我是用的stm32f4xx的系列在移植FreeRTOS源码选择CM4F相关的文件。
IAR软件移植FreeRTOS操作系统软件_第9张图片
memMangs是内存管理中,我选择heap_4.c,至于其他几个没有细看了。
IAR软件移植FreeRTOS操作系统软件_第10张图片
5、在IAR软件添加头文件
IAR软件移植FreeRTOS操作系统软件_第11张图片
6、开始编译。
1、FreeRTOSConfig.h 找不到。
IAR软件移植FreeRTOS操作系统软件_第12张图片
这是因为缺少FreeRTOSConfig.h文件,我们也可以自己创建,这不是明智的选择。我们选择从官网源码中寻找。
IAR软件移植FreeRTOS操作系统软件_第13张图片
它是FreeRTOS的配置文件,一般都是操作裁剪,配置通过此文件完成。通过宏实现的。
2、重复定义
IAR软件移植FreeRTOS操作系统软件_第14张图片
这是由于 port.c 中与 stm32f4xx_it.c ,都有关于三个函数 SVC_Handler PendSV_Handler SysTick_Handler定义,所有我们屏蔽 stm32f4xx_it.c的三个。
3、 hook相关的函数
在这里插入图片描述
修改前
IAR软件移植FreeRTOS操作系统软件_第15张图片
修改后的
这些报错的函数末尾都是以 hook结尾的,这是因为freertosconfig.h 开始了这些函数。我们关闭就可以了 configUSE_IDLE_HOOK configUSE_TICK_HOOK configUSE_MALLOC_FAILED_HOOK configCHECK_FOR_STACK_OVERFLOW 将他们设置为0
IAR软件移植FreeRTOS操作系统软件_第16张图片

修改之后再次编译,发现没有报错。
IAR软件移植FreeRTOS操作系统软件_第17张图片
注:
1、若有侵权,请联系作者删除。
2、欢迎各位点评,在评论区留言。
3、期待你的点赞,是对作者最大的鼓励

你可能感兴趣的:(操作系统)