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.

关于MessageQ同时支持核间通信与DSP片间通信的疑问



您好,我在做LTE基站的基带子系统,使用TI的C6670和C6678两款芯片。目前在做DSP的平台开发,需要用到核间通信和DSP间的通信。通过看文档、培训PPT和Example,我知道MessageQ可以完成这两个任务。

但是有个疑问,资料里说,MessageQ的Transport属性在.cfg文件中设置,对一个工程来说,是不是说MessageQ只能支持一种Transport?如果我希望一个MessageQ既可以通过Shared Memory进行核间通信,同时还可以通过SRIO进行片间通信,那么通过配置.cfg是否能够实现?

IPC开发包里给出的例子我看了,只有单独的Transport方式,没有两种或以上混用的。

目前我的代码配置是:

var MessageQ                = xdc.module('ti.sdo.ipc.MessageQ');

MessageQ.SetupTransportProxy = xdc.module('ti.sdo.ipc.transports.TransportShmNotifySetup');

现在还需要使用SRIO,应该怎样做呢? 再定义一个MessageQ的module?如果是这样,MessageQ_create时,又怎样能区分这两种Transport?

 

期待您的解答,谢谢!

  • 可以的,你可以通过创建不同Queue的句柄来分别实现片内通信(share memory)或者片间通信(比如SRIO)

    具体你可以参考IPC userguide 3.3 节

  • To Thomas Yang,

    您建议的文档我仔细阅读了,帮助很大,目前也已经调通了核间通信。

    但是,如何让不同的Queue来使用不同的Transport? 这个我在文档里没有看到。

    用MessageQ_create()函数创建一个Queue,参数列表里只有Name和Sync,没有关于Transport的信息。那么创建出来的Queue,使用的是哪个Transport?

    文档里还提到了Transport实例的概念,说可以用MessageQ_registerTransport()来为MessageQ注册Transport,可是这个函数的参数,只有procid和优先级,何如关联到某个具体的Queue?

    期待您的解答!

  • 你好,我现在也在在做LTE基带开发,遇到了你刚开始提出的问题,请问一下你是怎么解决的呢??、能给一个联系方式吗?