ESP32 任务看门狗(TaskWDT)组件与用户任务监控 看门狗机制用于监控嵌入式系统运行并在发生不可知的软硬件故障时将系统复位。系统正常运行时,看门狗定时器溢出之前会被重置计数值,也就是“喂狗”。定时器溢出意味着无法“喂狗”,系统异常。 0:BUG 前一阵在没事开着ESP32测试运行的时候,较长时间后会有很小的概率出...
这时用户要把需要被TWDT监控的任务添加到TWDT链表内,其接口是:esp_task_wdt_add 与此同时,用户要在自己的任务处理函数中进行喂狗操作,其接口时esp_task_wdt_feed 这里截取一部分esp_task_wdt_feed代码: 很显然,用户任务调用esp_task_wdt_feed喂狗时,esp_task_wdt_feed会找到当前运行的任务,也就是执行喂狗操...
.idle_core_mask=0,#ifCONFIG_ESP_TASK_WDT_PANIC.trigger_panic=true,#endif};#ifCONFIG_ESP_TASK_WDT_CHECK_IDLE_TASK_CPU0twdt_config.idle_core_mask|= (1<<0);#endif#ifCONFIG_ESP_TASK_WDT_CHECK_IDLE_TASK_CPU1twdt_config.idle_core_mask|= (1<<1);#endifESP_ERROR_CHECK(esp_task_wdt_...
Re: 在主任务里面使用readdir导致task_wdt: Task watchdog got triggered!!! Quote by iincity » Wed Mar 29, 2023 12:25 am ESP_Junru wrote: ↑ Tue Mar 28, 2023 7:24 am 可能是 readdir 长时间运行导致看门狗未及时置位。 1. 将看门狗的触发时间调长 2. 将看门狗关闭 3. 将 readdir 任务...
E (10299) task_wdt: CPU 1: IDLE1 E (10299) task_wdt: Aborting. 1. 2. 3. 4. 5. 6. 如果你希望任务看门狗触发之后进行重启,有以下两种方法: 调用panic handler :在 make menuconfig --> Component config --> ESP32-specific选中 Invoke panic handler on Task Watchdog timeout ...
E (32652) task_wdt: Tasks currently running: E (32652) task_wdt: CPU 0: loopTask E (32652) task_wdt: Aborting. abort() was called at PC 0x4013a8a4 on core 0 最终在对应产生问题的代码部分加入以下代码即可解决 vTaskDelay(1);
})staticTaskHandle_t task_handles[portNUM_PROCESSORS];//Callback for user tasks created in app_main()voidreset_task(void*arg){//Subscribe this task to TWDT, then check if it is subscribedCHECK_ERROR_CODE(esp_task_wdt_add(NULL),ESP_OK);CHECK_ERROR_CODE(esp_task_wdt_status(NULL),ESP...
[0;31mE (56606349) task_wdt: Task watchdog got triggered. The following tasks did not reset the watchdog in time:[0m [0;31mE (56606349) task_wdt: - IDLE0 (CPU 0)[0m [0;31mE (56606349) task_wdt: Tasks currently running:[0m [0;31mE (56606349) task_wdt: CPU 0: wifi[0m ...
//CHECK_ERROR_CODE(esp_task_wdt_reset(), ESP_OK); 这将导致以下输出: 看门狗被触发。 因为TWDT超时时间为3秒: #define TWDT_TIMEOUT_S 3 // TWDT超时时间 延时为10秒: vTaskDelay(pdMS_TO_TICKS(10000)); // 延时10秒 在10秒延时期间,看门狗有3次触发,之后程序会继续执行: 6. 看门狗触发后立...
timerret = esp_task_wdt_stop(); #endif // CONFIG_ESP_TASK_WDT_USE_ESP_TIMER s_config.ccount_ticks_record = esp_cpu_get_cycle_count(); static portMUX_TYPE light_sleep_lock = portMUX_INITIALIZER_UNLOCKED; portENTER_CRITICAL(&light_sleep_lock); @@ -821,6 +829,14 @@ esp_err_t ...