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.

[参考译文] RTOS/TCI6638K2K:ARM 和 DSP 访问 QMSS/CPPI

Guru**** 2589245 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/590922/rtos-tci6638k2k-arm-and-dsp-accessing-qmss-cppi

器件型号:TCI6638K2K

工具/软件:TI-RTOS

是否有一个示例演示了如何使用 QMSS / CPPI / RM 在 ARM 和 DSP 之间进行消息传递? 在 PDK 中,我看到了 DSP<->DSP 和 ARM<->ARM 的示例。 我尝试混合和匹配这些示例中的代码以创建 ARM <-> DSP 的新示例、但我遇到了很多问题。 如果有一个简单的示例、我可以在的基础上构建、这将是很好的。

劳伦斯

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

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

    由于没有示例、我尝试将 pdk_k2hk _4_0_4/packages/ti/drv/rm/test/dsp_client 和 pdk_k2hk _4_0_4/packages/ti/drv/qmss/example/InfraDmaMC 中的示例进行组合。 我的方法是使用 DSP_CLIENT 中的代码作为基准、并从 InfraDmaMC 示例中缓慢添加代码以使其正常工作。 现在我要添加函数 sysinit(),我可以对其进行编译。 当我运行代码时、在启动 QMSS 时出现错误、我被滞留在这里。 打印输出:

    内核0:错误启动 QMSS 错误代码:-130

    另一个奇怪的现象是 L1D 高速缓存的大小:

    核心0:L1D 高速缓存大小4. L2高速缓存大小0。

    我不知道 L1D 是否存在问题、但此时的重点是启动并运行 QMSS 和 CPPI。

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

    随附了 DSP 代码的 zip 文件、cfg 和 cmd 文件

    e2e.ti.com/.../qmss.zip

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

    我还连接了一些 ARM 源作为参考

    e2e.ti.com/.../arm_5F00_qmss.zip

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

    我一直在深入探讨 Qms_startSubSysCfg(),以了解它为什么返回 QMSS_NOT_INITIDED。

    它正在检查变量 qmsGObjIsValid[Subsys]以查看 QMSS 全局对象是否有效。

    唯一设置此标志的位置是 在 Qms_initSubSys()中。

    当我在调用 Qms_startSubSysCfg()之前调用此函数时,Qms_initSubSys()返回 QMSS_resource_link_RAM_init_denied 错误。

    当然、QMSS 不会初始化链接 RAM、因为 ARM 已经初始化 QMSS。

    现在我的问题是:DSP 如何在 不重新初始化 QMSS 的情况下设置 qmsGObjIsValid[Subsys]?

    有什么建议吗?