I am working on M4 microcontroller. I would like to perform soft reset of the system. so I have used NVIC_SystemReset function as shown below
__STATIC_INLINE void __NVIC_SystemReset(void)
__DSB(); /* Ensure all outstanding memory accesses included
buffered write are completed before reset */
SCB->AIRCR = (uint32_t)((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) |
(SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) |
SCB_AIRCR_SYSRESETREQ_Msk ); /* Keep priority group unchanged */
__DSB(); /* Ensure completion of memory access */
for(;;) /* wait until reset */
When I do this, the system gets restarts only when I do power-on reset or Reset in keil debug window. Is this correct operation?
I need the processor gets restart without doing power-on reset or Resetting from keil debug window. please let me know if anyone has solution
thanks in advance
Did you try it w/o debugger attached?
And did you check the symbolic constants are correct?
Edit: I just wrote 0x5fa0001 via debugger and my CM4 did reset.
View all questions in Cortex-M / M-Profile forum