工具/软件:TI-RTOS
是否有一个示例演示了如何使用 QMSS / CPPI / RM 在 ARM 和 DSP 之间进行消息传递? 在 PDK 中,我看到了 DSP<->DSP 和 ARM<->ARM 的示例。 我尝试混合和匹配这些示例中的代码以创建 ARM <-> DSP 的新示例、但我遇到了很多问题。 如果有一个简单的示例、我可以在的基础上构建、这将是很好的。
劳伦斯
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.
工具/软件:TI-RTOS
是否有一个示例演示了如何使用 QMSS / CPPI / RM 在 ARM 和 DSP 之间进行消息传递? 在 PDK 中,我看到了 DSP<->DSP 和 ARM<->ARM 的示例。 我尝试混合和匹配这些示例中的代码以创建 ARM <-> DSP 的新示例、但我遇到了很多问题。 如果有一个简单的示例、我可以在的基础上构建、这将是很好的。
劳伦斯
由于没有示例、我尝试将 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 文件
我还连接了一些 ARM 源作为参考
我一直在深入探讨 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]?
有什么建议吗?