在keil上往stm32f407zgt6上移植时,FreeRTISConfig.h文件中初始定义中把#ifdef(ICCARM) 改为#if defined(ICCARM)||defined(__CC_ARM)||defined(GNUC)
在stack_macros.h中添加#include "portmacro.h"否则会导致栈溢出回调函数无法使用,因为无法找到portSTACK_GROWTH。
关于栈溢出宏,当任务设置栈过小时,任务栈溢出后会直接导致硬件错误,两种栈溢出宏都不会被调用,只有小部分溢出时栈溢出宏才会发现溢出。
如果使用滴答定时器作为HAL_Delay延时时钟,则不可使用#define xPortSysTickHandler SysTick_Handler,应定义一个滴答定时器中断函数,然后在中断函数中调用xPortSysTickHandler,否则有几率触发硬件错误。