嵌入式系统设计教程(第3版)(txt+pdf+epub+mobi电子书下载)


发布时间:2020-05-22 01:48:41

点击下载

作者:丁男

出版社:电子工业出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

嵌入式系统设计教程(第3版)

嵌入式系统设计教程(第3版)试读:

前言

嵌入式系统是以应用为中心,以计算机技术为基础,并且软/硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。嵌入式系统开发与应用的内容繁杂,涉及诸如计算机、电子、自动控制等诸多专业知识,综合性强。由于嵌入式系统涉及的知识点多,想让学生在短短的有限课时内完全掌握嵌入式系统设计全部知识是不现实的。因此通过嵌入式系统课程的学习,目的是使其能够掌握嵌入式系统设计的基本知识和开发方法。实践是学习嵌入式系统设计的重要环节,通过动手实践才能让学生掌握嵌入式系统设计开发方法和开发经验。

随着嵌入式系统应用的普及,对嵌入式系统设计的技术人才需求越来越大,同时也迫切需要一些较好的适用于不同层次人员使用的教材和参考书。本书定位于从事嵌入式系统开发和设计的初学人员。从实用的角度出发,本书分别以目前国内外流行的S3C2440和Cortex架构处理器为例,详细地介绍嵌入式系统的内部结构、工作原理、设计步骤、设计方法、接口电路,以及嵌入式系统的开发环境和开发工具。在软件方面介绍了μC/OS、Linux和Andriod操作系统相关知识,最后介绍了一项实例设计供读者参考和借鉴。

本书第1版和第2版分别在2006年6月和2009年9月由电子工业出版社出版发行,目前国内20多所高校采用本教程作为嵌入式系统设计课程教材。由于嵌入式系统技术发展迅速,新技术层出不穷,为了适应时代发展,故对本书进行重新修正和再版发行,主要对书中各章节重新进行了规划、整理和内容充实。例如,第2章中的嵌入式处理器简介改为基于ARM9系列的S3C2440和新一代的Cortex系列处理器;第3章修改为嵌入式系统开发环境与相应开发技术的内容介绍;第4章中增添了ARM汇编语言与C语言的程序设计内容;第8章修改为基于Andriod操作系统的设计与应用;在第1、5、6、7、9章的内容也做了适当的修改。同时,对全书各章的内容都进行了精细化、逐页逐句地进行仔细斟酌,对一些表达不恰当句子进行了修改。教材的习题部分对于复习和巩固所学内容是非常重要的,每章精心挑选适量增加了课后的习题。

作者从事计算机教学工作多年,多次完成基于ARM微处理器系列的科研项目的开发和设计工作。所以在编写本教材的过程中,精选内容、力求符合从事嵌入式系统开发和设计的初学者的特点,做到概念清晰、理论联系实际。在叙述方法上,则力求由浅入深、通俗易懂便于学习,以便使读者能在较短的时间内迅速掌握相关知识,起到事半功倍的作用。

本书适合高等院校相关专业的大学高年级学生和研究生作为专业课教材也可以作为从事嵌入式系统开发和设计人员的参考用书。作者建议本课程课时数为56学时(授课课时32,实验课时24)。在课堂主要讲授第1~5章和第9章内容,选取第6~8章操作系统的内容,与实验同步进行。为了便于本课程的教学需要,本书另配有多媒体教学课件,需要者与本教材责任编辑联系, E-mail:tianhf@phei.com.cn。

在本书编写的过程中,感谢电子工业出版社的编辑,在他们的大力支持下使本书能够很快出版发行。同样,对本书参考文献中以及引用了相关资料的所有作者深表谢意。

由于嵌入式系统设计的发展非常迅速和普及,嵌入式应用的新技术、新成果不断涌现和更新,书中难免存在错误、疏漏和不妥之处。还希望广大读者能够多加谅解,并及时联系作者,以期在后续版本中进行完善。编者2016年8月第1章嵌入式系统概论

嵌入式系统将微处理器直接嵌入到应用系统之中,融合了计算机软/硬件技术、通信技术和半导体微电子技术,是信息技术的最终产品。本章首先介绍嵌入式系统的定义、特征、应用领域和发展趋势,然后介绍嵌入式硬件系统体系结构原理及在嵌入式系统中采用的先进技术,最后介绍嵌入式系统软件结构、设计流程,以及常用的四种嵌入式操作系统。1.1 系统概述

随着现代计算机技术的飞速发展,计算机系统逐渐形成了通用计算机系统(如PC)和嵌入式计算机系统两大分支。通用计算机系统的硬件以标准化形态出现,通过安装不同的软件满足各种不同的要求。嵌入式系统则是根据具体应用对象,采用量体裁衣的方式对其软/硬件进行定制的专用计算机系统。嵌入式系统与PC相比区别如下。(1)嵌入式系统是专用系统,其功能专一,而PC则是通用计算平台。(2)嵌入式系统的资源比PC少,具有成本、功耗、体积等方面的要求。(3)嵌入式软件系统一般采用实时操作系统,其应用软件大多需要进行重新编写,因此软件故障带来的后果会比PC大。(4)嵌入式系统的开发与设计方面需要在宿主机中装配有专用的开发环境与开发工具。

嵌入式系统是将计算机硬件和软件结合起来构成的一个专门的装置,这个装置可以完成一些特定的功能和任务。由于它可能会工作在一个与外界发生交互并受到时间约束的环境中,所以要求其能够在没有人工干预的情况下独立进行实时监测和控制。另外由于被嵌入对象的体系结构、应用环境要求的不同,各个嵌入式系统可以由各种不同的结构组成。1.1.1 嵌入式系统的定义和特征1.嵌入式系统的定义

到目前为止,嵌入式系统已经有近50年的发展历史。第一款嵌入式处理器是Intel的4004,它出现在1971年。1981年世界上出现了第一个商业嵌入式实时内核(VTRX32),内核中包含了许多传统操作系统的特征,如任务管理、任务间通信、同步与相互排斥、中断支持、内存管理等功能。随后,出现了各种嵌入式操作系统,目前已经在全球形成了一个产业。

关于嵌入式系统的定义很多,例如IEEE(国际电气和电子工程师协会)的定义为嵌入式系统是“用于控制、监视或者辅助操作机器和设备的装置”(devices used to control,monitor,or assist the operation of equipment,machinery or plants)。国内较权威机构对嵌入式系统的定义是:“以应用为中心,以计算机技术为基础,软/硬件可裁剪,功能、可靠性、成本、体积、功耗严格要求的专用计算机系统”。

嵌入式系统本身是一个相对模糊的定义,手机、MP4、数码相机、机顶盒、媒体播放器和智能仪器、仪表都可以认为是嵌入式系统。总之,嵌入式系统采用“量体裁衣”的方式把所需的计算机功能嵌入到各种应用的设备与装置中。2.嵌入式系统的特征

嵌入式系统是将先进的计算机技术、半导体技术和电子技术与各个行业的具体应用相结合后的产物,这一点就决定了它必然是一个技术密集、资金密集、高度分散、不断创新的知识集成的系统。嵌入式系统的重要特征主要包括以下几个方面:(1)嵌入式系统通常都具有低功耗、集成度高、体积小、高可靠性等特点,它能够把通用计算机中许多由部件完成的任务集成在芯片内部,从而有利于嵌入式系统设计趋于小型化,移动能力也大大增强。

嵌入式系统的个性化很强,其软/硬件的结合是非常紧密的,一般要针对不同的硬件情况来进行软件系统的设计。即使在同一品牌、同一系列的产品中也需要根据系统硬件的变化和增减来不断地对软件系统进行修改。一个嵌入式系统通常只能重复执行一个特定的功能,例如一台数码相机永远是数码相机。而通用的台式微机系统可以执行各种程序,如电子表、多媒体播放器和游戏,还可以经常加入其他新程序。(2)实时性强,系统内核小。有些嵌入式系统的系统软件和应用软件没有明显区分,不要求其在功能设计及实现上过于复杂,这不仅利于控制系统成本,同时也利于实现系统安全。嵌入式软件代码要求高质量和高可靠性、实时性。很多嵌入式系统都需要不断地依据所处环境的变化做出反应,而且要实时地得到计算结果,不能延迟。由于嵌入式系统一般是应用于要求系统资源相对有限的场合,所以内核较传统的操作系统要小得多,如μC/OS操作系统,核心内核只有8.3 KB左右。(3)资源较少,可以裁减。由于对成本、体积和功耗有严格要求,使得嵌入式系统的资源(如内存、I/O接口等)有限,因此对嵌入式系统的硬件和软件都必须高效率地设计,量体裁衣、去除冗余,力争在有限的资源上实现更高的性能。(4)需要开发环境和调试工具。由于嵌入式系统本身不具备自主开发能力,即使设计完成以后,用户通常也不能对其中的程序功能进行修改,必须有一套开发工具和环境才能进行开发。这些工具和环境一般是安装在宿主机(如PC)中,进行系统开发时宿主机用于程序的开发,目标机(产品机)作为最后的执行机,研制和开发时需要交替结合进行。1.1.2 嵌入式系统的应用领域及发展趋势1.嵌入式系统的应用领域

嵌入式系统可应用在交通管理、信息家电、家庭智能管理系统、网络及电子商务、环境监测等方面。在工业和服务领域中,大量嵌入式技术也已经应用于工业控制、数控机床、智能工具和机器人等各个行业,并逐渐改变着传统的工业生产和服务方式。例如,飞机中的电子设备、城市地铁购票系统等都可通过嵌入式系统来实现。嵌入式系统的应用领域如图1-1所示。2.嵌入式技术的发展趋势

人们对嵌入式系统的要求是经济实惠、可靠、小型化携带方便,同时智能性高(知识推理、模糊查询、识别、感知运动),使人们用起来更习惯。未来嵌入式系统的发展趋势大致如下。图1-1 嵌入式系统的应用领域(1)新的微处理器不断涌现,嵌入式软件不断更新、完善。为满足市场的需求,嵌入式产品设计者不断研制新产品。这样,就相应提高了对嵌入式软件设计技术的要求。例如,选用最佳的编程模型、不断改进算法和优化编译器性能等,因此不仅需要软件人员有丰富的经验,更需要采用先进的嵌入式软件技术。(2)连网成为必然趋势。网络化、信息化的要求随着Internet技术的成熟、带宽的提高,功能不再单一,结构更加复杂。为适应嵌入式分布处理结构应用的上网需求,面向未来的嵌入式系统要求配备标准的一种或多种网络通信接口。(3)提供精巧的多媒体人机界面。嵌入式设备之所以为亿万用户乐于接受,重要因素之一是自然的人机交互界面。人与信息终端交互多采用以屏幕为中心的多媒体界面实现,如手写文字输入、语音拨号上网、收发电子邮件,以及彩色的图形、图像。目前,一些嵌入式产品在显示屏幕上已实现了多元化输入和三维图像显示发布等功能。(4)需要先进、强大的开发工具的支持,嵌入式软件开发要走向标准化。嵌入式开发是一项系统工程,因此要求厂商不仅提供嵌入式软/硬件系统本身,同时还需要提供强大的硬件开发工具和软件包支持。另外,为了合理地调度多任务、利用系统资源、系统函数和专家库函数接口,用户必须自行选配更合理的标准化嵌入式开发平台,这样才能保证程序执行的实时性、可靠性,并减少开发时间和保障软件质量。1.2 嵌入式系统组织结构1.2.1 嵌入式系统总体架构

嵌入式系统一般是由硬件系统和软件系统两大部分组成,嵌入式硬件系统包括嵌入式处理器、存储器、I/O系统和配置必要的外围接口部件,嵌入式软件系统主要包括操作系统和应用软件。嵌入式系统的软/硬件结构框架如图1-2所示。图1-2 嵌入式系统架构图1.2.2 嵌入式硬件系统结构1.概述

嵌入式硬件系统主要包括处理器、外围核心部件及外部设备三大部分。嵌入式处理器将PC中许多由板卡完成的任务集成到芯片内部,从而有利于系统设计小型化、高效率和高可靠性。外围核心部件一般由时钟电路、复位电路、程序存储器、数据存储器和电源模块等部件组成。外部设备一般配有显示器、键盘或触摸屏等设备及相关接口电路。通常,在嵌入式处理器基础上增加电源电路、时钟电路和存储器电路(ROM和RAM等)就构成了一个嵌入式核心控制模块(或称核心板)。在嵌入式软件方面,为了增强系统的可靠性,通常将操作系统和应用程序都固化在程序存储器ROM中。典型的嵌入式硬件系统结构如图1-3所示。图1-3 典型嵌入式硬件系统组成2.嵌入式处理器

嵌入式处理器是一种为完成特殊应用而设计的专业处理器,因此对嵌入式处理器性能要求也有所不同,如在实时性、功耗、成本、体积等方面。目前,嵌入式处理器的一般分为以下四种类型,如图1-4所示。图1-4 嵌入式处理器的分类(1)嵌入式微控制器。微控制器(Micro Control Unit,MCU)是在一块芯片上集成了中央处理单元(CPU)、存储器(RAM/ROM等)、定时器/计数器及多种输入输出(I/O)接口的比较完整的数字处理系统。MCU从体系结构到指令系统都是按照嵌入式系统的应用特点专门设计的,它能很好地满足应用系统的嵌入、面向测控对象、现场可靠运行等方面的要求。因此,微控制器有广泛的应用领域。

MCU在国内也被称为单片机,由于其具有低廉的价格和优良的功能,所以品种和数量众多,并且某些单片机内部集成有I2C、CAN总线、LCD、A/D和D/A功能,以及众多专用MCU的兼容系列。比较有代表性的8位微控制器是Intel公司MCS-51系列和16位的TI公司MSP430系列等。

MCU的最大特点是单片化,体积小,功耗和成本低。但是,MCU系统不适合运行操作系统,难以实现复杂的运算及处理功能。MCU在软件和硬件设计方面的工作量比例基本相同,各约占50%。(2)嵌入式微处理器。嵌入式微处理器(Micro Processor Unit,MPU)是由通用计算机中的CPU演变而来的。在实际嵌入式应用中,MPU只保留和嵌入式应用紧密相关的功能部件,去除其他的冗余功能部分,这样就以最低的功耗和资源实现嵌入式应用的特殊要求。其中,代表性的产品如ARM、Am186/88、Power PC、68000、MIPS系列等微处理器。

目前,嵌入式系统的主流是以32位嵌入式微处理器为核心的硬件设计和基于实时操作系统(RTOS)的软件设计,并强调基于平台的设计和软硬件协同设计。MPU系统设计的工作量主要是软件设计,其中软件设计约占70%的工作量,硬件约占30%工作量。在本教材中, MPU将作为主要处理器来介绍。(3)嵌入式数字信号处理器。数字信号处理器(Digital Signal Processor,DSP)是专门用于信号处理方面的处理器,其在系统结构和指令算法方面进行了特殊设计,如在需要进行数字滤波、FFT、频谱分析等运算的仪器设备上,DSP就获得了大规模的应用。

DSP的理论算法在20世纪70年代就已经出现,1982年诞生了世界上首枚DSP芯片。DSP一般可以用于射频、音频和视频的处理,某些对实时性、计算强度要求较高的场合也可使用DSP。随着DSP的运算速度进一步提高,应用领域也从上述范围扩大到了通信和计算机方面。例如,各种带有智能逻辑的消费产品、生物信息识别终端、带加密算法的键盘、实时语音压缩和解压系统、虚拟现实显示等。

DSP处理器对系统结构和指令进行了特殊设计,使其适合执行DSP算法,编译效率较高,指令执行速度也很快。DSP处理器经过单片化、EMC改造、增加片上外设,已成为嵌入式DSP处理器,如TI公司的TMS320C2000/C5000/6000系列等属于此范畴。(4)嵌入式片上系统。片上系统(System on Chip,SoC)技术始于20世纪90年代中期,随着半导体工艺技术的发展,IC设计者能够将越来越复杂的功能集成到单硅片上,SoC正是在集成电路(IC)向集成系统(IS)转变的大方向下产生的。片上系统的具体定义为:SoC是一个具备特定功能、服务于特定市场的软件和集成电路的混合体。它采用可编程逻辑技术把整个系统放到一块硅片上,也称作可编程片上系统。这样在单个芯片上集成一个完整的系统,一般包括系统级芯片控制逻辑模块、MCU/MPU内核模块、DSP模块、嵌入的存储器模块和外部进行通信的接口模块、含有ADC/DAC的模拟前端模块、电源提供和功耗管理等模块。SoC由单个芯片实现整个系统的主要逻辑功能,又具备软/硬件在系统可编程的功能。SoC是追求产品系统最大包容的集成器件,其最大的特点是成功实现了软/硬件无缝结合,可以直接在处理器片内嵌入操作系统的代码模块。

例如,TI公司生产的CC2530芯片就是一个SoC,其内部结合了RF收发器(用于2.4 GHz IEEE 802.15.4、ZigBee应用)、增强型8051 MCU、32/64/128/256 KB可编程闪存、8 KB RAM等功能部件。CC2530具有不同的运行模式,使得它尤其适应超低功耗要求的系统。目前, SoC在声音、图像、影视、网络及系统逻辑等应用领域中发挥了重要作用。3.存储体系和存储层次结构(1)存储体系。在目前应用的嵌入式处理器存储体系结构中,通常采用冯·诺依曼结构和哈佛体系结构两种形式。

① 冯·诺依曼体系结构。采用冯·诺依曼体系结构的计算机系统一般是由中央处理单元(CPU)、主存储器和输入输出设备组成。主存储器存储全部的数据和指令,并且可以根据所给的地址对其进行读、写操作,主存储器只有在取指令周期才能取出机器指令,CPU通过数据总线与存储器交换数据。

冯·诺依曼体系结构系统内部的数据与指令都存储在同一存储空间中,程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置。系统采用单一的地址及数据总线,程序指令和数据的宽度相同,程序计数器是CPU内部指示指令和数据的存储位置的寄存器。例如,基于ARM7的微处理器一般采用冯·诺依曼体系结构。冯·诺依曼体系结构模型图如图1-5所示。

② 哈佛体系结构。采用哈佛体系结构的计算机是将主存储器分为两个部分,一部分存放指令,另一部分存放数据,它们各自拥有独立的地址空间和访存指令。其中,程序计数器PC只指向程序存储器,数据存储器指针指向数据存储器。采用这种结构形式,即使数据总线被占用,CPU也可以继续从程序内存中取指令执行。这样在CPU的操作和部件之间引入了某种并行度,从而可以提高系统的效率。独立的程序存储器和数据存储器为数字处理提供了较快的速度,让两个存储器有不同的端口,可提供较大的存储器带宽。因此,大部分嵌入式微处理器和数字信号处理器DSP中常采用这种结构方式。哈佛体系结构图如图1-6所示。图1-5 冯·诺依曼体系结构模型图图1-6 哈佛体系结构图

在目前应用的嵌入式处理器Cache中,其结构组成分同样分为两类:一类是数据同指令都放在同一个Cache中,称为统一化结构Cache;另一类是数据和指令分别放在两个独立的Cache中,称为哈佛结构Cache,也称为分离型Cache。(2)存储层次结构。目前,应用计算机中的各种存储器不能同时满足存取速度快、存储容量大和成本低的要求,所以在计算机中必须有速度由慢到快、容量由大到小的多级层次存储器,以最优的控制调度算法和合理的成本,构成具有性能可接受的存储系统。因此,嵌入式存储系统同样将存储层次分为高速缓冲区(Cache)、内部存储器(简称内存或称主存)和外部存储器(简称外存),如图1-7所示。

高速缓存区采用了一种小型、快速的静态随机存储器SRAM,它保存了部分主存储器的内容。Cache用来改善主存储器与处理器的速度匹配问题,可减少微处理器访问内存储器花费的访问时间。内部存储器一般采用存储密度较大的同步动态存储器SDRAM,用来存放即将要被微处理器执行的程序和数据。嵌入式系统中的程序存储器一般使用闪速存储器FlashROM,用来存放为不同的嵌入式系统编写的程序和常数数据。外部存储器可以根据实际需要进行配置,如采用SD卡和移动硬盘等。图1-7 嵌入式存储系统

① 高速缓冲区(Cache)的工作机制。Cache存储器介于CPU和内存之间,工作速度数倍于内存的存储速度,其全部功能由硬件来实现,内部存放的是最近一段时间微处理器使用最多的程序代码和数据。在需要进行数据访存操作时,微处理器尽可能地从Cache中读取数据,而不是从主存中读取。采用Cache方式可减小内存对微处理器内核造成的存储器访存时间,提高微处理器和内存之间的数据传输速率,使处理速度更快、实时性更强。

在Cache存储结构中,Cache和内存储器都被划分成相同大小的存储块(或页),因此内存地址可用存储块号m和块内地址b两部分来组成,Cache的地址也可用存储块号C和块内地址b两部分来组成。Cache的工作原理如图1-8所示。图1-8 高速缓存区的工作原理

当CPU要访问Cache时,首先由CPU送来主存地址,放到内存地址寄存器中。再经过地址映像与地址变换过程。如果变换成功(称为命中),则通过地址变换部件把内存地址中的存储块号m变换成Cache的存储块号c,并放到Cache地址寄存器中,同时将内存地址中的块内地址b直接作为Cache的块内地址b装入到Cache地址寄存器中。然后用得到的Cache地址去访问Cache,并从Cache中取出内容(数据或指令)送到CPU中。如果变换不成功,则产生Cache失效信息,并且用内存地址访问内器。从内存中读出一个字送往CPU,同时把包含被访问字在内的整个存储块都从内存读出来,装入到Cache中去。这时,如果Cache已经没有空闲的存储空间,则要采用某种替换策略把Cache中的某个存储块的内容删掉来存放新调入的块。由于程序具有局部性特点,每次块失效时再将即将执行的一个新存储块调入到Cache中,故能够提高Cache的命中率。

通常,内存的容量要比Cache的容量大得多,所以内部含有的存储块(或页)的数目多于Cache内的存储块的数量。下面,简单地介绍在它们之间是按照什么样的规则来建立这种对应关系,以及在这种对应关系下,内存地址又是如何变换成Cache地址的呢?

在Cache中,地址映像是指把某个内存地址空间的内容映像到Cache的某个地址空间中去。具体执行时,需要在Cache中的每个存储块外加有若干位标记位,用来指明它所存放的是内存的哪一存储块的副本,该标记位的内容相当于内存中存储块的编号。为了要把信息放到Cache中,必须用一定的方法把存放在内存中某个存储块中的信息按照某种规则装入到Cache中,同时要建立内存地址到Cache地址之间的对应关系,这个过程称为地址映像。而地址变换是指当信息按照这种映像关系装入Cache以后,在实际程序运行过程中,把内存地址具体的变换成Cache地址来执行。地址的映像和变换是密切相关的,在进行地址映像和变换时,都是以存储块为单位进行调度的。(a)Cache的地址映像方式。在Cache中,通常使用的调度方法有全相联映像、直接映像或组相联映像三种方式。

全相联映像方式是最灵活、利用率最高,但成本也最高的一种方式。它允许内存中的每一个存储块都可以映像到Cache的任何一个存储块位置上,也允许从确实已被占满的Cache中替换出任何一个旧存储块。这种方式每个存储块使用的标记位数要多一些(即主存存储地址的总位数减去块内地址的位数),会使Cache每个存储块的标记容量加大。所带来的主要问题是在访问Cache时,需要对Cache每个存储块的全部标记进行比较,通过比较后才能判断出所访内存地址的内容是否已在Cache中,故需要时间较长。

在直接映像方式中,内存中的存储块与Cache中存储块有固定的对应关系。假设,在内存中共有2m个存储块,存储块大小为2b字节。在Cache中有与内存存储块同样大小的2c个存储块,存储块大小同样为2b字节。c也代表了Cache高位地址位数,b同样是Cache块内地址位数即低位地址数。具体的实现方法是先将内存分成与Cache同样大小的若干个区(组),每个区(组)中包含有同Cache相同的存储块数。要求每个区(组)中的某个存储块只能固定调入Cache中的对应编号的存储块中。在这种映像方式中,相应存储块的对应关系是固定的,并有一定限制。采用这种直接映像方式所需判断查询的内容比全相联映像方式少。直接映像方式的优点是实现简单、速度快,但缺点是不够灵活。这使得Cache存储空间得不到充分利用,并降低了Cache的命中率。

组相联映像方式是直接映像和全相联映像方式的一种折中方案,其性能与复杂性介于直接映像与全相联映像两种方式之间。首先对Cache分组,然后在组内分成2r个存储块。内存结构只是按照Cache组的大小划分成若干的组。由于Cache中每组内包含2r个存储字块数,当r=0时内存的组与Cache的组之间就成为了直接映像方式。当2r等于Cache的地址空间时,则变成了全相联映像方式。通常,Cache中的各个组与内存内的各个组之间是工作在直接映像方式,而Cache每组内的存储字块与内存的各个组内相同存储字块位置之间则工作在全相联映像方式。ARM7微处理器采用的是4路(r=2)组相联的8 KB的Cache。

Cache的命中率除了与地址映像的方式有关外,还与Cache的容量有关。Cache容量大,命中率就高,但达到一定容量后,命中率的提高也就不明显了。(b)Cache的替换算法。当微处理器需要的程序或数据没有存放在Cache中时,就必须及时进行地址映像和地址变换,替换Cache中的内容或者将新的存储块存入到Cache中。常用的替换算法有近期最少使用(LRU)算法、先进先出算法(FIFO)和随机替换(RAND)算法等。

LRU算法是把一组中近期最少使用的字块替换出去。这种替换算法需随时记录Cache中各个字块的使用情况,即字块表为在物理存储器中的每一字块保留了一个时间年龄域,以便确定哪个字块是近期最少使用的字块。在需要替换的时候,则将近期最少使用的字号块替换掉。这种算法利用率高,但是实现较为麻烦,经常采用修改型LRU算法。ARM7中采用的就是修改型LRU的替换算法。

FIFO算法是在地址变换表中设置一个历史位,当替换时,总是把一组中最先调入Cache的字块替换出去。它不需要随时记录各个字块的使用情况,所以容易实现且开销小。

另外还有一种随机替换法(RAND),这种算法不考虑使用时的具体情况,在Cache组内随机的选择一存储块来进行替换,其Cache的利用效率比较差,但方法实现简单。(c)Cache的写入方法。Cache和内存的写策略有如下两种方式。

写直达法:当CPU对Cache写命中时,Cache与主存同时发生写修改。其优点是一致性好,缺点是耗时。

写回法:当CPU对Cache写命中时,只修改Cache的内容而不立即写入主存,只当该页被从Cache替换时,才把数据写回主存储器中。优点是减少访问主存次数,提高了效率,缺点是一致性差点。目前,在ARM微处理器中多采用这种方式。

② 嵌入式内部存储器。SDRAM(Synchronous DRAM)意为同步动态随机存储器,大约在1997年问世,曾是PC使用的主流内存,现在SDRAM已经成为嵌入式系统的主流内存储器。SDRAM存储器不具有掉电保持数据的特点,因此SDRAM在系统中主要用作程序的运行空间、数据及堆栈区。当系统启动时,CPU首先从复位地址0x0h处读取代码,在完成系统初始化后,由导引程序将程序代码调入SDRAM中运行,以提高系统的运行速度。

SDRAM具有空间容量大、体积小、速度快和价格便宜的优点,已广泛应用在各种嵌入式系统中。常用的SDRAM为8位/16位的数据宽度,一般工作电压为3.3 V或2.5 V。嵌入式系统中SDRAM内部采用Bank体系结构,Bank的中文意义是存储体。从逻辑上看,可以认为SDRAM内部组织为一个多层存储阵列,每一个存储阵列逻辑上就是一张表,即一个内部Bank。该表有行地址和列地址,行列交叉的位置就是存储单元,每个存储单元存放1 B或者2 B。同表格检索一样,为了对Bank中的数据进行读写,需要先指定数据在某一个存储体、某一个行,而后再指定一个列,这样寻址到该单元之后再进行访问。

目前,在较多的嵌入式系统中已经应用DDR(Double Data Rate)SDRAM作为嵌入式系统内部存储器。DDR RAM内存的运作方式与传统SDRAM相似,但可在一个时脉周期内传输2次数据,理论上可提供2倍数据传输量。DDR的工作电压为2.5 V。DDR3即第三代双倍数据率同步动态随机存取存储器,是DDR2(4倍数据率)的后继者(增加至8倍数据率),也是现时最流行的嵌入式系统中的内存产品。

③ 嵌入式程序存储器。闪速存储器(Flash)是最常用的嵌入式程序存储器,它在嵌入式系统中的作用相当于PC中的硬盘。Flash用于存放程序代码、常量表、中断向量,以及一些在系统掉电后需要保存的用户数据。Flash存储器是一种高密度、不挥发的高性能读写存储器,兼有功耗低、可靠性高等优点。

闪速存储器主要有NOR型和NAND型两种类型,目前在嵌入式系统上多使用的是NAND型闪速存储器。NOR型和NAND型闪存的性能比较主要体现在以下三个方面。(a)工作方式。NOR Flash带有SRAM接口,具有线性寻址特性,可以很容易地存取访问其内部的每一个字节,NOR类型的读速度比NAND类型稍快一些。NAND Flash使用复用接口和控制IO接口多次寻址存取数据,NAND类型的擦除速度和写入速度比NOR类型的快。在NAND类型存储器中,要修改NAND芯片中的某一个字节,必须重写整个页面,不能对单个字节操作。NAND类型的读和写操作采用块(页)操作,容量大小一般是512 B。这一点有点像硬盘管理,故此类操作易于取代硬盘等类似的块设备。(b)容量和成本。NAND Flash生产过程简单、成本低。常见的NOR Flash容量为128 KB~16 MB,而NAND Flash通常为几MB~几GB不等。NOR Flash主要应用在代码存储介质中,可以像通用存储器那样接入系统,直接作为系统启动芯片。NAND Flash共用地址和数据线,需要外接一些控制引脚。存储在NAND Flash中的程序不可以直接运行,需要复制到RAM中才能执行,所以一般不将NAND芯片用作启动芯片。NAND Flash是串行读写设备,所以适合于作为大数据量的存储。(c)耐用性。NAND Flash每块的最多擦写次数是100万次,而NOR类型存储器的最多擦写次数是10万次。NOR Flash主要用于手机、掌上电脑等需要直接运行代码的场合,而NAND Flash广泛用于数据存储的相关领域,如移动存储产品、各种类型的闪存卡、音乐播放器等。1.2.3 嵌入式硬件系统中采用的先进技术

嵌入式处理器通常采用精简指令系统计算机(Reduced Instruction Set Computer,RISC)结构中的先进技术来提高CPU性能,如流水线技术、总线等新技术。1.RSIC特征

RISC起源于20世纪80年代,RISC能够以更快的速度执行操作(每秒执行百万条指令,即MIPS)。RISC与x86 CPU等复杂指令集计算机(Complex Instruction Set Computer,CISC)相比,具有如下优点。

结构更加简单合理,从而提高运算效率;

优先选取使用频率最高、有用但不复杂的指令,避免使用复杂指令;

固定指令长度,减少指令格式和寻址方式种类;

指令之间各字段的划分比较一致,各字段的功能也比较规整;

采用Load/Store指令访问存储器,其余指令的操作都在寄存器之间进行;

增加了CPU中通用寄存器数量,算术逻辑运算指令的操作数都在通用寄存器存取;

大部分指令控制在一个或小于一个机器周期内完成;

以硬布线控制逻辑为主,不用或少用微码控制;

采用高级语言编程,重视编译优化工作,以减少程序执行时间。2.流水线技术

计算机中一条指令的执行可分为若干个阶段,由于每个阶段的操作相对来说都是独立的,因此可以采用流水线的重叠技术来提高系统的性能。在流水线装满以后,几条指令可以并行执行。这样既可充分利用现有硬件资源,又可提高CPU的运行效率。例如,基于ARM7微处理器中采用了取指令、指令译码和执行指令三个阶段,即三级流水线,如图1-9所示。图中的MOV、ADD、SUB指令为单周期指令,在流水线装满后,即从图中T1开始,用5个时钟周期执行了5条指令,平均1个时钟周期执行1条指令。基于ARM9架构的微处理器一般采用五级流水线,指令的执行过程分别是取指令、指令译码、执行、数据访存和结果回写五个阶段,如图1-10所示。与三级流水线相比,ARM9的增加了存储器访存和寄存器回写操作。由于ARM9系列架构将高速缓冲区又分成了指令I-Cache和数据D-Cache,这样就解决了对于存储器访问指令(如LDR/STR)在指令执行阶段的延迟,加快了CPU的执行速度。

新型的微处理器中还有更多级的流水线,不同架构的微处理器,其流水线的级数也可能会有不同。图1-9 三级最佳流水线图1-10 五级最佳流水线

使用流水线技术可以增快总体程序的执行速度。若指令中具有N个阶段且每个阶段的执行时间相同,那么在流水线装满的时间内则在每一个周期就可同时执行N条指令,其性能就可以改善N倍。但是上述的过程只是一种理想的过程,有时流水线中的数据也会存在许多相关的问题。在实际中,如果执行某一条指令的过程中需要前一条指令的执行结果,而这些指令又均在流水线中重叠执行时,就可能会与流水线的数据相关,这就不得不产生停顿。为了避免这类数据相关问题的出现,ARM架构的微处理器采用了资源重复的方法,即采用分离式指令Cache和数据Cache结构。该方法使取指令和存储器的数据访问不再发生冲突,同时也解决了指令、数据同一通道的问题。算数逻辑单元(ALU)中采用单独加法器来完成地址计算,这样在执行周期的运算时不再产生资源冲突。

当流水线遇到分支指令和其他会改变程序计数器PC值的指令时,就会发生控制相关。当检测到流水线中某条指令是分支指令时,处理器就暂停分支指令之后的所有指令,直到分支指令确定了新的PC值为止。对于控制相关,ARM采用了指令预测的方法。这样能尽早判断分支转移是否成功,从而采取相应预测转移和延迟转移,以降低分支转移所造成的时间上的损失。另外为了能够尽早计算出分支转移成功时的PC值(即分支的目标地址),在有些ARM架构的微处理器流水线中的译码阶段增加了一个专用加法器来计算分支的目的地址。

流水线通过重复设置多套指令执行部件,同时处理并完成多条指令的并行操作来达到提高处理速度的目的。3.总线和总线桥

总线是CPU与存储器和设备通信的机制,是计算机各部件之间传输数据、地址和控制信息的公共通道。按相对于CPU的位置来分,有片内总线(连接CPU内部各主要功能部件)和片外总线(CPU与存储器和I/O接口之间进行信息交换的通道)。

总线的主要参数有总线宽度、总线频率和总线带宽。其中,总线宽度又称总线位宽,即总线能同时传输数据的位数。例如,32位总线就是具有32位数据传输能力。总线频率是总线工作速度的一个重要参数,工作频率越高则速度越快。总线带宽(单位为MBps)=(总线宽度位/8位)×总线频率,例如,总线宽度32位,频率66 MHz,则总线带宽=(32位/8位) ×66 MHz=264 MBps。

ARM体系处理器总线与微机中的PCI总线类似,使用同步数据传输结构实现信息传输,具有支持32位数据传输和32位寻址的能力。但是,ARM总线的传输速度在规范中没有明确规定,而是取决于特定应用中所使用的微处理器的时钟频率。

由于嵌入式处理器是由许多不同制造商制造的,提供的总线传输速度随使用的处理器芯片变化而变化。ARM公司已经为单芯片系统创建了一个独立的总线规格说明。其中,通过先进微控制器总线架构(Advanced Microcontroller Bus Architecture,AMBA)将CPU、存储器和外围设备都制作在同一个系统板中。AMBA规格说明具体包含有两条总线。

高性能总线(Advanced High-performance Bus,AHB)为高速传输而优化,并直接连接到CPU上。AHB适用于高性能、高时钟的系统模块,它构成了高性能的系统骨干总线。它的主要技术特性有支持流水线技术、突发传输、数据分割传输和多总线主控器等。

连接外设的外围设备总线(Advanced Peripheral Bus,APB)属于本地二级总线,通过桥连接器(简称桥)与AHB相连。它主要用于不需要高性能流水线接口或不需要高带宽接口的设备互连,ARM体系处理器中总线结构如图1-11所示。图中的桥用来将APB连接到AHB上,这种总线方式在实际中比较容易实现。图1-11 总线和总线桥

在嵌入式微处理器中常用的AMBA 3.0版也称为先进可扩展接口(Advanced eXtensible Interface,AXI),它是高性能片上总线,数据线宽度选择余地更大,支持8、16、32、64、128、256、512和1024位8种方式。它通过采用单项通道体系结构减少了芯片资源,并具有独立的地址和数据通道,支持多项数据交换等。一个典型的AHB总线工作过程包括以下两个阶段:其一是地址传输阶段,只持续一个时钟周期。在HCLK时钟的上升沿数据有效,所有的从单元都在这个上升沿来采样地址信息。其二是数据传输阶段,它需要一个或几个时钟周期,通过总线应答HREADY信号来延长数据传输时间。当HREADY信号为低电平时,就在数据传输中加入等待周期,直到HREADY信号为高电平才表示这次传输阶段结束。

APB桥将系统总线AHB和APB连接起来,并执行下列功能。

锁存地址并保持其有效,直到数据传输完成;

译码地址并产生一个外部片选信号,在每次传输时只有一个片选信号有效;

写传输时驱动数据到APB;

读传输时驱动数据到系统总线AHB;

传输时产生定时触发信号PENABLE。1.3 嵌入式软件系统

软件是一种逻辑实体,具有抽象性。人们可以把它记录在纸上、内存、磁盘、存储卡和光盘上,但却无法看到软件本身的形态,必须通过观察、分析、思考、判断,才能了解它的功能、性能等特性。软件的开发至今尚未完全摆脱手工作坊式的开发方式,生产效率低。软件编写是复杂的,涉及人类社会的各行各业、方方面面,这些因素常常成为软件开发的困难所在,直接影响项目的成败。

软件是计算机系统中与硬件相互依存的另一部分,它包括程序、相关数据及其说明文档三个部分。其中程序是按照事先设计的功能和性能要求执行的指令序列;数据是程序能正常操纵信息的数据结构;文档是与程序开发维护和使用有关的各种图文资料。1.3.1 系统简介

嵌入式软件系统是实现嵌入式计算机系统功能的软件,一般由嵌入式系统软件、支撑软件和应用软件构成。其中系统软件用于控制、管理计算机系统的资源,具体包括嵌入式操作系统、嵌入式中间件(CORBA、Java)等。支撑软件是辅助软件开发的工具,具体包括系统分析设计工具、仿真开发工具、交叉开发工具、测试工具、配置管理工具和维护工具等。应用软件面向应用领域,随着应用目的的不同而不同,如手机软件、路由器软件、交换机软件、视频图像、语音、网络软件等。1.软件系统结构

嵌入式系统软件结构由低到高可分为驱动层、操作系统(OS)层、中间件层、应用层4个层面。由于嵌入式硬件电路的可裁减性和嵌入式系统本身的特点,其软件部分也是可裁减的。通用的嵌入式软件系统体系结构,如图1-12所示。图1-12 嵌入式软件系统的体系结构(1)驱动层。驱动层程序是嵌入式系统中不可缺少的重要部分,使用任何外部设备都需要相应驱动层程序的支持,它为上层软件提供了设备的接口。上层软件不必考虑设备的具体内部操作,只须调用驱动层程序提供的接口即可。

驱动层中的板级支持包(Board Support Package,BSP)也称为硬件抽象层(Hardware Abstract Layer,HAL),是一个介于操作系统和底层硬件之间的软件层次,内部包括了系统中大部分与硬件联系紧密的软件模块,主要作用是消除不同硬件之间的差异。BSP使上层软件开发人员无须关心底层硬件的具体情况,根据BSP层提供的接口即可进行开发。BSP一般包括相关底层硬件的初始化、为驱动程序提供数据的输入/输出操作和硬件设备的配置等功能。

板级初始化程序是在嵌入式系统上电后初始化系统的硬件环境,包括嵌入式微处理器、存储器、中断控制器、DMA、定时器等的初始化。系统软件相关的驱动程序是操作系统和中间件等系统软件所需的驱动程序,它们的开发要按照系统软件的要求进行。(2)操作系统层。操作系统的作用是隐含底层不同硬件的差异,向上层运行应用程序提供一个统一的调用接口。操作系统主要完成内存管理、多任务管理和外围设备管理三个任务。在系统运行较多任务,任务调度、内存分配复杂,系统需要大量协议支持等情况下,就需要一个操作系统(OS)来管理和控制内存、多任务、周边资源等。依据系统所提供的程序界面来编写应用程序,可大大减少应用程序开发人员的负担。另外,如果想让系统具备更好的可扩展性或可移植性,那么使用操作系统也是一个不错的选择。因为操作系统里含有丰富的网络协议和驱动程序,可以大大简化系统的开发难度,并提高系统的可靠性。现代高性能嵌入式系统的应用越来越广泛,操作系统的使用成为必然发展趋势。但是安装操作系统同样会带来新的系统开销,降低系统的某些性能。

操作系统的功能给应用程序开发人员提供了抽象的接口,用户只需要和这些抽象的接口打交道,而不用在意这些抽象的接口和函数是如何与物理资源相联系的,也不用去管那些功能是如何通过操作系统调用具体的硬件资源来完成的。这样,如果以后系统硬件体系发生变化,只要在新的硬件体系下还运行着同样的操作系统,那么原来的程序还能完成原有的功能。

嵌入式操作系统层包括内核、TCP/IP网络系统、文件系统、图形用户接口(GUI)系统和电源管理等部分。其中内核是基础和必备的部分,其他部分可根据嵌入式系统的需要来确定。对于使用操作系统的嵌入式系统而言,其操作系统一般以内核映像的形式下载到目标系统中。(3)中间件层。目前在一些复杂的嵌入式系统中也开始采用中间件技术,主要包括嵌入式CORBA、嵌入式Java、嵌入式DCOM和面向应用领域的中间件软件。(4)应用层。应用层软件主要由多个相对独立的应用任务组成,每个应用任务完成特定的工作,如I/O任务、计算的任务、通信任务等,由操作系统调度各个任务的运行。用户应用程序主要通过调用系统的API函数对系统进行操作,完成用户应用功能开发。在用户的应用程序中,也可创建用户自己的任务。任务之间的协调主要依赖于系统的消息队列。2.嵌入式软件系统的设计与运行流程

操作系统是为应用程序提供基础服务的软件,而应用程序是在CPU上执行的一个或多个程序,在执行过程中会使用输入数据并产生输出数据。应用程序的管理包括程序载入和执行,以及程序对系统资源的共享和分配,并避免分配到的资源被其他程序破坏。

应用程序的设计流程是先用编辑程序编写源代码,源代码可以由多个文件组成,以实现模块化。然后编译程序或汇编多个文件,使用链接程序将这些二进制文件组合为可执行文件。这些工作归结起来,可看作实现阶段。然后,通过调试程序提供的命令运行得到的可执行文件,以测试所设计的程序。在验证阶段,如果找到错误或性能瓶颈,可以返回到实现阶段进行改进,并重复该流程。

嵌入式软件运行流程主要分为五个阶段,它们分别是上电复位/板级初始化阶段、系统引导/升级阶段、系统初始化阶段、应用初始化阶段和多任务应用运行阶段。(1)上电复位/板级初始化阶段。嵌入式系统上电复位后完成板级初始化工作,板级初始化程序具有完全的硬件特性,一般采用汇编语言实现。(2)系统引导/升级阶段。根据需要分别进入系统软件引导阶段或系统升级阶段,软件可通过测试通信端口数据或判断特定开关的方式分别进入不同阶段,在系统引导阶段有以下三种不同的工作方式来执行。

① 将系统软件从NOR Flash中读取出来加载到RAM中运行,这种方式可以解决成本及Flash速度比RAM慢的问题。软件可压缩存储在Flash中。

② 不需将软件引导到RAM中而是让其直接在NOR Flash上运行,进入系统初始化阶段。

③ 将软件从外存(如NAND Flash、SD卡、MMC等)中读取出来加载到RAM中运行,这种方式的成本更低。

在进入系统升级阶段后,系统可通过网络进行远程升级或通过串口进行本地升级。远程升级一般支持TFTP、FTP、HTTP等方式,本地升级可通过Console使用超级终端或特定的升级软件进行。(3)系统初始化阶段。在该阶段进行系统软件各功能部分必须的初始化工作,如根据系统配置初始化数据空间、初始化系统所需的接口和外设等。系统初始化阶段需要按特定顺序进行,如首先完成内核的初始化,然后完成网络、文件系统等的初始化,最后完成中间件等的初始化工作。(4)应用初始化阶段。在该阶段进行应用任务的创建,信号量、消息队列的创建,以及与应用相关的其他初始化工作。(5)多任务应用运行阶段。各种初始化工作完成后,系统进入多任务状态,操作系统按照已确定的算法进行任务的调度,各应用任务分别完成特定的功能。

嵌入式应用软件是由基于嵌入式操作系统开发的应用程序组成的,用来实现对被控对象的控制功能。功能层面向被控对象和用户,为方便用户操作,往往需要提供一个友好的人机界面。为了简化设计流程,嵌入式应用软件的开发采用一个集成开发环境供用户使用。

在嵌入式系统中通常采用高级语言编写相关程序,C语言具有广泛的库程序支持,目前是在嵌入式系统中应用最广泛的编程语言。C++是一种面向对象的编程语言,在嵌入式系统设计中也得到了广泛的应用。但C与C++相比,C++的目标代码往往比较庞大和复杂,在嵌入式系统应用中应充分考虑这一因素。1.3.2 嵌入式操作系统1.概述

操作系统是一段在嵌入式系统启动后执行的背景程序,负责计算机系统中全部软/硬资源的分配回收、控制与协调等开发的活动。操作系统提供了用户接口,使用户获得良好的工作环境。另外,操作系统为用户扩展新的系统功能提供了软件平台。

嵌入式操作系统是操作系统的一种类型,是在传统操作系统的基础上加入符合嵌入式系统要求的元素发展而来的。嵌入式操作系统提高了系统的可靠性和开发效率、缩短了开发周期,充分发挥了32位CPU的多任务潜力。

嵌入式操作系统通常包括与硬件相关的底层驱动软件、系统内核、设备驱动接口、通信协议、图形界面、标准化浏览器等,具有编码体积小、面向应用、可裁剪和移植、实时性强、可靠性高和专用性强等特点。(1)嵌入式操作系统的发展过程。在嵌入式系统的发展过程中,从操作系统的角度来看,大致经历了无操作系统、简单操作系统、实时操作系统和面向Internet共四个阶段。

① 无操作系统阶段。嵌入式系统最初的应用是基于单片机的,大多以可编程控制器的形式出现,具有监测、伺服、设备指示等功能。一般可以通过程序语言对系统进行直接控制,运行结束后再清除内存。这一阶段嵌入式系统的主要特点是系统结构和功能相对单一,处理效率较低,存储容量较小,几乎没有用户接口。由于这种嵌入式系统使用简便、价格低廉,因而曾经在工业控制领域中得到了非常广泛的应用,但却无法满足现今对执行效率、存储容量都有较高要求的信息家电等场合的需要。

在无操作系统的嵌入式系统软件主程序中使用无限循环,这是由于程序都是顺序执行的。如果不使用无限循环,程序执行一次代码后就不能在接收其他的任务操作了。

② 简单操作系统阶段。20世纪80年代,随着微电子工艺水平的提高,IC制造商开始把嵌入式应用中所需要的微处理器、I/O接口、串行接口,以及RAM、ROM等部件统统集成到一片超大规模集成电路VLSI中,制造出面向I/O设计的微控制器,并一举成为嵌入式系统领域中异军突起的新秀。与此同时,嵌入式系统的程序员也开始基于一些简单的“操作系统”开发嵌入式应用软件,大大缩短了开发周期、提高了开发效率。

这一阶段嵌入式系统的主要特点是:出现了大量高可靠、低功耗的嵌入式CPU(如Power PC等),各种简单的嵌入式操作系统开始出现并得到迅速发展。此时的嵌入式操作系统虽然还比较简单,但已经初步具有了一定的兼容性和扩展性,内核精巧且效率高,主要用来控制系统负载,以及监控应用程序的运行。

③ 实时操作系统阶段。20世纪90年代,在分布式控制、柔性制造、数字化通信和信息家电等巨大需求的牵引下,嵌入式系统进一步飞速发展,而面向实时信号处理算法的DSP产品则向着高速度、高精度、低功耗的方向发展。随着硬件实时性要求的提高,嵌入式系统的软件规模也不断扩大,逐渐形成了实时多任务操作系统,并开始成为嵌入式系统的主流。

这一阶段嵌入式系统的主要特点是:操作系统的实时性得到了很大改善,已经能够运行在各种不同类型的微处理器上,具有高度的模块化和扩展性。此时的嵌入式操作系统已经具备了文件和目录管理、设备管理、多任务、网络、图形用户界面(GUI)等功能,并提供了大量的应用程序接口(API),从而使得应用软件的开发变得更加简单。

④ 面向Internet的阶段。随着Internet的进一步发展,以及Internet技术与信息家电、工业控制技术等的结合日益紧密,嵌入式设备与Internet的结合为嵌入式系统的发展带来了巨大的机遇,同时也对嵌入式系统厂商提出了新的挑战。目前,嵌入式系统的研究和应用产生了以下新的显著变化。

新的微处理器层出不穷,嵌入式操作系统自身结构的设计更加便于移植,能够在短时间内支持更多的微处理器。

嵌入式系统的开发形成了一项系统工程,开发厂商不仅要提供嵌入式操作系统本身,同时还要提供强大的软件开发支持包。

通用计算机上使用的新技术、新观念开始逐步移植到嵌入式系统

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载