作为我们系统安全的一部分、我希望在关键问题上进入"保护模式"。 为此、我想针对某些 NMI 进入条件提供一个无限 while 循环(使 NMI 处理程序内的 LED 闪烁)。 但是、即使 NMI ISR 内的所有标志最初都被复位、NMI 安全装置也总是将系统复位。 在现有 NMI ISR 之前、我没有找到防止复位的方法。 TRM 表示清除标志是唯一的条件、但条件似乎是清除标志并退出 ISR。 是否有办法从 NMI ISR 内实现我想要的(停止 NMI 监视器计时器)?
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.
作为我们系统安全的一部分、我希望在关键问题上进入"保护模式"。 为此、我想针对某些 NMI 进入条件提供一个无限 while 循环(使 NMI 处理程序内的 LED 闪烁)。 但是、即使 NMI ISR 内的所有标志最初都被复位、NMI 安全装置也总是将系统复位。 在现有 NMI ISR 之前、我没有找到防止复位的方法。 TRM 表示清除标志是唯一的条件、但条件似乎是清除标志并退出 ISR。 是否有办法从 NMI ISR 内实现我想要的(停止 NMI 监视器计时器)?
布拉德福德
清除 NMI ISR 中所有被锁存的 NMI 错误标志条件 将停止 NMI 看门狗计数器并将其复位。 但是、它 会 锁存任何新的错误条件、然后 它将重新启动计数器。 检查 ISR 中是否出现新的错误情况。 您应该清除 NMI 中断标志并同时清除所有标志。 确保先清除挂起失败标志、然后清除 NMIINT 标志。 此外、请注意硬件具有优先级。 也就是说、如果硬件在尝试清除某个位的同时尝试设置某个位、则硬件操作将生效。
但愿这对您有所帮助。 如果您的问题得到了解答、请单击绿色的"验证答案"按钮。 谢谢。
- Ken