网站大量收购独家精品文档,联系QQ:2885784924

内容参考文案.pptxVIP

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

μC/OS-II操作系统标准教程人民邮电出版社出版杨宗德,张兵编著2009年3月

第7章μC/OS-II多事件同步机制12事件组标志同步机制基本原理事件组标志基本操作

2025/2/25人民邮电出版社出版杨宗德编著3事件组标志管理示意图

2025/2/25人民邮电出版社出版杨宗德编著4事件组标志控制块结构体os_flag_grptypedefstructos_flag_grp{ //事件组标志结构体INT8UOSFlagType;//事件类型,使用时需设置为OS_EVENT_TYPE_FLAGvoid*OSFlagWaitList; //指向等待的任务链表OS_FLAGSOSFlagFlags; //8,16or32bitflags,信号列表#ifOS_FLAG_NAME_SIZE1INT8UOSFlagName[OS_FLAG_NAME_SIZE]; //信号名称#endif}OS_FLAG_GRP;

2025/2/25人民邮电出版社出版杨宗德编著5等待任务链表中结点typedefstructos_flag_node{ //事件标志等待链表结点void*OSFlagNodeNext; //指向下一个等待结点void*OSFlagNodePrev; //指向前一个等待结点void*OSFlagNodeTCB; //指向此等待任务的任务控制块void*OSFlagNodeFlagGrp; //指向此任务其所等待的事件组标志OS_FLAGSOSFlagNodeFlags;//等待的事件(标识等待此标志组中哪些事件)INT8UOSFlagNodeWaitType; //等待方式(与,或,任意,所有)}OS_FLAG_NODE;

2025/2/25人民邮电出版社出版杨宗德编著6事件组标志控制块空闲链表

第7章μC/OS-II多事件同步机制12事件组标志同步机制基本原理事件组标志基本操作

2025/2/25人民邮电出版社出版杨宗德编著8创建事件组标志基本流程如下:(1)参数检查。检查是否分配错误标志存储空间。(2)条件检查。检查是否在中断服务程序中执行此程序。(3)从空闲事件组标志控制块链表中申请一个控制块节点,如果申请失败,将返回OS_FLAG_GRP_DEPLETED错误;否则初始化申请的控制块节点成员变量。OS_FLAG_GRP*OSFlagCreate(OS_FLAGSflags,INT8U*err)

2025/2/25人民邮电出版社出版杨宗德编著9阻塞式等待事件组标志基本流程如下:(1)参数检查。检查是否为错误标志分配空间,是否指定了等待的事件组标志。(2)条件检查。检查是否在中断服务程序中执行此函数,事件类型是否为事件组标志(OS_EVENT_TYPE_FLAG)。(3)使用局部变量consume标识是否需要在当前任务等待的状态满足后,将对应的等待位位取反,即是否为宏OS_FLAG_CONSUME,如果需要,则置consume为TRUE,否则为FALSE。(4)根据等待方式选择不同的处理办法如果满足,根据consume的值选择是否需要将等待的各位(即pgrp-OSFlagFlags=~flags_rdy);如果不满足,则调用函数OS_FlagBlock()阻塞当前进程,引发新的调度,关于函数OS_FlagBlock()功能详细说明见后。OS_FLAGSOSFlagPend(OS_FLAG_GRP*pgrp,OS_FLAGSflags,INT8Uwait_type,INT16Utimeout,INT8U*err)

2025/2/25人民邮电出版社出版杨宗德编著10非阻塞式等待事件组标志基本流程如下:(1)参数检查。检查是否为错误标志分配空间,是否指定了等待的事件组标志。(2)条件检查。检查是否在中断服务程序中执行此函数,事件类型是否为事件组标志(OS_EVENT_TYPE_FLAG)。(3)使用局部变量consume标识是否需要在当前任务等待的状态满足后,将对应的等待位位取反,即是否为宏OS_FLAG_CONSUME,如果需要,则置consume为TRUE,否则为FALSE。(4)根据等待方式选择不同的处理办法,如果满足,根据consume的值选择是否需要将等待的各位(即pgrp-OSFlagFlag

文档评论(0)

158****9376 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档