[课件2]09—03嵌入式实时操作系统.ppt

[课件2]09—03嵌入式实时操作系统.ppt

  1. 1、本文档共47页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于实时操作系统 的程序设计技术; 汪 海 鹰 Email: cdiswhy@;课程回忆; Windows CE3.0:一种针对小容量、移动式、智能化、32位、连接设备的模块化实时嵌入式操作系统; Windows NT Embedded 4.0:一种针对基于PC体系结构解决方案的全功能嵌入式操作系统; 带有Server Appliance的Windows 2000:为建立能够利用Windows 2000强大功能的专用服务器设备,提供了一种快捷方式。; 原属于ISI公司产品,已被WindRiver公司兼并 模块化、高性能的实时嵌入式操作系统 Palm OS 3COM旗下的Palm Computing掌上电脑公司的产品 在PDA市场上占有很大的市场份额 Palm Os的特点 处理速度快 耗电量低,使用时间长 具备执行低内存需求应用程序的能力 与PC间的数据交换容易 应用软件的开发性高; 开发工具很多 GNU C、Codewarrior以及Pocket C; 专业程序设计者可使用C/C++来开发,而一般人则可使用程序产生器来完成; Codewarrior是Palm程序设计领域中功能最强大的开发工具.;自由免费产品 开放源代码,不存在黑箱技术 内核小、功能强大、运行稳定、系统健壮、效率高 易于定制剪裁,在价格上极具有竞争力 不仅支持x86CPU,还可以支持其他数十种CPU芯片 有大量的且不断增加的开发工具 沿用Unix的发展方式,遵循国际标准,可以方便地获得众多第三方软硬件厂商的支持 内核的结构在网络方面是非常完整的。提供了对十兆、百兆、千兆以太网、无线网络、令牌网、光纤网、卫星等多种联网方式的全面支持;美国的Jean J. Labrosse先生业余时间,自己编写的。 1992年初发表了μC/OS ,1999年出版了介绍μC/OS-Ⅱ的书籍,为v2.0的版本。2002年出版了v2.52的版本。 2000年得到了美国联邦航空管理局对商用飞机的、符合RTCA DO178B标准的认证。 ;公开的源代码:http://www.uCOS -II.com 可移植性:绝大部分代码使用ANSI C编写,可移植性较强 向上兼容:从μC/OS 升级到 μC/OS -Ⅱ很方便 可固化 可裁减 占先式:总是运行就绪条件下的优先级最高的任务;多任务:可以管理64个任务,其中保留8个给系统 可确定性:函数调度与任务的执行时间是可知的 任务栈:每个任务都有自己独立的栈,降低应用程序对RAM的要求 中断管理:中断可以使正在执行的程序挂起,终端嵌套层达255层 系统服务:提供很多的系统服务,邮箱、消息队列、信号量等;μC/OS-Ⅱ系统框图; ;;2.1 任务的基本概念;μC/OS-II的任务有两种: 用户任务:由应用程序设计者编写的任务 为解决应用问题而编写的 系统任务:系统提供的任务 为应用程序提供某种服务 μC/OS-II最多可以对64个任务进行管理;2.1.1 任务的状态;17;2.1.2 用户任务代码的一般结构;2、用户应用程序的一般结构;void MyTask3(void *pdata) //定义用户任务3 { for(;;) { …… } } void main() { …… OSInit(); //初始化uC/OS-II …… OSTaskCreate(MyTask1,……); //创建用户任务1 OSTaskCreate(MyTask2,……); //创建用户任务2 OSTaskCreate(MyTask3,……); //创建用户任务3 …… OSStart(); //启动任务 …… };2.1.3 系统任务;;2.1.4 任务的优先权及优先级别;;;2.2 任务堆栈;2.2.1 任务堆栈的创建;;堆栈的增长方向是随系统所使用的处理器不同而不同;2.2.2 任务堆栈的初始化;;2.3 任务控制块及 任务控制块链表;2.3.1 任务控制块的结构;成员OSTCBStat用来放置任务的当前状态, 可能的置值;2.3.2 任务控制块链表;2.3.3 任务控制块链表的管理;;2.4 任务就绪表及任务调度;2.4.1 任务就绪表的结构;40;如何根据优先级查找就绪表具体位置? 只用6位2进制数表示0~63,64个任务 用高3位表示OSRyGrp的具体数据位,即数组元素的下标; 低3位表示具体数组元素的具体数据位! 例:已知某一个已经就绪的任务的优先级别prio=49,试判断应该在就绪表的哪一位置上置1。 49的二进制形式其低6位为110001,于是可知应该在OSRdyTbl[6]的D1位上置1,同时要

文档评论(0)

shaoye348 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档