The jump from application to DFU is not working during buttonless DFU. NRFToolbox displays GATT ERROR. I use SDK 7.1.0 with SD V7.1.0.
In dfu_app_handler.c, I made the following changes and the jump worked, also it took around 26 seconds for the jump to happen. Would it take so much time or am I doing it wrong??
static void bootloader_start(void)
{
m_reset_prepare();
uint32_t err_code = sd_power_gpregret_set(BOOTLOADER_DFU_START);
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);
if (m_dm_handle_valid) {
dfu_app_set_peer_data();
}
NVIC_ClearPendingIRQ(SWI2_IRQn);
interrupts_disable();
sd_nvic_SystemReset(); //Provided a system reset instead of "bootloader_util_app_start"
// bootloader_util_app_start(NRF_UICR->BOOTLOADERADDR);
}
Why didn't it work as such? What should I do to make it work as such?? Would this method result in faster jump from app to DFU?