第一范文网 - 专业文章范例文档资料分享平台

UCOS-II操作系统第11章(13)

来源:用户分享 时间:2021-06-02 本文由醉时的梦 分享 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

UCOS-II操作系统

274-μC/OS-II:实时操作系统内核

OSMboxPend( )

Void *OSMboxPend ( OS_EVNNT *pevent, INT16U timeout, int8u *err );

所属文件 调用者 开关量

OS_MBOX_EN 任务

OSMboxPend()用于任务等待消息。消息通过中断或另外的任务发送给需要的任务。消息是一OS_MBOX.C

个以指针定义的变量,在不同的程序中消息的使用也可能不同。如果调用数时消息邮箱已经存在需要的消息,那么该消息被返回给OSMboxPend箱中清除该消息。如果调用OSMboxPend()函数时消息邮箱中没有需要的消息,()函数挂起当前任务直到得到需要的消息或超出定义等待超时的时间。如果同时有多个任务等待同一个消息,μC/OS-Ⅱ默认最高优先级的任务取得消息并且任务恢复执行。一个由OSTaskSuspend()函数挂起的任务也可以接受消息,但这个任务将一直保持挂起状态直到通过调用OSTaskResume()函数恢复任务的运行。

参数

pevent 是指向即将接受消息的消息邮箱的指针。该指针的值在建立该消息邮箱时可以得到。(参考OSMboxCreate()函数)。

Timeout 允许一个任务在经过了指定数目的时钟节拍后还没有得到需要的消息时恢复运行果该值为零表示任务将持续的等待消息。最大的等待时间为65,535个时钟节拍。这个时间长度并不是非常严格的,可能存在一个时钟节拍的误差,因为只有在一个时钟节拍结束后才会减少定义的等待超时时钟节拍。

Err 是指向包含错误码的变量的指针。OSMboxPend()函数返回的错误码可能为下述几种: OS_NO_ERR :消息被正确的接受。

OS_TIMEOUT :消息没有在指定的周期数内送到。

OS_ERR_PEND_ISR :从中断调用该函数。虽然规定了不允许从中断调用该函数,但μ

C/OS-Ⅱ仍然包含了检测这种情况的功能。

OS_ERR_EVENT_TYPE :pevent 不是指向消息邮箱的指针。

返回值

OSMboxPend()函数返回接受的消息并将 *err置为OS_NO_ERR。如果没有在指定数目的时钟节拍内接受到需要的消息,OSMboxPend()函数返回空指针OS_TIMEOUT。

注意/警告

必须先建立消息邮箱,然后使用。 不允许从中断调用该函数。

OSMboxPend()函OSMboxPend。如 且将 *err设置为()的调用者,消息邮并

搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新IT计算机UCOS-II操作系统第11章(13)全文阅读和word下载服务。

UCOS-II操作系统第11章(13).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/wenku/1200930.html(转载请注明文章来源)
热门推荐
Copyright © 2018-2022 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top