After issuing a Reset in winIDEA, the primary core (Cortex-M0+) is stopped at the reset vector, while the secondary core(s) are IDLE.In other words, any eventual breakpoints, set at the beginning of the application (e.g. initialization part) will likely be skipped.
The secondary core(s) are then started by the application running on the primary core. After running the primary core application, the secondary core(s) are in RUN state, and not stopped at the reset vector.
Since winIDEA updates the core status and connects to the core asynchronously to this action, the secondary core(s) will already execute a part of the application before it can be stopped.
Configure winIDEA to make the best effort to stop the core as soon as it is released by the primary core application.
1. Open Hardware / CPU Options / Cores / <secondary core>.
2. In the Debug Entry / Debug entry type drop down select Catch.
In this way, the secondary core(s) will be stopped in the boot ROM, even before reaching the reset vector, and all breakpoints within the initialization code should be hit.
Sorry this article didn't answer your question, we'd love to hear how we can improve it.
Note: This form won't submit a case. We'll just use it to make this article better.