Function for starting another application (and aborting the current one).
This function uses the provided address to swap the stack pointer and then load the address of the reset handler to be executed. It checks the current system mode (thread/handler). If in thread mode, it resets into the other application. If in handler mode, isr_abort is executed to ensure that handler mode is left correctly. It then jumps into the reset handler of the other application.
- Note
- This function will never return, but issues a reset into the provided application.
- Parameters
-
[in] | start_addr | Start address of the other application. This address must point to the initial stack pointer of the application. |