您好!
我有一个应用、有时 MCU 会被复位。 尝试调查我正在使用 SYSCTL_getResetCASE 停止。 MCU 报告了看门狗复位(WDRSn)、但在我的应用中禁用了看门狗(我在两个 CPU 中都仔细检查了这一点)。 这怎么可能呢?

在另一方面,我注意到, SYSCTL_getResetCASE 该函数从不返回1 (POR 位启用)。 我认为它应该在每个下电上电时启用、所以我不确定能否信任函数的返回值。
此致、
路易斯
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.
您好!
我有一个应用、有时 MCU 会被复位。 尝试调查我正在使用 SYSCTL_getResetCASE 停止。 MCU 报告了看门狗复位(WDRSn)、但在我的应用中禁用了看门狗(我在两个 CPU 中都仔细检查了这一点)。 这怎么可能呢?

在另一方面,我注意到, SYSCTL_getResetCASE 该函数从不返回1 (POR 位启用)。 我认为它应该在每个下电上电时启用、所以我不确定能否信任函数的返回值。
此致、
路易斯
您好、Luis:
从图表中可以明显看出、有了 WDRSn 的可能性(TRM 中的第3.9节看门狗计时器)

1) 1)默认情况下将启用看门狗、因此如果您 提供错误的密钥、则在禁用时会提供 WDRSn。
2)如果计数器已过期。
3) 3)当 WDCNTR 小于 WDWCR 时、任何对看门狗进行维护的尝试都会触发看门狗中断或复位。 (请查看第3.9.2节"最小窗口检查")
是否可以针对该问题进行进一步调试、比如您可以进入看看哪个部分导致了复位?
以便我们能有更多的清晰度。
谢谢
阿斯温
此问题是随机的,大约发生5%的电源周期。
上述特性使得调试极具挑战性。 这是我们最畅销的器件之一、至今已交付数百万个器件。 这是 不 以确保不会在该器件中发现任何问题。 只是5%的故障率问题到目前为止会引起我们的注意。
Luis,
似乎 WD 正在您的应用程序中重新启用。 可能发生这种情况的一个原因是当 ITRAP 被置为有效时。 ITRAP ISR (在引导 ROM 中)可启用 WD。 你需要调查为什么 ITRAP 发生在你的系统。 一个原因是非法的操作码。 您的系统可能会受到噪声的影响、这可能会破坏程序计数器、从而导致器件执行产生 ITRAP 的垃圾处理。 还可能某些 RAM 位置损坏、从而出现类似的情况。 噪声的可能性更大、因为这种情况只有5%的时间发生。

我注意到 SYSCTL_getResetCASE 函数从不返回1 (启用 POR 位)。
事实证明、引导 ROM 清除这个位。 我将提交一个请求单、以便在 TRM 中添加此说明。