- 1、本文档共77页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
****************************************************************************4.5.4消息邮箱请求函数1void*OSMboxPend(OS_EVENT*pevent,INT16Utimeout,INT8U*perr)2{3void*pmsg;4#ifOS_CRITICAL_METHOD==3/*AllocatestorageforCPUstatusregister*/5OS_CPU_SRcpu_sr=0;6#endif78#ifOS_ARG_CHK_EN09if(perr==(INT8U*)0){/*Validateperr*/10return((void*)0);11}12if(pevent==(OS_EVENT*)0){/*Validatepevent*/13*perr=OS_ERR_PEVENT_NULL;14return((void*)0);15}16#endif17if(pevent-OSEventType!=OS_EVENT_TYPE_MBOX){18*perr=OS_ERR_EVENT_TYPE;19return((void*)0);20}21if(OSIntNesting0){22*perr=OS_ERR_PEND_ISR;23return((void*)0);24}25if(OSLockNesting0){26*perr=OS_ERR_PEND_LOCKED;27return((void*)0);28}29OS_ENTER_CRITICAL();30pmsg=pevent-OSEventPtr;31if(pmsg!=(void*)0){32pevent-OSEventPtr=(void*)0;33OS_EXIT_CRITICAL();34*perr=OS_ERR_NONE;35return(pmsg);36}37OSTCBCur-OSTCBStat|=OS_STAT_MBOX;38OSTCBCur-OSTCBStatPend=OS_STAT_PEND_OK;39OSTCBCur-OSTCBDly=timeout;40OS_EventTaskWait(pevent);41OS_EXIT_CRITICAL();42OS_Sched();43OS_ENTER_CRITICAL();44switch(OSTCBCur-OSTCBStatPend){45caseOS_STAT_PEND_OK:46pmsg=OSTCBCur-OSTCBMsg;47*perr=OS_ERR_NONE;48
文档评论(0)