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:初始化 QSPI 闪存驱动程序、然后系统发生故障。

Guru**** 2609285 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/666501/awr1642-initialize-qspi-flash-driver-and-then-system-fails

器件型号:AWR1642

您好!

我在 mmWaveSDK 1.1.0.2版本中添加了 QSPI 闪存驱动程序、并成功构建了毫米波二进制文件。

(参考代码:driver\qspiflash\test\common\test_common.c 和 driver\qspiflash\test\xwr16xx\main.c)

系统通电后、系统似乎停止。

我检查 QSPI 闪存初始代码。

DMA 打开函数似乎初始化失败、如下所示:

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

(笑声)

/*打开用于 SPI 测试的 DMA 驱动程序实例0 */
gDmaHandle = dma_open (0、&dmaParams、&RetVal);

(笑声)

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

如何解决 dma_open 失败?

谢谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    请尝试添加进一步的 debug printfs(),以更好地了解代码为什么会挂起

    谢谢你
    Cesar
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    您还能告诉我们您正在处理的应用是什么吗?

    这将帮助我们更好地了解您的系统

    谢谢你
    Cesar
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、 Cesar、

    我使用 SDK v1.1.0.2中的毫米波演示配置。

    将 qspiflash 初始 API 添加到 "\demo\xwr16xx\MMW\MSS\MSS_main.c"文件中的 MmwDemo_msInitTask()函数。

    当我添加驱动程序并为 DUT 加电时、毫米波演示无法打印以下消息:

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

    /*创建由 CLI 打印的演示横幅*/
       sprintf (&demBanne[0]),
                          " "\
                          "xWR16xx MMW 演示%02d.%02d.%02d.%02d\n"\  
                          " \n"、
                           MMWAVE_SDK_VERSION_MAJOR、
                           MMWAVE_SDK_VERSION_MINOR、
                           MMWAVE_SDK_VERSION_Bugfix、
                           MMWAVE_SDK_VERSION_BUILD
               );

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

    但我删除了 dma_open() API,消息“xWR16xx mmw Demo %02d.%02d.%02d.%02d"在控制台窗口中打印。

    BTW、我想将定制数据写入/读取到闪存中。

    谢谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    有一份白皮书说明了如何将 QSPI 闪存功能添加到项目中。  您可以在此处找到它:

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

    失败的一个可能原因是您的新调用位于 main()中,它们应放置在任务中。

     Dave

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    到目前为止、该器件可以对 qspiflash 使用单个写入/读取命令。
    此外、该器件还可以在存储器映射模式下将数据写入/读取到 qspiflash。

    --------------
    问题是器件在存储器映射模式下不能使用 DMA 模式写入/读取数据。
    当我使用"gDmaHandle = dma_open (0、&dmaParams、&RetVal);"时、代码将挂起。

    是否有任何其他相关配置要执行?

    谢谢。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    有一个与 Memory_alloc() API 相关的问题。
    我在 driver\qspiflash\test\common\test_common.c 文件中使用"readDataArray = Memory_alloc (NULL、test_data_length、64、NULL);"、代码也会挂起。

    而且 dma_open (0、&dmaParams、&RetVal) API 中也有 Memory_alloc()代码。

    如果这是问题、我该如何解决?

    谢谢。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    修改 heapMemParams.size 后、将运行"DMA mode write/read data in Memory Mapped mode"。

    谢谢。