
chap 02 嵌入式系统的基本知识.ppt
83页第第2章章 嵌入式系统的基本知识嵌入式系统的基本知识2.1 嵌入式系统硬件知识嵌入式系统硬件知识2.2 嵌入式系统软件知识嵌入式系统软件知识2.3 嵌入式系统中的选型原则和设计工具嵌入式系统中的选型原则和设计工具嵌入式系统硬件部分嵌入式系统软件部分如人的大脑,决定了硬件的操作模式通过良好的操作系统以及应用程序,把硬件功能发挥到极至如人的手、脚、神经等部位,决定了嵌入式系统的先天功能如运算能力和I/O接口等2.1 嵌入式系统硬件知识嵌入式系统硬件知识2.1.1 嵌入式处理器简介嵌入式处理器简介1. 嵌入式处理器的一些基本情况嵌入式处理器的一些基本情况处理速度:处理速度: 0.1MIPS~2000MIPS寻址空间:寻址空间: 64KB~256MB常用封装:常用封装:8个引脚个引脚~300个引脚个引脚2. 嵌入式处理器的特点嵌入式处理器的特点((1)品种规格系列化)品种规格系列化((2)对实时多任务的支持)对实时多任务的支持((3)可靠性高、功耗低、集成度高、性价比高)可靠性高、功耗低、集成度高、性价比高2.1.1 嵌入式处理器简介嵌入式处理器简介2.1.2 嵌入式系统微处理器嵌入式系统微处理器 嵌入式微处理器是应用在嵌入式计算机系统中的微处理器,嵌入式微处理器是应用在嵌入式计算机系统中的微处理器,是嵌入式硬件系统的核心。
是嵌入式硬件系统的核心算术逻辑单元算术逻辑单元寄存器寄存器控制单元控制单元微处理器微处理器存储器存储器2.1 嵌入式系统硬件知识嵌入式系统硬件知识2.1.3 嵌入式系统微处理器体系结构嵌入式系统微处理器体系结构2.1 嵌入式系统硬件知识嵌入式系统硬件知识1、、冯冯·诺依曼体系结构与哈佛体系结构诺依曼体系结构与哈佛体系结构((1))冯冯·诺依曼体系结构诺依曼体系结构指令寄存器指令寄存器控制器控制器数据通道数据通道输入输入输出输出中央处理器中央处理器存储器存储器程序程序指令指令0 0指令指令1 1指令指令2 2指令指令3 3指令指令4 4数据数据数据数据0 0数据数据1 1数据数据2 22.1.3 嵌入式系统微处理器体系结构嵌入式系统微处理器体系结构((1))冯冯·诺依曼体系结构诺依曼体系结构((2))哈佛体系结构哈佛体系结构2.1.3 嵌入式系统微处理器体系结构嵌入式系统微处理器体系结构指令寄存器指令寄存器控制器控制器数据通道数据通道输入输入输出输出中央处理器中央处理器程序存储器程序存储器指令指令0指令指令1指令指令2数据存储器数据存储器数据数据0数据数据1数据数据2地址地址指令指令地址地址数据数据2、、CISC和和RISC2.1.3 嵌入式系统微处理器体系结构嵌入式系统微处理器体系结构((1)复杂指令集()复杂指令集( Complex Instruction Set Computer, CISC))具有大量的指令和寻址方式具有大量的指令和寻址方式8/28/2原则:原则:80%80%的程序只使用的程序只使用20%20%的指令的指令大多数程序只使用少量的指令就能够运行大多数程序只使用少量的指令就能够运行•背景背景: :存储资源紧缺存储资源紧缺, , 强调编译优化强调编译优化•增强指令功能,设置一些功能复杂的指令,把一些原来由软增强指令功能,设置一些功能复杂的指令,把一些原来由软件实现的、常用的功能改用硬件的(微程序)指令系统来实件实现的、常用的功能改用硬件的(微程序)指令系统来实现现•为节省存储空间,强调高代码密度,指令格式不固定,指令为节省存储空间,强调高代码密度,指令格式不固定,指令可长可短,操作数可多可少可长可短,操作数可多可少•寻址方式复杂多样,操作数可来自寄存器,也可来自存储器寻址方式复杂多样,操作数可来自寄存器,也可来自存储器•采用微程序控制,执行每条指令均需完成一个微指令序列采用微程序控制,执行每条指令均需完成一个微指令序列(微程序)(微程序)•CPI > CPI > 5,5,指令越复杂,指令越复杂,CPICPI越大。
越大CISC的背景和特点 CISC的主要缺点的主要缺点•指令使用频度不均衡指令使用频度不均衡–高频度使用的指令占据了绝大部分的执行时间,扩充的复杂指令往往高频度使用的指令占据了绝大部分的执行时间,扩充的复杂指令往往是低频度指令是低频度指令•大量复杂指令的控制逻辑不规整,不适于大量复杂指令的控制逻辑不规整,不适于VLSIVLSI工艺工艺–VLSIVLSI的出现,使单芯片处理机希望采用规整的硬联逻辑实现,而不希的出现,使单芯片处理机希望采用规整的硬联逻辑实现,而不希望用微程序,因为微程序的使用反而制约了速度提高望用微程序,因为微程序的使用反而制约了速度提高•软硬功能分配软硬功能分配–复杂指令增加硬件的复杂度,使指令执行周期大大加长,直接访存次复杂指令增加硬件的复杂度,使指令执行周期大大加长,直接访存次数增多,降低了数增多,降低了CPUCPU性能•不利于先进指令级并行技术的采用不利于先进指令级并行技术的采用–流水线技术流水线技术2、、CISC和和RISC2.1.3 嵌入式系统微处理器体系结构嵌入式系统微处理器体系结构((2))精简指令集(精简指令集(Reduced Instruction Set Computer, RISC))在通道中只包含最有用的指令在通道中只包含最有用的指令确保数据通道快速执行每一条指令确保数据通道快速执行每一条指令使使CPUCPU硬件结构设计变得更为简单硬件结构设计变得更为简单 RISC基本设计思想•减小减小CPI: CPI: CPUtimeCPUtime= =Instr_CountInstr_Count * CPI * Clock_cycle * CPI * Clock_cycle•精简指令集:保留最基本的精简指令集:保留最基本的, ,去掉复杂、使用频度不高的指令去掉复杂、使用频度不高的指令•采用采用Load/StoreLoad/Store结构,有助于减少指令格式,统一存储器访问结构,有助于减少指令格式,统一存储器访问方式方式•采用硬接线控制代替微程序控制采用硬接线控制代替微程序控制CISC与与RISC的对比的对比类别类别CISCCISCRISCRISC指令系统指令系统指令数量很多指令数量很多较少,通常少于较少,通常少于100100执行时间执行时间有些指令执行时间很长,如有些指令执行时间很长,如整块的存储器内容拷贝;或整块的存储器内容拷贝;或将多个寄存器的内容拷贝到将多个寄存器的内容拷贝到存贮器存贮器没有较长执行时间的指令没有较长执行时间的指令编码长度编码长度编码长度可变,编码长度可变,1-151-15字节字节编码长度固定,通常为编码长度固定,通常为4 4个字节个字节寻址方式寻址方式寻址方式多样寻址方式多样简单寻址简单寻址操作操作可以对存储器和寄存器进行可以对存储器和寄存器进行算术和逻辑操作算术和逻辑操作只能对寄存器对行算术和逻辑只能对寄存器对行算术和逻辑操作,操作,Load/StoreLoad/Store体系结构体系结构编译编译难以用优化编译器生成高效难以用优化编译器生成高效的目标代码程序的目标代码程序 采用优化编译技术,生成高效采用优化编译技术,生成高效的目标代码程序的目标代码程序 3、、信息存储的字节顺序信息存储的字节顺序2.1.3 嵌入式系统微处理器体系结构嵌入式系统微处理器体系结构小端字节顺序存储法小端字节顺序存储法:低字节数据存放在内存低地址处,高:低字节数据存放在内存低地址处,高字节数据存放在内存高地址处字节数据存放在内存高地址处地址地址0x80000x80010x80020x8003数据数据(十六十六进制制)0x670x450x230x01数据数据(二二进制制)01100111010001010010001100000001大端字节顺序存储法大端字节顺序存储法:高字节数据存放在内存低地址处,低:高字节数据存放在内存低地址处,低字节数据存放在内存高地址处字节数据存放在内存高地址处3、、信息存储的字节顺序信息存储的字节顺序2.1.3 嵌入式系统微处理器体系结构嵌入式系统微处理器体系结构地址地址0x80000x80010x80020x8003数据数据(十六进制十六进制)0x010x230x450x67数据数据(二二进制制)000000010010001101000101011001113、、信息存储的字节顺序信息存储的字节顺序2.1.3 嵌入式系统微处理器体系结构嵌入式系统微处理器体系结构典型例子:日期表示典型例子:日期表示国家/地区日期格式表示形式表示类型中国、日本年-月-日2012-9-13大端表示法大部分国家日-月-年13-9-2012小端表示法美国月-日-年9-13-2012中间表示法• Intel公司公司X86平台的微处理器都采用小端存储法;平台的微处理器都采用小端存储法;• IBM、、Motorola和和Sun Microsystems公司的大多数微公司的大多数微处理器采用大端存储法。
处理器采用大端存储法• 此外,还有一些微处理器,如此外,还有一些微处理器,如ARM、、MIPS和和Motorola的的PowerPC等,可以通过芯片上电启动时确定的字节顺序等,可以通过芯片上电启动时确定的字节顺序规则,来选择存储模式规则,来选择存储模式2.1.3 嵌入式系统微处理器体系结构嵌入式系统微处理器体系结构2.1.4 嵌入式系统微处理器的分类嵌入式系统微处理器的分类((1))ARM 公司的公司的ARM RISC处理器处理器–ARM 7 Thumb 家族–ARM 9 Thumb 家族–ARM 10 Thumb 家族–ARM 11 Thumb 家族1. ARM((Advanced RISC Machines)) ARM指令指令为为32位的长度,位的长度,Thumb指令指令为为16位长度Thumb指令集为指令集为ARM指令集的功能子集指令集的功能子集,但与等价的,但与等价的 ARM代码相比较,可节省代码相比较,可节省30%~~40%以上的存储空间以上的存储空间 •StrongARM 110•StrongARM 1100•StrongARM 1110•StrongARM 1111((2))Intel StrongARM1. ARM((Advanced RISC Machines))((3))INTEL的的Xscale架构处理器架构处理器•基于ARM V5TE体系结构•兼容ARM V5TE ISA指令集(不支持浮点指令集)•在处理器内核周围提供了•指令和数据存储器管理单元•指令、数据和微小数据缓存•写缓冲、挂起缓冲和分支目标缓冲器•电源管理•性能监控•调试•JTAG单元以及协处理器接口•MAC协处理器•内核存储总线1. ARM((Advanced RISC Machines))2. MIPS•从从1986年推出年推出R2000处理器以来,处理器以来,MIPS陆续推出陆续推出R3000、、R4000、、R8000等。
等•1999年,年,MIPS公司发布了公司发布了MIPS32和和MIPS64体系结构标准,体系结构标准,集成了原来所有的集成了原来所有的MIPS指令集,并且增加了许多更强大的指令集,并且增加了许多更强大的功能•此后此后MIPS公司又陆续开发了高性能、低功耗的公司又陆续开发了高性能、低功耗的32位和位和64位位处理器内核处理器内核 3. PowerPC体系结构体系结构 •Motorola半导体(现半导体(现Freescale半导体)联合半导体)联合IBM以及苹果以及苹果电脑电脑 •IBM–PowerPC750 –PowerPCG3 •Motorola–MPC –MC4. X86体系结构体系结构 •Intel X86体系结构体系结构•AMD最新的最新的X86体系结构嵌入式处理器产品为体系结构嵌入式处理器产品为Geode 系列系列处理器处理器 •CISC指令集指令集5. SH体系结构体系结构•SH(SuperH)系列是由前日立半导体公司(现系列是由前日立半导体公司(现Renesas公司)公司)推出的嵌入式处理器推出的嵌入式处理器 •SH系列的系列的CPU指令格式是固定的,只有一个字长,绝大多指令格式是固定的,只有一个字长,绝大多数指令是单周期完成的,即使是复杂的乘加指令也仅需数指令是单周期完成的,即使是复杂的乘加指令也仅需2个个时钟周期时钟周期 •为了克服内存访问的瓶颈,为了克服内存访问的瓶颈,SH的的CPU简化寻址方式,采用简化寻址方式,采用Load/Store(装载装载/存储存储)结构,并且在片内设置高速缓存,结构,并且在片内设置高速缓存,以减少访问内存的时间以减少访问内存的时间 2.2 嵌入式系统软件知识嵌入式系统软件知识2.2.1 嵌入式软件概述嵌入式软件概述嵌入式软件是指应用在嵌入式计算机系统中的各种软件。
嵌入式软件是指应用在嵌入式计算机系统中的各种软件嵌入式软件的特点:嵌入式软件的特点:((1)规模较小)规模较小 ((2)开发难度大)开发难度大 ((3)实时性和可靠性要求高)实时性和可靠性要求高 ((4)固化存储)固化存储 2.2 嵌入式系统软件知识嵌入式系统软件知识2.2.2 嵌入式软件体系结构嵌入式软件体系结构1. 1. 无操作系统的情形无操作系统的情形 在嵌入式系统的发展初期,由于在嵌入式系统的发展初期,由于硬件的配置比较低,对于是否有系统硬件的配置比较低,对于是否有系统软件的支持,要求还不是很强烈在软件的支持,要求还不是很强烈在那个阶段,嵌入式软件的设计主要是那个阶段,嵌入式软件的设计主要是以应用为核心,应用软件直接建立在以应用为核心,应用软件直接建立在硬件上,没有专门的操作系统硬件上,没有专门的操作系统应用程序Application设备驱动程序Driver硬件(Hardware)无操作系统的情形•循环轮询系统:(循环轮询系统:(Polling Loop))–最简单的软件结构,程序依次检查系统的每个输入条最简单的软件结构,程序依次检查系统的每个输入条件,一旦条件成立就进行相应的处理。
件,一旦条件成立就进行相应的处理Initialize();while(1){ if(condition_1) action_1(); if(condition_2) action_2(); …… if(condition_n) acition_n();}•事件驱动系统:(事件驱动系统:(Event-Driven system))–事件驱动系统是能对外部事件直接响应的系统它包事件驱动系统是能对外部事件直接响应的系统它包括前后台、实时多任务、多处理器等,是嵌入式实时括前后台、实时多任务、多处理器等,是嵌入式实时系统的主要形式系统的主要形式–应用程序是一个无限循环,循环中调用相应的函数完应用程序是一个无限循环,循环中调用相应的函数完成相应操作,这部分可以看成后台行为中断服务程成相应操作,这部分可以看成后台行为中断服务程序处理异步事件,这部分可看成前台行为序处理异步事件,这部分可看成前台行为–后台也可以叫做任务级,前台也叫中断级后台也可以叫做任务级,前台也叫中断级无操作系统的情形前后台系统(后台循环、前台中断)前后台系统(后台循环、前台中断)无操作系统的情形 中断服务程序处理异步事件,这部分可以看成前台行为,前台也叫中断级。
时间相关性很强的关键操作一定是靠中断服务程序来保证的 循环中调用相应的函数完成相应的操作,这部分可以看成后台行为,后台也可以叫做任务级这种系统在处理的及时性上比实际可以做到的要差 ISRISRISRISR后台前台中断服务程序时间2.2 嵌入式系统软件知识嵌入式系统软件知识2.2.2 嵌入式软件体系结构嵌入式软件体系结构2. 2. 有操作系统的情形有操作系统的情形优点:优点:((1)提高系统可靠性)提高系统可靠性((2)提高系统开发效率,降低了开发)提高系统开发效率,降低了开发成本,缩短了开发周期成本,缩短了开发周期((3)有利于系统的扩展和移植)有利于系统的扩展和移植应用(Application)标准接口函数(API)实时操作系统(RTOS)硬件抽象层(HAL)BSP、驱动硬件(Hardware)有操作系统的情形硬件板级初始化设备驱动层以太网驱动串口驱动LCD驱动键盘驱动操作系统层中间件层应用软件层TCP/IP网络系统文件系统内核嵌入式GUI嵌入式CORBA嵌入式JAVA嵌入式DCOM面向领域的中间件WWW浏览器MP3播放器电子邮件…2.2 嵌入式系统软件知识嵌入式系统软件知识2.2.3 嵌入式操作系统的分类嵌入式操作系统的分类1. 按系统类型分类按系统类型分类((1)商用系统:功能强大,性能稳定,辅助软件工具齐)商用系统:功能强大,性能稳定,辅助软件工具齐全,应用范围广泛,但成本较高。
全,应用范围广泛,但成本较高 ((2)专用系统:一些专业厂家为本公司产品特制的嵌入式)专用系统:一些专业厂家为本公司产品特制的嵌入式操作系统,一般不提供给应用开发者使用操作系统,一般不提供给应用开发者使用 ((3)开源系统:具有免费、开源、性能优良、资源丰富、)开源系统:具有免费、开源、性能优良、资源丰富、技术支持强等优点技术支持强等优点 2. 按响应时间分类按响应时间分类((1)实时操作系统:当事件)实时操作系统:当事件/请求发生时,相应的任务应该在请求发生时,相应的任务应该在规定的时间内完成规定的时间内完成 2.2.3 嵌入式操作系统的分类嵌入式操作系统的分类((2)非实时操作系统(分时):基于公平性原则,各个进程分)非实时操作系统(分时):基于公平性原则,各个进程分享处理器,获得大致相同的运行时间享处理器,获得大致相同的运行时间 ①① 硬实时:系统对响应时间有严格要求,如果响应时间不能硬实时:系统对响应时间有严格要求,如果响应时间不能满足,是绝对不允许的,可能会引起系统崩溃或致命错误满足,是绝对不允许的,可能会引起系统崩溃或致命错误 ②② 软实时:系统对响应时间有要求,如果响应时间不能满足,软实时:系统对响应时间有要求,如果响应时间不能满足,将带来额外的代价,不过这种代价通常能够接受。
将带来额外的代价,不过这种代价通常能够接受 3. 按软件结构分类按软件结构分类((1)单体结构)单体结构2.2.3 嵌入式操作系统的分类嵌入式操作系统的分类n最常用的组织结构;最常用的组织结构;n整个系统只有一个可执行整个系统只有一个可执行文件,包含所有的操作系文件,包含所有的操作系统组件;统组件;n系统的结构就是无结构,系统的结构就是无结构,由一组函数组成,相互之由一组函数组成,相互之间可以随意地调用间可以随意地调用应用软件应用软件 文件文件I /O存储管理存储管理 进程管理进程管理 I/O驱动驱动 存储驱动存储驱动 中断驱动中断驱动 硬件硬件 单体内核单体内核((2)分层结构)分层结构n在分层结构(layered)中,一个操作系统被划分为若干个层次(0..N),各个层次之间的调用关系是单向的,即某一层次上的代码只能调用比它低层的代码n这种结构要求在每个层次上都要提供一组API接口函数,这就会带来额外的开销 2.2.3 嵌入式操作系统的分类嵌入式操作系统的分类((3)微内核结构)微内核结构2.2.3 嵌入式操作系统的分类嵌入式操作系统的分类n操作系统内核只包含最少的功能,如存储管理和进程管理;n其他的操作系统组件以中间件的形式存在于内核之外;n设备驱动程序完全从内核中剥离,独立成为一层。
微内核微内核 设备驱动程序设备驱动程序 中间件、应用软件中间件、应用软件 存储管理存储管理 进程管理进程管理 I/O驱动驱动 存储驱动存储驱动 中断驱动中断驱动 硬件硬件 2.2.4 嵌入式操作系统的几个重要概念嵌入式操作系统的几个重要概念1.资源.资源 程序运行时可使用的软、硬件环境统称为资源 2.共享资源.共享资源 可被一个以上任务使用的资源叫做共享资源为防止数据被破坏,每个任务与共享资源打交道时,必须独占该资源 任务A共享资源任务B任务C信号量访问共享资源之前申请信号量其它任务访问受阻而不能使用共享资源得到允许后,才能使用共享资源3.非先占式内核.非先占式内核 2.2.4 嵌入式操作系统的几个重要概念嵌入式操作系统的几个重要概念 也称作合作型多任务,各个任务彼此合作共享一个CPU异步事件还是由中断服务来处理中断服务可以使一个高优先级的任务由挂起状态变为就绪状态但中断服务以后控制权还是回到原来被中断了的那个任务,直到该任务主动放弃CPU的使用权时,那个高优先级的任务才能获得CPU的使用权 4.先占式内核.先占式内核 最高优先级的任务一旦就绪,总能得到CPU的控制权。
2.2.4 嵌入式操作系统的几个重要概念嵌入式操作系统的几个重要概念5.调度策略.调度策略 调度是指在有限的处理单元上对具有某些已知特征的任调度是指在有限的处理单元上对具有某些已知特征的任务集执行顺序的设计务集执行顺序的设计 6.任务优先级分配.任务优先级分配 • 每个任务按其重要性被赋予一定的优先级每个任务按其重要性被赋予一定的优先级• 静态优先级与动态优先级静态优先级与动态优先级7.时间的可确定性.时间的可确定性 嵌入式实时操作系统函数调用与服务的执行时间应具有可嵌入式实时操作系统函数调用与服务的执行时间应具有可确定性系统服务的执行时间不依赖于应用程序任务的多少系统服务的执行时间不依赖于应用程序任务的多少基于此特征,系统完成某个确定任务的时间是可预测的基于此特征,系统完成某个确定任务的时间是可预测的 8.任务切换.任务切换 当多任务内核决定运行另外的任务时,把正在运行任务的当多任务内核决定运行另外的任务时,把正在运行任务的当前状态(当前状态(CPU寄存器中的全部内容)保存到任务自己的堆栈寄存器中的全部内容)保存到任务自己的堆栈区中,然后把下一个要运行的任务的当前状态从该任务的堆栈区中,然后把下一个要运行的任务的当前状态从该任务的堆栈中装入中装入CPU寄存器,并开始运行寄存器,并开始运行 2.2.4 嵌入式操作系统的几个重要概念嵌入式操作系统的几个重要概念9.中断响应时间.中断响应时间 计算机接收到中断信号到操作系统做出相应,并完成切计算机接收到中断信号到操作系统做出相应,并完成切换转入中断服务子程序的时间。
换转入中断服务子程序的时间 中断响应时间=关中断的最长时间中断响应时间=关中断的最长时间 +保护+保护CPU内部寄存器内部寄存器的时间的时间 +进入中断服务函数的执行时间+进入中断服务函数的执行时间 +开始执行中断服务+开始执行中断服务例程例程(ISR)的第的第 一条指令时间一条指令时间 2.2.4 嵌入式操作系统的几个重要概念嵌入式操作系统的几个重要概念10.优先级反转(倒置).优先级反转(倒置) 2.2.4 嵌入式操作系统的几个重要概念嵌入式操作系统的几个重要概念 当高优先级任务挂起当高优先级任务挂起时,中优先级的任务抢先时,中优先级的任务抢先了正在使用共享资源的低了正在使用共享资源的低优先级任务,如果高优先优先级任务,如果高优先级任务已准备就绪并等待级任务已准备就绪并等待运行,但中优先级任务此运行,但中优先级任务此刻正在运行,这时就出现刻正在运行,这时就出现了优先级倒置问题了优先级倒置问题 2.2.4 嵌入式操作系统的几个重要概念嵌入式操作系统的几个重要概念11.任务执行时间的抖动.任务执行时间的抖动 各种实时内核都有将任务延时若干个时钟节拍的功能。
优先各种实时内核都有将任务延时若干个时钟节拍的功能优先级的不同、延时请求发生的时间、发出延时请求的任务自身的运级的不同、延时请求发生的时间、发出延时请求的任务自身的运动延迟等,都会造成被延时任务执行时间不同程度的提前或滞后,动延迟等,都会造成被延时任务执行时间不同程度的提前或滞后,称之为任务执行时间的抖动称之为任务执行时间的抖动 12.任务划分.任务划分 程程序序在在CPU中中以以任任务务的的方方式式运运行行,,因因此此一一般般将将系系统统的的处处理理框图转化为多任务流程图,对处理进行任务划分框图转化为多任务流程图,对处理进行任务划分 2.2.4 嵌入式操作系统的几个重要概念嵌入式操作系统的几个重要概念13.死锁.死锁 指两个或两个以上的进程在执行过程中,因争夺资源而造指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进成的一种互相等待的现象,若无外力作用,它们都将无法推进下去此时称系统处于死锁状态或系统产生了死锁,这些永远下去此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程在互相等待的进程称为死锁进程。
由于资源占用是互斥的,当由于资源占用是互斥的,当某个进程提出申请资源后,使得有关进程在无外力协助下,永某个进程提出申请资源后,使得有关进程在无外力协助下,永远分配不到必需的资源而无法继续运行,这就产生了一种特殊远分配不到必需的资源而无法继续运行,这就产生了一种特殊现象死锁现象死锁 2.2.5 嵌入式操作系统的功能和特点嵌入式操作系统的功能和特点1.嵌入式操作系统的基本功能.嵌入式操作系统的基本功能 (1)构成一个易于编程的虚拟机平台(2)系统资源的管理者• 任务管理:对嵌入式系统中的运行软件进行描述和管理,并完成处理机资源的分配与调度;• 存储管理:用来提高内存的利用率,方便用户的使用,并提供足够的存储空间;• I/O设备管理:方便设备的使用,提高CPU和输入/输出设备的利用率;• 文件管理:解决文件资源的存储、共享、保密和保护等问题 2.2.5 嵌入式操作系统的功能和特点嵌入式操作系统的功能和特点2.嵌入式操作系统的特点.嵌入式操作系统的特点• 强实时性;• 支持开放性和可伸缩性的体系结构,具有可裁减性;• 提供统一的设备驱动接口;• 提供操作方便、简单、友好的图形GUI和图形界面;• 支持TCP/IP协议及其他协议,提供TCP/UDP/IP/PPP协议支持及统一的MAC访问层接口,提供强大的网络功能;• 嵌入式操作系统的用户接口通过系统的调用命令向用户程序提供服务;• 嵌入式系统一旦开始运行就不需要用户过多的干预;• 嵌入式操作系统和应用软件被固化在ROM中;• 具有良好的硬件适应性 2.2.6 嵌入式操作系统与通用操作系统的区别嵌入式操作系统与通用操作系统的区别设计目标设计目标:通用操作系统的目标是追求最大的吞吐率、使整体性能最佳;而嵌入式操作系统设计的目标是采用各种算法和策略,始终保证系统行为的可预测性。
调度原则调度原则::通用操作系统为了达到最佳整体性能,其调度原则是公平(可变优先级调度);而实时系统多采用基于固定优先级的可剥夺的调度策略,优先级是在运行前通过某种优先级分配策略内存管理内存管理:通用操作系统广泛使用了虚拟内存的技术,为用户提供一个功能强大的虚拟机,但因虚存机制引起的缺页调页现象会给系统带来不确定性,因此实时系统很少或有限的使用虚存技术,一般采用静态内存划分的方式,为每个实时任务划分固定的内存区域这种方式的优点是系统具有较好的可预测性,缺点是灵活性不够好,任务对存储器的需求一旦有变化就需要重新对内存进行划分2.2.6 嵌入式操作系统与通用操作系统的区别嵌入式操作系统与通用操作系统的区别中断处理中断处理:在通用操作系统中,大部分外部中断都是开启的,中断处理一般由设备驱动程序来完成实时操作系统中的各用户进程一般都有实时性要求,因此中断处理程序优先级高于所有用户进程的优先级分配方式是不合适的一种较适合实时操作系统的中断处理方式为:除时钟中断外,屏蔽所有其它中断,中断处理程序变为周期性的轮询操作,这些操作由核心态的设备驱动程序或由用户态的设备支持库来完成 2.2.6 嵌入式操作系统与通用操作系统的区别嵌入式操作系统与通用操作系统的区别系统调用以及系统内部操作的时间开销系统调用以及系统内部操作的时间开销:为保证系统的可预测性,实时操作系统中的所有系统调用以及系统内部操作的时间开销都应是有界的,并且该界限是一个具体的量化数值。
而在通用操作系统中对这些时间开销则未做如此限制 系统的可重入性系统的可重入性:在通用操作系统中,核心态系统调用往往是不可重入的,当一低优先级任务调用核心态系统调用时,在该时间段内到达的高优先级任务必须等到低优先级的系统调用完成才能获得CPU,这就降低了系统的可预测性因此,实时操作系统中的核心态系统调用往往设计为可重入的 2.2.6 嵌入式操作系统与通用操作系统的区别嵌入式操作系统与通用操作系统的区别 2.2.7 常见实时嵌入式操作系统常见实时嵌入式操作系统1. 商用型实时嵌入式操作系统商用型实时嵌入式操作系统((1))VxWorks•VxWorks操作系统是美国WindRiver公司于1983年设计开发的一种嵌入式实时操作系统,具有良好的持续发展能力、高性能的内核以及友好的用户开发环境,在嵌入式实时操作系统领域牢牢占据着一席之地•VxWorks所具有的显著特点是:–可靠性、实时性和可裁减性–支持多种处理器,如x86、Sun Sparc、Motorola MC68xxx、MIPS 、POWER PC等等•保证时限要求是设计者自己的任务•不支持很多应用和APIs•尽管采用了平板式内存管理,但是由于内存的动态分配,仍然存在内存段,这样仍然存在时间上的不可预测性•应用领域主要局限在对实时性要求较严格的硬实时系统中 VxWorks缺点:缺点:1. 商用型实时嵌入式操作系统商用型实时嵌入式操作系统1. 商用型实时嵌入式操作系统商用型实时嵌入式操作系统((2))Windows Embedded • Windows CE:一种针对小容量、移动式、智能化、32位、连接设备的模块化实时嵌入式操作系统。
• 针对掌上设备、无线设备的动态应用程序和服务提供了一种功能丰富的操作系统平台,属于软实时操作系统,• 界面比较统一• 操作系统的基本内核需要至少200K的ROMWindows Embedded Windows Embedded 家族家族微软的移动平台微软的移动平台更强的功能笔记本笔记本PC•复杂的文档编辑和读写•桌面键盘输入•键盘和鼠标输入法•完整的.NET framework 支持Windows XP/XPEWindows XP/XPE平板电脑平板电脑•复杂的文档编辑和读写•桌面键盘输入•支持数字墨水•可以支持键盘,也可以把键盘拿走•键盘、鼠标、数字墨水和语音输入•完整的 .NET framework支持•提供笔,数字墨水,手写和语音识别APIWindows CEWindows CE小型个人产小型个人产品品•单向网络•信息消费Windows MobileWindows MobileSmartphone•信息消费•基本数据浏览•把PDA融入•可以与Exchange交互•.NET Compact Framework•ASP.NET 移动控件Pocket PC •信息消费•浏览和输入数据•把融入PDA•可以与Office, Exchange和SQL Server交互•.NET Compact Framework•ASP.NET 移动控件1. 商用型实时嵌入式操作系统商用型实时嵌入式操作系统((3))Psos 美国系统集成公司根据几十年从事嵌入式实时系统理论研究与实践活动而设计开发,可以支持多种处理器。
pSOS 具有模块化的结构围绕操作系统内核pSOS+有一系列软件功能模块 •Palm OS是网络设备制造商3COM旗下的Palm Computing掌上电脑公司的产品•Palm OS是一套专门为掌上电脑编写的操作系统,充分考虑到了掌上电脑内存相对较小的情况,所以Palm操作系统本身所占的内存很小,基于Palm操作系统编写的应用程序所占的空间也很小,通常只有几十KB•Palm OS在PDA市场上占有很大的市场份额,目前主要与WIN CE进行激烈竞争•代表性的产品有Palm m505、Palm m500、Palm III等4)) Palm OS1. 商用型实时嵌入式操作系统商用型实时嵌入式操作系统1. 商用型实时嵌入式操作系统商用型实时嵌入式操作系统((5))OS-9 OS-9采用模块化体系结构,可以方便的改变配置并升级 OS-9可以支持一系列应用程序,应用范围包括网络、网 页浏览、图形处理、视频会议以及多媒体领域 OS-9的重要特性是支持电源管理、输入/输出管理、灵活的输入/输出架构、支持标准以及自定义网络协议、内置多媒体支持、加载了用于嵌入式应用程序的Java解决方案,同时还支持实时程程序分析调试。
1. 商用型实时嵌入式操作系统商用型实时嵌入式操作系统((6))LynxOsLynxOS是由Lynx实时系统公司开发的操作系统LynxOS是一个分布式、嵌入式、可规模扩展的实时操作系统,它遵循POSIX.1a、POSIX.1b和POSIX.1c标准 1. 商用型实时嵌入式操作系统商用型实时嵌入式操作系统((7))QNX• QNX是一个实时的、可扩充的操作系统,具有强大的图形界面功能,因此很适合作为机顶盒、手持设备(手掌电脑、)、GPS设备的实时操作系统使用• QNX是业界公认的X86平台上最好的嵌入式实时操作系统之一它具有独一无二的微内核实时平台,建立在微内核和完全地址空间保护基础之上,实时、稳定、可靠,已经完成到PowerPC、MIPS、ARM等内核的移植,成为在国内广泛应用的嵌入式实时操作系统1. 商用型实时嵌入式操作系统商用型实时嵌入式操作系统((8))Symbian OS Symbian(塞班)由诺基亚、西门子、索尼爱立信等几家大型移动通讯设备商共同出资组建的一个合资公司,专门研发操作系统塞班操作系统的前身是英国Psion公司的EPOC操作系统,其理念是设计一个简单实用的操作系统。
2.2.7 常见实时嵌入式操作系统常见实时嵌入式操作系统2. 免费型实时嵌入式操作系统免费型实时嵌入式操作系统((1)嵌入式)嵌入式Linux 嵌入式 Linux是以Linux为基础的嵌入式作业系统,被广泛应用在移动、个人数字助理、媒体播放器、消费性电子产品以及航空航天等领域 Linux最初是专门为基于Intel处理器的个人计算机而设计的目前大多数人用它来表示以Linux内核为基础的整个操作系统从这种意义讲,Linux指的是源码开放,包含内核和系统工具、完整的开发环境和应用的类Unix操作系统 Linux的主要特点的主要特点: 2. 免费型实时嵌入式操作系统免费型实时嵌入式操作系统①① 开放性开放性 ②② 多用户多用户 ③③ 多任务多任务 ④④ 良好的用户界面,包括用户界面和系统调用良好的用户界面,包括用户界面和系统调用 ⑤⑤ 设备独立性设备独立性 ⑥⑥ 提供了丰富的网络功能提供了丰富的网络功能 ⑦⑦ 可靠的安全系统可靠的安全系统 ⑧⑧ 良好的可移植性良好的可移植性 2. 免费型实时嵌入式操作系统免费型实时嵌入式操作系统((2)安卓操作系统)安卓操作系统Android 基于Linux内核的操作系统,是Google公司在2007年11月5日公布的操作系统。
Android系统由操作系统、中间件、用户界面和应用软件组成采用软件堆层(又名软件叠层)架构,主要分为三部分:底层以Linux内核工作为基础,由C语言开发,只提供基本功能;中间层包括函数库Library和虚拟机Virtual Machine,由C++开发;最上层是各种应用软件,包括通话程序,短信程序等,应用软件则由各公司自行开发,以Java作为编写程序的一部分 安卓相比塞班主要有这几个优点:安卓相比塞班主要有这几个优点: ① 系统基于Linux,非常稳定② 系统代码年轻并且精简,运行比较快不象塞班用一段时间后速度会变慢③ 系统升级后以前的软件都可用,目前支持的软件极多达三万种不象塞班系统一升级以前软件都作废④ 安卓操作界面很人性化,象苹果一样很多界面都是动态的,酷炫且华丽,并且在图标甚至空白处长按三秒有类似电脑鼠标右键的快捷菜单弹出,很方便相比之下塞班界面设计较保守2. 免费型实时嵌入式操作系统免费型实时嵌入式操作系统((3))μC/OSμC/OS 是源码公开的实时嵌入式操作系统 2.3 嵌入式系统中的选型原则和设计工具嵌入式系统中的选型原则和设计工具 2.3.1 嵌入式系统的选型原则嵌入式系统的选型原则1.硬件平台的选择.硬件平台的选择1)了解被开发产品的需求和任务)了解被开发产品的需求和任务 使用环境、供电方式、功耗要求、功能要求、成本要使用环境、供电方式、功耗要求、功能要求、成本要求、开发周期等求、开发周期等;2)综合性能的考虑)综合性能的考虑 ①① 功能、速度、耗电;功能、速度、耗电; ④④ 接口方式、接口方式、I/O口数量等;口数量等; ②② 存储容量;存储容量; ⑤⑤ 软件下载方式等;软件下载方式等; ③③ 互换性、兼容性;互换性、兼容性; ⑥⑥ 生产方便性(体积、引脚)生产方便性(体积、引脚) 2.3.1 嵌入式系统的选型原则嵌入式系统的选型原则1.硬件平台的选择.硬件平台的选择3)开发环境的考虑)开发环境的考虑 ①① 软件开发平台;软件开发平台; ②② 调试(显示器、键盘等);调试(显示器、键盘等); ③③ 开发周期的影响;开发周期的影响; ④④ 如何固化程序(自带、设备)。
如何固化程序(自带、设备)4)其它因素的考虑其它因素的考虑 价格、熟悉程度及开发资源、升级、供货稳定、技术价格、熟悉程度及开发资源、升级、供货稳定、技术支持和售后服务等支持和售后服务等 2.3.1 嵌入式系统的选型原则嵌入式系统的选型原则2.嵌入式操作系统的选型原则.嵌入式操作系统的选型原则1)操作系统的硬件支持)操作系统的硬件支持((1)是否支持目标硬件平台)是否支持目标硬件平台((2)可移植性)可移植性2)开发工具的支持程度)开发工具的支持程度3)能否满足应用需求)能否满足应用需求4)自己开发操作系统)自己开发操作系统2.3.2 嵌入式系统的设计工具嵌入式系统的设计工具2.3 嵌入式系统中的选型原则和设计工具嵌入式系统中的选型原则和设计工具1. 嵌入式系统的传统设计方法嵌入式系统的传统设计方法 需求分析需求分析规格说明规格说明体系结构设计体系结构设计硬件设计硬件设计系统集成系统集成系统测试系统测试产品产品软件设计软件设计执行装置设计执行装置设计1)系统需求分析)系统需求分析2.3.2 嵌入式系统的设计工具嵌入式系统的设计工具1. 嵌入式系统的传统设计方法嵌入式系统的传统设计方法 确定设计任务和设计目标,并提炼出设计规格说明书,确定设计任务和设计目标,并提炼出设计规格说明书,作为正式设计指导和验收的标准。
系统的需求一般分功能性作为正式设计指导和验收的标准系统的需求一般分功能性需求和非功能性需求两方面需求和非功能性需求两方面 功能性需求是系统的基本功能,如输入输出信号、操作功能性需求是系统的基本功能,如输入输出信号、操作方式等;方式等; 非功能性需求包括系统性能、成本、体积、重量、功耗非功能性需求包括系统性能、成本、体积、重量、功耗等因素1. 嵌入式系统的传统设计方法嵌入式系统的传统设计方法 2)规格说明)规格说明 规格说明更精确一些,其作用是对需求进行提炼,得到系规格说明更精确一些,其作用是对需求进行提炼,得到系统的规格说明,作为正式指导和验收的标准,它起到客户和生统的规格说明,作为正式指导和验收的标准,它起到客户和生产者之间合同的作用产者之间合同的作用 3)体系结构设计)体系结构设计 描述系统如何实现各种功能和非功能需求,包括对硬件、描述系统如何实现各种功能和非功能需求,包括对硬件、软件的功能划分以及系统的软硬件选型等软件的功能划分以及系统的软硬件选型等 1. 嵌入式系统的传统设计方法嵌入式系统的传统设计方法 4)硬件)硬件/软件设计软件设计 硬件软件设计的作用是基于体系结构,对系统的软件、硬硬件软件设计的作用是基于体系结构,对系统的软件、硬件进行详细设计件进行详细设计 。
5)系统集成)系统集成 把软件、硬件、执行装置和被控对象集成在一起,进行调把软件、硬件、执行装置和被控对象集成在一起,进行调试,发现并改进单元设计过程中的错误试,发现并改进单元设计过程中的错误 6)系统测试)系统测试 对设计好的系统进行测试,看其是否满足规格说明书中给对设计好的系统进行测试,看其是否满足规格说明书中给定的功能要求定的功能要求 2. 嵌入式系统的系统级设计方法嵌入式系统的系统级设计方法 系统级设计是一种高层次的设计方法,设计人员针对设计目标进系统级设计是一种高层次的设计方法,设计人员针对设计目标进行系统功能描述,定义系统的行为特性,进行软硬件划分,生成系行系统功能描述,定义系统的行为特性,进行软硬件划分,生成系统级的规格描述统级的规格描述系系统功能描述功能描述软硬件划分硬件划分((软硬件硬件统一一标识))硬件硬件综合合接口接口综合合软件件综合合系系统集成、集成、测试((1))软硬件硬件协同同设计2. 嵌入式系统的系统级设计方法嵌入式系统的系统级设计方法((1))软硬件硬件协同同设计l主要设计步骤:主要设计步骤:① ① 需求分析需求分析 ② ② 软硬件协同设计软硬件协同设计 ③ ③ 软硬件实现软硬件实现 ④ ④ 软硬件协同测试软硬件协同测试 ⑤ ⑤ 软硬件协同验证软硬件协同验证l特点特点————软硬件统一描述软硬件统一描述 ① ① 有限状态机有限状态机 ② ② 统一化的规格语言统一化的规格语言————SystemCSystemC、新的统一描述语言、新的统一描述语言 ③ ③ 基于图形的标识工具基于图形的标识工具————UMLUML语言语言l优点优点 ① ① 软硬件统一描述软硬件统一描述 ② ② 有利于优化设计有利于优化设计 ③ ③ 重点关注算法,而非实现重点关注算法,而非实现2. 嵌入式系统的系统级设计方法嵌入式系统的系统级设计方法((1))软硬件硬件协同同设计l缺点缺点 ① ① 不成熟,缺乏有效的统一描述工具不成熟,缺乏有效的统一描述工具 ② ② 现有工具实现效率不高现有工具实现效率不高 ③ ③ 有待于高效率的综合工具有待于高效率的综合工具2. 嵌入式系统的系统级设计方法嵌入式系统的系统级设计方法((2)设计重用技术)设计重用技术•基于基于IP核的模块级重用核的模块级重用 •基于平台的系统级重用基于平台的系统级重用 2.3.3 嵌入式系统开发模式嵌入式系统开发模式宿主机宿主机—目标机开发模式目标机开发模式 1)交叉编译)交叉编译 宿主机上的宿主机上的CPU 结构体系和目标机上的结构体系和目标机上的CPU 结构体系是不结构体系是不同的,为了实现裁剪后的嵌入式操作系统和应用软件能在目标机同的,为了实现裁剪后的嵌入式操作系统和应用软件能在目标机上上“跑跑”起来,移植它们之前,必须在宿主机上建立新的编译环起来,移植它们之前,必须在宿主机上建立新的编译环境,进行和目标机境,进行和目标机CPU相匹配的编译。
相匹配的编译 宿主机宿主机—目标机开发模式重要特征目标机开发模式重要特征 2.3.3 嵌入式系统开发模式嵌入式系统开发模式 一种允许调试器以某种方式控制目标机上被调试进程的运行方一种允许调试器以某种方式控制目标机上被调试进程的运行方式,并具有查看和修改目标机上内存单元、寄存器以及被调试进程式,并具有查看和修改目标机上内存单元、寄存器以及被调试进程中变量值等各种调试功能的调试方式调试器是一个单独运行着的中变量值等各种调试功能的调试方式调试器是一个单独运行着的进程在嵌入式系统中,调试器运行在宿主机的通用操作系统之上,进程在嵌入式系统中,调试器运行在宿主机的通用操作系统之上,被调试的进程运行在目标机的嵌入式操作系统中,调试器和被调试被调试的进程运行在目标机的嵌入式操作系统中,调试器和被调试进程通过串口或者网络进行通信,调试器可以控制、访问被调试进进程通过串口或者网络进行通信,调试器可以控制、访问被调试进程,读取被调试进程的当前状态,并能够改变被调试进程的运行状程,读取被调试进程的当前状态,并能够改变被调试进程的运行状态 2)远程调试)远程调试 2.3.3 嵌入式系统开发模式嵌入式系统开发模式2.3.4 嵌入式软件开发工具嵌入式软件开发工具1.编辑器.编辑器2.编译器.编译器3.调试及调试工具.调试及调试工具4.软件工程工具.软件工程工具文本编辑器,用来编写源代码文本编辑器,用来编写源代码UltraEdit、、Source Insight用交叉编译或汇编工具处理源代码,产生目标代码。
用交叉编译或汇编工具处理源代码,产生目标代码直接测试、调试监控器法、直接测试、调试监控器法、ROM仿真器法、仿真器法、仿真器法、片上调试法、模拟器法仿真器法、片上调试法、模拟器法开发环境或大型嵌入式软件中使用的各种管理软件开发环境或大型嵌入式软件中使用的各种管理软件。
