No matter flash is full or not, calling fds_file_delete() and fds_gc() does not free storage. We checked the content in flash are not 0xFF. Moreover, after this issue, always fail to create files or records.
No matter flash is full or not, calling fds_file_delete() and fds_gc() does not free storage. We checked the content in flash are not 0xFF. Moreover, after this issue, always fail to create files or records.
Could you explain a bit more what you are doing? Are you using one of the examples from the SDK? Do you get the FDS_EVT_DEL_FILE event after called fds_file_delete()? Are you using Peer Manager?
Hi Petter, Ans 1: What we are doing is to implement a database, based on FDS. Therefore, files/records need to be deleted, if no more space available. However, gc cannot free FLASH space, even if file deletion completes successfully.
Ans 2: We use SDK12.3
Ans 3: Yes, we got it.
Ans 4: Yes, it is initiated by original SDK. We didn't modify it. But we don't activate Peer MGR functions.
When I test fds_gc() with SDK 12.3 here, it works:
S132 v.3.1.0
Read memory: fds_read_mem.bat
To test if garbage collection works, you can do the following:
1.1) Remove garbage collection from line 1192 in main.c (err_code = fds_fc()
).
1.2) Compile and run the code.
1.3) Read the memory.
2.1) Insert garbage collection at line 1192 in main.c.
2.2) Compile and run the code.
2.3) Read the memory.
3) Compare the readout of the memory for the two cases.
We already fixed the problem by searching discussions on net. TKS Kristin anyway. This issue can be closed.
Louis, what was the solution? I'm having a similar issue