This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Do sd_flash_write or sd_flash_page_erase verify the result of the flash operation?

Hi,

do sd_flash_page_erase or sd_flash_write provide any guarantees that the command has executed successfully or should I do a manual check to verify if the page was really erased or the data was written correctly?

Thanks, Marius

Parents
  • Hi,

    There is no automatic verification of flash content (sd_flash_page_erase /sd_flash_write will not read back the data), so this is something you can add if you want (though I have not heard of this being a problem, and we don't do that ourselves).

  • Thanks Sigurd. I have another question then. Maybe I should make a new question, but it seems to be related to the discussion. In the nrf_nvmc.c driver file, we have code such as

     while (NRF_NVMC->READY == NVMC_READY_READY_Busy) {;}
    

    This seems like it could go into an infinite loop when NRF_NVMC->READY is always == to NVMC_READY_READY_Busy due to some error in the FLASH HW . Do you think its possible that this statement can cause the code to go into an infinite loop? Is there some sort of to prevent it if it can go into an infinite loop?

Reply
  • Thanks Sigurd. I have another question then. Maybe I should make a new question, but it seems to be related to the discussion. In the nrf_nvmc.c driver file, we have code such as

     while (NRF_NVMC->READY == NVMC_READY_READY_Busy) {;}
    

    This seems like it could go into an infinite loop when NRF_NVMC->READY is always == to NVMC_READY_READY_Busy due to some error in the FLASH HW . Do you think its possible that this statement can cause the code to go into an infinite loop? Is there some sort of to prevent it if it can go into an infinite loop?

Children
No Data
Related