Using SDK 13 FDS, I store 6468 byte, that is 1617 words, including FDS header. Of course this size is total. In detail in byte size, this size consists of
(12(header)+ 576) * 7
(12 + 774) * 1
(12 + 691) * 2
(12 + 144) * 1
I set FDS_VIRTUAL_PAGE_SIZE to 1024 and FDS_VIRTUAL_PAGES to 3.
Then, first write with fds_record_write() is success.
However, second write, that is update, with fds_record_update() fails with FDS_ERR_NO_SPACE_IN_FLASH.
I call fds_gc everytime after fds_record_write () or fds_record_update() call.
I assume that fds_record_update() marks the current record as deleted one and write data to new record area, then calling fds_gc() makes the record area marked as deleted available again.
But when I print out debug log in page_has_space() in fds.c, write_offset of page is only incremented, and FDS doesn't seems to reuse deleted page.
Is my thought correct? If so, this phenomenon is bug? If not, how should I update my data?
Thank you.