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

Conflicts between nrf_dfu_flash.c and fds.c

Hi,

I need to use nrf_dfu_settings.c to detect external firmware in Bank 1 during application boot. I also need to use Falsh Data Storage to save application parameters.

SDK version 17.0.2.

When compiling, I noticed conflicts with duplicated symbols :

fds.c :

NRF_FSTORAGE_DEF(nrf_fstorage_t m_fs) =
{
    // The flash area boundaries are set in fds_init().
    .evt_handler = fs_event_handler,
};

nrf_dfu_settings.c :

NRF_FSTORAGE_DEF(nrf_fstorage_t m_fs) =
{
    .evt_handler = dfu_fstorage_evt_handler,
    .start_addr  = MBR_SIZE,
    .end_addr    = BOOTLOADER_SETTINGS_ADDRESS + BOOTLOADER_SETTINGS_PAGE_SIZE
};

Temporarily, I modified the SDK but it's not a good practice :D Maybe I missed something...

This is my configuration in sdk_config.h :

// <i> NRF_FSTORAGE_SD uses the nrf_fstorage_sd backend implementation using the SoftDevice API. Use this if you have a SoftDevice present.
// <i> NRF_FSTORAGE_NVMC uses the nrf_fstorage_nvmc implementation. Use this setting if you don't use the SoftDevice.
// <1=> NRF_FSTORAGE_NVMC 
// <2=> NRF_FSTORAGE_SD 

#ifndef FDS_BACKEND
#define FDS_BACKEND 2
#endif

Thanks for the help.

Regards,

Thibaud

Related