nRF52810 bootloader with DFU

I'm having problems creating a functional bootloader for my custom nRF52810 board. The bootloader is based on a Nordic example for the PCA10040e (nRF52DK running in 52810 mode).

My bootloader is compiled with armgcc, I'm using SDK v 17.1.0 and softdevice s112. 

When I run my bootloader on the nRF52DK board, it works perfectly. It advertises DfuTarg, I can DFU both my app and a blinky example, and everything is good. 

When I run the bootloader on my 52810 custom board, it advertises DfuTarg, it receives the application without problems and even places the application at the correct place in memory. But it does not execute the application, no matter what I do.

Same thing happens when I flash the bootloader and softdevice and then run DFU, or if I flash the bootloader, softdevice, application and bootloader settings at once.

When I just flash softdevice and application, it runs perfectly on my custom board.

I have a bootloader for another older product, also based on 52810, though compiled with Keil. This bootloader has been running in the field for years without problems. But it does exactly the same thing on my custom board, which leads ,me to think that it is a problem with my application that the bootloader does not like.

I have attached the memory settings of my linker script below. I have tried several versions though with no luck so far.

My application size is around 0x6000, ie. below the 0x7000 bytes limit.

Any suggestions will be much appreciated!

MEMORY
{
FLASH (rx) : ORIGIN = 0x19000, LENGTH = 0xF000
RAM (rwx) : ORIGIN = 0x20001ae0, LENGTH = 0x4520
}

MEMORY
{
FLASH (rx) : ORIGIN = 0x19000, LENGTH = 0xF000
RAM (rwx) : ORIGIN = 0x200023b8, LENGTH = 0x3c48
}

Parents Reply Children
No Data
Related