Hello,
nRFSDK5 v16.0, device nRF52840, Softdevice v7.0.1
I am trying to write some data periodically onto device flash memory using FDS Lib, occasionally I come across following error message. Can anybody help?
00> <error> app: ERROR 34310 [Unknown error code] at E:\COBRA-Hotshot_Firing_System\Hotshot_Firmware\ignite_hw_v1.6\Hotshot_firmware\Operations\fds_driver.c:578 00> PC at: 0x000412CB 00> <error> app: End of error report
Here is my code function to write data:
#define LOG_FILE_ID (0xE010)
#define LOG_REC_KEY (0x6010)
// structure to save log_table
typedef struct{
char log_table[LOG_DATA_SIZE];
} log_value_t;
static log_value_t log_dummy_cfg =
{
.log_table = "",
};
static fds_record_t const log_dummy_record =
{
.file_id = LOG_FILE_ID,
.key = LOG_REC_KEY,
.data.p_data = &log_dummy_cfg,
.data.length_words = LOG_DATA_SIZE/4, //(sizeof(&log_dummy_cfg) + 3) / sizeof(uint32_t),
//.data.p_data = sizeof(&rgb_dummy_cfg),
};
void record_update_log(char log_data[], int len){
ret_code_t rc;
fds_record_desc_t desc = {0};
fds_find_token_t tok = {0};
NRF_LOG_INFO("Updating LOG Record...");
// copy data into log_dummy_cfg
//int len = sizeof(log_dummy_cfg.log_table);
int i=0;
for (i=0; i<len; i++){
log_dummy_cfg.log_table[i] = log_data[i];
}
for (i=len; i<log_dummy_record.data.length_words*4; i++){
log_dummy_cfg.log_table[i] = 0;
}
// NRF_LOG_INFO("Copied/dummy log");
// NRF_LOG_HEXDUMP_INFO(log_dummy_cfg.log_table, sizeof(log_dummy_cfg.log_table));
// NRF_LOG_INFO("Copied/dummy log len: %d", len); //strlen(scr_dummy_cfg.script))
wait_for_fds_ready();
rc = fds_record_find(LOG_FILE_ID, LOG_REC_KEY, &desc, &tok);
if (rc == FDS_SUCCESS){
// LOG record found
NRF_LOG_INFO("LOG record found");
rc = fds_record_update(&desc, &log_dummy_record);
APP_ERROR_CHECK(rc);
if (rc == FDS_SUCCESS){
NRF_LOG_INFO("LOG record updated: %X", log_dummy_cfg.log_table);
NRF_LOG_INFO("LOG record id: %d", desc.record_id);
}
}
else{
// System config not found; write a new one.
NRF_LOG_INFO("Creating new LOG file...");
rc = fds_record_write(&desc, &log_dummy_record);
APP_ERROR_CHECK(rc);
}
}