嵌入式操作系统ucos2

嵌入式操作系统ucos2

ID:32765703

大小:82.08 KB

页数:17页

时间:2019-02-15

嵌入式操作系统ucos2_第1页
嵌入式操作系统ucos2_第2页
嵌入式操作系统ucos2_第3页
嵌入式操作系统ucos2_第4页
嵌入式操作系统ucos2_第5页
资源描述:

《嵌入式操作系统ucos2》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、课程名称:嵌入式实时操作系统操作系统名:UCOS-II实时操作系统学生姓名:班级学号:SX11030242012年3月kiC/OS-ll实时操作系统1.嵌入式实时操作系统uC/OS-II内核分析1.1UC/OS-II简介UC/OS-II是一个源码公开、可移植、可I古I化、可裁剪、占先式、支持多任务的实时操作系统,最初是由JeanJ.Labrosse先生撰写的,前身是UC/OS。应用而覆盖了诸多领域,如照相机、医疗器械、音响设备、发动机控制、高速公路电话系统、自动提款机等。^C/OS-II是专门为计算机的嵌入式应用设计的,绝大部

2、分代码是用C语言编写的。CPU硬件相关部分是用汇编语言编写的、总量约200行的汇编语言部分被压缩到最低限度,为的是便于移植到任何一种其它的CPU上。用户只要有标准的ANSI的C交叉编译器,有汇编器、连接器等软件工具,就可以将pC/OS-ll嵌人到开发的产品中。HC/OS-II具有执行效率高、占用空间小、实时•性能优良和可扩展性强等特点,最小内核可编译至2KBoHC/OS-II已经移植到了几乎所有知名的CPU上。1.2UC/OS-II内核结构在多任务系统中,内核负责管理各个任务,或者说为每一个任务分配CPU时间及其相关的资源,并

3、且负责任务之间的通信。内核提供的基本服务是任务切换。使用实时内核可以大大简化应用系统的设计,因为实时内核允许将应用分成若干个任务,由实时内核来管理它们。内核提供必不可少的系统服务。HC/OS-II它仅仅包含了任务调度,任务管理,时间管理,内存管理和任务间的通信和同步等基木功能。没有提供输入输出管理,文件系统,网络等额外的服务。但由于uC/OS-II良好的可扩展性和源码开放,这些非必须的功能完全可以由用户自己根据需要分别实现。uC/OS・ll冃标是实现一个基于优先级调度的抢占式的实时内核,并在这个内核Z上提供最基本的系统服务,如

4、信号量,邮箱,消息队列,内存管理,中断管理等。接下来从几方面对UC/OS-II的内核作出介绍:①临界区的处理机制所谓临界区,即多个任务共享的资源,在某一时刻只允许一个任务访问。UC/OS-II在处理临界区时,代码需要关中断,处理完毕后再开中断,以避免同时有其他任务或中断服务进入临界区代码。uC/OS-II提供了两个宏OS_ENTER_CRITICAL()和OS_EXIT_CRITICAL()来实现对临界区的排他性操作。①任务定义及状态UC/OS-II的任务是一个无限的循环,一个任务可以有返回类型,有形式参数变量,但是任务是绝不

5、会返回的。当任务完成以后,任务可以自我“删除”,即UC/OS-II不理会这个任务了,这个任务的代码也不会再运行。HC/OS-II可以管理多达64个任务,其屮空任务(IDLE)和统计任务(STATISTICS)被系统占用。任务在建立时必须被赋予不同的优先级,优先级的数值越小,则任务的优先级越高。PC/OS-II总是运行进入就绪状态的优先级最高的任务。图2.1给出了PC/OS-II控制下的任务状态传换过程。在任一时刻,任务的状态一定是这五种状态之一。②任务控制块OS_TCBUC/OS-II屮是采用任务控制块的方式对任务进行管理的。

6、任务控制块在任务被建立时赋值,它是一个数据结构,当任务的CPU使用权被剥夺吋,UC/OS-II用它来保存该任务的状态。而当任务重新得到CPU使用权时,任务控制块能确保重庆大学硕士学位论文实时嵌入式操作系统PC/OS-II内核分析③就绪表每一个任务的就绪态标志都放入就绪表中,就绪表中有两个变量OSRdyGrp和OSRdyTbl[]o在OSRedyGrp中,任务按优先级分组,8个任务为一组oOSRedyGrp中的每一位表示8组任务中每一组中是否有进入就绪态的任务。任务进入就绪态时,就绪表0SRdyTbl[]中的相应元素的相应位也置

7、位。UC/OS-II就是利用就绪任务表对任务进行优先级的调度。如果任务被删除,则该任务在表屮相应优先级的位置要清零。④任务调度UC/OS-II总是运行就绪态任务中优先级最高的那一个,任务调度由函数OSSched()来完成。任务如果在中断服务子程序中调用0SSched(),此时中断嵌套层数0SlntNesting>0,或者由于用户至少调用了一次给任务调度上锁的函数OSSchedLock(),使0SLockNesting>0,则调度不允许。如果不是在中断服务子程序中调用0SSched(),并且任务调度是允许的,即没有上锁,则任务调

8、度函数查找就绪任务表,将找出那个进入就绪态且优先级最高的任务。一旦找到那个优先级最高的任务,OSSched()检验这个优先级最高的任务是不是当前正在运行的任务,以此来避免不必要的任务调度。重庆大学硕士学位论文实时嵌入式操作系统UC/OS-II内核分析①中断处理PC/OS-II

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。