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.

[参考译文] TMS570LC4357:DWD -通过中断复位

Guru**** 2468610 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1060455/tms570lc4357-dwd---reset-through-interrupt

器件型号:TMS570LC4357

您好、

我目前正在处理 TMS570的 RTI 数字看门狗、我正在努力找到有关我的问题的正确信息。

我希望能够在触发 DWD 复位之前读出最后一个返回地址、这样我就可以看到代码在哪里"运行"。 为此、我目前正在设置 DWD、以便它触发中断而不是直接复位。 在系统复位且内存重新初始化后、从 esmGroup2Notification 中断例程 I 写入 r14寄存器值到 EEPROM 以便可以访问该寄存器。 将地址存储到 EEPROM 后、我通过写入 SYSECR 寄存器来触发复位。 此外、我编辑了 HL_system.getResetSource 函数来同时检查看门狗状态寄存器、以便它能够确定复位实际上是由看门狗违反引起的。  复位完成且系统重新初始化后、我只需从 EEPROM 读取地址即可。

到目前为止、这似乎工作正常、感觉是一种很好的变通办法、但我的三个问题是:

Q1:是否建议采用其他方法、在触发 DWD 复位之前获取最新的返回地址?

Q2:根据我的理解、由 DWD 违反引起的 NMI 是一个已经具有高优先级的 FIQ。 这是否意味着它将中断发生违规时可能正在运行的所有 IRQ?

问题3:在违规时可能正在运行的 FIQ 如何?

Q2和 Q3或多或少连接、因为我想确保 DWD 违反具有最高优先级、 并且将被处理、而不是在 esmGroup2Notification Handler 内部引起复位。 我担心的是、另一个中断可能会"运行"并导致系统挂起、这应该由 DWD 注意并处理。 到目前为止,我还无法从手册中得到这方面的答案。

谢谢、Alex   

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Alex:

    问题1.  

    [引用 userid="497350" URL"~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum 1060455/tms570lc4357-DWD--reset-through interrupt "]将地址存储到 EEPROM 后,我通过写入 SYSECR 寄存器来触发复位。[/quote

    在处理 NMI 中断后、触发 SW 复位的目的是什么?

    问题2.  来自窗口看门狗的中断映射到 ESM 组2通道24。 然后、ESM 组2标志将通过 VIM 中断通道0 (映射到 ESM 高优先级中断)生成一个到 CPU 的不可屏蔽中断(FIQ)。 FIQ 的优先级高于 IRQ、因此它将仲裁所有挂起的和正在运行的 IRQ 中断  

    问题3. 当一个 FIQ 被处理时、FIQ 和 IRQ 被禁用。 因此、新推出的 FIQ 将进入挂起状态、直到当前 FIQ 被处理。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    嗯、我希望看门狗引起系统复位、但同时我想知道系统复位后执行的最后地址(基本上是系统挂起的位置)。 我无法通过通过看门狗进行复位来确定如何实现这一点、因此我使用中断将该值存储在 EEPROM 中、而不是在系统复位并再次运行时读取该值。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Alex:

    好的、谢谢。