Since upgrading from SDK 15.3.0 and soft device S140 6.1.1 to SDK 17.0.0 and S140 7.0.1, I can't get my custom bootloader to work. I adjusted the linker macros to what I think are the right values. But when I run the application with the bootloader installed, the program gets a segmentation fault when it tries to call the bootloader entry point at startup (nrf_mesh_dfu.c:944). When I run the bootloader without the application, it advertises itself with the correct name. But as soon as I try to upload an image I get DFU FAILED status in the observer callback.
I tried building the secure bootloader ble example on my 52840 development kit and saw the same behaviour: the name was advertised but when I started a DFU from nRF Connect the connection was broken.
These are the linker placement macros for the application:
linker_section_placement_macros="FLASH_PH_START=0x0;FLASH_PH_SIZE=0xf8000;RAM_PH_START=0x20000000;RAM_PH_SIZE=0x3f000;FLASH_START=0x27000;FLASH_SIZE=0x60000;RAM_START=0x20002e00;RAM_SIZE=0x30000"
linker_section_placements_segments="FLASH RX 0x0 0xf8000;RAM RWX 0x20000000 0x3f000"
And these are the macros for the bootloader:
linker_section_placement_macros="FLASH_PH_START=0x0;FLASH_PH_SIZE=0x100000;RAM_PH_START=0x20000000;RAM_PH_SIZE=0x40000;FLASH_START=0x90000;FLASH_SIZE=0x6e000;RAM_START=0x20005968;RAM_SIZE=0x3a698"
linker_section_placements_segments="FLASH RX 0x0 0x100000;RAM RWX 0x20000000 0x40000;mbr_params_page RX 0x000FE000 0x1000;bootloader_settings_page RX 0x000FF000 0x1000;uicr_bootloader_start_address RX 0x10001014 0x4;uicr_mbr_params_page RX 0x10001018 0x4"