I am developing an app for the 51822 with 16KB RAM, which is supposed to integrate the buttonless DFU.
I have attached the whole hex of the merged application+softdevice+bootloader, and also the linker script for my app.
Sadly, I have lost the linker script for the bootloader, but the address offsets can be seen in this extract from the nrf-intel-hex demo site:
Block starting at 0 (0x0), 1984 (0x7c0) bytes long <- softdevice Block starting at 4096 (0x1000), 106464 (0x19fe0) bytes long <- softdevice Block starting at 110592 (0x1b000), 27880 (0x6ce8) bytes long <- application Block starting at 229376 (0x38000), 30240 (0x7620) bytes long <- bootloader Block starting at 268439572 (0x10001014), 4 (0x4) bytes long <- bootloader address for the MBR
APP:INFO:starting SDH:DEBUG:sd_ble_enable: RAM start at 0x20001ff8 :INFO:------- nrf_dfu_flash_init------- :INFO:running nrf_dfu_settings_init :INFO:!!!!!!!!!!!!!!! Resetting bootloader settings !!!!!!!!!!! :INFO:Erasing old settings at: 0x200021e8 :INFO:Erasing: 0x200021e8, num: 1 :ERROR:Erase failed: 6 :ERROR:Erasing from flash memory failed. APP_ERROR:ERROR:Fatal
ret_val = fs_erase(&fs_dfu_config, p_dest, num_pages, (void*)callback);