2019-06-13 UCOS II之邮箱篇

1、需要在OS_CFG.H中将OS_MBOX_EN置为1才能支持邮箱。

2、邮箱只有两种状态,满的状态(包含一个非空指针型变量),空的状态(内容为空指针NULL)。

3、有五个接口函数,分别是:OSMboxCreate(), OSMboxPost(), OSMboxPend(), OSMboxAccept(), OSMboxQuery()。

4、OSMboxCreate():原型为OS_EVENT *OSMboxCreate(void *msg),传入参数为邮箱的初始值,一般为NULL,返回的是事件控制块的起始地址。

5、OSMboxPost():原型为INT8U  OSMboxPost (OS_EVENT  *pevent,void      *pmsg),发送一个消息到邮箱中,如果有任务在等待该消息,将其中的最高优先级任务从等待列表中删除,加入就绪列表,

6、OSMboxPend():原型为void  *OSMboxPend (OS_EVENT *pevent,INT16U timeout, INT8U *err);若邮箱满,则返回将邮箱消息地址返回,若为空,则当前任务初阻塞,直到邮箱中有了消息或等待超时。

7、OSMboxAccept():原型为void *OSMboxAccept (OS_EVENT  *pevent);无等待地请求邮箱消息,返回邮箱当前内容,若邮箱当前为空返回空指针。

8、OSMboxQuery():原型为OSMboxQuery (OS_EVENT *pevent,OS_MBOX_DATA *pdata) 查 询一个邮箱的状态。 

9、OSMboxDel():原型为OSMboxDel (OS_EVENT  *pevent, INT8U  opt,INT8U  *perr),删除一个邮箱,opt选项OS_DEL_NO_PEND时只有在没有任务在等待时删除邮箱,OS_DEL_ALWAYS时有任务在等待也删除邮箱,此时所有等待的任务都将进入就绪状态。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值