Memory layout

nRF5 SDK v10.0.0

nRF51 SDK v10.0.0
This information applies to the following SoftDevices: S110, S130, S310

When implementing a mechanism to perform a Device Firmware Update, you must be aware of where in the device memory the different firmware components are located.

The following figure displays the default memory layout of a 256 kB nRF51 device:

Page-1 Sheet.2 0x000000 0x000000 Sheet.3 SD size SD size Sheet.4 0x040000 0x040000 Sheet.5 SoftDevice SoftDevice Sheet.6 DFU bootloader DFU bootloader Sheet.7 Application Application Sheet.8 0x03C000 0x03C000 Sheet.9 Application area Application area Sheet.10 SoftDevice w/ MBR SoftDevice w/ MBR Dynamic connector.28 Dynamic connector.32 Dynamic connector.33 Sheet.16 0x001000 0x001000 Sheet.17 MBR MBR Sheet.18 App data App data Sheet.19 Free Free Sheet.21 App size App size
Memory layout (256 kB)

SoftDevices have different sizes. For example, the S110 SoftDevice v8.0.0 ends at 0x00018000. The following table shows the memory layout on a 256 kB nRF51 device with the S110 SoftDevice v8.0.0:

Memory range Usage
0x0003C000 - 0x00040000 DFU Bootloader and data
0x00018000 - 0x0003C000 Application code, free/swap, and application data
0x00001000 - 0x00018000 SoftDevice
0x00000000 - 0x00001000 Master Boot Record (MBR)

During system start-up, the Master Boot Record will determine the start address of the bootloader by checking the address that is defined at UICR.BOOTLOADERADDR. See Relocating the bootloader for information on how to change the start address of the bootloader.

The MBR will then initiate the bootloader. During initialization, the bootloader will either enter DFU mode to perform a firmware update or request the SoftDevice to start the application. The application is located right after the SoftDevice, so the SoftDevice is aware of its start address.

Firmware updates can be performed as dual-bank or single-bank updates. See Dual-bank and single-bank updates for more information and a detailed description of the update process.

Application data can be preserved during an update. See Preserving application data for instructions.


Please send us your feedback about the documentation! For technical questions, visit the Nordic Developer Zone .