Im trying to clear NVS, it gets cleared but then causes device to reboot.
code in question is :
void clearNVS() {
int err;
const size_t nvs_partition_size = PM_NVS_STORAGE_SIZE;
const off_t nvs_partition_offset = PM_NVS_STORAGE_ADDRESS;
if (!device_is_ready(fs.flash_device)) {
printk("Flash device %s is not ready\n", fs.flash_device->name);
return;
}
printk("Erasing NVS flash memory (0x%08lx, size: %u bytes)...\n",
(unsigned long)nvs_partition_offset, (unsigned int)nvs_partition_size);
k_sleep(K_MSEC(500));
err = nvs_clear(&fs);
if (err < 0) {
printk("Failed to erase NVS flash memory: %d\n", err);
if (conn) {
char response_buffer[negotiated_MTU];
snprintf(response_buffer, sizeof(response_buffer),
"Failed to erase NVS flash memory: %d\n", err);
send_FS_resp(response_buffer);
}
return;
}
k_sleep(K_MSEC(500));
printk("NVS flash memory erased successfully.\n");
k_sleep(K_MSEC(500));
if (conn) {
send_FS_resp("NVS flash memory erased successfully.\n");
}
k_sleep(K_MSEC(500));
err = nvs_mount(&fs);
if (err < 0) {
printk("Failed to reinitialize NVS: %d\n", err);
if (conn) {
char response_buffer[negotiated_MTU];
snprintf(response_buffer, sizeof(response_buffer),
"Failed to reinitialize NVS: %d\n", err);
send_FS_resp(response_buffer);
}
} else {
printk("NVS reinitialized successfully after erase.\n");
}
}
output halts after
Erasing NVS flash memory (0x000f8000, size: 24576 bytes)...
Regards,