注册 登录
电子工程世界-论坛 返回首页 EEWORLD首页 频道 EE大学堂 下载中心 Datasheet 专题
zhangzl的个人空间 https://home.eeworld.com.cn/space-uid-462677.html [收藏] [复制] [分享] [RSS]
日志

uTenux操作系统内核API之邮箱

已有 636 次阅读2013-1-22 15:31

      关于操作系统邮箱的相关概念在手册中以提到,在这里详细介绍一下如何创建消息包!
       邮箱功能的消息内容放置在发送方和接收方的内存中,因此,实际发送和接收的只有位于这片内存的消息起始地址。消息的内容本身并不复制。uT/Kernel通过一个链表来管理消息队列中的消息。应用程序必须在消息发送开始时uT/Kernel使用的链表分配空间。这片空间被称为消息头。消息头和消息体一起称为一个消息包。当一个系统调用发送一条信息到邮箱中时,消息包的起始地址在参数中传递。当一个系统调用从邮箱中接收到一条消息时,消息包的起始地址在返回参数中传递。
消息(包括消息头在内,不含消息优先级)的数据包的结构如下:
typedef struct t_msg {
VP msgque[1];
} T_MSG;

实际的消息必须放置在消息头之后的区域中。不限制消息的大小,消息的长度可变。

自定义的消息包的结构如下:
typedef struct u_msg {
VP msgque[1]; /* Area for message queue,as same as T_MSG */
UB  *usrmsg;    /* Area for message pointer */
} U_MSG;

1、如何使用邮箱的发送API:
U_MSG sndmsg;
tk_snd_mbx(mbxid,(T_MSG*)&sndmsg);

2、如何使用邮箱的发送API:
U_MSG *pk_rcvmsg;
tk_rcv_mbx(mbxid,(T_MSG*)&pk_rcvmsg,-1);

本文来自论坛,点击查看完整帖子内容。

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

热门文章