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

No memory error for ble_dfu_buttonless_async_svci_init()

I'm trying to add buttonless dfu to my app using the example from SDK14.1. It seems no matter how I adjust the memory I'm getting a NRF_ERROR_NO_MEM from ble_dfu_buttonless_async_svci_init(). I have no idea where to even start debugging/fixing this issue. Any ideas?

Parents
  • Did you flash the secure bootlaoder to your nRF52832 board in addition to the application? ble_dfu_buttonless_async_svci_init() will call nrf_dfu_svci_vector_table_set() which checks if there is a bootloader present or not, i.e.

    uint32_t nrf_dfu_svci_vector_table_set(void)
    {
        uint32_t err_code;
    
        if (NRF_UICR->NRFFW[0] != 0xFFFFFFFF)
        {
            NRF_LOG_INFO("Setting vector table to bootloader: 0x%08x", NRF_UICR->NRFFW[0]);
            err_code = sd_softdevice_vector_table_base_set(NRF_UICR->NRFFW[0]);
            if (err_code != NRF_SUCCESS)
            {
                NRF_LOG_ERROR("Failed running sd_softdevice_vector_table_base_set");
                return err_code;
            }
    
            return NRF_SUCCESS;
        }
    
        NRF_LOG_ERROR("No bootloader was found");
        return NRF_ERROR_NO_MEM;
    }
    
Reply
  • Did you flash the secure bootlaoder to your nRF52832 board in addition to the application? ble_dfu_buttonless_async_svci_init() will call nrf_dfu_svci_vector_table_set() which checks if there is a bootloader present or not, i.e.

    uint32_t nrf_dfu_svci_vector_table_set(void)
    {
        uint32_t err_code;
    
        if (NRF_UICR->NRFFW[0] != 0xFFFFFFFF)
        {
            NRF_LOG_INFO("Setting vector table to bootloader: 0x%08x", NRF_UICR->NRFFW[0]);
            err_code = sd_softdevice_vector_table_base_set(NRF_UICR->NRFFW[0]);
            if (err_code != NRF_SUCCESS)
            {
                NRF_LOG_ERROR("Failed running sd_softdevice_vector_table_base_set");
                return err_code;
            }
    
            return NRF_SUCCESS;
        }
    
        NRF_LOG_ERROR("No bootloader was found");
        return NRF_ERROR_NO_MEM;
    }
    
Children
Related