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

nRF5144 Boot Code Not Executing

Hi, thank you for looking at my post.

I am using Keil V5.25.2.0 with a nRF51422. I am using the soft device "s310_nrf51422_1.0.0-2.alpha_softdevice." My memory regions for the boot and app are shown below. Memory regions for the soft devices are defined. The first image shows the boot loader mem regions, and the second shows the main application. 

The optimization of the compiler is at 0, so no code should be skipped.

Our application is working fine and has been in use for a while. The boot code seems to work fine for USB updates and for jumping to the main app.

I am working on OTA updates, to update the radio code itself. 

I have a programmed, production ready radio. When I program the boot code, the module still works fine. But when I program and stay in debugging mode, and I set a break point at the first line in the boot loader code with a debugger, it never reaches it. It is like the soft device is jumping the program counter to the application memory without the boot loaders help. The strange this, is that I can make some modifications in the boot they are noticed. But if I put a while(1){}; at the first line of the main loop in the boot loader, it will not matter. I still jump to the app, and never hit break points. When looking at the disassembly window, it is clear I did make it to the main application. 

I do not understand how or why this could be happening. 

Does anyone have any clues? Thanks for your support,

DB

Related