【发布时间】:2015-06-12 12:29:00
【问题描述】:
我在一个项目中使用 BeagleBone Black,想问是否有人知道内部 WDT(看门狗定时器)的限制。它能做什么,不能做什么?我是 BeagleBone 和 WDT 的初学者...
谢谢!
【问题讨论】:
我在一个项目中使用 BeagleBone Black,想问是否有人知道内部 WDT(看门狗定时器)的限制。它能做什么,不能做什么?我是 BeagleBone 和 WDT 的初学者...
谢谢!
【问题讨论】:
引自“AM335x Sitara™ 处理器 - 技术参考手册”:
看门狗定时器是一个向上计数器,能够在复位引脚上产生一个脉冲和一个中断 到设备系统模块后溢出条件。看门狗定时器用于复位到 PRCM 模块并为主机 ARM 提供看门狗中断服务。 PRCM 模块的复位会导致 设备的热重置。
WDT 实质上是一个时钟设备,即硬件。寄存器,其值以准确的频率定期自动增加。还有一个硬件比较器,其目标是在每次 WDT 溢出时触发一个 IRQ。与传统计时器的不同之处在于对 IRQ 执行的默认操作:在这种情况下 (WDT) 是重置板。
WDT 的主要目标是对运行时环境(或内核)冻结且不再响应的错误情况作出反应。发生这种情况时,运行时不会重置 WDT,因此它会溢出,启动 IRQ 并重置板,以便运行时环境可以重新控制板。
要使用此功能(如果您不希望每x 秒重置您的电路板,您有义务),您必须在 WDT_WTGR 寄存器(硬件地址 - 0x44E35030)中写入任何值以导致时间计数器重新加载并避免电路板重置。我注意到在 Beaglebone Black 上大约 50 秒后 WDT 溢出,因此您必须每隔 x < 50 秒写入一个值。
但是,如果您计划实现要加载到板上的裸机应用程序,这将是有效的。换句话说,WDT 由 UBoot(BBB 默认引导加载程序)或 Linux 内核正确处理,因此您不必担心这一点。
我希望我已经消除了您的疑虑! :-)
进一步阅读: http://www.ti.com/lit/ug/spruh73m/spruh73m.pdf - 第 20.4 节
【讨论】: