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

SDK-8.1.0 bootloader does not flash

When I open the project dfu_dual_bank_ble_s110_pca10028 and configure it for nRF51822, it compiles fine, but flashing does not succeed. I get errors:

No Algorithm found for: 10001014H - 10001017H
Partial Erase Done (areas with no algorithms skipped!)
No Algorithm found for: 10001014H - 10001017H
Partial Programming Done (areas with no algorithms skipped!)

And the bootloader does not start. What could be wrong there? At IROM and IRAM fields I put the following:

IROM1: 0x3C000 0x3C00 (Startup)
IRAM1: 0x20002C00 0x5380
IRAM2: 0x20007F80 0x80  (No Init)
Parents
  • Start address of the bootloader must be set in the UICR.BOOTLOADERADDR register in order for the bootloader to be executed on startup (Master Boot Record (MBR) and SoftDevice reset behavior). However, the Jlink driver is not able to write to this register directly, hence the "no alghoritm" warning. Instead you should use nrjprog to program the bootlaoder for this register to be set as well, see programming the DFU bootloader here.

    Note, a limitation was introduced in the newer releases of nrjprog making it not possible to call both --reset and --program from the same instance. So you need to remove the --reset argument from the command line arguments, also mentioned in this thread.

  • Thanks, this really helped :) Now I just need to solve the issue that has kept me busy past five days: after OTA DFU:ing my application via bootloader into an "empty" target device, the procedure cannot be re-done. This is because when application runs thru reset_prepare() and bootloader is started, the bootloader simply jams into its event loop, never reacting any more to anything. I have debugged it really busy-loops at the bootloader.c/static void wait_for_events(void) -function...

Reply
  • Thanks, this really helped :) Now I just need to solve the issue that has kept me busy past five days: after OTA DFU:ing my application via bootloader into an "empty" target device, the procedure cannot be re-done. This is because when application runs thru reset_prepare() and bootloader is started, the bootloader simply jams into its event loop, never reacting any more to anything. I have debugged it really busy-loops at the bootloader.c/static void wait_for_events(void) -function...

Children
No Data
Related