第二章uc-os概述--嵌入式操作系统分解课件.ppt

上传人(卖家):晟晟文业 文档编号:5064292 上传时间:2023-02-07 格式:PPT 页数:37 大小:982.50KB
下载 相关 举报
第二章uc-os概述--嵌入式操作系统分解课件.ppt_第1页
第1页 / 共37页
第二章uc-os概述--嵌入式操作系统分解课件.ppt_第2页
第2页 / 共37页
第二章uc-os概述--嵌入式操作系统分解课件.ppt_第3页
第3页 / 共37页
第二章uc-os概述--嵌入式操作系统分解课件.ppt_第4页
第4页 / 共37页
第二章uc-os概述--嵌入式操作系统分解课件.ppt_第5页
第5页 / 共37页
点击查看更多>>
资源描述

1、嵌入式操作系统uc/os概述2.1 uc/os简介简介2.2 uC/OS-II工作原理工作原理2.3 uC/OS-II基本系统服务基本系统服务2.4 uC/OS-II体系结构体系结构2.5 uC/OS-II移植移植2.6 uC/OS-II开发开发2.1 uc/os简介u:Micro C:controluC/OS:适合于小的、控制器的操作系统小巧公开源代码,详细的注解可剥夺实时内核可移植性强多任务多任务 uC/OS-II美国人Jean Labrosse 1992年编写的嵌入式多任务实时操作系统应用面覆盖了诸多领域,如照相机、医疗器械、音响设备、发动机控制、高速公路电话系统、自动提款机等 通过了美

2、国FAA(美国航空管理委员会)认证,可以运行在诸如航天器等对安全要求极为苛刻的系统之上www.uCOS-II.comuC/OS-IIuC/OS-II是用C语言和汇编语言编写C/OS-II 具有执行效率高、占用空间小、实时性能优良和可扩展性强等特点,最小内核可编译至 2KB。C/OS-II 已经移植到了几乎所有知名的CPU 上。uC/OS-II目标是实现一个基于优先级调度的抢占式的实时内核,并在这个内核之上提供最基本的系统服务,如信号量,邮箱,消息队列,内存管理,中断管理等。uC/OS-II 体系结构2.2 uC/OS-II工作原理uC/OS-II是一种基于优先级的可抢先的硬实时内核。在uC/O

3、S-II里,每个任务都有一个任务控制块(Task Control Block),这是一个比较复杂的数据结构。在任务控制块的偏移为0的地方,存储着一个指针,它记录了所属任务的专用堆栈地址。2.2 uC/OS-II工作原理在uC/OS-II内,每个任务都有自己的专用堆栈,彼此之间不能侵犯。这点要求程序员再他们的程序中保证。一般的做法是把他们申明成静态数组。而且要申明成OS_STK类型。当任务有了自己的堆栈,那么就可以将每一个任务堆栈在那里记录到前面谈到的任务控制块偏移为0的地方。2.2 uC/OS-II工作原理以后每当发生任务切换,系统必然会先进入一个中断,这一般是通过软中断或者时钟中断实现。然后

4、系统会先把当前任务的堆栈地址保存起来,紧接着恢复要切换的任务的堆栈地址。由于那个任务的堆栈里一定也存的是地址(还记得我们前面说过的,每当发生任务切换,系统必然会先进入一个中断,而一旦中断CPU就会把地址压入堆栈),这样,就达到了修改PC为下一个任务的地址的目的。2.3 uC/OS-II基本的系统服务 任务调度任务调度 任务间同步与通信任务间同步与通信 内存管理内存管理 时间管理时间管理 任务管理任务管理任务管理uC/OS-II 中最多可以支持64 个任务,分别对应优先级063,其中0 为最高优先级。63为最低级,系统保留了4个最高优先级的任务和4个最低优先级的任务,所有用户可以使用的任务数有5

5、6个。任务管理uC/OS-II提供了任务管理的各种函数调用,包括创建任务,删除任务,改变任务的优先级,任务挂起和恢复等。系统初始化时会自动产生两个任务:一个是空闲任务,它的优先级最低,该任务仅给一个整形变量做累加运算;另一个是系统任务,它的优先级为次低,该任务负责统计当前cpu的利用率。时间管理uC/OS-II的时间管理是通过定时中断来实现的,该定时中断一般为10毫秒或100毫秒发生一次,时间频率取决于用户对硬件系统的定时器编程来实现。中断发生的时间间隔是固定不变的,该中断也成为一个时钟节拍。uC/OS-II要求用户在定时中断的服务程序中,调用系统提供的与时钟节拍相关的系统函数,例如中断级的任

6、务切换函数,系统时间函数。内存管理在ANSI C中是使用malloc和free两个函数来动态分配和释放内存。但在嵌入式实时系统中,多次这样的操作会导致内存碎片,且由于内存管理算法的原因,malloc和free的执行时间也是不确定。uC/OS-II中把连续的大块内存按分区管理。每个分区中包含整数个大小相同的内存块,但不同分区之间的内存块大小可以不同。用户需要动态分配内存时,系统选择一个适当的分区,按块来分配内存。释放内存时将该块放回它以前所属的分区,这样能有效解决碎片问题,同时执行时间也是固定的。任务间通信与同步同步对象同步对象事件事件消息队列消息队列信号量信号量邮箱邮箱任务调度uC/OS-II

7、 采用的是可剥夺型实时多任务内核。可剥夺型的实时内核在任何时候都运行就绪了的最高优先级的任务。uC/os-II的任务调度是完全基于任务优先级的抢占式调度,也就是最高优先级的任务一旦处于就绪状态,则立即抢占正在运行的低优先级任务的处理器资源。为了简化系统设计,uC/OS-II规定所有任务的优先级不同,因为任务的优先级也同时唯一标志了该任务本身任务调度任务调度将在以下情况下发生:1)高优先级的任务因为需要某种临界资源,主动请求挂起,让出处理器,此时将调度就绪状态的低优先级任务获得执行,这种调度也称为任务级的上下文切换。2)高优先级的任务因为时钟节拍到来,在时钟中断的处理程序中,内核发现高优先级任务

8、获得了执行条件(如休眠的时钟到时),则在中断态直接切换到高优先级任务执行。这种调度也称为中断级的上下文切换。任务调度最高优先级任务最高优先级任务的寻找的寻找通过建立就绪列表实现u C/O S 中的每一个任务都有独立的堆栈空间,并有一个称为任务控制块TCB(Task Control Block)的数据结构,其中第一个成员变量就是保存的任务堆栈指针。调度工作调度工作任务切换任务切换任务调度模块首先用变量OSTCBHighRdy 记录当前最高级就绪任务的TCB 地址,然后调用OS_TASK_SW()函数来进行任务切换2.4 uc/OS-II内核结构CPU移植移植核心核心任务任务处理处理时间时间处理处

9、理任务同步任务同步与通信与通信内核结构内核结构uc/OS-II内核结构内核结构核心部分(OSCore.c)核心部分(OSCore.c)是操作系统的处理核心,包括操作系统初始化、操作系统运行、中断进出的前导、时钟节拍、任务调度、事件处理等多部分。能够维持系统基本工作的部分都在这里任务处理部分(OSTask.c)任务处理部分(OSTask.c)任务处理部分中的内容都是与任务的操作密切相关的。包括任务的建立、删除、挂起、恢复等等。因为C/OS-II是以任务为基本单位调度的,所以这部分内容也相当重要。时钟部分(OSTime.c)时钟部分(OSTime.c)C/OS-II中的最小时钟单位是timetic

10、k(时钟节拍)。任务延时等操作是在这里完成的。任务同步和通信部分 任务同步和通信部分,包括信号量、邮箱、邮箱队列、事件标志等部分;主要用于任务间的互相联系和对临界资源的访问。OS_MUTEX.C,OS_MBOX.C,OS_SEM.C,OS_Q.C.CPU移植与CPU的接口部分 是指C/OS-II针对所使用的CPU的移植部分。由于C/OS-II是一个通用性的操作系统,所以对于关键问题上的实现,还是需要根据具体CPU的具体内容和要求作相应的移植。这部分内容由于牵涉到SP等系统指针,所以通常用汇编语言编写。主要包括中断级任务切换的底层实现、任务级任务切换的底层实现、时钟节拍的产生和处理、中断的相关处

11、理部分等内容。2.5 uC/OS-II移植移植uC/OS-的大部分代码是用ANSI C写成的,只有与处理器硬件相关的一部分代码用汇编语言编写。所以uC/OS-的移植性很强,可以在绝大多数8位、16位、32位微处理器、数字信号处理器上运行。uC/OS-的移植并不复杂,只要编写4个汇编语言的函数、6个C函数再定义3个宏和1个常量,这些宏和函数都非常简单,其中的5个C函数甚至只需声明不必包含代码。2.5 uC/OS-II移植移植用户可以根据需要自己编写移植代码。uC/OS-的网站上(www.uCOS-II.com)有针对不同微处理器的移植代码可供下载。目前网站上提供的移植实例包括Intel公司的80

12、 x86、8051、80196等,Motorola公司的PowerPC、68K、CPU32等,TI公司的TMS320系列,Zilog公司的z-80、z-180,还包括Analog Device公司、ARM公司、日立公司、三菱公司、飞利浦公司和西门子公司的各种微处理器。2.6 uC/OS-II开发开发软件开发环境 Embest IDEEmbest IDE是一个高度集成的图形界面操作环境,包含编辑器、编译器、汇编器、链接器、调试器等工具,其界面同Microsoft Visual Studio类似。Embest IDE支持ARM、Motorola等多家公司不同系列的处理器,对于ARM系列处理器,目前

13、支持到ARM9系列,包括ARM7、ARM5等低系列芯片。Embest IDE运行的主机环境为Windows95/98/NT/Me/2000,支持的开发语言包括标准C、Embedded C和汇编语言。Embest IDE的所有与处理器和调试设备相关模块采用即插即用方式,可在同一个工作区中同时管理多个应用软件和库工程,各工程均可配置不同的处理器和仿真器,用户可在各工程中无缝切换。Embest IDE 工程管理器:图形化的工程管理工具,负责应用源程序的文件组织和管理,提供编译、链接、库文件的设置窗口。源码编辑器:标准的文本编辑功能,支持语法关键字、关键字色彩显示等。编译工具:集成著名优秀自由软件GN

14、U的GCC编译器,并经过优化和严格测试。调试器:源码级调试,提供了图形和命令行两种调试方式,可进行断点设置、单步执行、异常处理,可查看修改内存、寄存器、变量等,可查看函数栈,可进行反汇编等。调试设备:Embest JTAG仿真器,一端是一个DB25的接口,连接到主机的并行口,另外一端是IDC插头,连接到目标板的JTAG接口。作业搭建uc/os的PC机上开发环境。(平台不限,V或支持C编译的开发环境都可)。初步熟悉uc/os-III的代码结构和尝试阅读源码。1.uC/OS-III内核组成和机制 2.uC/OS-III任务管理方式 3.uC/OS-III内核调度机制 4.uC/OS-III任务间通信与同步机制 5.uC/OS-III内核中断机制 6.uC/OS-III时钟 7.uC/OS-III内存管理 8.uC/OS-III文件系统 9.uC/OS-III网络架构 10.uC/OS-III移植 11.uC/OS-III内核调试器 12.uC/OS-III应用开发架构 13.uC/OS-III应用开发案例

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(第二章uc-os概述--嵌入式操作系统分解课件.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|