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.

咨询SYSLINK中MESSAGEQ的一些问题



你好,

我使用的OMAPL138

基于mcsdk_1_01_00_02中的linux3.3版本内核

目前使用SYSLINK方式进行ARM-DSP之间通讯,SYSLINK版本为syslink_2_21_03_11

现在想咨询三个问题

1. MessageQ_alloc()函数分配堆空间的时候,所分配空间的大小受哪个参数的限制?

    heapParams.blockSize = 64;

    heapParams.numBlocks = 10;

    跟这两个参数是什么关系?堆块大小和堆块数量又有什么意义?blockSize的单位是字节么?

    另外,我在调用MessageQ_alloc时,size要是大于128字节,运行时就会产生错误,这和blockSize、numBlocks是什么关系?

2.  通过MessageQ_alloc()如何实现程序动态的分配不定大小的空间?以SYSLINK中的ex02_messageq为例。如果我在App_Msg结构体中

     加入一个char* str,如何能根据需求为str分配不同空间的地址?

3. 在ex02_messageq的例程中,所传递的数据结构是App_Msg结构体

typedef struct {
    MessageQ_MsgHeader reserved;
    UInt32 cmd;
    SharedRegion_SRPtr buf;
} App_Msg;

请问这个SharedRegion_SRPtr类型的参数可以怎么使用?从名称上来看,应该是共享内存的指针?但是在API中找到

SharedRegion_SRPtr的类型其实是u32,不知道这个参数如何使用

感谢