Hello,
I am using sdk 12.2.2 and nrf52 customised development board. My challenge is as follows.
1) I am getting success in fds'_write function.
ret_code_t ret = fds_record_write(&record_desc, &record);
if (ret != FDS_SUCCESS)
{
if(ret == FDS_ERR_NO_SPACE_IN_FLASH)
{
NRF_LOG_INFO("full\r\n");
gc_running = 1;
ret = fds_gc();
while(gc_running);
NRF_LOG_INFO("gc\r\n");
}
sf_print_fds_stat();
fds_record_write(&record_desc, &record);\
2) When I am calling below function
static void sf_print_fds_stat()
{
fds_stat_t p_stat;
fds_stat(&p_stat);
if (p_stat.valid_records >= 10000)
{
delete_flag = 0;
fds_file_delete(DATA_INFO);
fds_file_delete(CURRENT_INFO);
while(record_flag == 0);
for(CurrentFileId=FILE_ID;CurrentFileId>=FDS_DATA;CurrentFileId--)
{
delete_flag = 0;
fds_file_delete(CurrentFileId);
while(record_flag == 0);
}
FILE_ID = FDS_DATA;
iTotalRecord = 1;
Save_Id = DATA_INFO;
Save_Key = STD_REC_KEY;
Setting_ID = CURRENT_INFO;
Setting_KEY = STD_REC_KEY;
iIndex = 0;
fds_gc();
}
NRF_LOG_INFO("open_records : %d\r\n", p_stat.open_records);
NRF_LOG_INFO("valid_records: %d\r\n", p_stat.valid_records);
NRF_LOG_INFO("dirty_records: %d\r\n", p_stat.dirty_records);
NRF_LOG_INFO("words_reserved: %d\r\n", p_stat.words_reserved);
NRF_LOG_INFO("words_used : %d\r\n", p_stat.words_used);
NRF_LOG_INFO("largest_contig : %d\r\n", p_stat.largest_contig);
NRF_LOG_INFO("freeable_words : %d\r\n", p_stat.freeable_words);
}
In p_stat.valid_records my valid records are not increasing after 4846. You can find the details in log file after line number 125938.
Please help me to solve this challenge.
I am also attaching log file for same.
Thanks,