添加FreeRTOS源码
所需的源码路径如下:
FreeRTOSConfig.h配置文件修改
- 修改条件编译宏
/* Ensure stdint is only used by the compiler, and not the assembler. */
#if defined(__ICCARM__)||defined(__CC_ARM)||defined(__GNUC__)
#include <stdint.h>
extern uint32_t SystemCoreClock;
#endif
- 关闭钩子函数(HOOK)
#define configUSE_IDLE_HOOK 0 //1
#define configUSE_TICK_HOOK 0 //1
#define configCHECK_FOR_STACK_OVERFLOW 0 //堆栈溢出检测 vApplicationStackOverflowHook
#define configUSE_MALLOC_FAILED_HOOK 0
- 需要将
stm32f407xx .h
(其他系列的芯片找对应的文件)中的 _NVIC_PRIO_BIT 4U改为4
修改SYSTEM文件
直接移植正点原子的FreeRTOS教程对应的SYSTEM文件夹,不过要进行适当修改
修改中断相关文件
STM32在stm32f4xx_it.c
和FreeRTOS的port.c
提供相同了SVC_Handler()
,PendSV_Handler()
,SysTick_Handler
,三个中断服务函数。因此需要屏蔽对应的中断服务函数:
- 直接在
stm32f4xx_it.c
中屏蔽对应的函数; - 可在FreeRTOSConfig.h中注释掉对应的宏定义。