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

FW issure :[CMC - e-Motor -52832 -fstorage module stuck in SVC call - sd_flash_page_erase()]

Hi Great QA team:

Our client has made their product in MP stage but found out that some of the ICs with FDS Bug (Base on SDK 15.2):

REF: FDS - data corruption https://devzone.nordicsemi.com/f/nordic-q-a/43758/fds---data-corruption

They updated SDK from 15.2 to 16, but error are not fix if we don't erase whole image.
it's seems like data corruption situation is still exist. Maybe the SDK updates only prevent error happening after device being reprogram?

Anyway, they try to detect if the FDS module be initialized properly or not.
And when the data corruption error happened in the FDS initialization, they'll use fstorage module to erase all data pages

But while they call nrf_erase_fstorage(), the program will stuck in SVC call - sd_flash_page_erase(),and it showed NO error message.

like pic below: 

   

And the parameters with the api nrf_erase_fstorage() are like this, it tried to erase the 3 pages from APP_DATA region (the default flash region for FDS module)

  

Attachment is the dump hex (with data corruption issue) , You could see the abnormal region from 0x75000 to 0x78000.

dump.hex 

If you have any idea, please let me know, thanks in advance!!

Wright

Parents
  • Hi,

     

    But while they call nrf_erase_fstorage(), the program will stuck in SVC call - sd_flash_page_erase(),and it showed NO error message.

     The CPU execution does not get stuck anywhere (except an HALT instruction is executed) or the system is in sleep mode. It looks to me that the debugger is halted in your second image while the execution was inside that function. Not sure where the program gets stuck, but if you could give me a compilable program to replicate your problem, then I will try to debug and figure out what the issue is.

Reply
  • Hi,

     

    But while they call nrf_erase_fstorage(), the program will stuck in SVC call - sd_flash_page_erase(),and it showed NO error message.

     The CPU execution does not get stuck anywhere (except an HALT instruction is executed) or the system is in sleep mode. It looks to me that the debugger is halted in your second image while the execution was inside that function. Not sure where the program gets stuck, but if you could give me a compilable program to replicate your problem, then I will try to debug and figure out what the issue is.

Children
Related