《嵌入式系统原理与应用 -嵌入式系统基础》由会员分享,可在线阅读,更多相关《嵌入式系统原理与应用 -嵌入式系统基础(50页珍藏版)》请在金锄头文库上搜索。
1、嵌入式系统原理与应用嵌入式系统原理与应用第第1章章 嵌入式系统基础嵌入式系统基础嵌入式系统基础1.1 1.1 嵌入式系统概念嵌入式系统概念1.1.1 1.1.1 嵌入式系统嵌入式系统(Embedded System)(Embedded System)的定义的定义IEEEIEEE对嵌入式系统的定义:用于控制、监视或者辅助操对嵌入式系统的定义:用于控制、监视或者辅助操作机器和设备的装置作机器和设备的装置(Devices Used to Control, Monitor or Assist the Operation of Equipment, Machinery or Plants)。国内普遍认同
2、的嵌入式系统定义为:以应用为中心,以国内普遍认同的嵌入式系统定义为:以应用为中心,以计算机技术为基础,软硬件可裁剪,对功能、可靠性、计算机技术为基础,软硬件可裁剪,对功能、可靠性、成本、体积、功耗等有严格要求的专用计算机系统。成本、体积、功耗等有严格要求的专用计算机系统。嵌入式系统是一种完全嵌入到受控器件内部,为特定应嵌入式系统是一种完全嵌入到受控器件内部,为特定应用而设计的专用计算机系统。通常,嵌入式系统是一个用而设计的专用计算机系统。通常,嵌入式系统是一个控制程序存储在控制程序存储在ROMROM中的嵌入式处理器控制板中的嵌入式处理器控制板, ,是软件和是软件和硬件的综合体,有些嵌入式系统还
3、包含操作系统,但大硬件的综合体,有些嵌入式系统还包含操作系统,但大多数嵌入式系统都是由单个程序实现整个控制逻辑。多数嵌入式系统都是由单个程序实现整个控制逻辑。1.1.2 1.1.2 嵌入式系统的组成嵌入式系统的组成嵌入式系统基础嵌入式系统基础嵌入式系统的基本硬件架构嵌入式系统的基本硬件架构电源电源管理管理时钟时钟复位复位逻辑逻辑FlashFlashRAMRAMROMROMMPUMPU嵌入式微处理器嵌入式微处理器外围电路外围电路USBLCD触摸屏触摸屏其他其他接口器件接口器件设备接口设备接口用户应用程序用户应用程序嵌入式操作系统嵌入式操作系统输出输出输入输入硬件层硬件层嵌入式处理器嵌入式处理器系
4、统系统I/O存储器存储器通用设备接口通用设备接口时钟时钟电源电源板级支持包板级支持包中间层中间层系统软件层系统软件层应用软件层应用软件层1.1.2 1.1.2 嵌入式系统的组成嵌入式系统的组成嵌入式系统基础嵌入式系统基础嵌入式系统的整体基本架构嵌入式系统的整体基本架构1.1.3 1.1.3 嵌入式系统的特点嵌入式系统的特点软硬件一体化,集计算机技术、微电子技术、行业软硬件一体化,集计算机技术、微电子技术、行业技术于一体;技术于一体;需要操作系统支持,代码小,执行速度快;需要操作系统支持,代码小,执行速度快;专用紧凑,用途固定,成本敏感;专用紧凑,用途固定,成本敏感;可靠性要求高;可靠性要求高;
5、多样性,应用广泛,种类繁多。多样性,应用广泛,种类繁多。嵌入式系统是面向用户、面向产品、面向应用的,它嵌入式系统是面向用户、面向产品、面向应用的,它必须与具体应用相结合才会具有生命力和使用价值。必须与具体应用相结合才会具有生命力和使用价值。嵌入式系统具有很强的专用性,必须根据应用需求对嵌入式系统具有很强的专用性,必须根据应用需求对软硬件进行裁剪,满足应用系统的功能、可靠性、成本、软硬件进行裁剪,满足应用系统的功能、可靠性、成本、体积等要求。体积等要求。嵌入式系统基础嵌入式系统基础1.1.4 1.1.4 嵌入式系统的应用嵌入式系统的应用嵌入式系统基础嵌入式系统基础嵌入式系统嵌入式系统军事电子军事
6、电子工控设备工控设备智能仪表智能仪表汽车电子汽车电子网络设备网络设备电子商务电子商务移动存储移动存储通讯设备通讯设备智能玩具智能玩具信息家电信息家电军事国防军事国防消费电子消费电子工业控制工业控制网络网络嵌入式系统基础嵌入式系统基础1.1.5 1.1.5 实时系统实时系统(Real Time System)(Real Time System)一般的说,实时系统是能及时响应外部发生的随机事件,一般的说,实时系统是能及时响应外部发生的随机事件,并以足够快的速度完成对事件处理的计算机应用系统。并以足够快的速度完成对事件处理的计算机应用系统。实时系统的输出不仅依赖系统计算的逻辑结果,还依赖于实时系统的
7、输出不仅依赖系统计算的逻辑结果,还依赖于产生这个结果的时间。产生这个结果的时间。实时系统的几个重要特性:实时系统的几个重要特性:1.1.对外部事件的响应必须在一定时间内完成,即数据的获取、处理对外部事件的响应必须在一定时间内完成,即数据的获取、处理、结果的输出,都需要在特定的时间内完成。这一时间的总和叫、结果的输出,都需要在特定的时间内完成。这一时间的总和叫做系统的反应时间。保证在规定的时间限度之内做出响应是实时做系统的反应时间。保证在规定的时间限度之内做出响应是实时系统设计的关键。系统设计的关键。2.2.必须满足一定的峰值负荷要求。即在负载重,甚至超负荷的情况必须满足一定的峰值负荷要求。即在
8、负载重,甚至超负荷的情况下,某些关键任务一定要被正确执行。一般也不不强求系统资源下,某些关键任务一定要被正确执行。一般也不不强求系统资源的利用率。的利用率。3.3.要求具备极高的的可靠性,在系统级的设计中采用容措设计。要求具备极高的的可靠性,在系统级的设计中采用容措设计。低端的微控制器低端的微控制器(MicroController (MicroController UnitUnit,MCUMCU););中高端的嵌入式微处理器中高端的嵌入式微处理器(Embedded MicroProcessor(Embedded MicroProcessor UnitUnit, ,EMPEMPU U) ); ;
9、通信领域的通信领域的DSPDSP处理器处理器( (D Digital Signal Processorigital Signal Processor, ,DSPDSP) ); ;高度集成的片上系统高度集成的片上系统(System on Chip(System on Chip, ,SoCSoC) )。最早:最早:IntelIntel,19761976年年 80488048目前常用:目前常用:80518051、PICPIC、AVRAVR、MSP430MSP430、TMS320C2XXXTMS320C2XXX等等嵌入式系统基础嵌入式系统基础1.2 1.2 嵌入式处理器嵌入式处理器1.2.1 1.2.
10、1 嵌入式处理器分类嵌入式处理器分类1.2.2 1.2.2 微控制器微控制器 MCUMCUpic10,12,16,18ATmaga系列系列ARMARM、MIPSMIPS、Am186/88Am186/88、386EX386EX、SC-400SC-400、PowerPCPowerPC、6800068000嵌入式微处理器的特点:嵌入式微处理器的特点:多种工作模式;多种工作模式;采用可扩展的处理器结构;采用可扩展的处理器结构;具有功能很强的存储区保护功能;具有功能很强的存储区保护功能;提供丰富的调试功能;提供丰富的调试功能;对实时多任务具有很强的支持能力。对实时多任务具有很强的支持能力。嵌入式系统基础
11、嵌入式系统基础1.2.3 1.2.3 嵌入式微处理器嵌入式微处理器TMS320C2000/C5000TMS320C2000/C5000、MCS-296MCS-296、ADSP21XXADSP21XX等等DSPDSP处理器是专门用于信号处理方面的处理器,其在系统处理器是专门用于信号处理方面的处理器,其在系统结构和指令算法方面进行了特殊设计,在数字滤波、结构和指令算法方面进行了特殊设计,在数字滤波、FFTFFT、谱分析等各种仪器上谱分析等各种仪器上DSPDSP获得了大规模的应用。获得了大规模的应用。1.2.4 1.2.4 DSPDSP处理器处理器片上系统指的是在单个芯片上集成一个完整的系统片上系统
12、指的是在单个芯片上集成一个完整的系统, ,它结它结合了许多功能区块,将功能做在一个芯片上,如以合了许多功能区块,将功能做在一个芯片上,如以MIPSMIPS、ARMARM、DSPDSP或是其他的微处理器核心,加上通信接口单元,或是其他的微处理器核心,加上通信接口单元,例如通用串行端口例如通用串行端口(USB)(USB)、TCP/IPTCP/IP通信单元、通信单元、GPRSGPRS通信接通信接口、口、GSMGSM通信接口、通信接口、IEEE1394IEEE1394、蓝牙模块接口等等,做成、蓝牙模块接口等等,做成一个独立的处理芯片。一个独立的处理芯片。SoCSoC是嵌入式系统实现的最高形式,核心技术
13、是是嵌入式系统实现的最高形式,核心技术是IPIP核构件。核构件。嵌入式系统基础嵌入式系统基础1.2.5 1.2.5 片上系统片上系统 SoCSoC嵌入式系统基础嵌入式系统基础 ARM ARM是是A Advanced dvanced R RISC ISC M Machinesachines的缩写,它是一家微的缩写,它是一家微处理器行业的知名企业,该企业设计了大量高性能、廉处理器行业的知名企业,该企业设计了大量高性能、廉价、耗能低的价、耗能低的RISC(RISC(精简指令集精简指令集) )处理器内核。处理器内核。 公司的特点是只设计芯片,而不生产。它将公司的特点是只设计芯片,而不生产。它将技术授权
14、给世界上许多著名的半导体、软件和技术授权给世界上许多著名的半导体、软件和OEMOEM厂商厂商, ,并提供服务。并提供服务。将技术授权给其它芯片厂商将技术授权给其它芯片厂商形成各具特色的形成各具特色的ARMARM芯片芯片嵌入式系统基础嵌入式系统基础1.2.6 1.2.6 典型的嵌入式处理器典型的嵌入式处理器ARMARM国内目前常用的基于国内目前常用的基于ARMARM内核的嵌入式处理器:内核的嵌入式处理器:Kinetis系列系列:Cortex-M3M4LPC1000系列系列:Cortex-M0M3LPC2000系列系列:ARM7LPC3000系列系列:ARM9AM35X,AM37X系列系列:Cor
15、tex-A8AM17X,AM18X系列系列:ARM9LM3S10009000: Cortex-M3STM32F系列系列:STM32L系列系列:Cortex-M3 M4STM32W系列系列:S3C2410,2440:ARM9S3C6410:ARM11嵌入式系统基础嵌入式系统基础嵌入式系统基础嵌入式系统基础1.3 1.3 嵌入式操作系统嵌入式操作系统1.3.1 1.3.1 操作系统的概念和分类操作系统的概念和分类操作系统是管理计算机硬件资源,控制其他程序运行并为操作系统是管理计算机硬件资源,控制其他程序运行并为用户提供交互操作界面的系统软件的集合。用户提供交互操作界面的系统软件的集合。操作系统负责
16、管理与配置内存、决操作系统负责管理与配置内存、决定系统资源供需的优先次序、控制定系统资源供需的优先次序、控制输入与输出设备、操作网络与管理输入与输出设备、操作网络与管理文件系统等基本任务文件系统等基本任务,用户的应用用户的应用软件在操作系统的支持下运行。软件在操作系统的支持下运行。 操作系统的位置操作系统的位置目前流行的目前流行的操作系统操作系统:Windows,Windows Phone Linux,Android,Mac OS,iOS类类Unix系统系统嵌入式系统基础嵌入式系统基础为什么要使用操作系统呢?为什么要使用操作系统呢?引入操作系统的优点:引入操作系统的优点:由操作系统去协调和管理
17、由操作系统去协调和管理CPUCPU资源资源, ,使得每个任务都能使得每个任务都能根据优先级在最短的时间内得到高效的完成;根据优先级在最短的时间内得到高效的完成;使应用程序编程在很大程度上与目标板的硬件结构无使应用程序编程在很大程度上与目标板的硬件结构无关,使程序员将精力放在应用程序本身,而不必去关关,使程序员将精力放在应用程序本身,而不必去关心系统资源的管理;心系统资源的管理;使系统开发变得简单,缩短开发周期。使应用系统更使系统开发变得简单,缩短开发周期。使应用系统更加健壮、高效、可靠。加健壮、高效、可靠。嵌入式系统基础嵌入式系统基础操作系统的功能操作系统的功能1.1.处理器管理处理器管理2.
18、2.存储器管理存储器管理3.3.设备管理设备管理4.4.文件管理文件管理5.5.用户接口用户接口按照程序运行的调度方法,操作系统可分为几种类型:按照程序运行的调度方法,操作系统可分为几种类型:1.1.顺序执行系统顺序执行系统2.2.分时操作系统分时操作系统3.3.实时操作系统实时操作系统嵌入式系统基础嵌入式系统基础有关操作系统的专有名词解释有关操作系统的专有名词解释 中断服务程中断服务程序处理异步事序处理异步事件,这部分可件,这部分可以看成以看成前台前台(Foreground)(Foreground),前台也叫中,前台也叫中断级。断级。 时间相关性时间相关性很强的关键操很强的关键操作一定是靠中
19、作一定是靠中断服务程序来断服务程序来保证的。保证的。 应用程序是应用程序是一个无限的循一个无限的循环,循环中调环,循环中调用相应的函数用相应的函数完成相应的操完成相应的操作,这部分可作,这部分可称为称为后台后台(Background)(Background),或叫任务级。,或叫任务级。 这种系统不这种系统不能保证在多线能保证在多线程工作时的实程工作时的实时性。时性。 ISRISRISRISRISRISRISRISR 后台后台前台前台中断服务程序中断服务程序时时间间前后台系统前后台系统嵌入式系统基础嵌入式系统基础1.1.任务、进程和线程任务、进程和线程任务:由程序完成的达任务:由程序完成的达到某
20、一目的的操作,它到某一目的的操作,它认为自己独占认为自己独占CPU,CPU,有自有自己独立的一套己独立的一套CPUCPU寄存寄存器和栈空间。器和栈空间。栈栈栈栈栈栈Memory CPU 任务任务 1任务任务 2任务任务 nCPU 寄存器寄存器多任务多任务优先级优先级SP状态状态优先级优先级SP状态状态优先级优先级SP状态状态SP进程:是指在系统中正进程:是指在系统中正在运行的一个应用程序,在运行的一个应用程序,是执行程序的实例。是执行程序的实例。线程:某一进程中一路单独线程:某一进程中一路单独运行的程序。运行的程序。一个进程至少包括一个线程。一个进程至少包括一个线程。进程进程 = = 线程线程
21、 + + 资源资源( (内存、代码、数据、文件内存、代码、数据、文件) )嵌入式系统基础嵌入式系统基础2.2.多用户及多任务多用户及多任务多任务运行的实现多任务运行的实现: :靠靠CPUCPU在多个任务之间转换、调度,在多个任务之间转换、调度,分时轮番服务于一系列任务中的某一个。分时轮番服务于一系列任务中的某一个。多用户:多用户:允许多个用户通过各自的终端使用同一台主机,允许多个用户通过各自的终端使用同一台主机,共享同一个操作系统和系统资源。共享同一个操作系统和系统资源。多任务:多任务:每个用户的应用程序设计成不同的任务,这些每个用户的应用程序设计成不同的任务,这些任务可以并发执行。任务可以并
22、发执行。3.3.任务的事件驱动任务的事件驱动在实时操作系统中,不同的任务有不同的驱动方式。实在实时操作系统中,不同的任务有不同的驱动方式。实时任务总是由事件或时间驱动:时任务总是由事件或时间驱动:嵌入式系统基础嵌入式系统基础4.4.中断与中断优先级中断与中断优先级中断:中断:CPUCPU暂停正在执行的程序暂停正在执行的程序, ,保留现场后自动转去处理保留现场后自动转去处理相应的事件,处理完该事件后返回断点,继续完成被打断相应的事件,处理完该事件后返回断点,继续完成被打断的程序。的程序。由硬件和软件共同完成。由硬件和软件共同完成。中断源中断源中断优先级中断优先级中断处理程序中断处理程序中断任务中
23、断任务中断中断在实时操作系统中,利用中断来改变在实时操作系统中,利用中断来改变CPUCPU的执行程序的顺的执行程序的顺序,完成任务间的切换,达到实时处理的目的。序,完成任务间的切换,达到实时处理的目的。如果在操作系统中,总是能保证优先级最高的任务占用如果在操作系统中,总是能保证优先级最高的任务占用CUPCUP,那么这种方式就是按优先级抢占式的任务调度。,那么这种方式就是按优先级抢占式的任务调度。中断源和中断优先级是实时系统赖以工作的基础。中断源和中断优先级是实时系统赖以工作的基础。与中断级对应,由外部事件驱动的任务与中断级对应,由外部事件驱动的任务嵌入式系统基础嵌入式系统基础5.5.同步和异步
24、同步和异步顺序与时间相关的事件称之为同步事件,顺序与时间相关的事件称之为同步事件,由同步事件驱动由同步事件驱动的任务称为同步任务。的任务称为同步任务。随机发生的事件是异步事件,由异步事件驱动的任务称为随机发生的事件是异步事件,由异步事件驱动的任务称为异步任务。异步任务。中断任务是异步任务,优先级高于同步任务。中断任务是异步任务,优先级高于同步任务。6.6.资源与临界资源资源与临界资源任何为任务所占用的实体都可称为任何为任务所占用的实体都可称为资源资源可以被一个以上任务使用的资源叫做可以被一个以上任务使用的资源叫做共享资源共享资源一次仅允许一个进程使用的共享资源一次仅允许一个进程使用的共享资源叫
25、做叫做临界资源临界资源每个进程中访问临界资源的那段程序称为每个进程中访问临界资源的那段程序称为临界区临界区如:如:I/OI/O设备、变量、设备、变量、结构体、数组等结构体、数组等嵌入式系统基础嵌入式系统基础每次只准许一个进程进入临界区每次只准许一个进程进入临界区为了防止数据被破坏,每个任务在与共享资源打交道时,为了防止数据被破坏,每个任务在与共享资源打交道时,必须必须独占独占该资源该资源这叫做互斥。这叫做互斥。在实时多任务系统中,当异步任务被激活时,容易出现在实时多任务系统中,当异步任务被激活时,容易出现资源的临界状态。资源的临界状态。实时多任务系统中对共享资源的访问实时多任务系统中对共享资源
26、的访问任务任务A共享资源共享资源任务任务B任务任务C信号量信号量访问共享资源之访问共享资源之前申请信号量前申请信号量其它任务访问受阻其它任务访问受阻而不能使用共享资源而不能使用共享资源得到允许后,才得到允许后,才能使用共享资源能使用共享资源嵌入式系统基础嵌入式系统基础1.3.2 1.3.2 实时实时(RTOS)(RTOS)操作系统操作系统具有实时性且能支持实时控制系统工作的操作系统。具有实时性且能支持实时控制系统工作的操作系统。随时保证优先级最高的任务占用随时保证优先级最高的任务占用CPUCPU。实时操作系统是实时系统在启动之后运行的一段背景程实时操作系统是实时系统在启动之后运行的一段背景程序
27、。应用程序是运行在这个基础之上的多个任务。序。应用程序是运行在这个基础之上的多个任务。在实时操作系统支持的系统中,每个任务都具有不同的在实时操作系统支持的系统中,每个任务都具有不同的优先级别。它将根据各个任务的优先级来动态地切换各优先级别。它将根据各个任务的优先级来动态地切换各个任务,以保证对实时性的要求。个任务,以保证对实时性的要求。实时操作系统根据各个任务的要求,进行资源管理、消实时操作系统根据各个任务的要求,进行资源管理、消息管理、任务调度和异常处理等工作。息管理、任务调度和异常处理等工作。嵌入式系统基础嵌入式系统基础1.3.2 1.3.2 实时实时(RTOS)(RTOS)操作系统操作系
28、统特点:特点:支持异步事件的响应支持异步事件的响应中断和调度任务的优先级机制中断和调度任务的优先级机制支持抢占式调度支持抢占式调度确定的任务切换时间和中断延迟时间确定的任务切换时间和中断延迟时间支持同步支持同步实时性:高响应速度,执行时间确定,可预测;实时性:高响应速度,执行时间确定,可预测;代码尺寸小:最小只有代码尺寸小:最小只有1010100KB100KB,内存开销小;,内存开销小;应用程序开发较难;应用程序开发较难;需要专用开发工具:仿真器、编译器和调试器等。需要专用开发工具:仿真器、编译器和调试器等。RTOSRTOS与通用计算机与通用计算机OSOS的区别:的区别:嵌入式系统基础嵌入式系
29、统基础1. 1. 实时操作系统的组成实时操作系统的组成实时内核实时内核多任务系统中,内核负责管理各个任务,或者说为每个多任务系统中,内核负责管理各个任务,或者说为每个任务分配任务分配CPUCPU时间,并且负责任务之间的通讯;时间,并且负责任务之间的通讯;内核提供的基本服务就是任务切换;内核提供的基本服务就是任务切换;网络组件网络组件实现链路层、网络层和传输层的各类通信协议,为应用实现链路层、网络层和传输层的各类通信协议,为应用提供服务,本身可剪裁。提供服务,本身可剪裁。文件系统文件系统为较大型的应用提供文件操作,可剪裁。为较大型的应用提供文件操作,可剪裁。图形用户界面图形用户界面(GUI)(G
30、UI)为用户提供友好的图形交互界面,简化操作,可剪裁。为用户提供友好的图形交互界面,简化操作,可剪裁。嵌入式系统基础嵌入式系统基础1.3.3 1.3.3 常见的嵌入式操作系统常见的嵌入式操作系统VxWorks http:/http:/ 美国美国Wind RiverWind River公司,嵌入式实时操作系统(公司,嵌入式实时操作系统(RTOSRTOS) 可靠、实时、多任务、可裁剪;可靠、实时、多任务、可裁剪;专有的专有的VxWorks APIVxWorks API,采用,采用GNUGNU的编译和调试器;的编译和调试器;高效的任务管理,灵活的任务间通讯;高效的任务管理,灵活的任务间通讯;微秒级的
31、中断处理;微秒级的中断处理;VxWorksVxWorks支持支持POSIX 1003.1bPOSIX 1003.1b实时扩展标准;实时扩展标准;支持完整的支持完整的TCP/IPTCP/IP网络协议;网络协议;价格昂贵。价格昂贵。GNUGNU软件可以自由地软件可以自由地“使用、复制、使用、复制、修改和发布修改和发布” GNUGNU的标志的标志 应用在通信、军事、航空、航天等高精尖技术及实时应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中,如卫星通讯、军事演习、弹道性要求极高的领域中,如卫星通讯、军事演习、弹道制导、飞机导航等。制导、飞机导航等。“好奇号好奇号”火星探测器就使用了火
32、星探测器就使用了VxWorksVxWorks。嵌入式系统基础嵌入式系统基础C/OS-II C/OS-II http:/ 源码公开、可移植、可固化、可裁剪、占先式的实时多源码公开、可移植、可固化、可裁剪、占先式的实时多任务操作系统。任务操作系统。 具有可剥夺实时内核;具有可剥夺实时内核;提供任务调度与管理、时间管理、任务间同步与通信提供任务调度与管理、时间管理、任务间同步与通信内存管理和中断服务等功能;内存管理和中断服务等功能;包含信号量、消息邮箱、消息队列及相关函数,全部包含信号量、消息邮箱、消息队列及相关函数,全部编译后其内核仅有编译后其内核仅有6 610KB10KB,最小只有,最小只有2K
33、B2KB;没有对文件系统的支持;没有对文件系统的支持;开源但不免费。开源但不免费。C/OS-IIC/OS-II通过了联邦航空局通过了联邦航空局(FAA)(FAA)商用航行器认证。商用航行器认证。在高校教学使用不需要申请许可证。在高校教学使用不需要申请许可证。嵌入式系统基础嵌入式系统基础嵌入式嵌入式LinuxLinuxLinux最早由芬兰人最早由芬兰人Linus TorvaldsLinus Torvalds创立于创立于19911991年。年。 嵌入式嵌入式LinuxLinux源代码公开并且遵循源代码公开并且遵循GPLGPL协议;协议;适用于没有虚拟内存或适用于没有虚拟内存或MMUMMU的处理器;
34、的处理器;内核高性能可裁剪,运行所需资源少,稳定高效;内核高性能可裁剪,运行所需资源少,稳定高效;独特的模块机制可以将用户的模块动态的插入内核或卸独特的模块机制可以将用户的模块动态的插入内核或卸载,能够应付复杂的任务需求;载,能够应付复杂的任务需求;支持所有标准的网络协议,到目标系统移植容易;支持所有标准的网络协议,到目标系统移植容易;开源,免费。开源,免费。丰富的应用丰富的应用: RT-Linux、uCLinux、Embedix 红旗嵌入式红旗嵌入式Linux等。等。 嵌入式系统基础嵌入式系统基础Windows CEMicrosoftMicrosoft旗下的旗下的3232位嵌入式操作系统。位
35、嵌入式操作系统。 模块化、结构化和基于模块化、结构化和基于Win32Win32应用的应用的APIAPI接口接口, ,其其APIAPI是是Win32 APIWin32 API的一个子集。与处理器无关;的一个子集。与处理器无关;具有传统的具有传统的WindowsWindows图形界面,可使用图形界面,可使用WindowsWindows平台的编平台的编程工具;程工具;具有灵活的电源管理功能,包括睡眠具有灵活的电源管理功能,包括睡眠/ /唤醒摸式;唤醒摸式;具有高效率的操作系统特性;具有高效率的操作系统特性;支持所有标准的网络协议支持所有标准的网络协议;支持嵌套中断;支持嵌套中断;具有优秀的线程响应能
36、力;具有优秀的线程响应能力;授权费用:不详。授权费用:不详。http:/ 嵌入式系统基础嵌入式系统基础RT-ThreadRT-Thread RTOSRT-Thread RTOS是是中国的开源实时操作系统,由国内一些中国的开源实时操作系统,由国内一些专业开发人员开发、维护。专业开发人员开发、维护。 实时内核,也是一套面向嵌入式系统的软件平台,覆盖实时内核,也是一套面向嵌入式系统的软件平台,覆盖了全抢占式的实时操作系统内核;了全抢占式的实时操作系统内核;小巧而与底层具体实现无关的文件系统;小巧而与底层具体实现无关的文件系统;轻型的轻型的TCP/IPTCP/IP协议栈;协议栈;轻型的多窗口多线程图形
37、用户界面;轻型的多窗口多线程图形用户界面;开源,免费。开源,免费。http:/www.rt-thread.org/http:/www.rt-thread.org/嵌入式系统基础嵌入式系统基础其它的嵌入式操作系统其它的嵌入式操作系统QNXNucleushttp:/.tw/embedded/nuc_rtos.htmlhttp:/.tw/embedded/nuc_rtos.html LynxOSfree RTOSwww.freertos.orgwww.freertos.org ThreadX RTOS 嵌入式系统基础嵌入式系统基础1.4 1.4 实时操作系统的内核实时操作系统的内核实现任务管理、任
38、务间的通信与同步、存储器管理、定实现任务管理、任务间的通信与同步、存储器管理、定时器管理、中断管理等功能。时器管理、中断管理等功能。1.4.1 1.4.1 任务管理任务管理uC/OS-IIuC/OS-II的任务管理的任务管理获得获得CPUCPU控制权控制权等待系统实时事件的发生而等待系统实时事件的发生而被唤醒,从而转为就绪态。被唤醒,从而转为就绪态。任务完成或因错误任务完成或因错误等原因被清除等原因被清除进入任务等待队列,通进入任务等待队列,通过调度转为运行状态。过调度转为运行状态。任务的任务的CPUCPU使用权被剥夺使用权被剥夺中断中断嵌入式系统基础嵌入式系统基础为了确定哪个任务被优先运行,
39、所有的任务都有优先级。为了确定哪个任务被优先运行,所有的任务都有优先级。任务调度器按照某一种任务调度器按照某一种任务调度算法任务调度算法使任务从就绪态进使任务从就绪态进入运行态。入运行态。任务调度算法一般决定了该操作系统的实时性能。任务调度算法一般决定了该操作系统的实时性能。基于优先级的抢占式调度算法基于优先级的抢占式调度算法同一优先级的时间片轮转式调度算法同一优先级的时间片轮转式调度算法单调速率调度算法单调速率调度算法任务调度的实现由操作系统内核来完成,内核也是一个任务调度的实现由操作系统内核来完成,内核也是一个运行的后台程序,故也要占用一些运行的后台程序,故也要占用一些CPUCPU的资源,
40、对的资源,对CPUCPU的的占用时间一般在占用时间一般在2%2%5%5%之间。之间。静态优先级静态优先级/ /动态优先级动态优先级嵌入式系统基础嵌入式系统基础1.1.基于优先级的抢占式调度算法基于优先级的抢占式调度算法调度:决定该轮到哪个任务运行;调度:决定该轮到哪个任务运行;多数实时内核是基于优先级调度法的,每个任务根据其多数实时内核是基于优先级调度法的,每个任务根据其重要程度的不同被赋予一定的优先级。重要程度的不同被赋予一定的优先级。基于优先级的调度法基于优先级的调度法:CPU:CPU总是让处在就绪态的优先级最总是让处在就绪态的优先级最高的任务先运行。高的任务先运行。究竟何时让高优先级任务
41、掌握究竟何时让高优先级任务掌握CPUCPU的使用权的使用权, ,有两种不同有两种不同的情况,这要看用的是什么类型的内核,是抢占式调度的情况,这要看用的是什么类型的内核,是抢占式调度还是非抢占式调度。还是非抢占式调度。 嵌入式系统基础嵌入式系统基础 非抢占式调度非抢占式调度非抢占式调度非抢占式调度要求每个任务自我放弃要求每个任务自我放弃CPUCPU的所有权;的所有权;在在非抢占式调度非抢占式调度中,各个任务共享一个中,各个任务共享一个CPUCPU;异步事件由中断服务来处理;异步事件由中断服务来处理;中断服务可以使一个高优先级的任务由挂起状态变为就绪中断服务可以使一个高优先级的任务由挂起状态变为就
42、绪状态;状态;但中断服务完成以后控制权还是回到原来被中断了的那个但中断服务完成以后控制权还是回到原来被中断了的那个任务,直到该任务主动放弃任务,直到该任务主动放弃CPUCPU的使用权时的使用权时, ,高优先级的任高优先级的任务才能获得务才能获得CPUCPU的使用权。的使用权。嵌入式系统基础嵌入式系统基础非抢占式调度非抢占式调度运行原理运行原理任务正在运行任务正在运行中断到来中断到来, ,中断原来任务中断原来任务执行中断服务子程序执行中断服务子程序, ,使一使一个高优先级任务就绪个高优先级任务就绪由于是非抢占式调度,低优由于是非抢占式调度,低优先级任务未执行完毕,高优先级任务未执行完毕,高优先级
43、任务不能立即执行先级任务不能立即执行中断返回中断返回继续执行原来任务继续执行原来任务任务执行完毕任务执行完毕, ,控制权交给控制权交给高优先级、已就绪的任务高优先级、已就绪的任务高优先级任务开始执行高优先级任务开始执行低优先级任务低优先级任务低优先级任务低优先级任务ISRISR高优先级任务高优先级任务嵌入式系统基础嵌入式系统基础抢占式调度抢占式调度当系统响应时间很重要时,要使用当系统响应时间很重要时,要使用抢占式调度抢占式调度内核;内核;最高优先级的任务一旦就绪,总能得到最高优先级的任务一旦就绪,总能得到CPUCPU的控制权;的控制权;当一个运行着的任务使一个比它优先级高的任务进入当一个运行着
44、的任务使一个比它优先级高的任务进入了就绪态,当前任务的了就绪态,当前任务的CPUCPU使用权就被剥夺了使用权就被剥夺了, ,或者说或者说被挂起了被挂起了, ,那个高优先级的任务立刻得到了那个高优先级的任务立刻得到了CPUCPU的控制的控制权;权;如果是中断服务子程序使一个高优先级的任务进入就如果是中断服务子程序使一个高优先级的任务进入就绪态,中断完成时,中断了的任务被挂起,优先级高绪态,中断完成时,中断了的任务被挂起,优先级高的那个任务开始运行。的那个任务开始运行。 嵌入式系统基础嵌入式系统基础抢占式调度运行原理抢占式调度运行原理低优先级任务正在运行低优先级任务正在运行中断到来,中断当前任务中
45、断到来,中断当前任务中断服务完成,退出中断进入中断服务完成,退出中断进入新的优先级更高的任务新的优先级更高的任务新任务执行新任务执行新任务执行完毕,控制权还给新任务执行完毕,控制权还给原来的任务原来的任务继续执行原来的任务继续执行原来的任务执行中断服务,把另一个任务执行中断服务,把另一个任务置为高优先级,立即就绪置为高优先级,立即就绪低优先低优先级任务级任务低优先低优先级任务级任务ISRISR高优先高优先级任务级任务嵌入式系统基础嵌入式系统基础抢占式调度算法的特点:抢占式调度算法的特点:任务级响应时间得到最优化,而且是确定的,快速的中任务级响应时间得到最优化,而且是确定的,快速的中断响应。断响
46、应。任务不能直接使用任务不能直接使用不可重入函数不可重入函数,对共享数据需要互斥,对共享数据需要互斥和信号量的保护。和信号量的保护。目前绝大多数的实时内核都是基于优先级的抢占式调度目前绝大多数的实时内核都是基于优先级的抢占式调度算法。算法。存在问题:优先级反转存在问题:优先级反转高优先级的任务在等待低优先级任务占用的共享资源而高优先级的任务在等待低优先级任务占用的共享资源而形成的需要等待低优先级任务运行结束的反常情况叫做形成的需要等待低优先级任务运行结束的反常情况叫做优先级反转。优先级反转。解决办法:解决办法:优先级继承、优先级封顶。优先级继承、优先级封顶。嵌入式系统基础嵌入式系统基础优先级反
47、转问题优先级反转问题任务任务1 1时间时间T T优先级优先级优先级反转优先级反转S S 共享资源共享资源高高中中低低任务任务3 3任务任务1 1任务任务2 2不使用共享资源不使用共享资源任务任务3 3开始执行开始执行任务任务3 3就绪就绪嵌入式系统基础嵌入式系统基础优先级反转问题的解决优先级反转问题的解决优先级继承优先级继承任务任务3 3时间时间T T优先级优先级S S 共享资源共享资源高高中中低低任务任务1 1优先级反转优先级反转任务任务3 3任务任务1 1任务任务2 2任务任务3 3开始执行开始执行任务任务3 3就绪就绪嵌入式系统基础嵌入式系统基础优先级反转问题的解决优先级反转问题的解决优
48、先级封顶优先级封顶任务任务3 3时间时间T T优先级上限优先级上限S S 共享资源共享资源高高中中低低任务任务1 1任务任务3 3任务任务2 2任务任务3 3开始执行开始执行任务任务3 3就绪就绪嵌入式系统基础嵌入式系统基础优先级继承和优先级封顶的比较优先级继承和优先级封顶的比较优先级继承只是在占有资源的低优先级任务阻塞了高优优先级继承只是在占有资源的低优先级任务阻塞了高优先级任务的运行时,才动态地更改低优先级的任务到高先级任务的运行时,才动态地更改低优先级的任务到高优先级,对应用中的任务流程影响小。优先级,对应用中的任务流程影响小。优先级封顶则不论低优先级任务是否阻塞高优先级任务优先级封顶则
49、不论低优先级任务是否阻塞高优先级任务的运行,只要任务访问该资源,都会提升任务的优先级的运行,只要任务访问该资源,都会提升任务的优先级到可访问这个资源的所有任务的最高优先级。到可访问这个资源的所有任务的最高优先级。嵌入式系统基础嵌入式系统基础2. 2. 同一优先级的时间片轮转调度算法同一优先级的时间片轮转调度算法对于复杂的、高性能的多任务实时内核对于复杂的、高性能的多任务实时内核( (如如VxWorks)VxWorks),由于多个任务允许共用一个优先级,实时内核提供了由于多个任务允许共用一个优先级,实时内核提供了同一优先级的时间片轮转调度算法来调度同优先级的同一优先级的时间片轮转调度算法来调度同
50、优先级的多个任务的运行。多个任务的运行。当当2 2个或个或2 2个以上的任务有同样优先级时个以上的任务有同样优先级时, ,内核允许内核允许1 1个个任务运行事先确定的一段时间,然后切换给另一个任任务运行事先确定的一段时间,然后切换给另一个任务。这个过程叫做时间片轮番调度。务。这个过程叫做时间片轮番调度。内核在满足以下条件时,将内核在满足以下条件时,将CPUCPU的使用权交给下一个就的使用权交给下一个就绪态的任务:绪态的任务:当前任务已经空闲;当前任务已经空闲;当前任务在时间片还没结束时已经完成了;当前任务在时间片还没结束时已经完成了;时间片结束。时间片结束。时间额度时间额度嵌入式系统基础嵌入式
51、系统基础1 1.4.4.2 2 任务间的通信和同步任务间的通信和同步有时需要在任务间或中断服务与任务间通讯。有时需要在任务间或中断服务与任务间通讯。1. 1. 任务的通信任务的通信(1)(1)共享数据结构共享数据结构共享数据结构的类型可以是全局变量、指针、缓冲区等。共享数据结构的类型可以是全局变量、指针、缓冲区等。共享数据结构共享数据结构消息机制消息机制两种方式两种方式最简单方法最简单方法注意用全程变量时必须保证每个任务或中断服务程序独注意用全程变量时必须保证每个任务或中断服务程序独享该变量。享该变量。独享全程变量的方法:独享全程变量的方法:开关中断、设置测试标志、禁止任务切换以及采用信开关中
52、断、设置测试标志、禁止任务切换以及采用信号量机制等。号量机制等。嵌入式系统基础嵌入式系统基础(2)(2)消息机制消息机制消息通常是一个指针型变量,指针指向的内容就是消息。消息通常是一个指针型变量,指针指向的内容就是消息。消息机制包括消息邮箱和消息队列。消息机制包括消息邮箱和消息队列。消息邮箱消息邮箱消息邮箱一般是内存空间的一个数据结构。有一个代表消息邮箱一般是内存空间的一个数据结构。有一个代表消息的指针型变量和正在等待的任务队列。消息的指针型变量和正在等待的任务队列。要得到消息的任务如果发现邮箱是空的,就挂起自己,要得到消息的任务如果发现邮箱是空的,就挂起自己,并放入到该邮箱的任务等待队列中等
53、待消息。并放入到该邮箱的任务等待队列中等待消息。如果邮箱中有消息,内核将把消息分配给等待队列的其如果邮箱中有消息,内核将把消息分配给等待队列的其中一个任务。中一个任务。消息队列消息队列实际就是邮箱阵列,在消息队列中允许存放多个消息。实际就是邮箱阵列,在消息队列中允许存放多个消息。嵌入式系统基础嵌入式系统基础2. 2. 任务间的同步任务间的同步任务同步也常使用信号量,但信号量的使用不再作为一任务同步也常使用信号量,但信号量的使用不再作为一种互斥机制,而是代表某个特定的事件是否发生。种互斥机制,而是代表某个特定的事件是否发生。(1) (1) 单向同步单向同步(2) (2) 双向同步双向同步信号量信
54、号量信号量信号量信号量信号量嵌入式系统基础嵌入式系统基础1.4.3 1.4.3 存储器管理存储器管理在大多数嵌入式实时系统中,不采用虚拟存储机制来实现在大多数嵌入式实时系统中,不采用虚拟存储机制来实现对内存空间的直接管理,用分区与块的结合来避免内存碎对内存空间的直接管理,用分区与块的结合来避免内存碎片的出现。片的出现。嵌入式系统基础嵌入式系统基础1.4.4 1.4.4 定时器和中断管理定时器和中断管理实时内核要求用户提供定时中断以完成延时与超时控制实时内核要求用户提供定时中断以完成延时与超时控制等功能。实时系统中时钟是必不可少的硬件设备,它用等功能。实时系统中时钟是必不可少的硬件设备,它用来产
55、生周期性的时钟节拍信号,来产生周期性的时钟节拍信号,是特定的周期性中断。是特定的周期性中断。中断之间的时间间隔取决于不同应用,一般在中断之间的时间间隔取决于不同应用,一般在10ms10ms到到200ms200ms之间之间. .时钟的节拍式中断使得内核可以将任务延时时钟的节拍式中断使得内核可以将任务延时若干个整数时钟节拍,以及当任务等待事件发生的时候,若干个整数时钟节拍,以及当任务等待事件发生的时候,提供等待超时的依据。提供等待超时的依据。时钟节拍率越快,系统的额外开销就越大。时钟节拍率越快,系统的额外开销就越大。实时内核的中断管理与一般系统内核的中断管理大体相实时内核的中断管理与一般系统内核的中断管理大体相同。同。嵌入式系统基础嵌入式系统基础1.5 1.5 嵌入式技术发展现状及趋势嵌入式技术发展现状及趋势略略