ESP32-S3 双核下 TWDT 超时定位,核心是先把崩溃现场固化下来。建议在 menuconfig 中开启 CONFIG_ESP_SYSTEM_USE_EH_FRAME 与 CONFIG_ESP_COREDUMP_ENABLE_TO_FLASH,并设置 panic handler 为 coredump,这样 TWDT 触发后会先落盘再复位。复位后通过 espcoredump.py info_corefile -c core.bin -t elf 解析,可得到每个任务的栈回溯、寄存器快照和当前 PC。注意 TWDT 默认只监控 IDLE 任务,若超时说明有任务长时间不让出 CPU,需重点看 core dump 中哪个任务处于 Running 且调用栈停在死循环或阻塞点。拿到 backtrace 后用 addr2line 或 xtensa-esp32s3-elf-addr2line -pfiaC -e build/app.elf 还原到源码行。若栈被破坏,可结合 esp_backtrace 与任务列表交叉验证。
mcuku 阿沐 · 2026-10-13