FreeRTOS任务卡死如何定位?

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

45

主题

7

回帖

185

积分

注册会员

积分
185
2025-6-2 23:44:52 显示全部楼层 阅读模式
FreeRTOS任务卡死如何定位?
问题热度:⭐️⭐️⭐️⭐️ (单日讨论量 700+)
诊断流程图图表

代码










下载







栈溢出

正常






任务卡死

查看uxHighWaterMark

增大stack大小

检查任务状态

阻塞在semaphore?

检查give调用链

死循环检测



高级调试技巧:
  • 钩子函数定位:
    c


    复制



    下载






    void vApplicationStackOverflowHook(TaskHandle_t xTask, char *pcTaskName) {  printf("!!! %s stack overflow !!!", pcTaskName);}

  • Keil Event Recorder:
    c


    复制



    下载






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



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

本版积分规则