Hello,
I am currently trying to get a project working that uses FDS, but I am having trouble getting the writing and updating working.
The peripherals in my project are FDS, FreeRTOS, the Soft Device, BLE, SPI, and TWI.
The issue I am facing lies within the NRF_SDH_DISPATCH_MODEL config in the sdk_config.h
// <o> NRF_SDH_DISPATCH_MODEL // <i> NRF_SDH_DISPATCH_MODEL_INTERRUPT: SoftDevice events are passed to the application from the interrupt context. // <i> NRF_SDH_DISPATCH_MODEL_APPSH: SoftDevice events are scheduled using @ref app_scheduler. // <i> NRF_SDH_DISPATCH_MODEL_POLLING: SoftDevice events are to be fetched manually. // <0=> NRF_SDH_DISPATCH_MODEL_INTERRUPT // <1=> NRF_SDH_DISPATCH_MODEL_APPSH // <2=> NRF_SDH_DISPATCH_MODEL_POLLING #ifndef NRF_SDH_DISPATCH_MODEL #define NRF_SDH_DISPATCH_MODEL 0 #endif
When NRF_SDH_DISPATCH_MODEL is set to 2 and the softdevice is enabled with nrf_sdh_enable_request(), the FDS writing/updating fails with the error of FDS_ERR_CRC_CHECK_FAILED.
For reference, this is the piece of the sdk_config refers to the meaning of this check failing
// <o> FDS_CRC_CHECK_ON_WRITE - Perform a CRC check on newly written records.
// <i> Perform a CRC check on newly written records.
// <i> This setting can be used to make sure that the record data was not altered while being written to flash.
// <1=> Enabled
// <0=> Disabled
#ifndef FDS_CRC_CHECK_ON_WRITE
#define FDS_CRC_CHECK_ON_WRITE 0
#endif
When NRF_SDH_DISPATCH_MODEL is set to 0, the FDS writing/updating works, but once FreeRTOS is included into the project, there is a compiling issue that I am unsure how to solve.
The compiling error is: multiple definition of `SWI2_EGU2_IRQHandler' at components/softdevice/common/nrf_sdh_freertos.c:62 and components/softdevice/common/nrf_sdh.c:366 .
What possible solutions would there be in order for me to be able to use FDS properly and still have all my peripherals included and working?
Either a solution that fixes the compiling issue or a solution that fixes FDS writing/updating?