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

0
回复
131
查看
[ 复制链接 ]

45

主题

7

回帖

185

积分

注册会员

积分
185
2025-6-8 09:00:12 显示全部楼层 阅读模式

诊断流程图:
图表

代码










下载







接近0

正常






任务卡死

uxHighWaterMark检查

扩大任务栈

查看任务状态

阻塞在队列?

检查队列give操作

检查互斥锁



调试技巧:
  • 栈溢出钩子函数:
    c


    复制



    下载






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

  • Keil Event Recorder:
    c


    复制



    下载






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



收藏
送赞
分享
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则