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.

MSP432P401R: Should I add a forever loop after calling `ResetCtl_initiateHardReset()`?

Part Number: MSP432P401R

In the MSP432P4 SimpleLink SDK, the core_cm4.h implementation of NVIC_SystemReset() sets the SYSRESETREQ bit on SCB->AIRCR and afterwards has to `for(;;) __NOP();` since the request is not honored right away.

However I noticed no such logic in the MSP432 driverlib implementation of `ResetCtl_initiateHardReset()` — do the RSTCTL registers take effect right away?

For example:

void testReset(void) {
    ResetCtl_initiateHardReset();
    
    // could this ever happen? or is above line guaranteed to never return?
    GPIO_toggleOutputOnPin(GPIO_PORT_P1, GPIO_PIN0);
}

Or is it expected that I will do this in my own code?

void myReset(void) {
    ResetCtl_initiateHardReset();
    
    // do I need this?
    while (true) __nop();
}