OTA DFU to custom memory address

Hi,

I compiled an application that should start at address 0x40000. However, executing an OTA DFU always places the application at 0x26000, right after the softdevice.

I'm using nrfutil to generate the DFU package and nRF Connect app on iOS to send the package to my device.

I'm using nRF SDK 15.3.0, nrf52840.

If I flash the program with nrfjprog, the application does go to 0x40000.

My question is, is it possible to put my application at a custom address using OTA DFU?

Parents
  • Hi,

    This is will not be possible with the original SDK bootloader, unfortunately. There is nothing in the DFU protocol which specify the app start address. It's always assumed to be right above the Softdevice.

    If I flash the program with nrfjprog, the application does go to 0x40000.

    Yes, the intelhex format includes address records telling nrjprog where store the data. But the Softdevice will still expect the application to start at 0x26000 unless the bootloader has configured the softdevice to start the app at a non-default address.

Reply
  • Hi,

    This is will not be possible with the original SDK bootloader, unfortunately. There is nothing in the DFU protocol which specify the app start address. It's always assumed to be right above the Softdevice.

    If I flash the program with nrfjprog, the application does go to 0x40000.

    Yes, the intelhex format includes address records telling nrjprog where store the data. But the Softdevice will still expect the application to start at 0x26000 unless the bootloader has configured the softdevice to start the app at a non-default address.

Children
Related