-
方法一:查询当前任务剩余堆栈
#define INCLUDE_uxTaskGetStackHighWaterMark 1
getRemainStack[0] = uxTaskGetStackHighWaterMark(NULL);
宏定义放在FreeRTOS.h里
-
方法二:使用钩子函数定位堆栈溢出的任务
#define configCHECK_FOR_STACK_OVERFLOW 1
void vApplicationStackOverflowHook( TaskHandle_t xTask, signed char *pcTaskName )
{
printf("task %s is stack over flow\n", pcTaskName);
}
宏定义放在FreeRTOS.h里
参考FreeRTOS入门手册第六章