Hello, i'm trying to store data in the flash, i manage to write a correct data in the flash but when i try to read it the address is erased.
I use this function to write in the flash (softdevice is enabled) :
void flash_write(uint32_t * addr,uint32_t word) { uint32_t err_code; uint32_t returned_value = flash_word_read(addr); if(returned_value == 0xFFFFFFFF) { do{ err_code = sd_flash_write(addr, &word, 1); } while (err_code == NRF_ERROR_BUSY || *addr != word); APP_ERROR_CHECK(err_code); NRF_LOG_INFO("memory written \r\n"); } flash_word_read(addr); }
the flash_word_read() is a simple address read (return *address).
At the second flash read the value stored is the correct one but when i try to read it again it prints something completely different.
same thing happen in the debug mode on keil with the memory window.
I read the address like this :
NRF_LOG_INFO("addr1 %x \r\n",(uint32_t)*addr);
I work on SDK 13.1.
Do you have any idea where it could come from ?