关闭

dsp MessageQ消息队列

标签: dsp MessageQ
101人阅读 评论(0) 收藏 举报
分类:

dsp 重要的通信机制MessageQ:

这个通信机制使用的很广泛,比Notif的优点就是其可以传递大于32bit的数据, 而notify机制只能传递小于32bit的数据。

我们需要对Heapbuf进行初始化并申请Heapbuf内存。

HeapBufMP_Params_init(& heapBufParams);
heapBufParams.regionId = headId;
heapBufParams.name = "zuoxiaonian";
heapBufParams.numBlocks = 1;
heapBufParams.blockSize = sizeof(struct mymsg);
heapHandle = HeapBufMP_create(&heapBufParams);
if (heapHandle == NULL)
{
System_printf("HeapBufMp_create failed\n");
}

对消息申请消息ID:

status = MessageQ_registerHeap((IHeap_Handle)heapHandle, headId);
if (status < 0 )
{
System_printf("MessageQ_registerHeap failed\n");
}

对消息申请内存。

zuoxiaonian_msg = (struct mymsg *)MessageQ_alloc(headId, sizeof(struct mymsg));

之后就是对MessageQ的打开,关闭, 消息的发送和接受。

MessageQ_create(),MessageQ_delete(); 对消息的创建和删除。

MessageQ_open(); MessageQ_close(); 对消息通道的打开和关闭。

MessageQ_put();MessageQ_get();消息的接受和发送。

注意:

1.一个消息队列可以有多个写者,但是只能有一个读者。(一般有几个核就创建几个消息通道, 一个核对应一个消息通道)

2.消息队列由谁创建就有谁删除,对打开就有谁关闭, (通常为写端打开,写端关闭,读端创建,读端删除)

3.可以对发送消息的结构体进行自由封装


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1052次
    • 积分:148
    • 等级:
    • 排名:千里之外
    • 原创:14篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类