简介:
看门狗计时器的主要应用是作为系统监控器来检测和复位"失控"SOC。
当程序执行出错或软件或器件无法正常工作时、看门狗计时器将帮助将 SOC 保持已知状态。
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
简介:
看门狗计时器的主要应用是作为系统监控器来检测和复位"失控"SOC。
当程序执行出错或软件或器件无法正常工作时、看门狗计时器将帮助将 SOC 保持已知状态。
当前的 AM64X 和 AM62X 器件支持 DWWD (数字窗口式看门狗)。
DWWD 打开一个可配置的时间窗口、在这个时间窗口中安全装置必须被处理。 任何在这个时间窗口之外处理看门狗的尝试、或者在这个时间窗口中处理看门狗的失败、将导致看门狗为自 CPU 生成一个 NMI。
在这种情况下、谁应该重置崩溃的内核? 通常、期望是在 WDT 到期时使 SOC 自复位、但 AM64X 和 AM62X 器件上运行的 MCU+ SDK 代码目前不支持这种方式。 (注意、Linux 将在 Linux 看门狗计时器生成 NMI 后复位处理器)
解决方案:
配置 ESM 以将 RTI 中断路由到错误输出、错误输出是热复位源之一。
RTI 超时 -> ESM 事件 -> CTRL MMR 寄存器(控制复位从 ESM 错误事件激活或者不从 MMR 寄存器激活)。
通常、您必须遵循以下步骤。
1.设置看门狗过期时间。
2.初始化 ESM 模块
3.将 WDT 到期事件路由到 ESM 输出和中断优先级应配置为 高
4.控制 CTRL_MMR 寄存器以确定 SOC 是否应通过 ESM 模块进行复位

示例:
1.可以使用 SDL RTI 模块 API 配置 WDG 计时器。 其提供有 AM64x 和 AM62x 的 MCU+SDK。

我们可以根据运行 WDG 计时器和 SoC 的内核选择 RTI 实例。
2.您可以通过查看 AM62x TRM 的表10-2和表10-3以及 AM64x TRM 的表9-68和表9-71、在 ESM 配置中配置 RTI 事件。
ESM 配置和初始化


在上面的屏幕截图中、配置了主 ESM 事件163、并为其设置了高优先级中断、因为事件163对应于 AM62x 中的 Wkup_RTI0。 AM64x 中的配置也类似。
要了解位图结构和 ESM 配置,您可以查看 此处附加的常见问题解答 。
3.将 AM62x 中 WKUP_CTRL_MMR0寄存器的第17位或 AM64x 中的 CTRL_MMR0寄存器设置为0、以启用 ESM 模块对 SoC 的复位。

结论:
进行上述更改后、您可以看到 SoC 在 WDG 计时器到期后得到复位。
附加下面的 AM62x 和 AM64X 示例应用:
e2e.ti.com/.../8345.Wdg_5F00_Reset_5F00_AM62x.zip
e2e.ti.com/.../2068.WDG_5F00_Reset_5F00_AM64X.zip