I'm working on porting a project plus bootloader from SDK 12.2 to 15.3. I have the application working fine, but the bootloader is having some issues. Most of the searches on the topic point to the lfclk settings, but these are working int he application. I'm using a barely modified version of the secure bootloader from the 15.3 sdk. it is custom hardware, but I've been developing on this for almost a year. Application and bootloader work perfectly in 12.2. Application is fully ported to 15.3, and working well.
Following the directions to merge the SD (332 v6.1.1) with the bootloader and settings before flashing.
Everything works correctly after power on. Application starts correctly, BLE and ANT both work. I can issue the command to enter the bootloader usign the GPREGRET, and the device reboots and enters the bootloader, recognizes that it should be there (DFU_START is set correctly). However, it then always hangs at sd_softdevice_enable. It never returns, and thus the bootloader never advertises.
lfclock settings are the same between the application and the bootloader. Using the 32k oscillator, accuracy 20ppm. (application works fine, but I did try the RC oscillator in the bootloader just to check - no change)
Application flash/ram settings:
MEMORY
{
FLASH (rx) : ORIGIN = 0x30000, LENGTH = 0x48000
RAM (rwx) : ORIGIN = 0x20004000, LENGTH = 0xbc00
}
Bootloader flash/ram settings:
flash: start(x78000), size(x6000)
ram: start(x200057B8), size (xA848)
The application is in Eclipse, the bootloader I'm using the Keil project. I'm able to debug the bootloader a little by attaching to the flashed target after flashing, using J-link.
Any thoughts would be very appreciated.