第十课 嵌入式操作系统概述.ppt_第1页
第十课 嵌入式操作系统概述.ppt_第2页
第十课 嵌入式操作系统概述.ppt_第3页
第十课 嵌入式操作系统概述.ppt_第4页
第十课 嵌入式操作系统概述.ppt_第5页
已阅读5页,还剩69页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、CPU与外设的数据传输方式通常有以下几种: 查询方式: CPU不断的查询外设状态,如果外设准备就绪就开始传输数据,如果外设还没有准备好,就进入循环等待 中断方式: 当外设准备好与CPU进行数据交换时,首先向CPU提出中断请求,CPU在接到中断请求并在一定条件下,暂停原来的程序,并执行中断服务程序,执行完后再次返回源程序的过程 DMA方式: 不经过CPU而直接进行数据交换的过程,中断概述,中断法的引入,极大的提高了CPU的利用效率 ARM920T内核有两个中断IRQ中断和FIQ中断 IRQ是普通中断用于处理一般事件,FIQ是快速中断,一般用于大批量数据传送等情况 S3C2440中断控制器有60个

2、中断源 对外提供24个外中断输入引脚,内部所有设备都有中断请求信号,例如DMA控制器、UART、IIC等等,中断概述,中断异常基本概念,中断异常基本概念,ARM的异常中断,复位(reset):当处理器的复位引脚有效时,系统产生复位中断,程序跳到中断处理程序处执行。 复位中断发生的情况: 系统加电时 系统复位时 跳转到复位中断向量处(0 x00000000) 未定义指令(undefined instruction):当ARM处理器或者是系统中的协处理器认为当前指令未定义时,产生未定义的指令异常处理。 软件中断(software interrupt):有用户定义的中断指令,在实时操作系统中可以通过

3、该机制实现系统功能的调用。,ARM的异常中断,指令预取中止(prefech abort):如果处理器预取的指令的地址不存在,或者该地址不允许当前指令访问,处理器产生指令预取中止异常处理。 数据访问中止(data Abort):如果数据访问指令的目标地址不存在,或者该地址不允许当前指令访问,处理器产生数据访问中止异常处理。 外部中断请求(IRQ):当处理器的外部中断请求引脚有效,而且CPSR寄存器的I控制位被清除时,处理器产生外部中断请求(IRQ)异常处理。 快速中断请求(FIQ):当处理器的外部快速中断请求引脚有效,而且CPSR寄存器的F控制位被清除时,处理器产生快速中断请求(FIQ)异常处理

4、。,ARM处理器对异常中断的响应过程,进入异常中断的过程(由内核自动完成) 保存PC4值到新的异常模式的Lr中,以便处理完异常后,能正确返回原程序。 保存CPSR到新的异常模式的SPSR中。 强制改变Mode bits,使ARM进入相应的运行模式。 强制PC值,设置成该异常模式的向量地址,从而跳转到相应的异常处理程序处执行程序。 设置CPSR中的中断禁止位,以禁止中断发生。 从异常中断返回的过程(由内核自动完成) 由链接寄存器LR的值恢复PC,返回到发生异常中断的指令的下一条指令处执行程序。 从SPSR恢复CPSR。 清除中断屏蔽位。 注:当一个异常发生时,ARM处理器总是切换到ARM状态(即

5、非Thumb状态).,一、进入异常 当发生异常时,除了复位异常立即中止当前指令外,处理器尽量完成当前指令,然后脱离当前的程序去处理异常。ARM处理器对异常中断的响应过程如下 : 1、保存返回地址 将引起异常指令的下一条指令的地址保存到新的异常模式x下的R14,即R14_中,使异常处理程序执行完后能正确返回原程序。 2、保存当前状态寄存器CPSR的内容 将CPSR的内容保存到将要执行的异常中断对应的SPSR中,便于中断返回时恢复处理器当前的状态位、中断屏蔽位以及各条件标志位。,3、设置当前状态寄存器CPSR中的相应位 设置CPSR模式控制位CPSR4:0,使处理器进入相应的执行模式; 设置中断标

6、志位(CPSR6=1),禁止IRQ中断; 设置中断标志位(CPSR7=1)禁止FIQ中断,当进入Reset或FIQ模式时。 4、转去执行中断处理程序 取相应的中断向量给程序计数器PC,使程序开始执行中断处理程序。 一般地说,矢量地址处将包含一条指向相应程序的转移指令,从而可跳转到相应的异常中断处理程序处执行异常中断处理程序 。,ARM处理器对异常的响应过程可以用伪代码描述如下 : R14_=return link SPSR_=CPSR CPSR4:0=exception mode number CPSR5=0 /*当运行于ARM状态时*/ CPSR6=1 /*禁止新的IRQ中断*/ if =R

7、eset or FIQ then CPSR7=1 /*当Reset 或FIQ异常中断时*/ /*禁止新 的FIQ中断*/ PC=exception vector address,注意使用异常模式下的特有寄存器 每个异常模式对应有两个寄存器R13_、R14_分别保存相应模式下的堆栈指针、返回地址;堆栈指针可用来定义一个存储区域保存其它用户寄存器,在程序初始化时应该对各种模式堆栈设置,便于随时使用。 FIQ模式还有额外的专用寄存器R8_fiqR12_fiq,使用这些寄存器可以加快快速中断的处理速度。,二、异常返回 异常返回应执行的操作 异常处理完毕之后,ARM微处理器会执行以下几步操作从异常返回:

8、 将返回地址装入PC:把连接寄存器LR的值减去相应的偏移量,然后送到PC中。 恢复CPSR的值:将SPSR复制回CPSR中。 清除中断屏蔽位:若在进入异常处理时设置了中断禁止位,要在此清除。 可以认为应用程序总是从复位异常处理程序开始执行的,因此复位异常处理程序不需要返回。,嵌入式操作系统,本章主要内容: (1) 嵌入式操作系统概述 (2) 嵌入式操作系统的功能 (3) 几种主要的嵌入式操作系统,嵌入式操作系统概述,嵌入式操作系统是一种用于支持嵌入式应用程序的操作系统。它是一个界于应用程序和嵌入式计算机系统的硬件之间的程序集合,其任务是控制和管理嵌入式系统中的硬件和软件资源,以方便系统使用者。

9、,为什么要使用嵌入式操作系统,并不是所有的嵌入式系统上面都需要有一个嵌入式操作系统。一些本身功能很简单的嵌入式系统出于效率和成本的考虑,常不使用嵌入式操作系统。但当一个嵌入式系统的复杂程度达到一定的水平,其硬件又具备充足的处理能力的时候,就需要使用嵌入式操作系统。一般说来当一个嵌入式系统有以下一些需求的时候就要用到嵌入式操作系统。,1. 系统需要运行多个任务,随着应用的发展,嵌入式系统需要运行的任务变得越来越复杂,这时便需要引入操作系统的概念。操作系统可以给系统中的任务提供调度机制,使用实时调度算法完成任务调度。操作系统还提供内存管理接口,用以简化任务中需要的操作。在使用操作系统之后,可以方便

10、地定制任务,并与操作系统一起下载到系统中。如果用户的需求发生了变化,只需要改变任务内容,然后重新和操作系统一起下载即可。,2. 系统需要有直观的用户界面,一些嵌入式系统并不是在启动之后就默默地去运行,它们也需要同用户进行交互。最好是能通过图形式的用户界面进行这种交互。这就要用到图形界面系统。而图形界面系统是离不开操作系统支持的。,3. 系统需要有网络功能,在没有操作系统的情况下,支持网络功能并不是不可能的事情。比如TCP/IP协议就可以用硬件芯片来实现。但使用这样的芯片会使成本增加,并且网络协议常会不断升级,用硬件芯片则无法同步地升级。而在有操作系统的嵌入式计算机系统中,则可以根据需要定制网络

11、协议,适应各种网络环境的需求,也便于跟上网络协议更新的步伐。,4. 系统需要用到数据库管理系统,一些移动信息设备需要使用嵌入式数据库管理系统解决移动计算环境下的数据管理问题。比如掌上计算机、PDA、车载设备、智能手机等一些嵌入式系统就经常有此类需求。而嵌入式数据库管理系统则不能离开操作系统的支持。,5. 系统需要不断地进行升级和进行二次开发,如果要进行某些二次开发工作,那么使用嵌入式操作系统是一个明智的选择。嵌入式操作系统都提供了一系列供二次开发人员使用的API接口。在这些接口之上进行开发,可以免去很多繁琐的底层开发工作,这不仅可以大大提高嵌入式系统的开发效率。而且也提高了嵌入式应用软件的可移

12、植性。,嵌入式操作系统与实时操作系统,早期的嵌入式系统几乎都用于控制目的,因此或多或少都有些实时要求。所以在那时“嵌入式操作系统”实际上就是“实时操作系统(RTOS)”的代名词。近几年来,由于掌上计算机这类设备的出现,有了许多没有实时要求的嵌入式系统。在这样的背景下,“嵌入式操作系统”和“实时操作系统”就成了不同的概念。,实时系统,一个实时系统是能满足以下的要求的系统:当外部事件到来时,计算机能立即进行处理,使得在指定的时间内能完成对事件的处理。而且外部事件到来的时间完全是随机的,没有什么周期性的规律。,实时操作系统,实时操作系统是具有实时性,能支持实时系统工作的操作系统。它必须能保证实时任务

13、在预定的时间内完成。其首要任务是调度一切可以利用的资源完成实时任务。其次才着眼于提高整个计算机系统的使用效率。,嵌入式操作系统和实时操作系统之间的关系,大部分嵌入式操作系统都是实时操作系统。大部分实时操作系统也都是嵌入式操作系统。它们二者间有很大的交集,我们称属于交集部分的操作系统为实时嵌入式操作系统。,嵌入式操作系统的主要性能指标,嵌入式操作系统在实时系统中起着重要的作用,其性能的好坏将直接影响到整个系统的性能。各种量化的性能指标对评价一个嵌入式操作系统提供了客观的依据,这些指标分为时间性能指标和存储开销指标两类。,1. 时间性能指标,(1) 中断响应时间 (2) 中断恢复时间 (3) 任务

14、上下文切换时间 (4) 任务响应时间,28,中断响应时间,中断响应时间是指从中断发生到开始执行用户中断服务程序的第一条指令之间的时间。应注意中断延迟时间与中断响应时间的区别。前者指从中断发生到开始执行中断服务程序的第一条指令之间的时间,而后者指开始执行用户的中断服务程序的第一条指令之间的时间。,29,中断恢复时间,中断恢复时间是从用户中断服务程序结束运行到回到被中断代码之间的时间。,中断处理时间,具体的中断处理是由应用决定的,并不是操作系统的组成部分,但在这里单独提出来的目的是让大家对中断处理时间的要求有个清晰的认识。,30,任务上下文切换时间,在多任务系统中,任务上下文切换是指CPU的控制权

15、由当前运行的任务转移到另外一个就绪任务时所发生的事件。这时,当前运行的任务将转为就绪或者等待状态,另一个被选定的就绪任务将成为当前运行任务。 任务上下文切换时间包括保存当前运行任务的时间、选择下一个任务的调度时间以及将要运行任务的恢复时间。任务切换是在实时系统中频繁发生的动作,其时间的快慢直接影响到整个系统的实时性能。,31,任务响应时间,任务响应时间是指从任务对应的中断产生到该任务真正开始运行这一过程所花费的时间。任务响应时间又称调度延迟。,2. 存储开销指标,在嵌入式系统中,存储空间的大小也是很重要的问题。即使目前存储器的价格在不断下降,但基于成本和功耗的考虑,嵌入式系统的存储器一般都不大

16、。而在这有限的空间内不仅要装载嵌入式操作系统,还要装载应用程序。因此,在嵌入式操作系统的设计实现和应用开发中,除了上述各项时间性能指标,还应关注嵌入式操作系统的存储开销,这也是嵌入式操作系统与其他操作系统的明显区别之一。,嵌入式操作系统的存储开销,嵌入式操作系统的存储开销分为代码的存储开销和数据空间的存储开销两部分。 操作系统的代码大小取决于多种因素,它一般与操作系统的功能有直接关系,从几KB到上百KB都是可能的。,操作系统的数据空间通常又被称为操作系统的工作区。它由以下几部分所构成: (1) 用于存储操作系统的系统变量的RAM空间。这一部分空间的大小固定。 (2) 用于存储操作系统对象的RA

17、M空间。在多任务的系统中要创建任务、消息队列、事件、堆、分区、信号量、软定时器和用户扩展区等各种操作系统对象。它们的数目根据应用的需要是可变的。,(3) 堆栈所需的空间。包括任务堆栈、中断堆栈等。在多任务系统中,每个任务都是独立运行的,操作系统给每个任务提供了单独的堆栈空间。应用开发者决定分配给每个任务的堆栈空间时,应尽可能使之接近实际需求量(但这实际上是一件很困难的事)。决定堆栈空间的大小,不仅需要计算任务本身的需求(局部变量、函数调用等),如果允许中断嵌套,则还需要计算最多中断嵌套层数(保存寄存器、中断服务程序中的局部变量等)。,嵌入式操作系统的结构,单一内核结构 层次结构 微内核结构,操

18、作系统可以最粗略地分为内核(kernel)、设备驱动与外壳(shell)三大部分。通俗地讲,内核是操作系统的核心模块,管理CPU的运行;而外壳是内核的外围模块,对用户发出的命令进行解释和处理。,嵌入式系统内核,广义解释 指装入到存储器的嵌入式软件中的操作系统部分,在这种情况下,除了操作系统内核之外,嵌入式软件还包括板级支持包,驱动程序和应用软件 狭义解释 指嵌入式操作系统中负责多任务管理及任务之间进行通信的多任务处理部分。它进行任务管理(进程管理),时钟管理,内存管理等,1. 单一内核结构的操作系统,2. 层次结构的操作系统,3. 微内核结构的操作系统,在单一内核结构和层次结构两类操作系统中,

19、操作系统的功能大部分都是由系统内核提供的。系统内核中包含的功能很多。整个操作系统是一个整体。没有再划分内核部分和核外部分。我们把这两类操作系统统称为一体化结构的操作系统。 这样按照操作系统内核中包括的功能的多少,操作系统就被分为了微内核结构的操作系统和一体化结构的操作系统两大类。,微内核结构操作系统的优点,(1) 内核本身小,而且简单,所以系统容易理解,容易维护。 (2)系统的配置更为灵活方便。有利于其它软件开发商开发各种“第三方软件包”。 (3)更重要的是,由于微内核很小,所以CPU在内核中运行的时间十分短暂。因而提高了系统的实时性。 内核是操作系统中靠近硬件并且享有最高特权的一层。为了适应

20、嵌入式计算机存储空间小的限制,嵌入式操作系统的内核都尽量小型化。,单内核,缺点 占内存空间大,缺乏可扩展性,维护困难,排除故障和增加新功能需要重编译 优点 系统花在内核功能切换的开销非常小,对外来事件反应速度快,嵌入式操作系统的组成,1. 硬件抽象层,硬件抽象层用于屏蔽不同硬件的特征。向下它与嵌入式系统的硬件直接打交道,向上它对操作系统内核中的各个模块提供了一个统一的接口,增强了系统的可移植性。当需要将嵌入式操作系统从一个硬件平台移植到另一个硬件平台上的时候只需修改硬件抽象层的程序代码。 一些嵌入式操作系统提供一种称为板级支持包(Board Support Package)的软件模块。这种板级

21、支持包就是一种具体化的硬件抽象层软件。,2. 操作系统内核,任务管理、存储管理、任务间通信和中断响应等几部分功能必须放在操作系统的内核中。而其它的一些功能,例如时钟管理、文件管理、电源管理、动态加载等,虽然也可以放在内核之中,但更多的是放在内核之外,以服务任务或库函数的形式存在。,3. 核外服务,在多数情况下时钟管理、文件管理、电源管理、动态加载等一些功能是由内核之外的服务任务来实现。,4. 应用程序接口,应用程序接口的作用是方便用户编写特定领域的嵌入式应用程序。,嵌入式操作系统的类型,嵌入式操作系统的分类原则: 供应方式 实时性 应用,按供应方式分类,从嵌入式操作系统的供应方式上可将其分为商

22、用型和免费型两类。,按实时性分类,从嵌入式操作系统的实时性上可将其分为实时操作系统和非实时操作系统两类。,按 应用分类,从嵌入式操作系统的历史渊源上可将其分为PC型嵌入式操作系统和非PC型嵌入式操作系统两类。,任务管理,任务是一个具有独立功能的程序段的一次运行活动,是操作系统内核进行调度的基本单位。在不支持线程的嵌入式操作系统中,它相当于进程,在支持线程的系统中它相当于线程。 任务管理包括建立任务、删除任务、挂起任务、唤醒任务、设置任务属性、查询任务属性、调度任务等项工作。它们可以引起任务在各种状态之间进行转换。在这几项工作中任务调度是关键。,任务状态,任务的状态代表了任务占有系统资源的状况。

23、不同的嵌入式操作系统所定义的任务状态虽然略有不同,但都有就绪、运行、阻塞等3种状态。 1. 就绪状态:就绪状态是任务已经具备被运行的条件,正在等待被运行的状态。 2. 运行状态:运行状态是任务已经获得了处理器资源,正在被运行的状态。 3. 阻塞状态:任务正在等待某种事件发生。例如等待某一资源已经可以使用的通知。,任务状态间的转换,一个任务被建立后首先进入的是就绪状态。,处于执行状态的任务如果需要使用某种资源并且暂时得不到满足时,就会进入到阻塞状态。,处于就绪状态的任务,如果被操作系统内核中的调度程序选中,获得了CPU的使用权后就将进入执行状态,在系统的处理器上运行。,处于执行状态的任务如果执行

24、权被具有更高优先级的任务抢占或运行时间超时,就会重新回到就绪状态。,处于阻塞状态的任务,如果需要使用的资源系统已经可以得到,那么它将转换为就绪状态。,任务调度,任务调度是在多任务环境下产生的一个概念。其作用是确定任务的执行顺序和执行时间的长短。调度可被认为是在一个特定时刻用来选择将要运行的任务及其运行时间的规则。在发生以下情况后,操作系统内核通常就要进行任务调度。 (1) 中断服务程序结束运行。 (2) 当前运行的任务因等待某一资源而进入了阻塞状态。 (3) 某一任务进入就绪状态。,先来先服务(First Come First Serve,FCFS)法、轮转法是两种在通用操作系统中采用最多的调

25、度方法。但它们不太适用于嵌入式操作系统。为适应实时应用的要求,嵌入式操作系统通常采用基于优先级的可抢占式调度方法。 采用基于优先级的可抢占式调度方法时,每个任务被赋予一个优先级。这个优先级体现了任务对实时性的要求,任务的实时性越强,其优先级就越高。当有优先级更高的任务进入就绪状态时,则当前任务立即停止运行,把CPU的使用权交给这个优先级更高的任务,使它立刻投入运行。这样保证了CPU时刻总是在运行优先级最高的任务。,任务通信,在并发环境下,若一个任务不受其它任务的影响,则称该任务为独立任务,若一个任务会受到其它任务的影响,则称该任务和影响它的任务为协作任务。任务之间的影响关系有互斥、同步、数据交

26、换等3种。这3种关系统称为任务通信。 (1) 互斥:互斥指多个任务不能同时使用同一资源。例如,CPU、打印机、数据等。 (2) 同步:同步指一个任务能否继续执行需要受到另一个任务的制约。例如,打印任务必须等计算任务完成计算工作之后才能开始打印计算结果。 (3) 数据交换:数据交换目的是为了在任务之间传递一批数据。,57,存储器 storage, memory,内存储器(简称内存、主存、物理存储器) 处理机能直接访问的存储器。用来存放系统和用户的程序和数据,其特点是存取速度快,存储方式是以新换旧,断电信息丢失。,外存储器(简称外存、辅助存储器) 处理机不能直接访问的存储器。用来存放用户的各种信息

27、,存取速度相对内存而言要慢得多,但它可用来长期保存用户信息。,存储管理概述,协调使用这些存储器正是OS提要做的工作之一,存储管理概述,存储管理概述,内存的作用,由存储单元(字节或字)组成的一维连续地址空间,用来存放当前正在运行的程序的代码或数据,是程序中指令本身(程序计数器)所指向的存储空间,内存空间一般分为: (1)系统区,存放操作系统,一些标准子程序。 (2)用户区,存放用户的程序和数据等。,基本概念 1、实存储器和虚存储器 (1)实存储器 实存储器是计算机系统中配置的实际物理存储器。 通常有三类: 内存储器(主存储器)、外存储器(辅助存储器)和高速缓存,(2)虚存储器 虚存储器有两层含义

28、: 指用户程序的逻辑地址构成的地址空间; 指当内存容量不满足用户要求时,采用一种将内存空间与外存空间有机地结合在一起,利用内外存自动调度的方法构成的一个大的存储器,从而给用户程序提供更大的访问空间。,2、逻辑地址和物理地址 (1)逻辑地址 用户程序经过编译或汇编形成的目标代码,通常采用相对地址形式,其首地址为零,其余指令中的地址都是相对首地址而定。这个相对地址就称为逻辑地址或虚拟地址。 (2)物理地址 物理地址是内存中各存储单元的编号,即存储单元的真实地址,是可识别、可寻址并实际存在的。,3、地址映射 为了保证CPU执行程序指令时能正确访问存储单元,需要将用户程序中的逻辑地址转换为运行时可由机器直接寻址的物理地址,这一过程称为地址映射或地址重定位。 地址映射又可分成两类: (1)静态地址映射。 (2)动态地址映射。,64,单一连续区存储管理(Single-Partition Allocation),内存分为两个区域: 系统区,用户区。应用程序装入到用户区,可使用用户区全部空间。 最简单,适用于单用户、单任务的OS。 优点:易于管理。 缺点:同单道程序一样,内存利用率低.,单一连续区存储管理,原理,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论