Team, why is address 0x0 prohibited for flash writes (and subsequently reads)?
Reference the SDK code - qspiflash.c
QSPIFlash_singleWrite()
line 955: DebugP_assert((memAddr!= 0U));
Thanks.
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Hi Greg,
I'm checking if the intent of this check is to avoid a NULL / Uninitialized address (even though this is not a pointer variable) or actually avoiding write to the zero-eth location. Please give a couple of days to look into this.
Thanks
-Nitin
Hi Greg,
Flash memory is mapped to SOC_XWR18XX_MSS_EXT_FLASH_BASE_ADDRESS which is defined in common/sys_common_xwr68xx_mss as 0xC0000000U so the write address cannot start at zero and this check just ensures that.
The base address of flash can be retrieved by calling QSPIFlash_getExtFlashAddr().
Besides checking for a non-zero write address, no additional address checks are done in the function. The caller should check/ensure that the address sent to this function is in the right range of the flash.
Hope this clarifies.
Regards
-Nitin