RTOS 系统篇-看门狗 WatchDog 2

RTOS 系统篇-看门狗 WatchDog 2

概述

上一节在 RTOS 系统篇-看门狗 WatchDog[不喂狗就咬你] 讲解了 看门狗的基本原理,以及任务、中断中触发看门狗的原因、解决方法。

本小节承接上节,主要讨论如何将一个任务加入到看门狗,并及时喂狗。读者可参考示例的用法,理解其基本使用,并在自己使用的平台上找到类似的 API 来学习研究。

ESP-IDF 中的任务看门狗

任务看门狗(TWDT)是围绕定时器组0中的硬件看门狗定时器构建的。

TWDT 可以通过调用 esp_task_wdt_init() 来初始化,它将配置硬件计时器。

然后,任务可以使用 esp_task_wdt_add()添加到任务看门狗监控队列,以便被监视。

每个添加到任务看门狗的任务必须定期调用 esp_task_wdt_reset()来重置TWDT。任何添加到任务看门狗的任务若调用 esp_task_wdt_reset() 时返回失败,则表示当前的任务卡在调用该函数前的某个循环中,或者一个或多个任务在长期占用 CPU,使得当前函数没有机会运行 esp_task_wdt_reset()

可以使用 esp_task_wdt_delete() 将任务从任务看门狗监控队列中移除。一旦所有任务都从 TWD

猜你喜欢

转载自blog.csdn.net/wangyx1234/article/details/129034234