Hello, all
I would like to ask about flash memory write errors.
When using version 12.1.0 of sdk, I was able to r/w to flash memory normally by using the sd_flash_write function.
However, after raising the sdk version to 15.2.0, the sd_flash_write function returns a busy(17) error.
Below is the code I wrote. Which part is wrong?
uint32_t *addr;
uint32_t FlashID_Adr[4]= {0x7F000,0x7F200,0x7F400,0x7F600};
void flash_write_test_func(uint8_t RevId[])
{
uint32_t test2=0xFF;
uint32_t* test = &test2;
advertising_stop();
scan_stop();
nrf_delay_ms(500);
sd_flash_page_erase(127);
nrf_delay_ms(500);
for(uint8_t i=0;i<4;i++)
{
*test = RevId[i];
addr = (uint32_t *)(FlashID_Adr[i]);
FlashWriteErr = sd_flash_write(addr,test,1);
printf("FlashWriteErr = %d \r\n",FlashWriteErr);
nrf_delay_ms(50);
}
m_beacon_info[M_BEACON_INFO_MAJOR_MSB] = RevId[0];
m_beacon_info[M_BEACON_INFO_MAJOR_LSB] = RevId[1];
m_beacon_info[M_BEACON_INFO_MINOR_MSB] = RevId[2];
m_beacon_info[M_BEACON_INFO_MINOR_LSB] = RevId[3];
ble_app_advertising_init();
advertising_start();
scan_start();
}