Architecture of the DFU bootloader

nRF5 SDK v11.0.0

nRF5 SDK v11.0.0
This information applies to the following SoftDevices: S130, S132, S332

Unless triggered to start in bootloader mode, the DFU bootloader will check if a valid application is present on the device. If there is an application, the bootloader will run it. Otherwise, it will start the DFU procedure, receive DFU packets, and replace the existing firmware.

The following figure displays the blocks in the DFU bootloader and their tasks when performing an application update:

Page-1 Process Bootloader main.c Bootloader main.c Process.2 bootloader.c bootloader.c Process.3 DFU transport layer DFU transportlayer Process.6 dfu_single_bank.c dfu_dual_bank.c dfu_single_bank.c dfu_dual_bank.c Dynamic connector.24 Bootloader calls Bootloader calls Border small Sheet.17 Sheet.18 DFU bootloader DFU bootloader Process.5 bootloader_util_arm.c bootloader_util_arm.c Process.12 Reset handler Reset handler Border small.13 Sheet.19 Sheet.20 Application Application Process.21 Application main.c Application main.c Dynamic connector.14 Start DFU procedure Start DFU procedure Dynamic connector.15 Start new application Start new application Dynamic connector.22 Start application, if present Start application, if present Dynamic connector.4 DFU packet DFU packet Dynamic connector.7 Boot application Boot application Dynamic connector.8
Architectural overview of the DFU bootloader