- 3
- 0
- 约1.81万字
- 约 86页
- 2017-06-18 发布于湖北
- 举报
南航嵌入式实时操作系统课件第6章同步、互斥与通信概要
* 接收(等待)事件标志组的事件标志位OSFlagPend() OS_FLAGS OSFlagPend(OS_FLAG_GRP *pgrp, OS_FLAGS flags, INT8U wait_type, INT16U timeout, INT8U *err) { OS_FLAG_NODE node;// OS_FLAG_NODE作为局部变量存在于调用该函数的任务堆栈中 OS_FLAGS flags_cur; OS_FLAGS flags_rdy; switch(wait_type){ case OS_FLAG_WAIT_SET_ALL://任务以“与”方式等待事件标志 flags_rdy=pgrp-OSFlagFlagsflags; if(flags_rdy==flags){//事件标志当前状态与等待条件相符 pgrp-OSFlagFlags=~flags_rdy;//清除(即“消费”)满足条件的事件标志 flags_cur=pgrp-OSFlagFlags; *err=OS_NO_ERR; return(flags_cur);//返回处理后的事件标志组 }else{OS_FlagBlock(pgrp, node, flags, wait_type, timeout);} //事件
原创力文档

文档评论(0)