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的一个问题

TI的工程师们:

     在看IPC例子的时候, pdk目录下面的 transport/ipc/examples/qmssIpcBenchmark和shmIpcBenchMark,

有一点小的疑惑。

     两个例子的大致流程都差不多,messageQ_creat, ---messageq_registerHeap,---messageQ_open---MessageQ_alloc--MessageQ_put。。

这里,对这个MessageQ_registerHeap这个函数他这个Heap是用来干什么的呢?开始以为就是Message使用到的heap,但是我发现Message_Creat出来的MeaageQ是在L2中,register的heap在L2中(sharedregion_getHeap),但是MessageQ_alloc弄出来的msg是在MSM中。这个是为什么?

还有一个问题:

有的例子,MessageQ_registerHeap注册的heap是shareregion_getHeap这个函数返回的,有的例子使用的是 HeapBufMp_creat出来的heap,请问这两个分别是什么意思有什么不同吗?

  • MessageQ_registerHeap是给一个指定的heap注册一个heapID,在MessageQ_alloc时可以指定heapID,你这里看到的msg位置不一样,有可能是没有使用前面regster的heap,你可以修改使用之前注册的heap分配消息。

    使用messageQ时不需要软件配置Heap module,只需要配置ShareRegion即可,所以在例程配置文件中有shareRegion的配置,其具体的功能在IPC user guide中有详述。

     

  • 我想问一下,ipc默认的sharedregion 0 是在哪配置的?他的地址又该怎样去查找

  • 在.cfg里可以找到,比如:

    var SHAREDMEM           = 0x0C200000;

    var SHAREDMEMSIZE       = 0x00200000;

    var SharedRegion = xdc.useModule('ti.sdo.ipc.SharedRegion');

    SharedRegion.setEntryMeta(0,

        { base: SHAREDMEM, 

          len:  SHAREDMEMSIZE,

          ownerProcId: 1,

          isValid: true,

          name: "DDR2 RAM",

        });

  • 这是XDC的配置文件吗?我找了半天没找到,还有就是linux,BISO,XDC,ipc的关系,比如说DSP跑bios,和XDC有什么关系