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模块分配内存出现问题

Other Parts Discussed in Thread: TMS320C6678, SYSBIOS

问题环境描述:1.使用的是TI 的Simulation TMS320C6678;2.想在单核上实现MessageQ的收发;

出现的问题:1.找不到MessageQ_alloc函数的定义;2.直接使用MessageQ_alloc出现问题,需要在前面添加类型转换

3.强制转换类型后,编译能够通过,但是说heapId id in valid,不知道在分配内存时出现了什么问题

4.具体的程序见附件

5.报错截图如下所示

MessageQ.rar
  • 你只是定义了一个HEAPID宏,但是在cfg及代码中均没有静态及动态创建对应heap,关于如何创建对应的heap可以看sysbios user guide,如用HeapBuf_create函数动态创建一个heap。

    你的代码里为何是调用Queue_put这样的api,而不是MessageQ_put呢,你是进行了再次封装么?

    参考例程:ipc_3_41_00_08\examples

  • Andy Yin1,你好

    你说的问题我在论坛上也看到有这么说的,但是在注册HEAPID时仍然遇到了问题,上面我给出的程序刚开始是采用队列形式进行

    线程间通信,基于MessageQ的部分仅有分配内存部分,但是在这就遇到了问题。

    这里是我修改的程序,想完成的功能是一个线程读消息,一个线程写消息,但是仍然出现了下列问题

    1.MessageQ_put()编译不能通过

    2.HeapBufMP_registerHeap注册失败

    3.你指的例程我没有找到简单的,我使用的ipc版本是ipc_3_42_00_02,菜鸟一个,希望能介绍个简单的例程

                                                                                                                                                                                        Xiaop Hong

    Message_SingCore.rar
  • ipc_3_42_00_02安装路径下同样有examples文件夹,其中有很多bios及linux例程,其中有cfg及c code源码。