Env: nrf52, sdk15, ubuntu, SES
Hi
First steps on fstorage. As I just need to store and read an array of some bytes I have chosen fstorage
... NRF_FSTORAGE_DEF(nrf_fstorage_t fstorage) = { .evt_handler = fstorage_evt_handler, .start_addr = 0x3e000, .end_addr = 0x3ffff, }; ... printf("fstorage example started.\n"); nrf_fstorage_api_t * p_fs_api; printf("SoftDevice is present.\n"); printf("Initializing nrf_fstorage_sd implementation...\n"); p_fs_api = &nrf_fstorage_sd; uint32_t rc = nrf_fstorage_init(&fstorage, p_fs_api, NULL); APP_ERROR_CHECK(rc); print_flash_info(&fstorage); (void) nrf5_flash_end_addr_get(); m_data = 0xFFFFFFFF; const uint32_t m_data_read ; printf("Writing \"%x\" to flash.\n", m_data); rc = nrf_fstorage_write(&fstorage, 0x3e000, &m_data, sizeof(m_data), NULL); APP_ERROR_CHECK(rc); wait_for_flash_ready(&fstorage); printf("Done."); rc = nrf_fstorage_read(&fstorage, 0x3e000, &m_data_read,sizeof(m_data_read)); APP_ERROR_CHECK(rc); printf("Reading \"%x\" from flash.\n", m_data_read);
and I got this as output:
fstorage example started.
SoftDevice is present.
Initializing nrf_fstorage_sd implementation...
Writing "ffffffff" to flash.
Done.Reading "746f6e20" from flash.
Template example started.
It was written ffffffff but read 746f6e20
Another doubt: How Do we know if the flash is being written for the first time or not? I want to write it if it was not written yet.
Thanks a lot
Alex