看门狗计时器在比格尔骨黑



我在一个项目中使用BeagleBone Black,想问问是否有人知道内部WDT(WatchDog Timer)的限制。它能做什么,不能做什么?我是BeagleBone和WDT的初学者...

谢谢!

引用自"AM335x Sitara™处理器 - 技术参考手册":

看门狗定时器是一个向上计数器,能够在复位引脚上产生脉冲和中断 到出现溢出情况后的设备系统模块。看门狗定时器用于复位 PRCM 模块,并向主机 ARM 提供看门狗中断。复位 PRCM 模块会导致 设备的热复位。

基本上,WDT是一个时钟设备,即一个硬件寄存器,其值以准确的频率定期自动增加。还有一个硬件比较器,其目标是在每次WDT溢出时触发IRQ。与传统定时器的区别在于在IRQ上执行的默认操作:在这种情况下(WDT)是重置电路板。

WDT 的主要目标是对运行时环境(或内核)冻结且不再响应的错误情况做出反应。发生这种情况时,运行时不会重置 WDT,因此它会溢出,启动 IRQ 并重置主板,以便运行时环境可以重新获得对主板的控制。

要使用此功能(如果您不希望电路板每 x 秒重置一次,则必须这样做),您必须在WDT_WTGR寄存器(硬件地址 - 0x44E35030)中写入任何值,以导致时间计数器重新加载并避免重置电路板。我注意到 WDT 在 Beaglebone Black 上大约 50 秒后溢出,因此您必须每 x < 50 秒写入一个值。

但是,如果您计划实现要在电路板上加载的裸机应用程序,则这是有效的。换句话说,WDT 由 UBoot(BBB 默认引导加载程序)或 Linux 内核正确处理,因此您不必担心这一点。

我希望我已经消除了你的疑虑! :-)

延伸阅读:http://www.ti.com/lit/ug/spruh73m/spruh73m.pdf - 第 20.4 节

最新更新