MCU专家 发表于 2025-6-8 09:00:12

FreeRTOS任务卡死的5个关键线索


诊断流程图:图表

代码










下载






接近0

正常






任务卡死

uxHighWaterMark检查

扩大任务栈

查看任务状态

阻塞在队列?

检查队列give操作

检查互斥锁



调试技巧:
[*]栈溢出钩子函数:c


复制


下载





void vApplicationStackOverflowHook(TaskHandle_t xTask, char *pcTaskName) {    printf(" %s stack overflow!\n", pcTaskName);    // 自动重启前保存现场    save_crash_log(xTask);}

[*]Keil Event Recorder:c


复制


下载





EventRecorderInitialize(EventRecordAll, 1);// 启用任务调度记录


页: [1]
查看完整版本: FreeRTOS任务卡死的5个关键线索