[计算机软件及应用]visualSTATE第七章.pptVIP

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

7.2.2 创建多任务控制一个或者更多的visualSTATE systems 第五步:添加程序代码到visualSTATE主循环中 // 改变至下一个状态 if ((cc = SMP_NextState( pSEMContext )) != SES_OKAY) HandleError_Task1(cc); } } // 结束住循环 } 7.2.2 创建多任务控制一个或者更多的visualSTATE systems 第五步:添加程序代码到visualSTATE主循环中 而对于每个控制一个以上的visualSTATE system的任务来说,主循环函数可像下列程序片段所示。例中,代码表示了一个任务控制两个visualSTATE system,每个任务通过事件队列获得事件,事件分别标示为1和2,两个visualSTATE system的名字分别为VS_System_Task1和VS_System_Task2。 void VS_MainLoop_Task1( void ) { /* 和上述例中一样进行初始化,记得要初始化两个系统 */ 7.2.2 创建多任务控制一个或者更多的visualSTATE systems 第五步:添加程序代码到visualSTATE主循环中 Deduct( pSEMContext1, eventNo )) != SES_OKAY) HandleError_Task1(cc); // 得到结果功能描述,并执行相应操作 while((cc=SMP_GetOutput( pSEMContext1, actionExpressNo )) == SES_FOUND) SMP_TableAction(pSEMContext1,VS_System_Task1VSAction,actionExpressNo ); // 主循环 while (1) { // 确认System 1事件队列非空并演绎 if (SEQ_RetrieveEvent( 1, eventNo) != UCC_QUEUE_EMPTY) { // 演绎事件 If ((cc=VS_System_Task1SMP_ 7.2.2 创建多任务控制一个或者更多的visualSTATE systems 第五步:添加程序代码到visualSTATE主循环中 UCC_QUEUE_EMPTY) { // 演绎事件 if((cc= VS_System_Task2SMP_Deduct( pSEMContext2, eventNo )) != SES_OKAY) HandleError_Task1(cc); // 得到需要执行的输出,并执行 if (cc != SES_OKAY) HandleError_Task1(cc); // 改变至下一个状态 if ((cc = SMP_NextState( pSEMContext1 )) != SES_OKAY) HandleError_Task1(cc); } // 确认System 2事件队列非空并演绎 if (SEQ_RetrieveEvent( 2, eventNo) != 7.2.2 创建多任务控制一个或者更多的visualSTATE systems 第五步:添加程序代码到visualSTATE主循环中 while((cc=SMP_GetOutput( pSEMContext2, actionExpressNo )) == SES_FOUND) SMP_TableAction(pSEMContext2, VS_System_Task1VSAction, actionExpressNo ); if (cc != SES_OKAY) HandleError_Task1(cc); //改变至下一个状态 if ((cc = SMP_NextState( pSEMContext2 )) != SES_OKAY) HandleError_Task1(cc); } } // 结束主循环 } 7.2.2 创建多任务控制一个或者更多的visualSTATE systems 通过上述示例,可以发现在一个实时操作系统中嵌入visualSTATE还是比较简单的。而且,由于visualSTATE systems的ANSI C代码的生成,目标应用程序的执行也很灵活,因此允许用户根据自身需要来设计应用程序。 本章总结 嵌入式操作系统目前已经被广泛应用于嵌入式系统中,移植visualSTATE代码在操作系统中运行极大的扩展了它的应用范围,也简化了基于操作系统的设计过程。 本章以常用的实时操作系统μC/OS-II为例,首先简要介绍了它的组成部分,说明了它对应用程序的基本要求,然后分析了visualSTATE与μC/OS-II接口的实现方法,最后通过

文档评论(0)

qiwqpu54 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档