Upon system reset, execution branches to the MBR Reset Handler as specified in the System Vector Table.
The MBR and SoftDevice reset behavior is as follows:
- If an in-system bootloader update procedure is in progress:
- The in-system update procedure continues its execution.
- System resets.
- Else if SD_MBR_COMMAND_VECTOR_TABLE_BASE_SET has been called previously:
- Forward interrupts to the address specified in the sd_mbr_command_vector_table_base_set_t parameter of the SD_MBR_COMMAND_VECTOR_TABLE_BASE_SET command.
- Run from Reset Handler (defined in the vector table which is passed as command parameter).
- Else if a bootloader is present:
- Forward interrupts to the bootloader.
- Run Bootloader Reset Handler (defined in bootloader Vector Table at BOOTLOADERADDR).
- Else if a SoftDevice is present:
- Forward interrupts to the SoftDevice.
- Execute the SoftDevice Reset Handler (defined in SoftDevice Vector Table at 0x00001000).
- In this case, APP_CODE_BASE is hardcoded inside the SoftDevice.
- The SoftDevice invokes the Application Reset Handler (as specified in the Application Vector Table at
APP_CODE_BASE).
- Else system startup error: