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

How to start DFU bootloader from application without using BLE DFU Service.

I have make over your bootloader example to create my own without BLE support in bootloader (new programs are send in application instead of in dfu bootloader). Bootloader works fine the only problem that I still can't handle is how to start bootloader from application, CPU still gets into fault. Device is not in connection and all flash operations are finished. My code starting bootloader looks like that:

void boot_start()
{
	uint32_t err_code;

#include "ble_conn_params.h"
	ble_conn_params_stop();

	advertising_stop();

	err_code = sd_power_gpregret_set(10);
  	APP_ERROR_CHECK(err_code);

	err_code = sd_softdevice_disable();
	APP_ERROR_CHECK(err_code);

	err_code = sd_softdevice_vector_table_base_set(NRF_UICR->BOOTLOADERADDR);
	APP_ERROR_CHECK(err_code);


	NVIC_ClearPendingIRQ(SWI2_IRQn);
	interrupts_disable();
	bootloader_util_app_start(NRF_UICR->BOOTLOADERADDR);
}
Related