WDT - 看门狗

本文主要介绍看门狗功能的使用

看门狗简介

什么是看门狗

看门狗,全称WatchDog Timer,即看门狗计时器。看门狗是一种电子或软件定时器,用于检测计算机故障,并从计算机故障中恢复。在正常操作期间,计算机会定期重置看门狗计时器,以防止其丢失或“计时”。 如果由于硬件故障或程序错误而导致计算机无法重置看门狗,则计时器将丢失并生成超时信号, 超时信号会被用于启动一个或多个纠正措施。 纠正措施通常包括将计算机系统置于安全状态并恢复系统的正常运行。

看门狗工作原理

看门狗是一个计数器,其基本原理是先给计数器设定一个数值(溢出值),程序开始运行后,看门狗定时器开始计数,程序正常运行时,会周期发出指令将计数器置零(喂狗),重新开始计数,而如果长时间没有清零,计数器增加到设定值(定时器溢出),计数器会认为程序出现了异常,强制系统复位。

看门狗应用

示例代码

from machine import WDT
import utime


if __name__ == '__main__':
    wdt = WDT(5)  # 启动看门狗,间隔时长5s
    for i in range(0, 4):
        wdt.feed()
        print("喂狗: {}".format(i))
        utime.sleep(4)
    print("循环喂狗结束 接下来将触发看门狗复位")

运行结果

>>> example.exec("/usr/test.py")

喂狗: 0

喂狗: 1

喂狗: 2

喂狗: 3

循环喂狗结束 接下来将触发看门狗复位
>>>