项目驱动-编程入门.pptVIP

  1. 1、本文档共31页,可阅读全部内容。
  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文档。上传文档
查看更多
项目驱动-编程入门

电子实验中心 delay(1000); if(KEY==0) { LED != LED; } while(KEY==0); } } TinyOS示例程序如下: static void __taskKEY (void) { tnOsSemCreate(__GosSem, 1); while (1) { while (KEY != 0) { tnOsTimeDly(TICKS_PER_SEC / 100); } tnOsSemPost(osSem); while ( KEY == 0) { tnOsTimeDly(TICKS_PER_SEC / 100); } } } static void __taskLED (void) { while (1) { tnOsSemPend(__GosSem, 0); LED != LED; } } 并发性(Concurrent)与调度(Scheduling 简单应用的典型设计为顺序运行,一次执行一条指令,按预先设定的顺序运行,然而这种模式对于嵌入式实时应用是不合适的,因为通常要在紧密的时间约束内处理多个输入和输出,假设在多CPU 系统中,每个任务都有自己的CPU,那么它们的运行状态就是真正的“并发运行”。 并发性(Concurrent)与调度(Scheduling) 并发性(Concurrent)与调度(Scheduling) PC例程讲解 。 。 a++; Delay(); b++; 。 。 *syzx.cuit.edu.cn 电子实验中心 项目驱动 --单片机应用设计技术 一、前后台系统与嵌入式系统的不同 设计:每按一次按键,发光二极管改变一次状态。(电路略) 1、前后台系统示例程序如下: Sbit LED = P1^1; Sbit KEY = P2^1; Void delay(unsigned int i) { while(i--); } Void main() { while(1) { if(KEY==0) { void main (void) { static void __taskKEY(void); static void __taskLED(void); __timer0Init(); tnOsInit(); tnOsTaskCreate(__taskKEY, __GucTaskStks[0]); tnOsTaskCreate(__taskLED, __GucTaskStks[1]); tnOsStart(); } 二、嵌入式基础知识 当使用操作系统时,如果将这些“可执行的程序单元”进行分类,即可得到在操作系统调度下的“用户任务”,简称任务(Task)。当任务“独占”CPU 的运行期间,则一个任务看不见另一个任务,也就是说,一个任务不可能象调用“子程序”那样调用另一个任务,因此任务之间的信息传递只能通过“异步”的方式来完成,即由操作系统的各种“通信”机制来实现,比如,信号量(Semaphore)与消息邮箱(Message Postbox)等。 任务状态 任务之间的关系 ? 任务同步(Synchronization) 任务间的同步是一种直接作用,“任务同步”是指系统中的多个任务之间存在某种时序关系,需要相互协作才能共同完成一项任务。比如,一个任务运行到某一时间点时,要求另一个任务为它提供消息,在未获得消息之前,该任务处于阻塞状态,获得消息后被唤醒进入就绪状态。 ? 任务互斥(Exclusion) 任务间的互斥是一种间接作用,由于内存中的多个任务要求共享某一资源,而有些资源必须互斥,因此各任务之间只能竞争使用这些资源。“任务间的互斥”是指当有若干任务都要使用某一共享资源时,最多允许一个任务使用,而其它要使用该资源的任务必须阻塞,直到占有该资源的任务释放为止。比如,当有人使用厕所时,则其它人都不能使用,直到当前使用者出来后,其他人才能使用。 临界资源(Critical Resources)与临界区(Critical Section) 任务间的互斥涉及到共享资源的竞争使用,因此竞争使用这些资源的任务在执行使用这

文档评论(0)

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

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

1亿VIP精品文档

相关文档