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.

[参考译文] TMS320F28377D:正在清除 RESC 寄存器?

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1182520/tms320f28377d-clearing-the-resc-register

器件型号:TMS320F28377D

您好!

我正在努力确定 CPU1复位的最后一个原因,目前使用 的是 SYSCTL_getResetCuser()。 具体而言、我想确定之前的复位是由 WDTRS、NMIFTRS 还是 XRSn 引起的(从外部电路驱动为低电平)。 我看到,当这些条件中的每一个都被强制时,我会看到  SYSCTL_getResetCuser()的相应结果。  但是、一旦它们发生、这些位 在随后的复位后仍然被置位。

例如、如果我通过 NMIFLGFRC 触发一个 NMIWDTRS、那么 SYSCTL_getResetCuser()将按 预期返回0x0000000A。 但是、如果我通过 XRSn 或调试器进行热复位、它会继续报告 0x0000000A。 我可以看到 RESC 中的 NMIWDRSn 位仍然被置位。 清除它的唯一方法似乎是通过调试器或冷复位。

这是预期行为吗? 我在 TRM 中看到、RESC 中的这些位应在复位时清除、那么引导 ROM 是否以某种方式设置它们?

此致、

Mike

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

    我在   sysctl_getResetCuser()下面找到了 sysctl_clearResetCuser() API,它似乎起作用。 TRM (修订版 I)指示所有这些位都是"R/W1S"类型、但幸运的是、我猜 TRM 是错误的。

    没关系!

    -Mike