Hi,
I’m having some troubles writing into the fash memory. I work on KeilµVision.
I initialise flash doing :
uint32_t page_size = NRF_FICR->CODEPAGESIZE;
uint32_t page_num = NRF_FICR->CODESIZE -3; (I need to save 12 000 Bytes -> 3 pages)
add_page_1 = (page_size * global.page_num);
add_page_2 = add_page_1 + page_size;
add_page_3 = add_page_2 + page_size;
and I try to write the flash with :
nrf_nvmc_page_erase(add_page_1);
nrf_nvmc_page_erase(add_page_2);
nrf_nvmc_page_erase(add_page_3);
nrf_nvmc_write_words(add_page_1, global.tab_memory, page_size);
nrf_nvmc_write_words(add_page_2, global.tab_memory + page_size, page_size);
nrf_nvmc_write_words(add_page_3, global.tab_memory + page_size + page_size, page_size);
global.tab_memory is the 1-dimension tabe i want to save.
The nvmc_page_erase works without any problems, but when I enter into the first nvmc_write_words function, I go to the “HardFault_Handler” loop in arm_startup_nrf52.s file.
I tried to do : nrf_nvmc_write_words(add_page_1, global.tab_memory, page_size/4); The bug disappear but I don’t save all my data.
What am I doing wrong? Does anybody have an idea to help me with that issue?
Thank’s