可以在用户代码中定义函数esp_task_wdt_isr_user_handler来接收超时事件,并扩展默认行为。 调用以下函数,用 TWDT 监视任务: esp_task_wdt_init()初始化 TWDT 并订阅空闲任务。 esp_task_wdt_add()为其他任务订阅 TWDT。 订阅后,应从任务中调用esp_task_wdt_reset()来喂 TWDT。 esp_task_wdt_delete()可...
ESP_ERROR_CHECK(esp_intr_alloc(ETS_TG0_WDT_LEVEL_INTR_SOURCE,0, task_wdt_isr, NULL, &twdt_config->intr_handle))关联到了函数task_wdt_isr。 task_wdt_isr做的事情其实很简单,就是在TWDT链表内遍历,找到位于链表内但未进行喂狗操作的任务打印出来。另外,若esp_task_wdt_init的panic参数被设置为tru...
并且还有可能在用户代码中重新定义函数 esp_task_wdt_isr_user_handler() 以接收此事件。 TWDT 围绕定时器组 0 中的硬件看门狗定时器构建。可以通过调用 esp_task_wdt_init() 来初始化 TWDT,这将配置硬件定时器。然后,任务可以使用 esp_task_wdt_add() 订阅 TWDT 监视。每个订阅的任务必须定期调用 esp_task...
2.1 esp_task_wdt_init 2.2 esp_task_wdt_add 2.3 esp_task_wdt_reset 三、看门狗测试 使用examples\system\task_watchdog中的例程 #include<stdio.h>#include<stdlib.h>#include"freertos/FreeRTOS.h"#include"freertos/task.h"#include"esp_task_wdt.h"#defineTWDT_TIMEOUT_S 3#defineTASK_RESET_PERIOD...
1、编写 init_i2s 函数,初始化 i2s 接口。 //I2S通道句柄statici2s_chan_handle_t iis_tx_ch;staticvoidinit_i2s() {//1、创建通道i2s_chan_config_t chcfg =I2S_CHANNEL_DEFAULT_CONFIG(I2S_NUM_0, I2S_ROLE_MASTER); ESP_ERROR_CHECK(i2s_new_channel(&chcfg, &iis_tx_ch, NULL));//2、配置通...
XTAL32K 看门狗定时器 (Crystal 32K 看门狗定时器,即 XTWDT) 中断看门狗负责确保 ISR(中断服务程序)不被长时间阻塞,TWDT 负责检测任务长时间运行而不让步的情况。 通过项目配置菜单 可启用各种看门狗定时器。其中,TWDT 也可以在程序运行时启用。中断看门狗定时器 (IWDT) IWDT 的目的是,确保中断服务例程 (IS...
DesktopScreenDemoV4.0.0 app_main.c文件中对桌面小屏幕的功能实现用到了三个函数,所以我计划把项目代码分成三篇文章来进行分享,主要分成三个部分,sleep_mode_init()函数、background_task(void* arg)函数和app_main函数。这一节与大家一起学习的是sleep_mode_init()函数的内容。
这可以通过调用`esp_task_wdt_reset()`函数来实现。在您的`app_main()`函数中,您可以在SPI通信之前调用此函数,以重置看门狗计时器。 5. **优化代码逻辑**:检查您的代码逻辑,确保在SPI通信过程中没有死循环或无限等待的情况。这可能导致看门狗超时并触发复位。 6. **使用中断或轮询**:根据您的应用需求,您...
1,wdt.h文件 /* 引脚定义 */ #define BOOT_INT_GPIO_PIN GPIO_NUM_0 /*IO操作*/ #define BOOT gpio_get_level(BOOT_INT_GPIO_PIN) /* 函数声明 */ void exit_init(void); /* 外部中断初始化程序 */ 2,wdt.c文件 /** * @Brief 初始化任务看门狗计时器 * @param tps: 定时器周期 */ void...
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 任务...