本文共 1677 字,大约阅读时间需要 5 分钟。
freertos 移植考虑最大的问题 是 1.FreeRTOSConfig.h 的修改 2.内存管理方案的选择 3.编译方案及处理器的选择 : FreeRTOS/Source/portable/GCC/ARM_CM4F
https://sourceforge.net/projects/freertos/files/FreeRTOS/代码托管网站上可以选择代码版本 //下载FreeRTOSv9.0.0.ziphttp://www.freertos.org/官方网站只能下载最新版,且为exe,运行exe会解压出代码
基础代码为 中的代码
移植过程1 文件复制
mkdir FreeRTOS_9_0_0/CORE -pcp ../FreeRTOSv9.0.0/FreeRTOS/Source/*.c FreeRTOS_9_0_0/COREmkdir FreeRTOS_9_0_0/PORT -pcp ../FreeRTOSv9.0.0/FreeRTOS/Source/portable/MemMang/heap_4.c FreeRTOS_9_0_0/PORT #内存管理方案,有5个,选了heap_4cp ../FreeRTOSv9.0.0/FreeRTOS/Source/portable/GCC/ARM_CM4F/* FreeRTOS_9_0_0/PORT #因为是arm-gcc方案,所以选择了 GCC,因为是stm32f407,所以选择了ARM_CM4Fcp ../FreeRTOSv9.0.0/FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/FreeRTOSConfig.h FreeRTOS_9_0_0/PORT/ #核心配置文件,因为是stm32f407,所以选择了 CORTEX_M4F_STM32F407ZG-SK
FreeRTOS_9_0_0/PORT/FreeRTOSConfig.h87c87< #if defined (__ICCARM__)||defined(__CC_ARM) ||defined(__GNUC__)---> #ifdef __ICCARM__93,94c93,94< #define configUSE_IDLE_HOOK 0< #define configUSE_TICK_HOOK 0---> #define configUSE_IDLE_HOOK 1> #define configUSE_TICK_HOOK 1106c106< #define configCHECK_FOR_STACK_OVERFLOW 0---> #define configCHECK_FOR_STACK_OVERFLOW 2108c108< #define configUSE_MALLOC_FAILED_HOOK 0---> #define configUSE_MALLOC_FAILED_HOOK 1
FreeRTOS_9_0_0/PORT/FreeRTOSConfig.h//#define xPortSysTickHandler SysTick_Handler // 注释该句 void SysTick_Handler(void) { if (xTaskGetSchedulerState() != taskSCHEDULER_NOT_STARTED){ xPortSysTickHandler() } }
转载地址:http://tgngi.baihongyu.com/