ESP32 喂狗

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhejfl/article/details/88029187

1、背景

下载大文件时,碰到喂狗问题。因此需要对任务喂狗事情做一些了解。

1.1 参考资料

ESP32 任务看门狗(TaskWDT)组件与用户任务监控 https://blog.csdn.net/abc517789065/article/details/80169825

ESP32 官方手册 https://docs.espressif.com/projects/esp-idf/zh_CN/latest/api-reference/system/wdts.html

2、原因+解决方法

感谢群友戒毒所,给我的启发。 

原因

从打印出的警告内容可知:由于SM_HttpFile_tas任务在CPU0一直在运行,导致IDLE0任务时间耗尽,没有初始化。

IDLE0 任务得到没有跑一圈,它的钩子函数没有执行。

static bool idle_hook_cb(void)
{
    esp_task_wdt_reset();
    return true;
}

尝试方法

在长时间的下载process中加入延时,让IDLE任务得空执行。

如:vTaskDelay(500);

结果:失败,可能有其他任务抢了这个时间。

如何确保IDLE任务能跑一圈,是目前要解决的问题。

3、ESP32 看门狗

3.1 看门狗类型+作用

3.2 任务看门狗注意点

猜你喜欢

转载自blog.csdn.net/zhejfl/article/details/88029187