Beware that this post is related to an SDK in maintenance mode
More Info: Consider nRF Connect SDK for new designs
This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

SOFTDEVICE: ASSERTION FAILED at 0x14CBC after fds_record_write SDK 16.0.0 nrf52832 S132 v7.0.1

I'm getting a softdevice assertion at PC=0x14CBC after calling fds_record_write(NULL,&record), the record contains the following information:

fds_record_t const record =
{
.file_id = 0xF012,
.key = 0x7012,
.data.p_data = p_data,
.data.length_words = (size+3u)>>2u,

};

where p_data ponts to 0x20009cd4 and size = 8 bytes

the record is allocated in 0x2000ef68

The function return success, but before executing the next instruction I get the SOFTDEVICE: ASSERTION FAILED

Before running the code I'm always doing a mass erase on the flash so the record is not found on the filesystem prior to write 

How can I check what's happening?

I'm using the nrf52832 and the SDK 16.0.0 with the softdevice S132 v7.0.1

 

  • Hello,

    The assert indicates that an internal Softdevice task has overstayed its allocated "timeslot", which could be the flash write task. Could you please double check that the .data.length_words input value does indeed match the size of your p_data buffer? It may seem unlikely, but I can't really think of any other potential reasons for the SD assert to occur right after scheduling the flash write.  

    I would also be happy to debug this here if you could share a minimal version of your project.

    Best regards,

    Vidar

Related