(课件2)09-03嵌入式实时操作系统 (2).ppt

(课件2)09-03嵌入式实时操作系统 (2).ppt

  1. 1、本文档共47页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
嵌入式操作系统简介 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的发展方式,遵循国际标准,可以方便地获得众多第三方软硬件厂商的支持 内核的结构在网络方面是非常完整的。提供了对十兆、百兆、千兆以太网、无线网络、令牌网、光纤网、卫星等多种联网方式的全面支持 嵌入式实时操作系统 μC/OS-Ⅱ 美国的Jean J. Labrosse先生业余时间,自己编写的。 1992年初发表了μC/OS ,1999年出版了介绍μC/OS-Ⅱ的书籍,为v2.0的版本。2002年出版了v2.52的版本。 2000年得到了美国联邦航空管理局对商用飞机的、符合RTCA DO178B标准的认证。 μC/OS-Ⅱ的主要特点 公开的源代码:http://www.uCOS -II.com 可移植性:绝大部分代码使用ANSI C编写,可移植性较强 向上兼容:从μC/OS 升级到 μC/OS -Ⅱ很方便 可固化 可裁减 占先式:总是运行就绪条件下的优先级最高的任务 μC/OS-Ⅱ的主要特点 多任务:可以管理64个任务,其中保留8个给系统 可确定性:函数调度与任务的执行时间是可知的 任务栈:每个任务都有自己独立的栈,降低应用程序对RAM的要求 中断管理:中断可以使正在执行的程序挂起,终端嵌套层达255层 系统服务:提供很多的系统服务,邮箱、消息队列、信号量等 μC/OS-Ⅱ系统框图 任务就绪表结构及其操作; 任务切换及任务调度; 任务的创建、删除、挂起、恢复和查询; μC/OS-II的初始化和启动 2.1 任务的基本概念 μC/OS-II就是一个能对小任务的运行进行管理和调度的多任务操作系统。 μC/OS-II任务的组成: 任务程序代码: 任务的执行部分 任务堆栈: 保存任务工作环境 任务控制块: 保存任务的属性 μC/OS-II的任务有两种: 用户任务:由应用程序设计者编写的任务 为解决应用问题而编写的 系统任务:系统提供的任务 为应用程序提供某种服务 μC/OS-II最多可以对64个任务进行管理 2.1.1 任务的状态 睡眠状态: 就绪状态 运行状态 等待状态(时间、事件、手工挂起) 中断服务状态 2.1.2 用户任务代码的一般结构 1、用户任务代码的一般结构 2、用户应用程序的一般结构 void MyTask1(void *pdata) //定义用户任务1 { for(;;) { …… } } void MyTask2(void *pdata) //定义用户任务2 { for(;;) { …… } } void MyTask3(void *pdata) //定义用户任务3 { for(;;) { …… } } void main() { …… OSInit(); //初始化uC/OS-II …… OSTaskCreate(MyTask1,……); //创建用户任务1 OSTaskCreate(MyTask2,……); //创建用户任务2 OSTaskCreate(MyTask3,……); //创建用户任务3 …… OSStart(); //启动任务 …… }

文档评论(0)

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

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

1亿VIP精品文档

相关文档