中斷看門狗
中斷看門狗(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 添加監視