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

flash operation error

I usually see a system event "NRF_EVT_FLASH_OPERATION_ERROR" when updating my device firmware. SDK says that this event indicates that the ongoing flash operation has timed out with an error. What I have done would cause this error? How do I handle this event? I don't think restart DFU is a good choice. Thanks.

Parents
  • Hi

    Thank you for the update.

    You might get a timeout if you are performing a flash erase operation during DFU operation, and the connection interval is very short, 25ms or shorter. I think the default bootloader only performs a flash write, which is not that time consuming and should not time out in this case. Have you modified the default bootloader or are you by any chance performing a flash erase operation during the DFU.

    Are you able to update to the more recent softdevice and SDK? I think the pstorage was first introduced in S110 6.0.0. A lot of improvements have been implemented since then. I know that SDK 8.0.0 introduces a way to handle the NRF_EVT_FLASH_OPERATION_ERROR by retrying a flash operation number of times. Perhaps you could mimic that functionality from SDK 8.0.0 into your code.

Reply
  • Hi

    Thank you for the update.

    You might get a timeout if you are performing a flash erase operation during DFU operation, and the connection interval is very short, 25ms or shorter. I think the default bootloader only performs a flash write, which is not that time consuming and should not time out in this case. Have you modified the default bootloader or are you by any chance performing a flash erase operation during the DFU.

    Are you able to update to the more recent softdevice and SDK? I think the pstorage was first introduced in S110 6.0.0. A lot of improvements have been implemented since then. I know that SDK 8.0.0 introduces a way to handle the NRF_EVT_FLASH_OPERATION_ERROR by retrying a flash operation number of times. Perhaps you could mimic that functionality from SDK 8.0.0 into your code.

Children
Related