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.

AWR1642: Initialize QSPI FLASH driver, and then system fails.

Part Number: AWR1642

Hi,

I added the QSPI FLASH driver to the mmWaveSDK 1.1.0.2 version, and built the mmWave binary successfully.

(Referece the code: driver\qspiflash\test\common\test_common.c and driver\qspiflash\test\xwr16xx\main.c)

After powering up the system, the system seems to be halted.

I check the QSPI FLASH initial code.

the DMA open function seems to initialize fail, as follows:

------------------------------

...

/* Open DMA driver instance 0 for SPI test */
gDmaHandle = DMA_open(0, &dmaParams, &retVal);

...

------------------------------

How to solve the DMA_open fails?

Thanks

  • Hi,

    Please try to add further debug printfs() to better understand why the code hangs

    thank you
    Cesar
  • Hi,

    Can you also please let us know what application you are working on?

    This will help us understand your system better

    thank you
    Cesar
  • Hi Cesar,

    I use mmWave demo config in SDK v1.1.0.2.

    And qspiflash initial API to MmwDemo_mssInitTask() function in the "\demo\xwr16xx\mmw\mss\mss_main.c" file.

    When I added the driver and power up DUT, the mmWave demo can not print the message as follows:

    ---------------------------------

    /* Create Demo Banner to be printed out by CLI */
        sprintf(&demoBanner[0],
                           "******************************************\n" \
                           "xWR16xx MMW Demo %02d.%02d.%02d.%02d\n"  \
                           "******************************************\n",
                            MMWAVE_SDK_VERSION_MAJOR,
                            MMWAVE_SDK_VERSION_MINOR,
                            MMWAVE_SDK_VERSION_BUGFIX,
                            MMWAVE_SDK_VERSION_BUILD
                );

    ------------------------------

    But I removed the DMA_open() API, the message ""xWR16xx MMW Demo %02d.%02d.%02d.%02d" are prinnted on the console window.

    BTW, I want to write/read the customized data to the flash.

    Thanks.

  • There is a white paper that illustrates how to add QSPI Flash capability to a project.  You can find it here:

    http://www.ti.com/lit/an/swra583/swra583.pdf

    One possible cause of the failure is that your new calls are in main(), where they should be placed in a task.

      -dave

  • Hi,

    So far, the device can use single write/read command to qspiflash.
    Also, the device can write/read data in memory mapped mode to qspiflash.

    ------------------------
    The question is the device can not use DMA mode write/read data in Memory mapped mode.
    When I use "gDmaHandle = DMA_open(0, &dmaParams, &retVal);", the code would hangs.

    Are there any other related configures to do?

    Thanks.
  • Hi,

    There is a related question about Memory_alloc() API.
    I use the "readDataArray = Memory_alloc (NULL, TEST_DATA_LENGTH, 64, NULL);" in the driver\qspiflash\test\common\test_common.c file, the code also hangs.

    And there is also the Memory_alloc() code in the DMA_open(0, &dmaParams, &retVal) API.

    If this is the issue, how could I do to resolve it?

    Thanks.
  • Hi,

    After modifing the heapMemParams.size, the "DMA mode write/read data in Memory mapped mode" is worked.

    Thanks.