《嵌入式系统-课件.ppt》由会员分享,可在线阅读,更多相关《嵌入式系统-课件.ppt(473页珍藏版)》请在三一办公上搜索。
1、第1章 嵌入式系统基础,第1章 嵌入式系统基础第2章 嵌入式系统开发过程第3章 ARM体系结构 第4章 ARM系统硬件设计基础第5章 基于S3C2410的系统硬件设计第6章 Linux操作系统基础 第7章 嵌入式Linux软件设计第8章 图形用户接口MiniGUI,主要内容,1,3,2,4,嵌入式系统概念,嵌入式处理器,嵌入式操作系统,实时操作系统的内核,5,嵌入式技术发展现状及趋势,1.1.1 嵌入式系统的定义,一般定义以应用为中心、以计算机技术为基础,软硬件可裁剪,应用系统对功能、可靠性、成本、体积、功耗和应用环境有特殊要求的专用计算机系统。是将应用程序、操作系统和计算机硬件集成在一起的系
2、统(技术角度)嵌入式系统是设计完成复杂功能的硬件和软件,并使其紧密耦合在一起的计算机系统。(系统角度)术语嵌入式反映了这些系统通常是更大系统(被称之为嵌入的系统)的一个完整子系统。嵌入式的系统可以包含多个嵌入式系统。广义定义任何一个非计算机的计算系统,IEE定义嵌入式系统是“用于控制、监视或者辅助操作的机器、设备或装置”(原文为devices used to control,monitor,or assist the operation of equipment,machinery or plants)。通常执行特定功能嵌入式系统的核心-嵌入式微处理器严格的时序和稳定性要求全自动操作循环,1.
3、1.2 嵌入式系统的组成,嵌入式系统通常由嵌入式处理器、外围设备、嵌入式操作系统和应用软件等几大部分组成。,嵌入式系统组成,嵌入式系统硬件组成,嵌入式处理器,嵌入式处理器是嵌入式系统的核心部件。嵌入式处理器与通用处理器的最大不同点在于嵌入式处理器大多工作在为特定用户群设计的系统中。它通常把通用计算机中许多由板卡完成的任务集成在芯片内部,从而有利于嵌入式系统设计趋于小型化,并具有高效率、高可靠性等特征。大的硬件厂商会推出自己的嵌入式处理器,因而现今市面上有1000多种嵌入式处理器芯片,其中使用最为广泛的有ARM,MIPS,PowerPC,MC68000等。,外围设备,外围设备是指在一个嵌入式系统
4、中,除了嵌入式处理器以外的完成存储、通信、调试、显示等辅助功能的其他部件。,根据外围设备的功能可分为以下3类:存储器:静态易失型存储器(RAM,SRAM)、动态存储器(DRAM)和非易失型存储器(Flash)。其中,Flash以可擦写次数多、存储速度快、容量大及价格低等优点在嵌入式领域得到了广泛的应用。接口:应用最为广泛的包括并口、RS-232串口、IrDA红外接口、SPI串行外围设备接口、I2C(Inter IC)总线接口、USB通用串行总线接口、Ethernet网口等。人机交互:LCD、键盘和触摸屏等人机交互设备。,嵌入式操作系统,嵌入式操作系统是用来管理存储器分配、中断处理、任务间通信和
5、定时器响应,以及提供多任务处理等的软件模块集合。,嵌入式操作系统常常有实时要求,所以嵌入式操作系统往往又是“实时操作系统”。,应用软件,嵌入式系统的应用软件是针对特定的实际专业领域的,基于相应的嵌入式硬件平台,并能完成用户预期任务的计算机软件。,嵌入式软件的特点如下:(1)软件要求固态化存储。(2)软件代码要求高质量、高可靠性。(3)系统软件的高实时性是基本要求。(4)多任务实时操作系统成为嵌入式应用软件的必需。,1.1.3 嵌入式系统的特点,软硬件一体化,集计算机技术、微电子技术、行业技术为一体;需要操作系统支持,代码小、执行速度快;专用紧凑,用途固定,成本敏感;可靠性要求高;多样性,应用广
6、泛、种类繁多。,1.1.4 嵌入式系统的应用,嵌入式应用,信息家电,智能玩具,军事电子,通信设备,移动存贮,工控设备,智能仪表,汽车电子,网络设备,消费电子,军事国防,电子商务,工业控制,1.1.5 实时系统,实时系统(Real Time System)是指产生系统输出的时间对系统至关重要的系统。从输入到输出的滞后时间必须足够小到一个可以接受的时限内。,实时系统通常具备以下重要的特性:1实时性 2并行性 3多路性 4独立性 5可预测性 6可靠性,概念,特性,实时系统中主要通过3个指标来衡量系统的实时性,即:响应时间(Response Time):指计算机从识别一个外部事件到做出响应的时间。生存
7、时间(Survival Time):指数据的有效等待时间,在这段时间里数据是有效的。吞吐量(Throughput):指在一段给定时间内,系统可以处理事件的总数。吞吐量通常比平均响应时间的倒数小一点。,衡量实时性的指标,实时系统的分类,根据响应时间可分为3种类型:1强实时系统 2弱实时系统 3一般实时系统,根据确定性可分为2种类型:1硬实时系统 2软实时系统,主要内容,1,3,2,4,嵌入式系统概念,嵌入式处理器,嵌入式操作系统,实时操作系统的内核,5,嵌入式技术发展现状及趋势,一、嵌入式处理器分类,嵌入式微处理器(Embedded Microprocessor Unit,EMPU)微控制器(M
8、icrocontroller Unit,MCU)DSP处理器(Digital Signal Processor,DSP)片上系统(System On Chip,SOC),嵌入式微处理器,嵌入式微处理器是由通用计算机中的CPU演变而来的。与计算机处理器不同的是,只保留和嵌入式应用紧密相关的功能硬件,去除其他的冗余功能部分,配上必要的扩展外围电路,如存储器的扩展电路、I/O的扩展电路和一些专用的接口电路等,这样就可以最低的功耗和资源满足嵌入式应用的特殊要求。嵌入式微处理器虽然在功能上与标准微处理器基本相同,但一般在工作温度、抗电磁干扰、可靠性等方面都做了各种增强。与工业控制计算机相比,嵌入式微处理
9、器具有体积小、重量轻、成本低、可靠性高等优点。,目前主要的嵌入式处理器类型有ARM、MIPS、Am186/88、386EX、PowerPC、68000系列等。,微控制器,又称单片机,这种位的电子器件目前在嵌入式设备中仍然有着极其广泛的应用。单片机芯片内部集成Flash、RAM、总线逻辑、定时器/计数器、WatchDog、I/O,串行口、脉宽调制输出、A/D,D/A等各种必要的功能模块和外围部件。代表性的通用系列包括8051、P51XA、MCS-251、MCS-96/196/296、C166/167、MC68HC05/11/12/16、68300等。另外还有许多半通用系列如:支持USB接口的MC
10、U 8XC930/931、C540、C541;支持I2C、CAN-Bus、LCD及众多专用MCU和兼容系列。目前MCU占嵌入式系统约70的市场份额。,DSP处理器,DSP处理器是专门用于信号处理方面的处理器,其在系统结构和指令算法方面进行了特殊设计,在数字滤波、FFT、谱分析等各种仪器上DSP获得了大规模的应用。DSP处理器有两个发展来源,一是DSP处理系统经过单片化、电磁兼容(EMC)改造以及增加片上外设,成为DSP处理器;二是在通用单片机或SoC中增加DSP协处理器。DSP处理器比较有代表性的产品是TI公司的TMS320系列、ADI公司的ADSP21XX系列和Motorola公司的DSP5
11、6000系列。,片上系统,SoC就是System on Chip,SoC是一种基于IP(Intellectual Property)核嵌入式系统设计技术。它结合了许多功能区块,将功能做在一个芯片上,ARM RISC、MIPS RISC、DSP或是其他的微处理器核心,加上通信的接口单元,例如通用串行端口(USB)、TCP/IP通信单元、GPRS通信接口、GSM通信接口、IEEE1394、蓝牙模块接口等等,这些单元以往都是依照各单元的功能做成一个个独立的处理芯片。嵌入式片上系统设计的关键是IP核的设计。IP核分为硬核、软核和固核,是嵌入式技术的重要支持技术。,二、典型的嵌入式处理器,1ARM处理器
12、2MIPS处理器 3PowerPC处理器 4MC68K/Coldfire处理器 5x86处理器,ARM处理器,ARM(Advanced RISC Machines)公司是全球领先的16/32位RISC微处理器知识产权设计供应商。,ARM处理器有3大特点:小体积、低功耗、低成本而高性能;16/32位双指令集;全球众多的合作伙伴。,ARM处理器分ARM7、ARM9、ARM9E、ARM10、ARM11和SecurCore系列。,MIPS处理器,MIPS(Microprocessor without Interlocked Pipeline Stages)技术公司是一家设计制造高性能、高档次及嵌入式3
13、2位和64位处理器的厂商。,MIPS的定位很广。在高端市场它有64位的20Kc系列,在低端市场有SmartMIPS。,PowerPC体系结构的特点是可伸缩性好,方便灵活。PowerPC处理器品种很多,既有通用的处理器,又有微控制器和内核。其应用范围非常广泛,从高端的工作站、服务器到桌面计算机系统,从消费类电子产品到大型通信设备,无所不包。基于PowerPC架构的处理器有IBM 公司开发的PowerPC 405 GP,它是一个集成10/100Mbps以太网控制器、串行和并行端口、内存控制器以及其它外设的高性能嵌入式处理器。,PowerPC处理器,Apple机以前使用的就是Motorola 680
14、00(68K),比Intel公司的8088还要早。但现在,Apple、Motorola公司已放弃68K而专注于ARM了。,MC68K/Coldfire处理器,x86系列处理器是最常用的,它起源于Intel架构的8080,发展到现在Pentium 4、Athlon和AMD的64位处理器Hammer。486DX是当时和ARM、68K、MIPS、SuperH齐名的五大嵌入式处理器之一。现有基于x86的STPC高度集成系统。,x86处理器,主要内容,1,3,2,4,嵌入式系统概念,嵌入式处理器,嵌入式操作系统,实时操作系统的内核,5,嵌入式技术发展现状及趋势,1.3.1 操作系统的概念和分类,操作系统
15、的概念,操作系统OS(Operation System)是一组计算机程序的集合,用来有效地控制和管理计算机的硬件和软件资源,即合理地对资源进行调度,并为用户提供方便的应用接口。它为应用支持软件提供运行环境,即对程序开发者提供功能强、使用方便的开发环境。,操作系统的功能,处理器管理,存储器管理,设备管理,文件管理,用户接口,对处理器进行分配,并对其运行进行有效地控制和管理。处理器的分配和运行都是以进程为基本单位进行的,因此对处理器的管理可以归结为对进程的管理,包括进程控制、进程同步、进程通信、作业调度和进程调度等。,为多道程序的运行提供良好的环境,包括内存分配、内存保护、地址映射、内存扩充等。,
16、包括缓冲管理、设备分配、设备处理、形成虚拟逻辑设备等。,文件管理的主要任务就是对系统文件和用户文件进行管理,方便用户的使用,保证文件的安全性。文件管理包括对文件存储空间的管理、目录管理、文件的读写管理以及文件的共享与保护等。,用户与操作系统的接口是用户能方便地使用操作系统的关键所在。,计算机操作系统的分类,按程序运行调度的方法分类:1顺序执行系统 即系统内只有一个运行程序,它独占CPU时间,按语句顺序执行该程序,直至执行完毕,另一程序才能启动运行。DOS操作系统就属于这种系统。2分时操作系统 系统内同时可有多道程序运行。所谓同时,只是从宏观上说;实际上系统把CPU的时间按顺序分成若干时间片,每
17、个时间片内执行不同的程序。这类系统支持多用户,当今广泛用于商业、金融领域。UNIX操作系统就属于这种系统。3实时操作系统 系统内同时有多道程序运行,每道程序各有不同的优先级,操作系统按事件触发使程序运行。当多个事件发生时,系统按优先级高低确定哪道程序在此时此刻占有CPU,以保证优先级高的事件先运行,从而实现实时信息及时被采集。,嵌入式操作系统的分类,从实时性的角度来看,嵌入式操作系统可以分为:具有强实时特点的嵌入式操作系统;具有弱实时特点的嵌入式操作系统;没有实时特点的嵌入式操作系统。,从应用的角度来看,嵌入式操作系统可以分为:面向低端信息家电IA(Internet Appliance,如智能
18、电话、家庭网关等)的嵌入式操作系统;面向高端信息家电(如数字电视等)的嵌入式操作系统;面向个人通信终端(如手机、PDA、Pocket PC等)的嵌入式操作系统;面向通信设备的嵌入式操作系统;面向汽车电子的嵌入式操作系统;面向工业控制的嵌入式操作系统。,嵌入式操作系统的基本概念,任务、进程和线程,任务:任务是指一个程序分段,这个分段被操作系统当作一个基本工作单元来调度。任务是在系统运行前已设计好的。进程:进程是指任务的一次运行过程,它是动态过程。有些操作系统把任务和进程等同看待,认为任务是一个动态过程,即执行任务体的动态过程。线程:20世纪80年代中期,人们提出了比进程更小的能独立运行和调度的基
19、本单位线程,并以此来提高程序并发执行的程度。近些年,线程的概念已被广泛应用。,嵌入式操作系统的基本概念,多用户及多任务,多用户的含义是,允许多个用户通过各自的终端使用同一台主机,共享同一个操作系统及各种系统资源。每个用户的应用程序可以设计成不同的任务,这些任务可以并发执行。用户及多任务系统可以提高系统的吞吐量,更有效地利用系统资源。,嵌入式操作系统的基本概念,任务的事件驱动,嵌入式操作系统的基本概念,中断与中断优先级,中断是计算机中软件系统与硬件系统共同提供的功能。它包括中断源、中断优先级、中断处理程序及中断任务等相关概念。实时操作系统充分利用中断来改变CPU执行程序的顺序,达到实时处理目的。
20、系统中所有中断控制器一共可以连接几个外部信号,则称系统有几个中断源。,操作系统对每个中断级指定了优先级,称之为中断优先级。在多个中断源同时发出申请时,CPU按优先级的高低顺序处理。这种总是保证优先级最高的任务占用CPU的方式,称为按优先级抢占式调度。,嵌入式操作系统的基本概念,同步与异步,实时系统中常用同步或异步来说明事件发生的时序或任务执行的顺序关系。由于事件1停止而引起事件2发生,或者必须有事件2发生,事件3才可能发生,如此类推,这一系列与时间相关的事件称为同步事件。由同步事件驱动的任务称为同步任务。使任务同步的目的是使相关任务在执行顺序上协调,不至于发生时间相关的差错,以保证任务互斥地访
21、问系统的内存、外设等共享资源。异步事件是指随机发生的事件。异步事件发生的因素很复杂,往往与工业现场有关,难以预测其发生的时间,因此异步事件又称随机事件。由异步事件驱动的任务称为异步任务。中断任务都是异步任务,优先级高于同步任务。,嵌入式操作系统的基本概念,资源与临界资源,程序运行时可使用的软、硬件环境统称为资源。主要包括CPU的可利用时间、系统可提供的中断源、内存空间与数据、通用外部设备等等。没有指派给具体任务的资源属于系统所有,是共享资源。如果系统中出现2个以上任务可能同时访问的共享资源,则称为临界资源。系统中的公共数据区、打印机等都是临界资源。系统内任务应采取互斥的方式访问共享资源。在实时
22、多任务系统中,当异步任务被激活时,容易出现资源的临界状态。实时多任务操作系统中应保证任何时刻临界资源内只有一个任务在访问。资源临界问题解决不好,执行任务交不出资源的控制权,将引起系统死锁。,嵌入式操作系统的基本概念,容错与安全,容错是指这样一种性能或措施,当系统内某些软、硬件出现故障时,系统仍能正常运转,完成预定的任务或某些重要的不允许间断的任务。容错能力包括系统自诊断、自恢复、自动切换等多方面能力,由软、硬件共同采取措施才能实现。容错是实时系统提高可靠性的手段。安全性控制是操作系统对自身文件和用户文件的存取合法性的控制。在实时操作系统中安全性极为重要,必须保证系统工作的高度可靠和安全,防止对
23、应用系统有意或无意的破坏。通常采用一些软件控制方法来保证系统的安全性,如标记检查、多级口令设置、加密等等。,1.3.2 实时操作系统,实时操作系统(RTOS)是具有实时性且能支持实时控制系统工作的操作系统。,RTOS与通用计算机OS的区别:实时性。响应速度快,只有几微秒;执行时间确定、可预测;代码尺寸小。10100KB,节省内存空间,降低成本;应用程序开发较难;需要专用开发工具:仿真器、编译器和调试器等。,实时操作系统的发展,实时操作系统的研究是从20世纪60年代开始的。从系统结构上看,实时操作系统经历了以下3个发展阶段。(1)早期的实时操作系统 不能称为真正的实时操作系统。它只是一个小而简单
24、、具有一定专用性的软件,其功能较弱,可以认为是一种实时监控程序。它一般为用户提供对系统的初始管理以及简单的实时时钟管理。(2)专用实时操作系统 在国外称为Real-Time Operating System Developed in House。它是早期用户为满足自身开发需要而研制的,一般只能用于特定的硬件环境,且缺乏严格的评测,移植性也不太好。(3)通用实时操作系统 大多采用软组件结构,以“标准组件”构成通用的实时操作系统。一方面,在实时操作系统内核的最底层将不同的硬件特性屏蔽掉;另一方面,对不同的应用环境提供了标准的、可剪裁的系统服务软组件。,实时操作系统的组成,根据面向实际应用领域的不同
25、,实时操作系统的组成也有所不同。但一般都包括以下几个重要组成部分:(1)实时内核 实时内核一般都是多任务的。它主要实现任务管理、定时器管理、存储器管理、任务间通信与同步、中断管理等功能。(2)网络组件 网络组件实现了链路层的ARP/RARP协议、PPP及SLIP协议,网络层的IP协议,传输层的TCP和UDP协议。网络组件为应用层提供服务,它本身是可裁减的。(3)文件系统 对于比较复杂的文件操作应用来说,文件系统是必不可少的。它也是可裁减的。(4)图形用户界面 图形用户界面(GUI)为用户提供文字和图形以及中英文的显示和输入。它同样是可裁减的。,实时操作系统的特点,(1)支持异步事件的响应 实时
26、操作系统为了对外部事件在规定的时间内进行响应,要求具有中断和异步处理的能力。(2)中断和调度任务的优先级机制 为区分用户的中断以及调度任务的轻重缓急,需要有中断和调度任务的优先级机制。(3)支持抢占式调度 为保证高优先级的中断或任务的响应时间,实时操作系统必须提供一旦高优先级的中断或任务准备好,就能马上抢占低优先级任务的CPU使用权的机制。(4)确定的任务切换时间和中断延迟时间 确定的任务切换时间和中断延迟时间是实时操作系统区别于普通操作系统的一个重要标志,是衡量实时操作系统实时性的重要标准。(5)支持同步 提供同步和协调共享数据的使用。,1.3.3 常见的嵌入式操作系统,VxWorks,C/
27、OS,C/OS-,Windows CE,嵌入式Linux,PalmOS,QNX,Delta OS,Hopen OS,pSOS,VxWorks,VxWorks操作系统是美国WindRiver公司于1983年设计开发的一种嵌入式实时操作系统(RTOS),具有良好的持续发展能力、高性能的内核以及友好的用户开发环境,在嵌入式实时操作系统领域牢牢占据着一席之地。VxWorks所具有的显著特点是:可靠性、实时性和可裁减性。它支持多种处理器,如x86、i960、Sun Sparc、Motorola MC68xxx、MIPS、POWER PC等等。以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空航
28、天等高精尖技术及实时性要求极高的领域中,如火星探测器(1997年7月4日登陆火星表面)。,C/OS和C/OS-,C/OSMicro Controller O SC/OS简介美国人Jean Labrosse 1992年完成,已应用于数百种产品中。应用面覆盖了诸多领域,如照相机、医疗器械、音响设备、发动机控制、高速公路电话系统、自动提款机等 1998年C/OS-II,目前的版本C/OS-II V2.722000年,得到美国航空管理局(FAA)的认证,可以用于飞行器中是一个源码公开、可移植、可裁减、占用资源少、抢先式的实时多任务操作系统。其绝大部分源码采用ANSI C写的,移植性好。高校教学可免费使
29、用。,C/OS-II的系统结构,C/OS-II的任务状态转移图,Windows CE,Windows CE:一种针对小容量、移动式、智能化、32位、连接设备的模块化实时嵌入式操作系统(缩减的Win95)。针对掌上设备、无线设备的动态应用程序和服务提供了一种功能丰富的操作系统平台,属于软实时操作系统,由于其Windows背景,界面比较统一认可。可以使用大多数Windows开发工具(如VB,VC等),大多数Windows应用程序经过移植后就可以运行在WinCE平台上。操作系统的基本内核需要至少200K的ROM。,嵌入式Linux,Linux是开放源码和免费使用的,遍布全球的众多Linux爱好者又是
30、Linux开发的强大技术后盾。嵌入式Linux(Embedded Linux)是指对Linux经过小型化裁剪后,能够固化在容量只有几百K字节或几兆字节的存储器芯片或单片机中,应用于特定嵌入式场合的专用Linux操作系统。嵌入式Linux的开发和研究是目前操作系统领域的一个热点。主要有RTLinux和CLinuxLinux的内核小、功能强大、API丰富,系统健壮、效率高,易于定制剪裁,在价格上极具竞争力。Linux不仅支持x86 CPU,还可以支持其他数十种CPU芯片。近几年Linux在嵌入式领域异军突起,过去的一年中有13%的用户已经开始使用嵌入式Linux系统进行开发工作;有52%的用户决定
31、在未来24个月内开始使用Linux作为嵌入式操作系统的开发原型。,Clinux,PalmOS,Palm OS是著名的网络设备制造商3COM旗下的Palm Computing掌上电脑公司的产品。Palm OS是一套专门为掌上电脑编写的操作系统,充分考虑到了掌上电脑内存相对较小的情况,所以Palm操作系统本身所占的内存很小,基于Palm操作系统编写的应用程序所占的空间也很小,通常只有几十KB,因此基于Palm操作系统的掌上电脑虽然只有几兆内存却可以运行众多的应用程序。Palm OS在PDA市场上占有很大的市场份额,目前主要与WIN CE进行激烈竞争。代表性的产品有Palm m505、Palm m5
32、00、Palm III等。,QNX,加拿大QNX公司的产品。其内核仅提供4种服务:进程调度、进程间通信、底层网络通信和中断处理,其进程在独立的地址空间中运行。QNX内核非常小巧(QNX4.x大约为12KB),而且运行速度极快。QNX是一个实时的、可扩充的操作系统,它部分遵循POSIX相关标准,由于QNX具有强大的图形界面功能,因此很适合作为机顶盒、手持设备(手掌电脑、手机)、GPS设备的实时操作系统使用。,Delta OS,Delta OS是电子科技大学嵌入式实时教研室和科银公司联合研制开发的全中文的嵌入式操作系统。提供强实时和嵌入式多任务的内核,任务响应时间快速、确定,不随任务负载大小改变。
33、绝大部分的代码由C语言编写,具有很好的移植性。适用于内存要求较大、可靠性要求较高的嵌入式系统。主要包括嵌入式实时内核DeltaCORE、嵌入式TCP/IP组件DeltaNET、嵌入式文件系统DeltaFILE以及嵌入式图形用户界面DeltaGUI等。提供一整套的嵌入式开发套件LamdaTOOL和一整套嵌入式开发应用解决方案,已成功应用于通信、网络、信息家电等多个应用领域。,Hopen OS,Hopen OS是凯思集团自主研制开发的实时操作系统。由一个体积很小的内核及一些可以根据需要进行定制的系统模块组成。其核心Hopen Kernel的规模一般为10KB左右,占用空间小。具有实时、多任务、多线
34、程的系统特征。,pSOS,pSOS是ISI(Integrated Systems Inc)公司研发的产品,是世界上最早的实时系统之一,也是最早进入中国市场的实时操作系统。pSOS是一个模块化、高性能、完全可扩展的实时操作系统。专为嵌入式微处理器设计,提供了一个完全多任务环境,在定制的或是商业化的硬件上提供高性能和高可靠性。包含单处理器支持模块(pSOS+)、多处理器支持模块(pSOS+m)、文件管理器模块(pHILE)、TCP/IP通信包(pNA)、流式通信模块(OpEN)、图形界面、Java,HTTP等。,主要内容,1,3,2,4,嵌入式系统概念,嵌入式处理器,嵌入式操作系统,实时操作系统的
35、内核,5,嵌入式技术发展现状及趋势,在实时操作系统中最关键的部分是实时多任务内核。它主要实现的功能包括:任务管理任务间通信与同步存储器管理定时器管理中断管理,1.4 实时操作系统的内核,1.4.1 任务管理,任务,实时操作系统中的任务与操作系统中的进程相似。它是具有独立功能的无限循环的程序段的一次运行活动。,任务的状态,运行态(Executing):获得CPU控制权。就绪态(Ready):进入任务等待队列,通过调度转为运行状态。挂起态(Suspended):任务发生阻塞,移出任务等待队列,等待系统实时事件的发生而唤醒,从而转为就绪或运行态。休眠态(Dormant):任务完成或错误等原因被清除的
36、任务,也可以认为是系统中不存在的任务。,实时内核的任务管理实现在应用程序中建立任务,删除任务,挂起任务,恢复任务,以及对任务的响应、切换和调度等功能。,1.4.1 任务管理,任务管理,常用的任务调度算法,基于优先级的调度算法非抢占式调度抢占式调度同一优先级的时间片轮转调度算法单调速率调度算法,基于优先级的调度算法,实时系统为每个任务赋予一个优先级。实时系统允许多个任务共享一个优先级,通过同一优先级的时间片轮转调度算法,完成任务间的调度。优先级调度原则是让高优先级的任务在得到资源运行的事件上比低优先级任务更有优先权。实时操作系统都采用基于优先级的任务调度算法。按照任务在运行过程中是否能被抢占,可
37、以分为抢占式调度和非抢占式调度两种。,基于优先级的调度算法非抢占式调度,非抢占式(Non-preemptive)调度算法也称作合作型多任务(Cooperative Multitasking)。中断服务可以使一个高优先级的任务由挂起状态变为就绪状态,但中断服务以后控制权还是回到原来被中断的任务,直到该任务主动放弃CPU的使用权时,高优先级的任务才能获得CPU的使用权。,基于优先级的调度算法抢占式调度,抢占式(preemptive)调度算法确保最高优先级的任务一旦就绪,总能得到CPU的控制权。,优先级反转问题,基于优先级的调度算法抢占式调度,实例简要说明:任务1:优先级较高。要使用资源S,使用完毕
38、程序结束。任务2:优先级中等。不使用资源S。任务3:优先级最低。要使用资源S,使用完毕程序结束。S:具有互斥机制保护的同一共享资源。3个任务的就绪顺序为:任务3首先进入就绪状态。在任务3运行过程中,任务1和任务2都进入就绪状态。其中任务1比任务2先进入就绪状态。,基于优先级的调度算法抢占式调度,优先级反转问题,解决优先级反转问题的方法:优先级继承(Priority Inheritance)优先级封顶(Priority Ceiling),优先级继承,设C为正占用着某项共享资源的进程P以及所有正在等待占用此项资源的进程的集合。找出这个集合中的优先级最高者P_h,其优先级为p。把进程P的优先级设置成
39、p。,优先级继承通过提高任务3的优先级达到与任务1相同的优先级,来避免优先级反转问题的出现。,使用优先级继承后任务的运行流程,基于优先级的调度算法抢占式调度,优先级封顶,设C为所有可能竞争使用某项共享资源的进程的集合。事先为这个集合规定一个优先级上限p,使得这个集合中所有进程的优先级都小于p。注意p并不一定是整个系统中的最高优先级。在创建保护该项资源的信号量或互斥量时,将p作为一个参数。每当有进程通过这个信号量或互斥量取得对共享资源的独占使用权时,就将此进程的优先级暂时提高到p,一直到释放该项资源的时候才恢复其原有的优先级。,使用优先级封顶后任务的运行流程,优先级继承和优先级封顶的比较,基于优
40、先级的调度算法抢占式调度,两种算法都改变了任务3的优先级,但改变优先级的时间和改变的范围有所不同。优先级继承只在占有资源的低优先级任务阻塞了高优先级的任务运行时,才动态更改低优先级的任务到高优先级。这种算法对应用中任务的流程影响比较小。优先级封顶则不管任务是否阻塞了高优先级任务的运行,只要任务访问该资源,都会提升任务的优先级到可访问这个资源的所有任务的最高优先级。这两种算法各有优缺点,实际选择时要看具体的应用情况。,同一优先级的时间片轮转调度算法,针对多个任务允许共用一个优先级的内核。如果系统中优先级最高的任务有两个或两个以上,调度器依照就绪的先后次序调度第一个任务。当其执行一段特定的时间片后
41、,无论任务完成与否,处理器都会结束该任务的运行,转入下一个就绪的同优先级任务。若有更高优先级的任务就绪,则应用基于优先级的可抢占调度算法调度更高优先级的任务。未运行完的任务释放处理器的控制权后,放到就绪队列的末尾,等待下一个时间片来竞争处理器。,单调速率调度算法,单调速率调度算法RMS(Rate Monotonic Scheduling)主要用于分配任务的优先级。它是根据任务执行的频率确定优先级的。任务的执行频率越高,其优先级越高;反之,优先级越低。,1.4.2 任务间的通信和同步,任务间的通信,任务间的通信有两种方式:共享数据结构开/关中断设置测试标志禁止任务切换信号量消息机制消息邮箱消息队
42、列,1.4.2 任务间的通信和同步,任务间的同步,任务同步中也常常使用信号量。这里的信号量不再作为一种互斥机制,而是代表某个特定事件是否发生。任务的同步有单向同步和多向同步两种。(1)单向同步 标志事件是否发生的信号量初始化为0。一个任务在等待某个事件时,查看该事件的信号量是否为非0。另一个任务或中断处理程序在进行操作时,当该事件发生后,将该信号量置为1。(2)双向同步 两个任务之间可以通过两个信号量进行双向同步。双向同步有两个初始化为0的信号量,每个信号量进行一个方向的任务同步,两信号量的同步方向是相反的。,1.4.3 存储器管理,存储器管理提供对内存资源的合理分配和存储保护功能。,在大多数
43、嵌入式实时系统中,不采用虚拟存储机制来实现对内存空间的直接管理,并且用分区与块的结合来避免内存碎片的出现。内核把内存分成多个空间大小不等的分区,每个内存分区又分为许多大小相同的块,各分区的块的大小不同。对于应用程序的动态申请内存的要求,内存管理模块将比较每个分区中块的大小,从大于且最接近用户申请空间块大小的分区中选出一个未使用的块分配给用户使用。,1.4.4 定时器和中断管理,实时内核要求用户提供定时中断以完成延时与超时控制等功能。实时系统中时钟是必不可少的硬件设备,它用来产生周期性的时钟节拍信号。实时内核的设计中,在实时时钟的基础上由用户自定义时钟节拍(Tick)的大小,一个Tick值是用户
44、应用系统的最小时间单位。通过时钟中断服务程序,实时时钟可以完成软定时器和时间片轮转的时间计数功能。实时内核的中断管理与一般操作系统内核的中断管理大体相同。中断管理负责中断的初始化、现场的保存和恢复、中断栈的嵌套管理等。,主要内容,1,3,2,4,嵌入式系统概念,嵌入式处理器,嵌入式操作系统,实时操作系统的内核,5,嵌入式技术发展现状及趋势,发展现状,发展趋势,1.5 嵌入式技术发展现状及趋势,嵌入式系统正处在一个飞速发展和激烈竞争的时代。在国外,嵌入式系统硬件,特别是嵌入式CPU的处理能力提升较快。国内的个人数字助理(PDA)市场火爆 嵌入式操作系统市场竞争激烈,Linux成为嵌入式操作系统的
45、新宠。,小型化(PDA)人们携带方便;经济性要让更多的人能买得起;可靠性(汽车)能在苛刻的环境条件下运行;高速度(飞机)能够迅速完成数据计算或传输;智能性(知识推理、模糊查询、识别、感知运动)使人们用起来更习惯,对人们更有使用价值。,第2章 嵌入式系统开发过程,主要内容,1,3,2,4,嵌入式软件开发的特点,嵌入式软件的开发流程,嵌入式系统的调试,板极支持包,2.1 嵌入式软件开发的特点,嵌入式系统与通用计算机系统的差别:人机交互界面有限的功能时间关键性和稳定性,嵌入式软件开发的特点:需要交叉开发环境:交叉开发环境是指实现编译、链接和调试应用程序代码的环境。与运行应用程序的环境不同,它分散在有
46、通信连接的宿主机与目标机环境之中。宿主机(Host)是一台通用计算机,一般是PC机。它通过串口或网络连接与目标机通信。目标机(Target)可以是嵌入式应用软件的实际运行环境,也可以是能替代实际环境的仿真系统。引入任务设计方法 需要固化程序 软件开发难度大 嵌入式应用软件对实时性、稳定性、可靠性、抗干扰性等性能的要求都比通用软件的要求更为严格和苛刻。,2.2 嵌入式系统开发的流程,嵌入式软件的开发流程与通用软件的开发流程大同小异,但开发所使用的设计方法具有嵌入式开发的特点。整个开发流程可分为:需求分析阶段设计阶段生成代码阶段固化阶段,需求分析阶段,嵌入式系统应用需求中最为突出的是注重应用的时效
47、性,需求分析阶段的主要任务是:(1)对问题的识别和分析 对用户提出的问题进行抽象识别用以产生以下的需求:功能需求、性能需求、环境需求、可靠性需求、安全需求、用户界面需求、资源使用需求、软件成本与开发进度需求。(2)制订规格说明文档 经过对问题的识别,产生了系统各方面的需求。通过对规格的说明,文档得以清晰、准确地描述。这些说明文档包括需求规格说明书和初级的用户手册等。(3)需求评审 需求评审作为系统进入下一阶段前最后的需求分析复查手段,在需求分析的最后阶段对各项需求进行评估,以保证软件需求的质量。需求评审的内容包括正确性、无歧义性、安全性、可验证性、一致性、可理解性、可修改性、可追踪性等多个方面
48、。,设计阶段,系统的设计阶段包括系统设计、任务设计和任务的详细设计。由于嵌入式系统中任务的并发性,嵌入式软件开发中引入了DARTS的设计方法。DARTS设计方法:是结构化分析/结构化设计的扩展。它给出划分任务的方法,并提供定义任务间接口的机制。DARTS设计方法的设计步骤如下:(1)数据流分析(2)划分任务(3)定义任务间的接口,生成代码阶段,生成代码阶段需要完成的工作包括代码编程、交叉编译和链接、交叉调试和测试等。,代码编程,生成代码阶段,在嵌入式系统的开发过程中,一般采用的方法是先在通用PC上编程,然后通过交叉编译链接,将程序做成目标平台上可以运行的二进制代码格式。最后将程序下载到目标平台
49、上的特定位置,在目标板上启动运行这段二进制代码。,生成代码阶段,交叉编译和链接,嵌入式软件开发编码完成后,要进行编译和链接以生成可执行代码。但是,在开发过程中设计人员普遍使用Intel的x86系列CPU的计算机进行开发,而目标环境的处理芯片却是多种多样的,如ARM,DSP,PowerPC,DragonBall系列等,这就要求开发机上的编译器能支持交叉编译。嵌入式集成开发环境都支持交叉编译、链接,如WindRiver公司的Tornado以及GNU套件等。交叉编译链接生成两种类型的可执行文件:调试用的可执行文件和固化的可执行文件。,生成代码阶段,交叉调试,交叉调试,又叫远程调试,具有以下特点:调试
50、器和被调试的程序运行在不同的机器上。调试器运行在PC或工作站上,而被调试程序运行在各式的专用目标机上;调试器通过某种通信方式与目标机建立联系,如串口、并口、网络、JTAG或者专用的通信方式;在目标机上一般具有某种调试代理,这种代理能与调试器一起配合完成对目标机上运行程序的调试。这种代理可以是某种能支持调试的硬件,也可以是某种软件;目标机可以是一种仿真机。通过在宿主机上运行目标机的仿真软件,仿真一台目标机,使整个调试工作只在一台计算机上进行。,测试,嵌入式系统开发的测试与通用软件的测试相似,分为单元测试和系统集成测试。,固化阶段,嵌入式系统的应用软件是针对特定的实际专业领域的,基于相应的嵌入式硬