You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Dec 20, 2023. It is now read-only.
NRF5Config::HandleFDSEvent() handles asynchronous events from the nRF5 SDK's Flash Data Storage layer. Depending on the SDK options chosen, this method can be called in ether Soft Device interrupt context or FreeRTOS task context. Conditional compilation logic in the code determines which context is used, and alters the code to use the appropriate FreeRTOS APIs when signaling other tasks (i.e. ...FromISR() or not).
However, the logic NRF5Config::HandleFDSEvent() is slightly wrong. In particular, the method will only be called in interrupt context if the Soft Device is enabled AND the NRF_SDH_DISPATCH_MODEL is NRF_SDH_DISPATCH_MODEL_INTERRUPT. Thus the conditional logic in NRF5Config::HandleFDSEvent() should look something like this:
// Signal the Weave thread that the operation has completed.
#if defined(SOFTDEVICE_PRESENT) && SOFTDEVICE_PRESENT && NRF_SDH_DISPATCH_MODEL == NRF_SDH_DISPATCH_MODEL_INTERRUPT
...
xSemaphoreGiveFromISR(sAsyncOpCompletionSem, &yieldRequired);
...
#else
xSemaphoreGive(sAsyncOpCompletionSem);
#endif
The text was updated successfully, but these errors were encountered:
NRF5Config::HandleFDSEvent() handles asynchronous events from the nRF5 SDK's Flash Data Storage layer. Depending on the SDK options chosen, this method can be called in ether Soft Device interrupt context or FreeRTOS task context. Conditional compilation logic in the code determines which context is used, and alters the code to use the appropriate FreeRTOS APIs when signaling other tasks (i.e. ...FromISR() or not).
However, the logic NRF5Config::HandleFDSEvent() is slightly wrong. In particular, the method will only be called in interrupt context if the Soft Device is enabled AND the NRF_SDH_DISPATCH_MODEL is NRF_SDH_DISPATCH_MODEL_INTERRUPT. Thus the conditional logic in NRF5Config::HandleFDSEvent() should look something like this:
The text was updated successfully, but these errors were encountered: