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

sd_flash_write() cause NRF_FAULT_ID_SD_ASSERT

Hi,

I have run into an issue with nrf52840 on pca10056 v1.0.0 board. The softdevice is SD v6.1.0. It seems to be a hardfault which cause a reset when I tried to call sd_flash_write(), sd_flash_page_erase() is OK though. The address and buffer is 4 byte aligned, the number of word is 1024.

Following the parameter of the callback error that Softdevice invoked

  • id = 1 (NRF_FAULT_ID_SD_ASSERT)
  • pc= 0x00014A3A
  • info = 0x00

if SD is not enable, there will be no problems at all. Strange things is the very same code run without issue on nrf52832 S132 v6.1.0.

I am appreciated if anyone could provide a hint why SD assert at that pc location.

Thanks in advance

Parents
  • Hi,

    I see this on my side as well. The assert indicate that the SoftDevice spends too much time writing to flash. I am not sure why though, as the API documentation states that the maximum number of words is 1024 (number of words in one flash page). I will look more into it and hopefully have more info on Monday.

  • Thanks, I am glad that you could reproduce it. Was thinking it is my code doing incorrectly. Please take your time, I divide it into 2 writes ( half page each) as walkaround, seems to be OK for now.

    github.com/.../flash_nrf5x.c

Reply Children