嵌入式操作系统uCOS2.docVIP

  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文档。上传文档
查看更多
嵌入式操作系统uCOS2

课程名称:嵌入式实时操作系统 操作系统名:μCOS-II实时操作系统 学生姓名: 张 琴 班级学号: SX1103024 2012年3月 μC/OS-II实时操作系统 1. 嵌入式实时操作系统μC/OS-II内核分析 1.1 μC/OS-II简介 μC/OS-II是一个源码公开、可移植、可固化、可裁剪、占先式、支持多任务的实时操作系统,最初是由Jean J.Labrosse先生撰写的,前身是μC/OS。应用面覆盖了诸多领域,如照相机、医疗器械、音响设备、发动机控制、高速公路电话系统、自动提款机等。 μC/OS-II 是专门为计算机的嵌入式应用设计的, 绝大部分代码是用C语言编写的。CPU 硬件相关部分是用汇编语言编写的、总量约200行的汇编语言部分被压缩到最低限度,为的是便于移植到任何一种其它的CPU 上。用户只要有标准的ANSI 的C交叉编译器,有汇编器、连接器等软件工具,就可以将μC/OS-II嵌人到开发的产品中。μC/OS-II 具有执行效率高、占用空间小、实时性能优良和可扩展性强等特点, 最小内核可编译至 2KB 。μC/OS-II 已经移植到了几乎所有知名的CPU 上。 在多任务系统中,内核负责管理各个任务,或者说为每一个任务分配CPU时间及其相关的资源,并且负责任务之间的通信。内核提供的基本服务是任务切换。使用实时内核可以大大简化应用系统的设计,因为实时内核允许将应用分成若干个任务,由实时内核来管理它们。内核提供必不可少的系统服务。 μC/OS-II它仅仅包含了任务调度,任务管理,时间管理,内存管理和任务间的通信和同步等基本功能。没有提供输入输出管理,文件系统,网络等额外的服务。但由于uC/OS-II良好的可扩展性和源码开放,这些非必须的功能完全可以由用户自己根据需要分别实现。uC/OS-II目标是实现一个基于优先级调度的抢占式的实时内核,并在这个内核之上提供最基本的系统服务,如信号量,邮箱,消息队列,内存管理,中断管理等。 ①临界区的处理机制 所谓临界区,即多个任务共享的资源,在某一时刻只允许一个任务访问。 μC/OS-II在处理临界区时,代码需要关中断,处理完毕后再开中断,以避免同时有其他任务或中断服务进入临界区代码。μC/OS-II提供了两个宏OS_ENTER_CRITICAL()和OS_EXIT_CRITICAL()来实现对临界区的排他性操作。 ②任务定义及状态 μC/OS-II的任务是一个无限的循环,一个任务可以有返回类型,有形式参数 变量,但是任务是绝不会返回的。当任务完成以后,任务可以自我“删除”,即μC/OS-II不理会这个任务了,这个任务的代码也不会再运行。μC/OS-II可以管理多达64个任务,其中空任务(IDLE)和统计任务(STATISTICS)被系统占用。任务在建立时必须被赋予不同的优先级,优先级的数值越小,则任务的优先级越高。μC/OS-II总是运行进入就绪状态的优先级最高的任务。图2.1给出了μC/OS-II控制下的任务状态转换过程。在任一时刻,任务的状态一定是这五种状态之一。 ③任务控制块OS_TCB μC/OS-II中是采用任务控制块的方式对任务进行管理的。任务控制块在任务被建立时赋值,它是一个数据结构,当任务的CPU使用权被剥夺时,μC/OS-II 用它来保存该任务的状态。而当任务重新得到CPU使用权时,任务控制块能确保重庆大学硕士学位论文实时嵌入式操作系统μC/OS-Ⅱ内核分析 ④就绪表 每一个任务的就绪态标志都放入就绪表中,就绪表中有两个变量OSRdyGrp和OSRdyTbl[]。在OSRedyGrp中,任务按优先级分组,8个任务为一组。OSRedyGrp中的每一位表示8组任务中每一组中是否有进入就绪态的任务。任务进入就绪态时,就绪表OSRdyTbl[]中的相应元素的相应位也置位。μC/OS-II就是利用就绪任务表对任务进行优先级的调度。如果任务被删除,则该任务在表中相应优先级的位置要清零。 ⑤任务调度 μC/OS-II总是运行就绪态任务中优先级最高的那一个,任务调度由函数OSSched()来完成。任务如果在中断服务子程序中调用OSSched(),此时中断嵌套层数OSIntNesting0,或者由于用户至少调用了一次给任务调度上锁的函数OSSchedLock(),使OSLockNesting0,则调度不允许。如果不是在中断服务子程序中调用OSSched(),并且任务调度是允许的,即没有上锁,则任务调度函数查找就绪任务表,将找出那个进入就绪态且优先级最高的任务。一旦找到那个优先级最高的任务,OSSched()检验这个优先级最高的任务是不是当前正在运行的任务,以此来避免不必要的任务调度。重庆大学硕士学位论文实时嵌入式操作系统

文档评论(0)

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

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档