1、1嵌入式嵌入式系统设计与实例开发系统设计与实例开发ARMARM与与 C/OS-C/OS-第二讲第二讲 嵌入式系统的基本概念嵌入式系统的基本概念2课程大纲课程大纲讲课讲稿实验时间题目内容时间内容第二周3.4/二1引言嵌入式系统技术前沿、应用领域、发展趋势及相关领域研究成果第三周3.112嵌入式系统的基本知识嵌入式系统的特点、分类、基本概念第四周3.183嵌入式实时操作系统介绍主流实时操作系统,深入剖析WinCE、Linux、C/OS,包括系统结构、实时性、应用第六周4.14嵌入式硬件平台介绍主流硬件平台,详细介绍ARM、DSP、ATMEL单片机功能及应用第五周实验一、ARM SDT 2.5开发环
2、境及ARM开发平台简介第八周5嵌入式系统的设计方法介绍嵌入式系统设计的一般方法,以嵌入式工程机械智能监控器与嵌入式控制器为例第七周实验二、ARM的输入输出接口实验:I/O、A/D、键盘驱动第九周6嵌入式系统的硬件设计简要介绍外围接口设计,以LCD、触摸屏为例,着重讲解人机交互接口设计第十周实验三、ARM的串行通讯实验第十一周实验四、ARM的触摸屏驱动实验第十二周实验五、C/OS-在ARM上的移植实验第十三周7嵌入式系统编程简要介绍嵌入式软件的体系结构,着重讲解嵌入式GUI的编程方法第十四周实验六、基于C/OS-的嵌入式编程实验:消息循环、文件系统第十五周实验七、GUI编程实验第十六周8嵌入式技
3、术演讨选择5-8名有嵌入式开发经验的学生做报告,师生点评,探讨。第十七周综合实验:LCD、UDP编程9考试3l参考资料参考资料1.王田苗王田苗 主编主编.嵌入式系统设计及实例开发嵌入式系统设计及实例开发ARM与与C/OS-.北京:清华大学出版社,北京:清华大学出版社,2002.92(美)(美)Jean J.Labrosse,邵贝贝译邵贝贝译.C/OS-源码公开源码公开的实时嵌入式操作系统的实时嵌入式操作系统.北京:中国电力出版社,北京:中国电力出版社,2001.8简介:是目前学习嵌入式操作系统最好的入门教材,书中对一个完整的简介:是目前学习嵌入式操作系统最好的入门教材,书中对一个完整的嵌入式实
4、时内核嵌入式实时内核C/OS-进行了剖析,详细讲述了实时内核的进行了剖析,详细讲述了实时内核的设计和创建方法,以及多任务实时系统的原理和编程思想。设计和创建方法,以及多任务实时系统的原理和编程思想。4.马忠梅等著马忠梅等著.ARM嵌入式微处理器体系结构。北航出版社嵌入式微处理器体系结构。北航出版社3(美)(美)Wayne Wolf,孙玉方等译,孙玉方等译.嵌入式计算机系统设计原嵌入式计算机系统设计原理理.北京:机械工业出版社,北京:机械工业出版社,2002.2 简介:被称为简介:被称为“嵌入式计算系统设计的第一本教科书嵌入式计算系统设计的第一本教科书”,书中重点介绍,书中重点介绍了嵌入式技术和
5、基本原理和技术,涉及到嵌入式系统的相关的指令了嵌入式技术和基本原理和技术,涉及到嵌入式系统的相关的指令系统、系统、CPU、计算平台、程序设计与分析、进程和操作系统、硬件、计算平台、程序设计与分析、进程和操作系统、硬件加速器、网络、系统设计技术等方面。加速器、网络、系统设计技术等方面。41、什么是嵌入式系统、什么是嵌入式系统2、硬件基础、硬件基础3、嵌入式操作系统、嵌入式操作系统嵌入式系统的基本概念嵌入式系统的基本概念5一、嵌入式系统的定义一、嵌入式系统的定义发展历史发展历史嵌入式系统本身是一个相对模糊的定义。一个手持的嵌入式系统本身是一个相对模糊的定义。一个手持的MP3和一个和一个PC104的
6、微型工业控制计算机都可以认为是嵌入式系统。的微型工业控制计算机都可以认为是嵌入式系统。嵌入式系统已经有了近嵌入式系统已经有了近30年的发展历史,它是硬件和软件年的发展历史,它是硬件和软件交替发展的双螺旋式发展。交替发展的双螺旋式发展。第一款微处理器是第一款微处理器是Intel的的4004,它出现在,它出现在1971年,然后是年,然后是是是Intel公司的公司的8048,它出现在,它出现在1976年。年。Motorola同时推出了同时推出了68HC05,Zilog公司推出了公司推出了Z80系列,这些早期的单片机均含有系列,这些早期的单片机均含有256字节的字节的RAM、4K的的ROM、4个个8位
7、并口、位并口、1个全双工串行口、个全双工串行口、两个两个16位定位定时时器。器。之后在之后在80年代初,年代初,Intel又进一步完善了又进一步完善了8048,在它的基础,在它的基础上研制成功了上研制成功了8051。61981年年Ready System发展了世界上第发展了世界上第1个商业嵌入式实个商业嵌入式实时内核(时内核(VTRX32)包含了许多传统操作系统的特征,包括任务)包含了许多传统操作系统的特征,包括任务管理、任务间通讯、同步与相互排斥、中断支持、内存管理等功管理、任务间通讯、同步与相互排斥、中断支持、内存管理等功能。能。随后,出现了如随后,出现了如Integrated Syste
8、m Incorporation(ISI)的的PSOS、IMG的的VxWorks、QNX公司的公司的QNX 等,等,Palm OS,WinCE,嵌入式,嵌入式Linux,Lynx,uCOS、Nucleus,以及国内的,以及国内的Hopen、Delta OS等嵌入式操作系统。等嵌入式操作系统。今天今天RTOS已经在全球形成了已经在全球形成了1个产业,根据美国个产业,根据美国EMF(电(电子市场分析)报告,子市场分析)报告,1999年全球年全球RTOS市场产值达市场产值达3.6亿美元,亿美元,而相关的整个嵌入式开发工具(包括仿真器、逻辑分析仪、软件而相关的整个嵌入式开发工具(包括仿真器、逻辑分析仪、
9、软件编译器和调试器)则高达编译器和调试器)则高达9亿美元。亿美元。7IEEEIEEE定义定义根据根据IEEE(国际电气和电子工程师协会)的定义:(国际电气和电子工程师协会)的定义:嵌入式系统是嵌入式系统是“用于控制、监视或者辅助操作用于控制、监视或者辅助操作机器和设备的装置机器和设备的装置”(原文为(原文为devicesusedtocontrol,monitor,orassisttheoperationofequipment,machineryorplants)。)。可以看出此定义是从应用上考虑的,嵌入式系可以看出此定义是从应用上考虑的,嵌入式系统是软件和硬件的综合体,还可以涵盖机电等附属统是
10、软件和硬件的综合体,还可以涵盖机电等附属装置。装置。8一般定义一般定义“以以应用应用为中心、以计算机技术为基础、为中心、以计算机技术为基础、软件软件硬件可裁剪硬件可裁剪、功能、可靠性、成本、体积、功耗严功能、可靠性、成本、体积、功耗严格要求格要求的的专用专用计算机系统。计算机系统。”93、嵌入式系统的几个重要特征、嵌入式系统的几个重要特征(1)系统内核小)系统内核小由于嵌入式系统一般是应用于小型电子装置由于嵌入式系统一般是应用于小型电子装置的,系统资源相对有限,所以内核较之传统的操作的,系统资源相对有限,所以内核较之传统的操作系统要小得多。系统要小得多。比如比如ENEA公司的公司的OSE分布式
11、系统,内核只分布式系统,内核只有有5K,而,而Windows的内核则要大得多。的内核则要大得多。10()专用性强()专用性强嵌入式系统的个性化很强,其中的软件系统和硬件嵌入式系统的个性化很强,其中的软件系统和硬件的结合非常紧密,一般要针对硬件进行系统的移植。的结合非常紧密,一般要针对硬件进行系统的移植。即使在同一品牌、同一系列的产品中也需要根据系即使在同一品牌、同一系列的产品中也需要根据系统硬件的变化和增减不断进行修改。统硬件的变化和增减不断进行修改。同时针对不同的任务,往往需要对系统进行较大更同时针对不同的任务,往往需要对系统进行较大更改,程序的编译下载要和系统相结合,改,程序的编译下载要和
12、系统相结合,这种修改和通用这种修改和通用软件的软件的“升级升级”是完全不同的概念。是完全不同的概念。11()系统精简()系统精简嵌入式系统嵌入式系统一般没有系统软件和应用软件的明显一般没有系统软件和应用软件的明显区分区分,不要求其功能设计及实现上过于复杂,这样一,不要求其功能设计及实现上过于复杂,这样一方面利于控制系统成本,同时也利于实现系统安全。方面利于控制系统成本,同时也利于实现系统安全。()高实时性()高实时性OS这是这是嵌入式软件的基本要求,而且软件要求固态嵌入式软件的基本要求,而且软件要求固态存储,以提高速度。存储,以提高速度。软件代码要求高质量和高可靠性软件代码要求高质量和高可靠性
13、、实时性。、实时性。12(5)嵌入式软件开发走向标准化)嵌入式软件开发走向标准化嵌入式系统的应用程序可以没有操作系统直接在嵌入式系统的应用程序可以没有操作系统直接在芯片上运行。芯片上运行。为了合理地调度多任务、利用系统资源、系统函为了合理地调度多任务、利用系统资源、系统函数以及和专家库函数接口,用户必须自行选配数以及和专家库函数接口,用户必须自行选配RTOS(RealTimeOperatingSystem)开发平台,这样才)开发平台,这样才能保证程序执行的实时性、可靠性,并减少开发时间能保证程序执行的实时性、可靠性,并减少开发时间,保障软件质量。,保障软件质量。13(6)嵌入式系统开发需要开发
14、工具和环境)嵌入式系统开发需要开发工具和环境由于其本身不具备自主开发能力,即使设计完成以后,用户通常也是不能对其由于其本身不具备自主开发能力,即使设计完成以后,用户通常也是不能对其中的程序功能进行修改,必须有一套开发工具和环境才能进行开发。中的程序功能进行修改,必须有一套开发工具和环境才能进行开发。这些工具和环境一般是基于通用计算机上的软硬件设备以及各种逻辑分析仪、这些工具和环境一般是基于通用计算机上的软硬件设备以及各种逻辑分析仪、混合信号示波器等。混合信号示波器等。开发时往往有主机和目标机的概念,主机用于程序的开发,目标机作为最后的开发时往往有主机和目标机的概念,主机用于程序的开发,目标机作
15、为最后的执行机,开发时需要交替结合进行。执行机,开发时需要交替结合进行。14 嵌入式系统与嵌入式系统与PC之间的区别之间的区别l嵌入式系统一般是专用系统,而嵌入式系统一般是专用系统,而PC是通用计算平台是通用计算平台l嵌入式系统的资源比嵌入式系统的资源比PC少得多少得多l嵌入式系统软件故障带来的后果比嵌入式系统软件故障带来的后果比PC机大得多机大得多l嵌入式系统一般采用实时操作系统嵌入式系统一般采用实时操作系统l嵌入式系统大都有成本、功耗的要求嵌入式系统大都有成本、功耗的要求l嵌入式系统得到多种微处理体系的支持嵌入式系统得到多种微处理体系的支持l嵌入式系统需要专用的开发工具嵌入式系统需要专用的
16、开发工具15典型嵌入式系统基本组成硬件典型嵌入式系统基本组成硬件MPU微处理器微处理器电源电源模块模块时钟时钟复位复位FlashRAMROMUSBLCDKeyboard外围电路外围电路Other外设外设16典型嵌入式系统基本组成软件典型嵌入式系统基本组成软件处理器处理器存储器存储器输入输入输出输出操作系统操作系统应用程序应用程序软件软件结构结构硬件硬件结构结构17l嵌入式系统一般指非嵌入式系统一般指非PC系统,它包括硬件和软件两部分。系统,它包括硬件和软件两部分。硬件包括处理器微处理器、存储器及外设器件和硬件包括处理器微处理器、存储器及外设器件和IO端口、图端口、图形控制器等。形控制器等。软件
17、部分包括操作系统软件(软件部分包括操作系统软件(OS)(要求实时和多任务操作)和)(要求实时和多任务操作)和应用程序编程。有时设计人员把这两种软件组合在一起。应用程序编程。有时设计人员把这两种软件组合在一起。应用程序控制着系统的运作和行为;而操作系统控制着应用程序应用程序控制着系统的运作和行为;而操作系统控制着应用程序编程与硬件的交互作用。编程与硬件的交互作用。18 嵌入式系统的核心是嵌入式微处理器。嵌入式微处理器一般就具嵌入式系统的核心是嵌入式微处理器。嵌入式微处理器一般就具备以下备以下4个特点个特点1)对实时多任务有很强的支持能力,能完成多任务并且有较短的)对实时多任务有很强的支持能力,能
18、完成多任务并且有较短的中断响应时间,从而使内部的代码和实时内核心的执行时间减少中断响应时间,从而使内部的代码和实时内核心的执行时间减少到最低限度。到最低限度。2)具有功能很强的存储区保护功能。这是由于嵌入式系统的软件)具有功能很强的存储区保护功能。这是由于嵌入式系统的软件结构已模块化,而为了避免在软件模块之间出现错误的交叉作用结构已模块化,而为了避免在软件模块之间出现错误的交叉作用,需要设计强大的存储区保护功能,同时也有利于软件诊断。,需要设计强大的存储区保护功能,同时也有利于软件诊断。3)可扩展的处理器结构,以能最迅速地开展出满足应用的最高性)可扩展的处理器结构,以能最迅速地开展出满足应用的
19、最高性能的嵌入式微处理器。能的嵌入式微处理器。4)嵌入式微处理器必须功耗很低,尤其是用于便携式的无线及移动)嵌入式微处理器必须功耗很低,尤其是用于便携式的无线及移动的计算和通信设备中靠电池供电的嵌入式系统更是如此,如需要的计算和通信设备中靠电池供电的嵌入式系统更是如此,如需要功耗只有功耗只有mW甚至甚至W级。级。19l嵌入式处理器嵌入式处理器嵌入式处理器是嵌入式系统的核心,是控制、嵌入式处理器是嵌入式系统的核心,是控制、辅助系统运行的硬件单元。辅助系统运行的硬件单元。位、位、位单片机,位单片机,16位、位、32位、位、64位嵌入式位嵌入式CPU。l实时操作系统实时操作系统实时操作系统是嵌入式系
20、统目前最主要的组成实时操作系统是嵌入式系统目前最主要的组成部分。实时性需要调度一切可利用的资源完成实时部分。实时性需要调度一切可利用的资源完成实时控制任务,着眼于提高计算机系统的使用效率,满控制任务,着眼于提高计算机系统的使用效率,满足对时间的限制和要求。足对时间的限制和要求。20 系统响应时间(系统响应时间(System response timeSystem response time):):系统发出处理要求,到系统给出应答信号的时间。系统发出处理要求,到系统给出应答信号的时间。任务切换时间(任务切换时间(Context-switching timeContext-switching ti
21、me):):任务之间切换而使用的时间。任务之间切换而使用的时间。中断延迟(中断延迟(Interrupt latencyInterrupt latency):):计算机接收到中断信号到操作系统作出响应,并完成切换转入中计算机接收到中断信号到操作系统作出响应,并完成切换转入中断服务程序的时间。断服务程序的时间。21l冯冯诺依曼体系结构和哈佛体系结构诺依曼体系结构和哈佛体系结构lCISC与与RICSl影响影响CPU性能的因素性能的因素l存储器系统存储器系统lI/O接口接口二、硬件基础二、硬件基础22冯冯诺依曼体系结构模型诺依曼体系结构模型指令寄存器指令寄存器控制器控制器数据通道数据通道输入输入输出输
22、出中央处理器中央处理器存储器存储器程序程序指令指令0指令指令1指令指令2指令指令3指令指令4数据数据数据数据0数据数据1数据数据223指令的执行周期指令的执行周期T1)取指令()取指令(Instruction Fetch):TF2)指令译码()指令译码(Instruction Decode):):TD3)执行指令()执行指令(Instruction Execute):):TE4)存储()存储(Storage):):TS每条指令的执行周期:每条指令的执行周期:T=TF+TD+TE+TS24冯冯诺依曼体系的特点诺依曼体系的特点1)数据与指令都存储在存储器中)数据与指令都存储在存储器中2)被大多数计
23、算机所采用)被大多数计算机所采用3)ARM7冯诺依曼体系冯诺依曼体系25哈佛体系结构哈佛体系结构指令寄存器指令寄存器控制器控制器数据通道数据通道输入输入输出输出中央处理器中央处理器程序存储器程序存储器指令指令0指令指令1指令指令2数据存储器数据存储器数据数据0数据数据1数据数据2地址地址指令指令地址地址数据数据26哈佛体系结构的特点哈佛体系结构的特点1)程序存储器与数据存储器分开)程序存储器与数据存储器分开2)提供了较大的数存储器带宽)提供了较大的数存储器带宽3)适合于数字信号处理)适合于数字信号处理4)大多数)大多数DSP都是哈佛结构都是哈佛结构5)ARM9是哈佛结构是哈佛结构27CISC和
24、和RISCCISC:复杂指令集(:复杂指令集(ComplexInstructionSetComputer)具有大量的指令和寻址方式具有大量的指令和寻址方式8/2原则:原则:80%的程序只使用的程序只使用20%的指令的指令大多数程序只使用少量的指令就能够运行。大多数程序只使用少量的指令就能够运行。RISC:精简指令集(:精简指令集(ReducedInstructionSetComputer)在通道中只包含最有用的指令在通道中只包含最有用的指令确保数据通道快速执行每一条指令确保数据通道快速执行每一条指令使使CPU硬件结构设计变得更为简单硬件结构设计变得更为简单28CISC与与RISC的数据通道的数
25、据通道IFIDREGALUMEM开始退出IFIDALUMEMREG微操作通道开始退出单通数据通道29影响影响CPU性能的因素:流水线、超标量和缓存性能的因素:流水线、超标量和缓存流水线技术:几个指令可以并行执行流水线技术:几个指令可以并行执行提高了提高了CPU的运行效率的运行效率内部信息流要求通畅流动内部信息流要求通畅流动译码取指执行add译码取指执行sub译码取指执行cmp时间AddSubCmp30超标量执行超标量执行超标量执行:超标量超标量执行:超标量CPU采用多条流水线结构采用多条流水线结构执行1预取指令CACHE译码2译码1执行2执行1预取译码2译码1执行2流水线1流水线2数据31高速
26、缓存(高速缓存(CACHE)1、为什么采用高速缓存、为什么采用高速缓存微处理器的时钟频率比内存速度提高快得多,高速缓存可以提高微处理器的时钟频率比内存速度提高快得多,高速缓存可以提高内存的平均性能。内存的平均性能。2、高速缓存的工作原理、高速缓存的工作原理高速缓存是一种小型、快速的存储器,它保存部分主存内容的高速缓存是一种小型、快速的存储器,它保存部分主存内容的拷贝。拷贝。CPU高速缓存控制器CACHE主存数据数据地址32总线和总线桥总线和总线桥CPU低速设备桥数据高速总线存储器高速设备高速设备低速总线33存储器系统存储器系统RAM:随机存取存储器,:随机存取存储器,SRAM:静态随机存储器,
27、:静态随机存储器,DRAM:动态随机存储器:动态随机存储器1)SRAM比比DRAM快快2)SRAM比比DRAM耗电多耗电多3)DRAM存储密度比存储密度比SRAM高得多高得多4)DRM需要周期性刷新需要周期性刷新ROM:只读存储器:只读存储器FLASH:闪存:闪存34SRAM和和DRAM1)SRAM 2)DRAMCSR/WAddrDataCSR/WCASDataRASAddr35输入输出接口输入输出接口1)I/O2)A/D、D/A3)键盘)键盘4)LCD5)存储器接口)存储器接口6)设备接口)设备接口36三、嵌入式操作系统三、嵌入式操作系统l操作系统的分类操作系统的分类l嵌入式实时操作系统嵌入
28、式实时操作系统l多任务,任务优先级,调度多任务,任务优先级,调度l前台与后台前台与后台l非占先式与占先式、可重入型函数非占先式与占先式、可重入型函数373.1 操作系统的分类操作系统的分类(1)顺序执行系统:系统内只含有一个程序,独占)顺序执行系统:系统内只含有一个程序,独占CPU的运行时间的运行时间,按语句顺序执行该程序,直至执行完毕,另一程序才能启动运,按语句顺序执行该程序,直至执行完毕,另一程序才能启动运行。如行。如DOS操作系统。操作系统。(2)分时操作系统:系统内同时可以有多个程序运行,把)分时操作系统:系统内同时可以有多个程序运行,把CPU的时的时间分按顺序分成若干片,每个时间片内
29、执行不同的程序。如间分按顺序分成若干片,每个时间片内执行不同的程序。如UNIX(3)实时操作系统:系统内有多个程序运行,每个程序有不同的优)实时操作系统:系统内有多个程序运行,每个程序有不同的优先级,只有最高优先级的任务才能占有先级,只有最高优先级的任务才能占有CPU的控制权。的控制权。38 具有强实时特点的嵌入式操作系统具有强实时特点的嵌入式操作系统 具有弱实特点的嵌入式操作系统具有弱实特点的嵌入式操作系统 没有实时特点的嵌入式操作系统没有实时特点的嵌入式操作系统按实时性分类按实时性分类391.强实时系统,其系统响应时间在毫秒或微秒强实时系统,其系统响应时间在毫秒或微秒级级(数控机床)(数控
30、机床);2.一航实时系统,其系统响应时间在毫秒几一航实时系统,其系统响应时间在毫秒几秒的数量级上,其实时性的要求比强实时系统要差秒的数量级上,其实时性的要求比强实时系统要差一些一些(电子菜谱的查询)。(电子菜谱的查询)。3.弱实时系统,其系统响应时间约为数十秒或弱实时系统,其系统响应时间约为数十秒或更长更长(工程机械)(工程机械)。40(1).循环轮询系统:循环轮询系统:(Polling Loop)最简单的软件结构是循环轮询,程序依次检查系统的每一个最简单的软件结构是循环轮询,程序依次检查系统的每一个输入条件,一旦条件成立就进行相应的处理。输入条件,一旦条件成立就进行相应的处理。Initial
31、ize()While(true)if(condition_1)action_1();if(condition_2)action_2();if(condition_n)acition_n();按软件结构分类按软件结构分类41(2).事件驱动系统:(事件驱动系统:(Event-Driven system)事件驱动系统是能对外部事件直接响应的系统。它包括前后事件驱动系统是能对外部事件直接响应的系统。它包括前后台、实时多任务、多处理器等,是嵌入式实时系统的主要形式。台、实时多任务、多处理器等,是嵌入式实时系统的主要形式。应用程序是一个无限的循环,循环中调用相应的函数完成相应用程序是一个无限的循环,循环
32、中调用相应的函数完成相应的操作,这部分可以看成后台行为(应的操作,这部分可以看成后台行为(background)。中断服务)。中断服务程序处理异步事件,这部分可以看成前台行为(程序处理异步事件,这部分可以看成前台行为(foreground)。后台也可以叫做任务级,前台也叫中断级。后台也可以叫做任务级,前台也叫中断级。例如,很多基于微处理器的产品采用前后台系统设计,如例如,很多基于微处理器的产品采用前后台系统设计,如微微波炉、波炉、电话机、玩具等。从省电的角度出发,平时微处理器处在电话机、玩具等。从省电的角度出发,平时微处理器处在停机状态,所有的事都靠中断服务来完成。停机状态,所有的事都靠中断服
33、务来完成。42前后台系统(后台循环、前台中断)前后台系统(后台循环、前台中断)ISRISR后台后台前台前台ISR时间时间433.2 嵌入式实时操作系统嵌入式实时操作系统实时操作系统的特点:实时操作系统的特点:1、多任务、多任务CPU寄存器寄存器任务任务控制控制块块1任务任务控制控制块块2任务任务控制控制块块n休眠、就绪、运行、挂起、被中断休眠、就绪、运行、挂起、被中断任务任务1任务任务2任务任务nCPU寄存器寄存器44一个任务,也称作一个线程,是一个简单的运行一个任务,也称作一个线程,是一个简单的运行程序。每个任务都是整个应用的某一部分,每个任务被程序。每个任务都是整个应用的某一部分,每个任务
34、被赋予一定的优先级,赋予一定的优先级,有它自己的一套有它自己的一套CPU寄存器和自寄存器和自己的栈空间。己的栈空间。多任务运行的实现实际上是靠多任务运行的实现实际上是靠CPU(中央处理单(中央处理单元)在许多任务之间转换、调度。元)在许多任务之间转换、调度。CPU只有一个,轮番服务于一系列任务中的某一只有一个,轮番服务于一系列任务中的某一个。多任务运行使个。多任务运行使CPU的利用率得到最大的发挥,并使的利用率得到最大的发挥,并使应用程序模块化。应用程序模块化。在实际应用中,多任务的最大特点是,开发人员在实际应用中,多任务的最大特点是,开发人员可以将很复杂的应用程序层次化综合实验(时钟、位可以
35、将很复杂的应用程序层次化综合实验(时钟、位图、图、USB、KEY)。)。45任务任务实时任务实时任务非实时任务非实时任务事件驱动事件驱动时间驱动时间驱动内部事件:运算结果、设备请求等内部事件:运算结果、设备请求等外部事件:开关量输入等外部事件:开关量输入等绝对时间驱动绝对时间驱动相对时间驱动相对时间驱动2、任务的事件驱动、任务的事件驱动463、中断与中断优先级、中断与中断优先级CPU中断控制器1中断控制器2外部事件474、同步与异步、同步与异步一系列时间相关事件称为同步事件,驱动的任务为同步任务一系列时间相关事件称为同步事件,驱动的任务为同步任务随机发生的事件称为异步事件,驱动的任务为异步任务
36、,如中断随机发生的事件称为异步事件,驱动的任务为异步任务,如中断485、资源与临界资源、资源与临界资源 程序进行时可使用的软硬件环境称为资源,程序进行时可使用的软硬件环境称为资源,2个以上任务可同个以上任务可同时访问的共享资源称为临界资源。时访问的共享资源称为临界资源。任何任务所占用的实体都可称为资源。资源可以是输入输出设备任何任务所占用的实体都可称为资源。资源可以是输入输出设备,例如打印机、键盘、显示器,资源也可以是一个变量、一个结,例如打印机、键盘、显示器,资源也可以是一个变量、一个结构或一个数组等。构或一个数组等。任务1共享内存任务2任务N496、容错与安全、容错与安全容错:当系统软、硬
37、件发生故障时,系统仍能正常运容错:当系统软、硬件发生故障时,系统仍能正常运转,完成预定的任务或某些重要的不允许间断的任务。包转,完成预定的任务或某些重要的不允许间断的任务。包括系统自论断、自恢复、自动切换等功能。括系统自论断、自恢复、自动切换等功能。安全性:是指系统对自身文件和用户文件的存取合法安全性:是指系统对自身文件和用户文件的存取合法性的控制。如口令、加密。性的控制。如口令、加密。50实时系统是实时系统是面向具体应用面向具体应用,对外来事件在限定时间内能做,对外来事件在限定时间内能做出反应的系统。限定时间的范围很广可以出反应的系统。限定时间的范围很广可以从微秒级(如信号处理)从微秒级(如
38、信号处理)到分级(如联机查询系统)。到分级(如联机查询系统)。在实时系统中主要有三个指标来衡量系统的实时性,即响在实时系统中主要有三个指标来衡量系统的实时性,即响应时间(应时间(Response Time)、生存时间()、生存时间(Survival Time)、吞吐)、吞吐量(量(Throughput)。)。l响应时间(响应时间(Response Time):是计算机识别一个外部事):是计算机识别一个外部事件到作出响应的时间,在控制应用中它是最重要的指标,如果事件件到作出响应的时间,在控制应用中它是最重要的指标,如果事件不能及时的处理,系统可能就会崩溃。不能及时的处理,系统可能就会崩溃。l生存
39、时间(生存时间(Survival Time):是数据有效等待时间,在):是数据有效等待时间,在这段时间里数据是有效的。这段时间里数据是有效的。l吞吐量(吞吐量(Throughput):是在一给定时间内(秒),系):是在一给定时间内(秒),系统可以处理的事件总数。例如通讯控制器用每秒钟处理的字符数来统可以处理的事件总数。例如通讯控制器用每秒钟处理的字符数来表示吞吐量,吞吐量是平均响应时间的倒数。表示吞吐量,吞吐量是平均响应时间的倒数。实时系统的评价指标实时系统的评价指标51多任务系统中,内核负责管理各个任务,或者说为每个任多任务系统中,内核负责管理各个任务,或者说为每个任务分配务分配CPU时间,
40、并且负责任务之间的通信。时间,并且负责任务之间的通信。内核提供的基本服务是任务切换。内核本身也增加了应用内核提供的基本服务是任务切换。内核本身也增加了应用程序的额外负荷,代码空间增加程序的额外负荷,代码空间增加ROM用量,内核本身的数据结用量,内核本身的数据结构增加了构增加了RAM的用量。内核本身对的用量。内核本身对CPU的占用时间一般在的占用时间一般在2到到5个百分点之间。个百分点之间。系统内核系统内核52这是操作系统的主要职责之一,它决定该轮到哪个任这是操作系统的主要职责之一,它决定该轮到哪个任务运行了。务运行了。往往调度是基于优先级的,根据其重要不同被往往调度是基于优先级的,根据其重要不
41、同被赋予任务不同的优先级。赋予任务不同的优先级。CPU总是让处在就绪态总是让处在就绪态的优先级最高的任务先运行。的优先级最高的任务先运行。何时让高优先级任务掌握何时让高优先级任务掌握CPU的使用权,有两的使用权,有两种不同的情况,这要看用的是什么类型的内核,种不同的情况,这要看用的是什么类型的内核,是是非占先式的还是占先式非占先式的还是占先式的内核。的内核。调度(调度(dispatcher)53 任务优先级任务优先级(priority)(priority)每个任务都有其优先级(每个任务都有其优先级(priority),静态),静态优先级和动态优先级。优先级和动态优先级。应用程序执行过程中诸任务
42、优先级不变,应用程序执行过程中诸任务优先级不变,则称之为静态优先级。在静态优先级系统中,则称之为静态优先级。在静态优先级系统中,诸任务以及它们的时间约束在程序编译时是已诸任务以及它们的时间约束在程序编译时是已知的。知的。应用程序执行过程中,如果任务的优先级应用程序执行过程中,如果任务的优先级是可变的,则称之为动态优先级是可变的,则称之为动态优先级.54非占先式与占先式非占先式与占先式非占先式(非占先式(non-preemptive)非占先式调度法也称作合作型多任务(非占先式调度法也称作合作型多任务(cooperative multitasking),各个任务彼此合作共享一个),各个任务彼此合作
43、共享一个CPU。中断服务可以使一个高优先级的任务由挂起状态变为就绪中断服务可以使一个高优先级的任务由挂起状态变为就绪状态。但中断服务以后控制权还是回到原来被中断了的那个任务状态。但中断服务以后控制权还是回到原来被中断了的那个任务,直到改任务主动放弃,直到改任务主动放弃CPU的使用权时,那个高优先级的任务才的使用权时,那个高优先级的任务才能获得能获得CPU的使用权。的使用权。非占先式内核的非占先式内核的一个特点一个特点是几乎不需要使用信号量保护共是几乎不需要使用信号量保护共享数据。运行着的任务占有享数据。运行着的任务占有CPU,而不必担心被别的任务抢占。,而不必担心被别的任务抢占。非占先式内核的
44、非占先式内核的最大缺陷最大缺陷在于其响应高优先级的任务慢,在于其响应高优先级的任务慢,任务已经进入就绪态,但还不能运行,也许要等很时间,直到当任务已经进入就绪态,但还不能运行,也许要等很时间,直到当前运行着的任务释放前运行着的任务释放CPU。内核的任务级响应时间是不确定的,。内核的任务级响应时间是不确定的,不知道什么时候最高优先级的任务才能拿到不知道什么时候最高优先级的任务才能拿到CPU的控制权,完全的控制权,完全取决于应用程序什么时候释放取决于应用程序什么时候释放CPU。55非占先式非占先式(Non-Preemptive)低优先级任务低优先级任务ISR高优先级任务高优先级任务(1)(2)(3
45、)(4)(5)(6)(7)中断服务程序使中断服务程序使高优先级任务就绪高优先级任务就绪低优先级任务释放低优先级任务释放CPU使用权使用权TIME56占先式(占先式(preemptive)当系统响应时间很重要时,要使用占先式(当系统响应时间很重要时,要使用占先式(preemptive)内核。最高优先级的任务一旦就绪,总)内核。最高优先级的任务一旦就绪,总能得到能得到CPU的控制权。的控制权。当一个运行着的任务使一个比它优先级高的任务当一个运行着的任务使一个比它优先级高的任务进入了就绪态,当前任务的进入了就绪态,当前任务的CPU使用权就被剥夺了,使用权就被剥夺了,或者说被挂起了,那个高优先级的任务
46、立刻得到了或者说被挂起了,那个高优先级的任务立刻得到了CPU的控制权。的控制权。使用占先式内核时,应用程序不应直接使用不可使用占先式内核时,应用程序不应直接使用不可重入型函数。如果调入可重入型函数时,低优先级的重入型函数。如果调入可重入型函数时,低优先级的任务任务CPU的使用权被高优先级任务剥夺,的使用权被高优先级任务剥夺,不可重入型不可重入型函数中的数据有可能被破坏。函数中的数据有可能被破坏。57占先式占先式(Preemptive)低优先级任务低优先级任务ISR高优先级任务高优先级任务(1)(2)(3)(4)(5)(6)中断服务程序使中断服务程序使高优先级任务就绪高优先级任务就绪高优先级任务
47、得到高优先级任务得到CPU使用权使用权TIME58可以被一个以上的任务调用,而不必担心数据的破坏。可以被一个以上的任务调用,而不必担心数据的破坏。可重入型函数任何时候都可以被中断,一段时间以后又可可重入型函数任何时候都可以被中断,一段时间以后又可以运行,而相应数据不会丢失。可重入型函数或者只使用以运行,而相应数据不会丢失。可重入型函数或者只使用局部变量,即变量保存在局部变量,即变量保存在CPU寄存器中或堆栈中。寄存器中或堆栈中。一个不可重入型函数的例子一个不可重入型函数的例子int Temp;Void swap(int*x,int*y)Temp=*x;*X=*Y;*y=Temp;可重入型函数可
48、重入型函数59一个可重入型函数的例子一个可重入型函数的例子Void swap(int*x,int*y)int Temp;Temp=*x;*X=*Y;*y=Temp;60代码的临界区也称为临界区,指处理时不可分割代码的临界区也称为临界区,指处理时不可分割的代码。的代码。一旦这部分代码开始执行,则不允许任何中一旦这部分代码开始执行,则不允许任何中断打入。断打入。在进入临界区之前要关中断,而临界区代码执行在进入临界区之前要关中断,而临界区代码执行完以后要立即开中断完以后要立即开中断(在任务切换时,地址、指令、(在任务切换时,地址、指令、数据等寄存器堆栈保护)数据等寄存器堆栈保护)。代码的临界区代码的
49、临界区61宏观方面发展趋势:宏观方面发展趋势:经济性(经济性(POS开发失败,几十万、几万、开发失败,几十万、几万、5千、千、5百)百)计算机要很便宜,让更多的人能买得起;计算机要很便宜,让更多的人能买得起;小型化(笔记本、小型化(笔记本、PDA)人们携带方便;人们携带方便;可靠性(汽车可靠性(汽车VCD,挑动问题),挑动问题)能够在一般环境条件下或者是苛刻的环境条件下运行;能够在一般环境条件下或者是苛刻的环境条件下运行;高速度(飞机刹车系统)高速度(飞机刹车系统)能够迅速地完成数据计算或数据传输;能够迅速地完成数据计算或数据传输;智能性(知识推理、模糊查询、识别、感知运动)智能性(知识推理、
50、模糊查询、识别、感知运动)使人们用起来更习惯,对人们更有使价值。使人们用起来更习惯,对人们更有使价值。6、嵌入式技术的发展趋势、嵌入式技术的发展趋势62芯片方面芯片方面SOC芯片技术能降低电子产品成本的速度,就连当代芯片技术能降低电子产品成本的速度,就连当代电子学革命之父,电子学革命之父,2000年诺贝尔物理奖得者杰克年诺贝尔物理奖得者杰克基尔基尔比也没有想到,他在比也没有想到,他在1959年发明的芯片技术,会将电年发明的芯片技术,会将电子产品的成本降低到了百分之一的地步。子产品的成本降低到了百分之一的地步。难怪尽管发展芯片技术的耗资是惊人的巨大,发难怪尽管发展芯片技术的耗资是惊人的巨大,发达