Hi,
This is a question about how to reset whole system in CM4
The scenario is:
1. RT1165 boots from CM7 and run boot1 XIP,
2. boot1 will load boot2 into ITCM and CM7 will jump to execute boot2 in ITCM.
3. boot2 will release CM4 and CM4 will execute APP XIP
I added codes in APP (CM4) as below, but it will take a very long time to reset system.
SRC_SetGlobalSystemResetMode(SRC, kSRC_M4RequestReset, kSRC_ResetSystem);
NVIC_SystemReset(); // or SRC_AssertSliceSoftwareReset(SRC, kSRC_M4CoreSlice);
So my question is why it will take a long time ~45s to reset system in APP (CM4)?
If I put the same codes in boot2 (CM7 )or boot1 (CM7), it will reset system immediately.
SRC_SetGlobalSystemResetMode(SRC, kSRC_M7RequestReset, kSRC_ResetSystem);
NVIC_SystemReset(); // or SRC_AssertSliceSoftwareReset(SRC, kSRC_M7CoreSlice);
Is there any other way to reset whole system in CM4?
Thanks,
Kyle
Solved! Go to Solution.
Hello
Hope you are well
There are four situations, which will cause a reset event. They are:
• Power-on reset (POR)
• Global system reset request
• Software configuration
• Low-power mode transaction
My suggestion for resetting only the CM4 core is through software reset so the two methods applied(NVIC_SystemReset and AsserSliceSoftwareReset) are the correct way to reset the system.
Please check that all status flags or pending interrupts are cleared before reset to avoid this long time.
If you have more questions do not hesitate to ask me.
Best regards,
Omar
Hello
Hope you are well
There are four situations, which will cause a reset event. They are:
• Power-on reset (POR)
• Global system reset request
• Software configuration
• Low-power mode transaction
My suggestion for resetting only the CM4 core is through software reset so the two methods applied(NVIC_SystemReset and AsserSliceSoftwareReset) are the correct way to reset the system.
Please check that all status flags or pending interrupts are cleared before reset to avoid this long time.
If you have more questions do not hesitate to ask me.
Best regards,
Omar