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

nRF5 DFU over-the-air bootloader prevents wired flashing

When we use nRF5 bootloader provided with SDK the first application flashing must always be done using DFU over-the-air. Only after that it is possible to re-flash application with a wire, using e.g. segger j-link. This applies both, nRF51 and nRF52, and at least SDK8 and SDK12.

This is a problem since when we flash our customer's devices, it is too slow to use DFU over-the-air. We want to do first flashing quickly with the wire.

I guess the bootloader checks existence of an application, and if it's not flashed using DFU over-the-air, it does not start application at all. Even if it is there, but flashed with a wire. How to go around this check, and where it is placed in the bootloader code?

Parents Reply
  • Sounds complicated. In the bootloader code, is it just possible to check a byte at the starting address of the application, and jump there if it is anything but 0xff (erased flash)? It doesn't matter if there's an incompletely flashed application, since in most of our cases we have a button that still enables getting back into the bootloader, if the application crashes (there's a reset chip that activates with a long press of a button).

    If so, what are the files/lines in SDK8 and SDK12 bootloaders to do that trick?

Children
No Data
Related