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;
    }
    
  • Hello,

    I'm using SDK 15.0.0, S132.

    I hade the same error reported here.

    I've followed Bjorn comment and I flashed with nRFgo Studio:

    1. Softdevice: s132_nrf52_6.0.0_softdevice.hex.

    2. Bootloader: secure_bootloader_ble_s132_pca10040.hex.

    3. Application: ble_app_buttonless_dfu_pca10040_s132.hex.

    I powered down and up the PCA10040 board, but the device is recognized as:

    "DfuTarg", "Secure DFU Service" UUID 0xFE59 , "DFU Packet" UUID 8EC90002..., "DFU Control Point" UUID 8EC90001... (which was the latest example flashed in board) .

    Is this OK?

    Its written here that the char should be "Buttonless DFU with bonds" UUID 0x8EC90004...?

    Thanks in advance for your reply.

  • If  you have not generated the bootloader settings page with nrfutil and flashed it to the nRF52832, then the device will stay remain in the Bootloader as it does not know that there is a valid application.  See Appendix 1 in the Getting Started with Nordics Secure DFU Bootloader blog post. 

    Best regards

    Bjørn 

Reply Children
Related