When using fds module with FSTORAGE_NVME then receive INVALID MEMORY ACCESS error by the soft device (nrf52840 nrf SDK v17.1.0)

// <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 1
#endif

below attached the initialisation code for fds module 

when the below code hits at the start of program 
00> <info> app: Log initialized with RTT backend
00>
00> <info> app_timer: RTC: initialized.
00>
00> <debug> nrf_sdh: State request: 0x00000000
00>
00> <debug> nrf_sdh: Notify observer 0x0003F688 => ready
00>
00> <debug> nrf_sdh: State change: 0x00000000
00>
00> <debug> nrf_sdh: State change: 0x00000001
00>
00> <debug> nrf_sdh_ble: RAM starts at 0x20003F08
00>
00> <error> app: SOFTDEVICE: INVALID MEMORY ACCESS


error_code_t user_data_module_initialize(void)
{
    error_code_t error_code;
    uint32_t fds_error_code;

    memset(&f_record, 0x00, sizeof(f_record));
    memset(&config_data, 0x00, sizeof(user_data_t));

    fds_error_code = fds_register(user_data_event_handler);  // Register a event handler
    error_code = fds_error_check(fds_error_code);

    if(error_code != SUCCESS)
    {
      return error_code;
    }

    fds_error_code = fds_init();                            // Initialize fds
    error_code = fds_error_check(fds_error_code);

    if(error_code != SUCCESS)
    {
      return error_code;
    }

    while(!is_fds_initialized);

    return SUCCESS;
}

Parents Reply Children
No Data
Related