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.

CCS/MMWAVE-SDK: Not allowed to read or write address 0 of the QSPI flash

Part Number: MMWAVE-SDK

Tool/software: Code Composer Studio

The QSPIFlash driver of MMWAVE SDK up to the most recent version does not allow to read or write at address 0 of the QSPI flash.

The lines limiting this are:

757: DebugP_assert((memAddr != 0U)); in the function QSPIFlash_singleRead 

955: DebugP_assert((memAddr!= 0U)); in the function QSPIFlash_singleWrite

In this situation I think accessing address 0 should be allowed.

Kind regards,

Sjors

  • Hi Sjors,

    This question has been answered here:

    https://e2e.ti.com/support/sensors/f/1023/p/879715/3254920#3254920

    The checks are simply looking for a NULL address.  Flash memory is not mapped to address zero, so flash *offset* zero is allowed, which is what I believe you are looking for.

     -dave

  • Dear Dave,

    Thanks for your reply. There are within this driver 2 modes of access: using the raw QSPIFlash_singleRead and QSPIFlash_singleWrite functions, or using memory mapping.

    For the memory mapped access I believe you need the offset, but for the QSPIFlash_singleRead and QSPIFlash_singleWrite mode, the address is directly put on the SPI bus. In the test indead the offset is used and because it uses 24 bit addressing, the "offset" is masked out, so it should work. In this method any value in the most significant address should do the trick, but when 32-bit addressing would have been supported, this breaks.

    This at least provides a way to run may application without modifying the driver.

    Kind regards,

    Sjors