1.从FreeRTOS官网中下载源码
2、简单分析FreeRTOS源码目录结构
2.1、简单分析FreeRTOS源码根目录
(1)Demo:是官方为一些单片机移植FreeRTOS的例程
(2)License:许可信息
(3)Source:FreeRTOS源码
2.2、Source文件夹
3、移植FreeRTOS
3.1、在自己的工程中创建FreeRTOS文件夹
3.2、在FreeRTOS目录中创建include、port、src文件夹
3.3、将FreeRTOS源码中include文件夹下的文件复制到自己工程中的include文件夹
3.4、portable文件夹移植
我是使用IAR编译,所以需要移植IAR文件夹,而不是Keil文件夹
(1)IAR文件夹,需要根据自己所用的芯片型号进行移植
(2)MemMang文件夹
(3)RVDS文件夹,与IAR文件夹功能相同,本项目中未使用到该部分
(5)FreeRTOSConfig.h移植,放到include文件夹中
4、在IAR工程项目完成FreeRTOS移植
(1)在工程中添加FreeRTOS文件夹下的内容,port.c和portasm.s是port文件夹中的,MemMang中只需要heap_4.c
(2)头文件包含上FreeRTOS中的内容
(3)因为portasm.s文件夹包含了FreeRTOSConfig.h文件,需要额外包含FreeRTOSConfig.h所在的文件路径
5.工程代码改动
(1)stm32f4xx_it.c中注释void SVC_Handler(void),void PendSV_Handler(void)函数
(2)修改SysTick_Handler函数
(3)FreeRTOSConfig.h修改
将configUSE_IDLE_HOOK,configUSE_TICK_HOOK,configCHECK_FOR_STACK_OVERFLOW,configUSE_MALLOC_FAILED_HOOK改成0.
注释#define xPortSysTickHandler SysTick_Handler