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

NRF_EVT_FLASH_OPERATION_SUCCESS fired only if Radio notifications enabled.

Hello, Before writing here I made some forum search and didn't find the answer. Previously I used radio notifications to sync ADC measurements with radio events. Now I need to disable radio notifications in the project and noticed that firmware become working unstable. The BLE connection breaks ocasionally and the flash write operations stuck. Softdevice used S110. I do not use pstorage but use own functions. Flash operation states are read from SD_EVT_IRQHandler (SWI2) ( NRF_EVT_FLASH_OPERATION_SUCCESS and NRF_EVT_FLASH_OPERATION_ERROR ). Noticed that no interrupt fired after flash operation (sd_flash_write()) . What could cause such behaviour? Why enabling Radio notifications make flashoperation working?

P.S. I read the errata for softdevice but do not see the link with my issue.

Parents
  • I ran into a similar problem a little while ago. It turned out that I was calling SOFTDEVICE_HANDLER_INIT(...) as part of the bluetooth stack initialization, even though it's required for all softdevice functionality, so when I tried to strip out bluetooth, I never got the interrupts forwarded to my application. If I recall correctly, this was inherited from a sample project.

    Any chance that's the case for you as well?

Reply
  • I ran into a similar problem a little while ago. It turned out that I was calling SOFTDEVICE_HANDLER_INIT(...) as part of the bluetooth stack initialization, even though it's required for all softdevice functionality, so when I tried to strip out bluetooth, I never got the interrupts forwarded to my application. If I recall correctly, this was inherited from a sample project.

    Any chance that's the case for you as well?

Children
  • In my code the timeout 1000ms was set for NRF_EVT_FLASH_OPERATION_xxx event after sd_flash_xxx function ran. And it expires. I put some debug to softdevice handler and non events fired till timeout expired.neither soc nor ble. And its strange, because ble operation seem to be ok, and ble events fired in the interrupt handler. Similar situation was previously when I configured powerfail functionality, and no flash events came if power failure occured.

Related