Hi, I have a problem when write data to flash on nRF52832. my code is like below:
err_code = nrf_drv_clock_init();
APP_ERROR_CHECK(err_code);
// Activate deep sleep mode.
SCB->SCR |= SCB_SCR_SLEEPDEEP_Msk;
fds_init();
ble_stack_init();
timers_init();
gap_params_init();
gatt_init();
services_init();
advertising_init();
conn_params_init();
peer_manager_init();
while(1)
{
DPRINTF(LOG_INFO, "test_task\r\n");
DPRINTF(LOG_INFO, "erase\r\n");
nrf_fstorage_erase(&m_fs,0x0007F000,4*1024,NULL);
delay_ms(1000);
DPRINTF(LOG_INFO, "read\r\n");
memcpy(&s_dfu_settings,m_dfu_settings_buffer,4*1024);
delay_ms(1000);
DPRINTF(LOG_INFO, "s_dfu_settings.bank_1.bank_code = %d \r\n",s_dfu_settings.bank_1.bank_code);
DPRINTF(LOG_INFO, "write\r\n");
s_dfu_settings.bank_1.bank_code = 3;
memcpy(s,&s_dfu_settings,4*1024);
delay_ms(1000);
nrf_fstorage_write(&m_fs,0x0007F000,s,4*1024,NULL);
delay_ms(1000);
DPRINTF(LOG_INFO, "read again\r\n");
memcpy(&s_dfu_settings,m_dfu_settings_buffer,4*1024);
delay_ms(1000);
DPRINTF(LOG_INFO, "s_dfu_settings.bank_1.bank_code = %d \r\n",s_dfu_settings.bank_1.bank_code);
}
The document says if SD present,use the fstorage_sd. But when run above, it will freeze at nrf_fstorage_erase, without any other fault. So whether my api use correct or not?