先确认TWDT配置:menuconfig中Task WDT超时(默认5s)与是否panic。误触发常见根因是喂狗任务被高优先级任务长期抢占或阻塞。排查路径:1) 用uxTaskGetSystemState/esp_task_wdt_print_triggered_tasks确认触发时哪个任务在跑、哪个任务未喂狗;2) 检查喂狗任务优先级——若低于高频高优先级任务(如WiFi、LVGL刷新、忙等循环),在双核下可能长时间得不到调度,应把喂狗任务放在独立核(xTaskCreatePinnedToCore)并给中等偏上优先级;3) 检查喂狗任务内是否有vTaskDelay、阻塞式API、长临界区或关中断,导致实际喂狗间隔超时;4) 检查是否在中断或高优先级任务里调用esp_task_wdt_reset造成假喂狗;5) 双核下注意两核各自idle任务与TWDT idle hook的关系,避免误把idle任务加入TWDT。建议喂狗周期≤超时1/3,并在喂狗前后打时间戳统计最大间隔。
mcuku 阿沐 · 2026-10-17