This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

What are the Application Memory Layout settings in Keil for the NRF51 SDK10.0 with Bootloader/DFU

Previous to the bootloader & DFU, application settings were:

keil settings

IROM1: Start: 0x1C000 Size 0x24000 (Startup Checked) IRAM1: Start: 0x20002800 Size 0x5800

The DFU settings are:

image description

IROM1: Start: 0x3C000 Size 0x3C00 (Startup Checked)
IRAM1: Start: 0x20002C00 Size 0x5380
IRAM1: Start: 0x20007F80 Size 0x80 (no init)

So do the Application ROM/RAM settings change if a DFU is in use? If so, what do the Application's memory layout settings change to?

The S130 specification seems to suggest the size would change from 0x24000 to 0x20000 (0x3C000-0x1C000), but I can't find that recorded anywhere.

infocenter.nordicsemi.com/.../bledfu_memory.html

We're using the NRF51822_xxAC variant; with the S130 Softdevice (v1.0) and SDK 10.0.

Parents
  • Hi,

    The ROM start address shown in the first screenshot is typically only used with the xxAB variant which has 128KB of flash, but for a 256K part you would normally want to place it at a higher address to leave more space for the application and swap area ( memory layout).

    The last screenshot shows the default linker configuration used in the newer SDK examples, which will work with the device variant you have. But note that you need to change the UICR.BOOTLOADERADDR when reloacating an existing bootloader, see SDK documentation here.

Reply
  • Hi,

    The ROM start address shown in the first screenshot is typically only used with the xxAB variant which has 128KB of flash, but for a 256K part you would normally want to place it at a higher address to leave more space for the application and swap area ( memory layout).

    The last screenshot shows the default linker configuration used in the newer SDK examples, which will work with the device variant you have. But note that you need to change the UICR.BOOTLOADERADDR when reloacating an existing bootloader, see SDK documentation here.

Children
No Data
Related