ble_dfu_buttonless_async_svci_init return error 0x04 (no memory)

Hello, I'm using nrf52833, pca10100.

My project is based on 'ble_app_uart', and I added buttonless DFU project.

this is ble_dfu_buttonless_async_svci_init() function, and error return nrf_dfu_svci_vector_table_set() function.

uint32_t ble_dfu_buttonless_async_svci_init(void)
{
    uint32_t ret_val;

    ret_val = nrf_dfu_svci_vector_table_set();
    VERIFY_SUCCESS(ret_val);

    ret_val = nrf_dfu_set_adv_name_init();
    VERIFY_SUCCESS(ret_val);

    ret_val = nrf_dfu_svci_vector_table_unset();

    return ret_val;
}

nrf_dfu_svci_vector_table_set() fucntion is this.

uint32_t nrf_dfu_svci_vector_table_set(void)
{
    uint32_t err_code;
    uint32_t bootloader_addr = BOOTLOADER_ADDRESS;

    NRF_LOG_INFO("%x", bootloader_addr);

    if (bootloader_addr != 0xFFFFFFFF)
    {
        NRF_LOG_INFO("Setting vector table to bootloader: 0x%08x", bootloader_addr);
        err_code = sd_softdevice_vector_table_base_set(bootloader_addr);
        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;
}

#define BOOTLOADER_ADDRESS      ((*(uint32_t *)MBR_BOOTLOADER_ADDR) == 0xFFFFFFFF ? *MBR_UICR_BOOTLOADER_ADDR : *(uint32_t *)MBR_BOOTLOADER_ADDR) /**< The currently configured start address of the bootloader. If 0xFFFFFFFF, no bootloader start address is configured. */

Why my BOOTLOADER_ADDRESS defined 0xFFFFFFFF?

What is this mean? and how can I fix this issue?

This is define value

BR,

lyrics

Related