FreeRTOS版本 V8.2.3
1.1 移植所需文件(keil)
1)与FreeRTOS内核相关list.c queue.c tasks.c,文件位FreeRTOS\Source
2)与内存分配相关heap_1.c,heap_2.c,heap_3.c,heap_4.c,STM32选择heap_2.c。文件位于FreeRTOS\Source\portable\MemMang
3)与移植相关port.c,portmacro.h。这些代码不但和编译器有关还和平台(MCU)有关。FreeRTOS先以编译器为大类,然后再以平台(MCU)为小类。在这里选择Keil编译器,平台为ARM_CM4F(IAR中有portasm.s,keil无)该文件位于FreeRTOS\Source\portable\RVDS\ARM_CM4F。
4)除了上述内容之外,还包括FreeRTOS内核相关的头文件。该文件FreeRTOS\Source\include
1.2 FreeRTOS代码修改
无
IAR的话要修改对应处理器的启动文件中的SVC_Handle,PendSV_Handle和SysTick_Handle为vPortSVCHandler,xPortPendSVHandler和xPortSysTickHandler即将这些中断交给FreeRTOS管理。
keil中在FreeRTOSConfig.h中以#define vPortSVCHandler SVC_Handler的方式实现。
1.3 配置
#define configUSE_IDLE_HOOK 0
#define configUSE_TICK_HOOK 0
#define configCPU_CLOCK_HZ ( ( unsigned long )168000000 )
#define configTICK_RATE_HZ ( ( TickType_t ) 100 )
#define configMAX_PRIORITIES ( 5 )
#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 130 )