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: Clearing the RESC register?

Part Number: TMS320F28377D

Hello,

I'm working on determining the last cause of the CPU1 reset, currently by using SysCtl_getResetCause(). In particular I want to determine if previous reset was due to the WDTRS, NMIWDTRS, or XRSn (driven low from external circuit). I see that when each of these conditions is forced, I see the appropriate result from SysCtl_getResetCause(). However, once they occur, the bits are still set after subsequent resets.

For example, if I fire an NMIWDTRS via NMIFLGFRC, then SysCtl_getResetCause() returns 0x0000000A, as expected. However, if I then warm reset via XRSn or debugger, it continues to report 0x0000000A. I can see that the NMIWDRSn bit in RESC is still set. The only way to clear it seems to be via the debugger or a cold reset.

Is this intended behavior? I see in the TRM that these bits in RESC should clear on reset, so is the boot ROM setting them somehow?

Regards,

Mike

  • I found the SysCtl_clearResetCause() API right below SysCtl_getResetCause(), that seems to work. The TRM (rev I) indicates that all of these bits are type "R/W1S", but I guess the TRM is wrong, fortunately.

    Nevermind!

    -Mike