中断看门狗
中断看门狗(Interrupt watchdog)用于检测中断是否屏蔽超时
由于 FreeRTOS 任务切换依赖中断信号,因此中断屏蔽超时直接的影响是会导致 Task 无法切换,导致系统崩溃。
中断看门狗被触发的常见原因如下:
- Task 在进入 while() 循环之前关闭了中断,而迟迟没有退出循环将中断使能
- 待补充
可通过 CONFIG_ESP_INT_WDT_TIMEOUT_MS
增加或减小喂狗时间
Task 看门狗
Task 看门狗定时器(Task Watchdog Timer ,TWDT)用于检测 Task 是否长期占用 CPU 资源
某个 task 长期占用 CPU 会导致其它 task 没有机会被执行,导致设计功能无法实现
Task 看门狗被触发的原因如下:
- task 的 while 循环中没有阻塞函数和
vTaskDelay
- 待补充
Task 看门狗默认情况下只监视每个 CPU 的 idle task,可以通过 esp_task_wdt_add
为自定义 task 添加监视