Master boot record and SoftDevice reset procedure

Upon system reset, the execution branches to the MBR Reset Handler as specified in the System Vector Table.

This section describes the MBR and SoftDevice reset behavior.

  • 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:
    • Sleep forever.