尊敬的 IT 支持:
我们要使用 NMI、而不是看门狗中的复位。
dwwdInit (rtiREG1、generate_NMI、3900、size_100_percent);
如何配置 NMI 中断处理程序?
NMI 中断 API 将在哪里创建?
应使用哪个 VIM 通道?
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.
尊敬的 IT 支持:
我们要使用 NMI、而不是看门狗中的复位。
dwwdInit (rtiREG1、generate_NMI、3900、size_100_percent);
如何配置 NMI 中断处理程序?
NMI 中断 API 将在哪里创建?
应使用哪个 VIM 通道?
尊敬的 Manoraj:
请参阅我最近创建的以下常见问题解答:
(+)[常见问题解答] TMS570LC4357:如何使用数字看门狗-基于 Arm 的微控制器论坛-基于 Arm 的微控制器- TI E2E 支持论坛
在上面的常见问题解答中、我讨论了如何使用内部数字看门狗创建 NMI 和复位。
--
谢谢。此致、
Jagadish。
尊敬的 Manoraj Selvaraj:
我理解这个问题、下面突出显示的行是错误的:

这是不对的、因为 SR1[1](ESMSR2寄存器) 在调用"esmGroup2Notification"之前、"vimECCErrorHandler"函数中的状态已被清除。 所以、我们不应该通过检查 SR1[1] 寄存器来找出 ESM 错误。
这由以下行清除:

以上任一行都可以清除 SR1[1]寄存器。 在第二行、你可以看到我们正在强制写入以清除 SR1[1]寄存器中的相应位、但在我的测试中、我还发现读取 IOFFHR 也会清除 SR1[1]寄存器。

正确的方法是执行以下操作:

只需使用24验证"通道"参数传递给该函数(即 RTI_WWD_NMI)。
但你可能会怀疑, 如果 你保留了断点,为什么你会设置 SR1[1]标志? 这是因为这不是旧状态这是由断点创建的新状态、我的意思是、如果我们设置一个断点、看门狗超时将再次过期、这将再次设置 SR1[1]寄存器。
感谢您指出这个错误、我会再次将修改后的代码上传到常见问题解答中。
还要记住以下几点:
即使进行了上述修改、即使您在表达式窗口中设置了"continuous refresh"、但在运行代码时也不会更新变量、要查看您只需要暂停它的状态。 "持续刷新"只能 在仅暂停代码时进行持续刷新。
现在您可以在代码中看到的区别是、您可以直接在下面的行中设置断点

无需在这一行之前设置断点并且无需进行逐步调试、这是因为现在变量"watchdog_NMI"将每次都被设置。
--
谢谢。此致、
Jagadish。