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

Buttonless DFU jumps to Application not Bootloader

Hi everybody,

we have implemented DFU with button and it works like a charm. Now we want to improve that and implemented the buttonless version too. Though, instead of starting the bootloader the application is restarted. There may be something wrong with addresses causing this behavior.

Here is the code called when triggering DFU from application:

static void boot_start(void) {
	ble_conn_params_stop();
	sd_power_gpregret_clr(POWER_GPREGRET_GPREGRET_Msk);
	sd_power_gpregret_set(BOOTLOADER_DFU_START);
	sd_softdevice_disable();
	interrupts_disable();
	sd_softdevice_vector_table_base_set(CODE_REGION_1_START);	
	bootloader_util_app_start(CODE_REGION_1_START);
}

Looking forward to your reply.

Best Philipp

Parents
  • @Hung Is this sufficient or do you need more details for specific steps?

    1. Flash devices with batch script in following order: Softdevices, bootloader, app & app valid settings 2) Restart devices (I can see the bootloader is started first due to LED briefly lighting up)
    2. Connecting to device with nRF Connect App
    3. Writting the 'magic word' to our 'DFU service' to trigger buttonless DFU
    4. Devices disconnects correctly
    5. Device restarts into the application (not going over bootloader as LED is not blinking briefly)
Reply
  • @Hung Is this sufficient or do you need more details for specific steps?

    1. Flash devices with batch script in following order: Softdevices, bootloader, app & app valid settings 2) Restart devices (I can see the bootloader is started first due to LED briefly lighting up)
    2. Connecting to device with nRF Connect App
    3. Writting the 'magic word' to our 'DFU service' to trigger buttonless DFU
    4. Devices disconnects correctly
    5. Device restarts into the application (not going over bootloader as LED is not blinking briefly)
Children
No Data
Related