嵌入式系统原理与应用课件_第1页
嵌入式系统原理与应用课件_第2页
嵌入式系统原理与应用课件_第3页
嵌入式系统原理与应用课件_第4页
嵌入式系统原理与应用课件_第5页
已阅读5页,还剩433页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第一章嵌入式系统概论

无处不在的嵌入式系统嵌入式系统的定义嵌入式系统的特征嵌入式系统的发展历程嵌入式系统的分类嵌入式系统的基本结构嵌入式系统的设计要求嵌入式应用开发

计算机发展的三大阶段

第一阶段:始于五十年代的由IBM等公司率先研制的大型机。第二阶段:始于七十年代的个人计算机。第三阶段:计算机正迈入下一个充满机遇的阶段—“后PC时代”或“无处不在的计算机”阶段。无处不在的计算机施乐公司PaloAlto研究中心主任MarkWeiser认为:“从长远来看,PC机和计算机工作站将衰落,因为计算机变得无处不在:例如在墙里、在手腕上、在手写电脑中(象手写纸一样)等等,随用随取、伸手可及”。全世界的计算机科学家正在形成一种共识:

计算机不会成为科幻电影中的那种贪婪的怪物,而是将变得小巧玲珑,无处不在.他们藏身在任何地方,又消失在所有地方,功能强大,却又无影无踪.人们将这种思想命名为:“无所不在的计算机”。

嵌入式系统无处不在彼此互连

采样控制系统飞行控制系统信息家电实时信号处理系统汽车电子产品普适计算仿真测试嵌入式系统无处不在嵌入式设备无处不在,但桌面系统还依然有用无处不在的计算机是计算机与使用者的比率达到和超过100:1的阶段无处不在的计算机包括通用计算机和嵌入式计算机系统在100:1比例中95%以上都是嵌入式计算机系统,并非通用计算机通用计算机-看得见的计算机如:PC机、服务器、大型计算机等。显示器主机鼠标键盘硬件诸如主机、显示器、键盘、鼠标等看得见部件软件应用程序可按用户需要随时改变,即重新编制。通用计算机-看得见的计算机嵌入式系统定义看不见的计算机,一般不能被用户编程,它有一些专用的I/O设备,对用户的接口是专用的。

通常将嵌入式计算机系统简称为嵌入式系统。嵌入式系统是以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。嵌入式系统定义嵌入式系统是将先进的计算机技术、半导体技术和电子技术与各个行业的具体应用相结合后的产物。包含有计算机,但又不是通用计算机的计算机应用系统。通用计算机与嵌入式系统对比特征通用计算机嵌入式系统形式和类型看得见的计算机。按其体系结构、运算速度和结构规模等因素分为大、中、小型机和微机。看不见的计算机。形式多样,应用领域广泛,按应用来分。组成通用处理器、标准总线和外设。软件和硬件相对独立。面向应用的嵌入式微处理器,总线和外部接口多集成在处理器内部。软件与硬件是紧密集成在一起的。开发方式开发平台和运行平台都是通用计算机采用交叉开发方式,开发平台一般是通用计算机,运行平台是嵌入式系统。二次开发性应用程序可重新编制一般不能再编程实时系统

实时系统:能够在限定的响应时间内提供所需水平服务的计算机系统。实时性并不等于快!而是“及时”

衡量实时系统的三个指标:响应时间、吞吐量、生存时间

实时系统强调的是实时性和可靠性

嵌入式系统≠实时系统嵌入式系统的特征

技术密集专用紧凑安全可靠多种多样及时响应成本敏感开发困难不可垄断技术密集软硬结合,缺一不可基本的微处理器、存储器;FPGA、CPLD;专用的处理芯片实现行业的特定功能,难以通用。功能日益更新专用紧凑一般用于特定的任务,其硬件和软件都必须高效率地设计,量体裁衣、去除冗余,而通用计算机则是一个通用的计算平台。它通常都具有低功耗、体积小、集成度高等特点,能够把通用微处理器中许多由板卡完成的任务集成在芯片内部。嵌入式软件是应用程序和操作系统两种软件的一体化程序。安全可靠对于嵌入式系统,编译的软件通常称为固件,大多数被存放在只读存储器或闪存而不是硬盘中,只需要非常少的硬件资源就可以运行。一般来讲,希望设备中嵌入式系统可以不出错误地连续运行,或者出现系统错误也可以进行自我修复,而不是也不大可能进行人工干预。这对嵌入式系统的可靠性提出了极高的要求。运行环境往往恶劣嵌入式设备连网势在必行为什么嵌入式系统有特别的安全可靠性要求?在大多数嵌入式系统的软件中一般都包括一些机制,比如硬件的看门狗定时器,软件的内存保护和重启动机制。保障措施?多种多样嵌入式处理器外围设备嵌入式操作系统开发工具外部环境相关外观形状及时响应嵌入式系统属于某种技术过程的核心处理环节,必须满足技术过程的相关要求。由于这些技术过程一般都有时间、可靠、可用等约束,相应的嵌入式系统也就需要实时性保障嵌入式系统外部事件往往不是单一,而且随机发生,可能同时出现。因此嵌入式系统还具有多任务分布和并发的特点。在这种多任务嵌入式系统中,对重要性各不相同的任务进行统筹兼顾的合理调度是保证每个任务及时执行的关键

大多数实时系统都是嵌入式系统关注成本嵌入式系统通常需要注意的成本是系统成本,特别是量大的消费类数字化产品,其成本是产品竞争的关键因素之一。嵌入式的系统成本包括:一次性的开发成本NRE(Non-RecurringEngineering)成本产品成本:硬件BOM、外壳包装和软件版税等批量产品的总体成本=NRE成本+每个产品成本*产品总量每个产品的最后成本=总体成本/产品总量=NRE成本/产品总量+每个产品成本开发困难:需要专门工具和特殊方法由于嵌入式系统资源有限,一般不具备自主开发能力,产品发布后用户通常也不能对其中的软件进行修改,必须有一套专门的开发环境。该开发环境包括专门的开发工具(包括设计、编译、调试、测试等工具),采用交叉开发的方式进行,交叉开发环境如图所示。采用交叉环境不可垄断PC有WinTel垄断嵌入式系统工业的基础是以应用为中心的“芯片”设计和面向应用的软件产品开发嵌入式系统的发展历程

萌芽阶段:嵌入式系统的出现和兴起(1960-1970)简单系统阶段:嵌入式系统开始走向日常生活(1971-1989)RTOS阶段:嵌入式系统开始走向繁荣,软件和硬件日臻完善(1989-90年代末)网络化阶段:嵌入式系统应用走向纵深(1990年-现在)嵌入式系统的出现和兴起出现:20世纪60年代以晶体管、磁芯存储为基础的计算机开始用于航空等军用领域。第一台机载专用数字计算机是奥托内蒂克斯公司为美国海军舰载轰炸机“民团团员”号研制的多功能数字分析器(Verdan)。同时嵌入式计算机开始应用于工业控制。1962年一个美国乙烯厂实现了工业装置中的第一个直接数字控制(DDC)。嵌入式系统的出现和兴起兴起:在1965~1970年,当时计算机已开始采用集成电路,即第三代计算机。在航空航天领域、工业控制、军事的需求推动下。第一次使用机载数字计算机控制的是1965年发射的Gemini3号,第一次通过容错来提高可靠性是1968年的阿波罗4号、土星5号。1965年DEC公司推出PDP8并发展成PDP11系列,成为工业生产集中控制的主力军。在军用领域中,为了可靠和满足体积、重量的严格要求,还需为各个武器系统设计五花八门的专用的嵌入式计算机系统。嵌入式系统开始走向日常生活嵌入式系统大发展是在微处理器问世之后1973年至1977年间各厂家推出了许多8位的微处理器,包括Intel8080/8085,Motorola的6800/6802,Zilog的Z80和Rockwell的6502。微处理器不单用来组成微型计算机,而且用来制造仪器仪表、医疗设备、机器人、家用电器等嵌入式系统。仅8085/Z80微处理器的销售就超过7亿片,其中大部分是用于嵌入式工业控制应用。嵌入式系统开始走向日常生活单片机、DSP出现随着微电子工艺水平的提高,集成电路设计制造商开始把嵌入式应用所需要的微处理器、I/O接口、A/D、D/A转换、串行接口以及RAM、ROM通通集成到一个VLSI中,制造出面向I/O设计的微控制器,就是我们俗称的单片机。专门用于高速实时信号处理的数字信号处理器DSP。嵌入式系统开始走向繁荣软件技术的进步使嵌入式系统日臻完善在微处理器出现的初期,为了保障嵌入式软件的时间、空间效率,软件只能用汇编语言编写。由于微电子技术的进步,对软件的时空效率的要求不再那么苛刻了,嵌入式计算机的软件开始使用C等高级语言。对于复杂的嵌入式系统来说除了需要高级语言开发工具外,还需要嵌入式实时操作系统的支持。嵌入式系统开始走向繁荣80年代开始出现了一批软件公司,推出商品化的嵌入式实时操作系统和各种开发工具。ReadySystem(后来的MicrotecResearch、后来又被MentorGraphic收购)公司:VRTX操作系统及Xray,Spectra工具IntegratedSystemIncorporation(ISI,后被WindRiver公司合并):pSOS操作系统及pRISM工具WindRiver公司:VxWorks操作系统及Tornado工具QNX公司:QNX操作系统及工具商用嵌入式实时操作系统和开发工具的出现和推广应用,使嵌入式系统的开发从作坊式向分工协作规模化的方向发展,促使嵌入式应用扩展到更广阔的领域。嵌入式系统应用走向纵深进入20世纪90年代,在分布控制、柔性制造、数字化通信和数字化家电等巨大需求的牵引下,嵌入式系统的硬件、软件技术进一步加速发展、应用领域进一步扩大。手机、数码相机、VCD、数字电视、路由器、交换机等都是嵌入式系统。大多数豪华轿车每辆拥有约50个嵌入式微处理器。最新的波音777宽体客机上约有1000个微处理器。在不久的将来你会在你的家里发现几十到上百的嵌入系统在为你服务。嵌入式系统应用走向纵深嵌入式系统的硬件4位、8位、16位微处理器芯片已逐步让位于32位嵌入式微处理器芯片。面向不同应用领域的(Application-Specific)、功能强大、集成度高、种类繁多、价格低廉、低功耗的32位芯片已大量应用于各种各样的军用和民用设备。DSP向高速、高精度、低功耗发展。DSP与通用嵌入式微处理器集成(SoC)已成为现实,并已大量应用于嵌入式系统,如手机、IP电话等。嵌入式系统应用走向纵深嵌入式系统的软件随着微处理器性能的提高,嵌入式软件的规模也随着发生指数型增长。嵌入式系统应用走向纵深低价位的RISC/32-位微处理器日益复杂的应用产品推向市场的时间压力开发成本的提高嵌入式软件危机32位芯片将能够执行由上百万行C代码构成的复杂程序,使得嵌入式应用具备高度复杂和智能化的功能软件的实现从某种意义上说决定了产品的功能,已成为新产品成功与否的关键因素。

嵌入式系统应用走向纵深为此,嵌入式系统已大量采用嵌入式操作系统。嵌入式操作系统功能不断的扩大和丰富,由80年代只有内核、发展为包括内核、网络、文件、图形接口、嵌入式JAVA、嵌入式CORBA及分布式处理等丰富功能的集合。此外,嵌入式开发工具更加丰富,其集成度和易用性不断提高,目前不同厂商已开发出不同类型的嵌入式开发工具,可以覆盖嵌入式软件开发过程各个阶段,提高嵌入式软件开发效率。嵌入式系统的分类按嵌入式处理器的位数来分类按应用来分类按系统实时性来分类按工业界应用的复杂程度来分类按嵌入式处理器的位数来分类4位嵌入式系统8位嵌入式系统16位嵌入式系统32位嵌入式系统64位嵌入式系统正成为主流发展趋势高度复杂的、高速的嵌入式系统已开始采用目前已大量应用按应用来分类信息家电类移动终端类通信类汽车电子类工业控制类按实时性分类根据系统对实时性要求的程度,可将嵌入式系统分为硬实时、软实时系统:硬实时:系统对系统响应时间有严格的要求,如果系统响应时间不能满足,就要引起系统崩溃或致命的错误。软实时:系统对系统响应时间有要求,但是如果系统响应时间不能满足,不会导致系统出现致命的错误或崩溃。按实时性分类根据处理速度的快慢:强实时系统,其系统响应时间在毫秒或微秒级。一般实时系统,其系统响应时间在几秒的数量级上,其实时性的要求比强实时系统要差一些。弱实时系统,其系统响应时间约为数十秒或更长。这种系统的响应时间可能随系统负载的轻重而变化。按工业界应用的复杂程度度来分类简单单处理器系统可扩展单处理器系统复杂嵌入式系统制造或过程控制中使用的计算机系统嵌入式系统的组成嵌入式系统一般由嵌入式硬件和软件组成硬件以微处理器为核心集成存储器和系统专用的输入/输出设备软件包括:初始化代码及驱动、嵌入式操作系统和应用程序等,这些软件有机地结合在一起,形成系统特定的一体化软件。嵌入式系统硬件组成电源晶振复位端口时钟分频

定时器DMA中断控制I/O端口A/D转换核心处理器DRAMFlashROM网口处理器核嵌入式处理器核调试接口外设与扩展USBLCD手写笔键盘红外其他最小硬件系统嵌入式系统软件组成嵌入式实时操作系统嵌入式应用系统应用程序接口功耗管理文件管理GUI操作系统内核有线无线网络基本组件汽车电子浏览器信息家电嵌入式数据库扩展组件板级支持包嵌入式硬件层嵌入式系统与单片机、PC相比的优势采用32位RISC嵌入式微处理器和实时操作系统组成的嵌入式控制系统,与传统基于单片机的控制系统和基于PC的控制方式相比,具有以下突出优点:性能方面:采用32位RISC结构微处理器,主频从30MHz到624MHz以上,处理能力大大超出单片机系统,接近PC机的水平,但体积更小,能够真正地“嵌入”到设备中;实性性方面:嵌入式机控制器内嵌实时操作系统(RTOS),能够完全保证控制系统的强实时性;人机交互方面:嵌入式控制器可支持大屏幕的液晶显示器,提供功能强大的图形用户界面;输入方法多种多样;系统升级方面:嵌入式控制器可为控制系统专门设计,其功能专一,成本较低,而且开放的用户程序接口(API)保证了系统能够快速升级和更新。

嵌入式系统的设计要求功能实用、便于升级并发处理、及时响应造型自然、结构紧凑接口方便、操作容易稳定可靠、维护简便功耗管理、降低成本

嵌入式系统设计不同与桌面系统,它非常受限于功能和具体的应用环境,如及时性、体积/重量限制、安全性、可靠性等。因此,在设计时要考虑一下以下因素:嵌入式系统应用开发

嵌入式系统的开发是一个软硬件的协同开发产品定义系统总体设计软硬件总体设计软硬件集成与测试产品发布嵌入式系统开发过程硬件设计产品定义系统概要设计系统总体框架处理器选定操作系统选定开发环境选定原理图设计PCB设计制板与调试硬件调试原理图设计PCB设计制板与调试硬件调试符合需要?软硬件集成及测试产品发布是否否否软件设计系统总体设计嵌入式系统应用开发嵌入式系统设计:设计复杂,成功率相对低嵌入式编程:以C为主嵌入式系统测试:比较困难,测试手段必须多样嵌入式软件的重用:构件技术嵌入式开发平台:平台选择是基础,也是方向嵌入式系统的应用领域嵌入式系统广泛地应用于消费电子、通信、汽车、国防、航空航天、工业控制、仪表、办公自动化等领域。据欧盟的统计:2003年全球大概有80亿片嵌入式微处理器,到2010年,预计会达到160亿片,地球上的人平均拥有3个嵌入式微处理器;在航空电子中,嵌入式软件的开发成本占整个飞机研制成本的50%;对于汽车工业,汽车电子在整车价值中的比例逐年提高,将从1997年的20%提升到2010年的33-40%;消费电子数量越来越大,据预测,到2010年,仅数字家庭在美国的销售额就将达到2000亿欧元。嵌入式系统的应用领域AndthelistgoesonandonAnti-lockbrakesAuto-focuscamerasAutomatictellermachinesAutomatictollsystemsAutomatictransmissionAvionicsystemsBatterychargersCamcordersCellphonesCell-phonebasestationsCordlessphonesCruisecontrolCurbsidecheck-insystemsDigitalcamerasDiskdrivesElectroniccardreadersElectronicinstrumentsElectronictoys/gamesFactorycontrolFaxmachinesFingerprintidentifiersHomesecuritysystemsLife-supportsystemsMedicaltestingsystemsModemsMPEGdecodersNetworkcardsNetworkswitches/routersOn-boardnavigationPagersPhotocopiersPoint-of-salesystemsPortablevideogamesPrintersSatellitephonesScannersSmartovens/dishwashersSpeechrecognizersStereosystemsTeleconferencingsystemsTelevisionsTemperaturecontrollersThefttrackingsystemsTVset-topboxesVCR’s,DVDplayersVideogameconsolesVideophonesWashersanddryersA“shortlist”ofembeddedsystems嵌入式系统的应用领域消费电子领域随着技术的发展,消费电子产品正向数字化和网络化方向发展。高清晰度数字电视将代替传统的模拟电视。数码相机将代替传统的胶片相机。固定电话今后会被IP电话所替代。各种家用电器(电视机、冰箱、微波炉、电话等)将通过家庭通信、控制中心与Internet连接,实现远程控制、信息交互、网上娱乐、远程医疗和远程教育等。转变为智能网络家电,还可以实现远程医疗,远程教育等。嵌入式系统的应用领域通信领域通信领域大量应用嵌入式系统,主要包括程控交换机、路由器、IP交换机、传输设备等。据预测,由于互联的需要,特别是宽带网络的发展,将会出现各种网络设备如:ADSLModem/Router等,其数量将远远高于传统的网络设备。它们基于32位的嵌入式系统、价格低廉,将为企业、家庭提供更为廉价的、方便的、多样的网络方案。就宽带上网的网络设备ADSLRouter而言,国外现在每月需要600K的数量。嵌入式系统的应用领域工控、汽车电子、仿真、医疗仪器等随着工业、汽车、医疗卫生等各部门对智能控制需求的不断增长,需要对设备进行智能化、数字化改造,为嵌入式系统提供了很大的市场。就汽车电子系统而言,目前的大多数高档轿车每辆拥有约50个嵌入式微处理器。如BMW7系列轿车,则平均安装有63个嵌入式微处理器。据预测,21世纪初美国接入Internet的汽车将有一亿辆。ICInsights报道2001年车载计算系统的市场规模是30亿美元,而2004年将达到46亿美元,届时这些系统将成为所有新型轿车的标准设备。嵌入式系统的应用领域国防、航空航天领域雷达、电子对抗、坦克、战舰航天器(火箭、卫星、航天飞机等)飞机(民用和军用飞机)嵌入式系统的发展趋势形成行业的标准:行业性嵌入式软硬件平台嵌入式系统是以应用为中心的系统,不会象PC一样只有一种平台。吸取PC的成功经验,形成不同行业的标准。统一的行业标准具有开放、设计技术共享、软硬件重用、构件兼容、维护方便和合作生产的特点,是增强行业性产品竞争能力的有效手段。如欧共体汽车产业联盟规定以OSEK标准作为开发汽车嵌入式系统的公用平台和应用编程接口嵌入式系统的发展趋势面向应用领域的、高度集成的、以32位嵌入式微处理器为核心的SOC(SystemOnChip)将成为应用主流SoC给系统带来高性能之外更多更重要的好处稳定性、体积、散热、功耗·

·

·

处理器外设存储器I/O“Systemonboard”“Systemonchip”USB以太网memoryExternalMemoryCPUAddressDataCacheBusInterfaceWriteBufferMMU/MPURRWWWW(R/W)

外设如USB、LCD

控制器等扩展芯片内核(core)处理器存储器子系统SoC的片内外设系统的片外设备处理器(Processor)芯片(SoC)系统(System)嵌入式系统的发展趋势嵌入式应用软件的开发需要强大的开发工具和操作系统的支持采用实时多任务编程技术和交叉开发工具技术来控制功能复杂性,简化应用程序设计、保障软件质量和缩短开发周期。嵌入式操作系统将在现有的基础上,不断采用先进的操作系统技术,结合嵌入式系统的需求向:可适应不同的嵌入式硬件平台具有可移植、可伸缩、功能强大、可配置、良好的实时性、可靠性、高可用方向发展

嵌入式系统的发展趋势嵌入式开发工具支持多种硬件平台覆盖嵌入式软件开发过程各个阶段高效高度集成的工具集方向发展RequirementAnalysisSoftwareDesignCodingTestRelease嵌入式软件开发基本过程嵌入式系统的发展趋势嵌入式系统联网成为必然趋势,驱动了大量新的应用针对外部联网要求,嵌入系统必需配有通信接口,需要TCP/IP协议簇软件支持。针对内部联网要求,新一代嵌入式系统还需具备IEEE1394、USB、CAN、Bluetooth或IrDA通信接口,同时也需要提供相应的通信组网协议软件和物理层驱动软件。为了支持网络交互的应用,还需内置XML浏览器和WebServer。嵌入式系统的发展趋势嵌入式系统向新的嵌入式计算模型方向发展支持自然的人机交互和互动的、图形化、多媒体的嵌入式人机界面。操作简便、直观、无须学习。如司机操纵高度自动化的汽车主要还是通过习惯的方向盘、脚踏板和操纵杆。可编程的嵌入式系统。嵌入式系统可支持二次开发如采用嵌入式Java技术,可动态加载和升级软件,增强嵌入式系统功能。支持分布式计算。与其他嵌入式系统和通用计算机系统互联构成分布式计算环境。

作业:课本P28第10题

写一篇小论文,分析嵌入式系统的现状以及发展趋势第二章嵌入式微处理器

嵌入式微处理器概述

ARM嵌入式微处理器体系结构

嵌入式微处理器概述

嵌入式硬件系统是以嵌入式微处理器为核心,主要由嵌入式微处理器、总线、存储器、输入/输出接口和外围设备组成。嵌入式微处理器拥有丰富的片内资源,同时提供了扩展接口,还可以根据应用的需要,进一步扩展外部接口,实现硬件的裁减。嵌入式微处理器总线存储器输入/输出接口和设备嵌入式硬件系统基本体系架构电源晶振电路复位电路程序/数据存储器CPU中断控制器I/O接口电路定时器专用电路串/并口USB显示键盘其他外围为设备嵌入式微处理器有4、8、16、32、64位处理器;寻址空间从几KB到上G;处理速度从几MHz到上GHz。体积小、集成度高、低功耗、价格较低;对实时任务有很强的支持能力;嵌入式微处理器有许多不同的体系,即使在同一体系中也可能具有不同的时钟速度和总线数据宽度、集成不同的外部接口和设备。据不完全统计,目前全世界嵌入式微处理器的品种总量已经超过千种,有几十种嵌入式微处理器体系,主流的体系有ARM、MIPS、PowerPC、SH、X86等。总线从微处理器的角度来看,总线可分为片外总线(如:PCI、ISA等)和片内总线(如:AMBA、AVALON、OCP、WISHBONE等)。选择总线和选择嵌入式微处理器密切相关,总线的种类随不同的微处理器的结构而不同。存储器嵌入式系统的存储器包括主存和外存。大多数嵌入式系统的代码和数据都存储在处理器可直接访问的存储空间即主存中。系统上电后在主存中的代码直接运行。主存储器的特点是速度快,一般采用ROM、EPROM、NorFlash、SRAM、DRAM等存储器件。存储器目前有些嵌入式系统除了主存外,还有外存。外存是处理器不能直接访问的存储器,用来存放各种信息,相对主存而言具有价格低、容量大的特点。在嵌入式系统中一般不采用硬盘而采用电子盘做外存,电子盘的主要种类有NandFlash、SD(SecureDigital)卡、CompactFlash、SmartMedia、MemoryStick、MultiMediaCard、、DOC(DiskOnChip)等。输入/输出接口和设备嵌入式系统的大多数输入/输出接口和部分设备已经集成在嵌入式微处理器中。输入/输出接口主要有中断控制器、DMA、串行和并行接口等,设备主要有定时器(Timers)、计数器(counters)、看门狗(watchdogtimers)、RTC、PWM(Pulsewidthmodulator)、AD/DA、显示器、键盘和网络等。嵌入式微处理器的体系结构微处理器体系结构冯•诺依曼(VonNeumann)结构哈佛(Harvard)结构指令系统

RISCCISC采用的先进技术嵌入式微处理器体系结构地址数据主存储器MOVr8,#8CPUPC指令程序存储器CPUPC地址数据存储器MOVr8,#8地址数据冯•诺依曼结构哈佛结构嵌入式微处理器体系结构传统的微处理器采用的冯·诺依曼结构将指令和数据存放在同一存储空间中,统一编址,指令和数据通过同一总线访问。哈佛结构则是不同于冯·诺依曼结构的一种并行体系结构,其主要特点是程序和数据存储在不同的存储空间中,即程序存储器和数据存储器是两个相互独立的存储器,每个存储器独立编制、独立访问。与之相对应的是系统中设置的两条总线(程序总线和数据总线),从而使数据的吞吐率提高了一倍。指令系统嵌入式微处理器的指令系统可采用精简指令集系统RISC(ReducedInstructionSetComputer)或复杂指令集系统CISC(ComplexInstructionSetComputer)

CISCRISC指令系统指令数量很多;大量的混杂型指令集,有简单快速的指令,也有复杂的多周期指令指令数量少;简单的单周期指令,在汇编指令方面有相应的CISC微代码指令执行时间有些指令执行时间很长,如整块的存储器内容拷贝,或将多个寄存器的内容拷贝到存储器多为单周期指令编码长度编码长度可变,1-15字节长度固定,4字节寻址模式复杂的寻址模式,支持内存到内存寻址寻址方式简单操作可以对存储器和寄存器进行操作仅允许LOAD和STORE指令存取内存,其它所有的操作都基于寄存器到寄存器价格由硬件完成部分软件功能,硬件复杂性增加,芯片成本高由软件完成部分硬件功能,软件复杂性增加,芯片成本低寄存器数目寄存器较少寄存器较多嵌入式微处理器采用的先进技术流水线技术超标量技术总线和总线桥嵌入式微处理器的分类嵌入式微处理器MPU嵌入式微控制器MCU嵌入式DSP处理器嵌入式片上系统Soc、Sopc嵌入式微处理器的集成度用于桌面和服务器的微处理器的芯片内部通常只包括CPU核心、Cache、MMU、总线接口等部分,其他附加的功能如外部接口、系统总线、外部总线和外部设备独立在其他芯片和电路内。嵌入式微处理器除了集成CPU核心、Cache、MMU、总线等部分外,还集成了各种外部接口和设备,如中断控制器、DMA、定时器、UART等。符合嵌入式系统的低成本和低功耗需求,一块单一的集成了大多数需要的功能块的芯片价格更低,功耗更少。嵌入式微处理器的集成度嵌入式微处理器是面向应用的,其片内所包含的组件的数目和种类是由它的市场定位决定的。在最普通的情况下,嵌入式微处理器包括:片内存储器外部存储器的控制器,外设接口(串口,并口)LCD控制器:面向终端类应用的嵌入式微处理器中断控制器,DMA控制器,协处理器定时器,A/D、D/A转换器多媒体加速器:当高级图形功能需要时总线其他标准接口或外设嵌入式微处理器的体系结构算术格式(ArithmeticFormat)由于低成本和低功耗的限制,大多数的嵌入式微处理器使用定点运算(fixed-pointarithmetic),即数值被表示为整数或在-1.0和+1.0之间的分数,比数值表示为尾数和指数的浮点版本的芯片便宜。当嵌入式系统中需要使用浮点运算时,可采用软件模拟的方式实现浮点运算,只不过这样要占用更多的处理器时间。

功能单元(FunctionalUnits)通常包括不止一个的功能单元,典型的是包含一个ALU、移位器和乘法累加器

MAC,处理器通常用一条指令完成乘法操作。

嵌入式微处理器的功耗管理提供功耗管理机制

运行模式(RunningMode):处理器处于全速运行状态下。待命模式(StandbyMode):处理器不执行指令,所有存储的信息是可用的,处理器能在几个周期内返回运行模式。时钟关闭模式(clock-offmode):时钟完全停止,要退出这个模式系统需要重新启动。影响功耗的其他因素还有总线(特别是总线转换器,可以采用特殊的技术使它的功耗最小)和存储器的大小(如果使用DRAM,它需要不断的刷新)。为了使功耗最小,总线和存储器要保持在应用系统可接受的最小规模。主流的嵌入式微处理器目前主流的嵌入式微处理器系列主要有ARM系列、MIPS系列、PowerPC系列、SuperH系列和X86系列等。属于这些系列的嵌入式微处理器产品很多,有上千种以上。Units

(millions)Source:AndrewAllison,InsideTheNewComputerIndustry,January2001EmbeddedRISCProcessorShipmentsARM嵌入式微处理器ARM(AdvancedRISCMachine)公司是一家专门从事芯片IP设计与授权业务的英国公司,其产品有ARM内核以及各类外围接口。ARM内核是一种32位RISC微处理器,具有功耗低、性价比高、代码密度高等三大特色。目前,90%的移动电话、大量的游戏机、手持PC和机顶盒等都已采用了ARM处理器,许多一流的芯片厂商都是ARM的授权用户(Licensee),如Intel、Samsung、TI、Motorola、ST等,ARM已成为业界公认的嵌入式微处理器标准。ARM处理器的分类核体系结构ARM1V1ARM2V2ARM2aS,ARM3V2aARM6,ARM600,ARM610V3ARM7,ARM700,ARM710V3ARM7TDMI,ARM710T,ARM720TARM740TV4TStrongARM,ARM8,ARM810V4ARM9TDMI,ARM920T,ARM940TV4TARM9E-S、XScaleV5TEARM10TDMI,ARM1020EV5TEARM11,ARM1156T2-S,ARM1156T2F-S,ARM1176JZ-S,ARM11JZF-SV6ARMCortex-M3、ARMCortex-R4、ARMCortex-A8V7ARM处理器的分类T――为解决代码长度的问题,ARM体系结构增加了T变种,它就是Thumb指令集,它是ARM技术的一大特色。D――Debug,提供调试支持I――芯片上带有内置的ICE(InCircuitEmulation),从而支持程序内的断点和数据空间的“观察点”设置。M――Multiplier,支持长乘法指令,由于在ARM体系版本4以后,M变种成为系统的标准功能,字符M通常不需要列出。E――Extended,支持增强型DSP指令J――Java指令支持,增加了Java加速器JazelleSIMD――支持ARM媒体功能扩展,这是ARMV6之后的变种,它增加了媒体指令,在降低耗电量的同时还强化了图形处理性能。通过追加SIMD功能,将语音及图像的处理功能提高到了原机型的4倍。ARMV4ARMV4是目前支持的最老的架构,是基于32-bit地址空间的32-bit指令集。ARMv4除了支持ARMv3的指令外还扩展了:支持halfword的存取支持byte和halfword的符号扩展读支持Thumb指令提供Thumb和Normal状态的转换指令进一步的明确了会引起Undefined异常的指令对以前的26bits体系结构的CPU不再兼容

ARMv4TARMv4T增加了16-bitThumb

指令集,这样使得编译器能产生紧凑代码(相对于32-bit代码,内存能节省到35%以上)并保持32-bit系统的好处。Thumb在处理器中仍然要扩展为标准的32位ARM指令来运行。用户采用16位Thumb指令集最大的好处就是可以获得更高的代码密度和降低功耗。ARMV5TE1999年推出ARMv5TE其增强了Thumb体系,增强的Thumb体系增加了一个新的指令同时改进了Thumb/ARM相互作用、编译能力和混合及匹配ARM与Thumb例程,以更好地平衡代码空间和性能并在ARMISA上扩展了增强的DSP

指令集:

增强的DSP指令包括支持饱和算术(saturatedarithmetic),并且针对AudioDSP应用提高了70%性能。‘E’扩展表示在通用的CPU上提供DSP能力。ARMv5TEJ2000年推出ARMv5TEJ,增加了Jazelle扩展以支持Java加速技术。Jazelle技术比仅仅基于软件的JVM性能提高近8倍的性能减少了80%的功耗。ARMv62001年推出ARMv6,它在许多方面做了改进如内存系统、异常处理和较好地支持多处理器。SIMD扩展使得广大的软件应用如Video和Audiocodec的性能提高了4倍。Thumb-2和TrustZone技术也用于ARMv6中。ARMv6第一个实现是2002年春推出的ARM1136J(F)-STM处理器,2003年又推出了

ARM1156T2(F)-S

和ARM1176JZ(F)-S处理器。ARMv7ARMv7定义了3种不同的处理器配置(processorprofiles):

ProfileA是面向复杂、基于虚拟内存的OS和应用的ProfileR是针对实时系统的ProfileM是针对低成本应用的优化的微控制器的。所有ARMv7profiles实现Thumb-2技术,同时还包括了NEON™技术的扩展提高DSP和多媒体处理吞吐量400%

,并提供浮点支持以满足下一代3D图形和游戏以及传统嵌入式控制应用的需要。系列相应产品性能特点ARM7系列ARM7TDMI,ARM7TDMI-S,ARM720T,ARM7EJ三级流水性能:0.9MIPS/MHz,可达到130MIPs(Dhrystone2.1)

ARM9系列ARM920T,ARM922T

五级流水,性能:1.1MIPS/MHz,可达300MIPS(Dhrystone2.1),单32-bitAMBAbus接口,支持MMUARM9E系列ARM926EJ-S,RM946E-S,ARM966E-S,ARM968E-S,ARM996HS

五级流水,支持DSP指令。性能:1.1MIPS/MHz,可达300MIPS(Dhrystone2.1),高性能AHB,软核(softIP)

ARM10系列ARM1020E,ARM1022EARM1026EJ-S,xcale(7级流水线)6级流水支持分支预测(branchprediction),支持DSP指令。性能:1.35MIPS/MHz,可达430+Dhrystone2.1

MIPS,,可选支持高性能浮点操作,双64位总线接口,内部64位数据通路系列相应产品性能特点ARM11系列ARM11MPCore,ARM1136J(F)-S,ARM1156T2(F)-S,ARM1176JZ(F)-S

8级流水线(9级ARM1156T2(F)-S),独立的load-store和arithmetic流水线,支持分支预测和返回栈(ReturnStack)。强大的ARMv6指令集,支持DSP,SIMD(SingleInstructionMultipleData)扩展,支持ARMTrustZone、Thumb-2核心技术。740Dhrystone2.1MIPS,低功耗0.6mW/MHz(0.13µm,1.2V)Cortex系列Cortex-A8,Cortex-M3,Cortex-R4Cortex-A系列:面向用于复杂OS和应用的应用处理器(applicationsprocessors),支持ARM,ThumbandThumb-2指令集。Cortex-R系列:面向嵌入式实时领域的嵌入式处理器,支持ARM,Thumb,和Thumb-2指令集。Cortex-M系列:面向深嵌入式价格敏感的嵌入式处理器,只支持Thumb-2指令集SecurCore系列SecurCoreSC100,SecurCoreSC200用于SmartCard和SecureIC的32-bit解决方案。支持ARM和Thumb

指令集,软核。具有安全特征和低成本安全存储保护单元

当前的主流ARM处理器ARM7世界上最为广泛使用的CPU之一<100MHzARM9100-300MHzARM11芯片已经面世ARM11300-700+MHzSIMD指令扩展支持更丰富的多媒体应用40家授权芯片公司,一些已开始量产FOMAN902iFirstARM11basedphoneOMAP2420i.MX31/i.MX31L目前最快的嵌入式处理器最快的处理器提供超过2000DMIPS的性能运行于1GHz频率(90nmor65nm制造工艺)功耗小于300mWARMCortexA8ApplicationProcessorCortex-M3实现$1

ARM芯片ARMCortexArchitectureThumb-2ISA3StagePipeline1.22DMIPS/MHz–30%overARM7TDMI33Kgates–30%smallerthanARM7TDMILuminaryMicro的Stellaris系列MCU产品售价仅1美元ARMCortex-M3微控制器内核,专门针对MCU应用领域而设计,突出低成本、低功耗和高效率。ARM7TDMIThumb架构扩展,提供两个独立的指令集:ARM指令,均为32位Thumb指令,均为16位两种运行状态,用来选择哪个指令集被执行内核具有Debug扩展结构增强乘法器(32x8)支持64位结果EmbeddedICE逻辑3级流水线冯·诺依曼架构CPI(CyclePerInstruction)约为1.9ARM7TDMIARM7TDMI内核MCLKnIRQnFIQnRESETBUSENBIGENDISYNCnWAITVDDVSSAPEDBE协处理器接口存储器管理存储器接口ABORTnOPCCPBCPAnCPInTRANSnM[4:0]MAS[1:0]nRWnMREQLOCKSEQnENOUTA[31:0]DOUT[31:0]DIN[31:0]D[31:0]电源总线控制时钟配置中断内核信号ARM7TDMIARM7TDMI内核TAP

控制器JTAG接口数据总线控制信号地址总线BUSSplitterEmbeddedICE逻辑方框图乘法器指令解码地址自增器nRESETnMREQSEQABORTnIRQnFIQnRWMAS[1:0]LOCKnCPICPACPBnWAITMCLKnOPCBIGENDISYNCnTRANSnM[4:0]D[31:0]桶移位器32位ALUDBE写数据寄存器读数据寄存器地址寄存器寄存器BankA[31:0]ABE及控制逻辑PCUpdate解码站指令解压缩IncrementerPCABusBBusALUBusARM7TDMI内核ARM7TDMI指令流水线为增加处理器指令流的速度,ARM7系列使用3级流水线。允许多个操作同时处理,而非顺序执行。

PC指向正被取指的指令,而非正在执行的指令。FetchDecodeExecute从存储器中读取指令解码指令中用到的寄存器寄存器读(从寄存器Bank)移位及ALU操作寄存器写(到寄存器Bank)PC PCPC-4 PC-2PC-8 PC-4ARM ThumbARM7TDMI指令流水线

操作周期 1 2 3 4 56ADDSUBMOVANDORREORCMPRSBFetchDecode。FetchExecuteDecodeFetchExecuteDecodeFetchExecuteDecodeFetchFetchExecuteDecodeExecuteDecodeFetchExecuteDecodeFetch最佳流水线该例中用6个时钟周期执行了6条指令

所有的操作都在寄存器中(单周期执行)

指令周期数(CPI)=1ARM7TDMIARM7TDMI内核地址地址数据读AMBA

接口写缓冲MMU数据写数据ARM7xxT控制逻辑CacheAMBA总线接口JTAG和非AMBA信号CP15带Cache的ARM7TDMIARM710T8K统一的cache完整的内存管理单元(MMU),支持虚拟地址和存储器保护写缓冲ARM720T同ARM710T,但支持WinCEARM740T8K统一的cache内存管理单元写缓冲WriteBuffer:当数据写到WriteBuffer后不需要CPU的任何干预而由WriteBuffer控制逻辑自动的将数据写到最终的地方;Cache的回写则需要CPU的干预。WriteBuffer较小,通常只有几十个字节。ReadBuffer:当读数据时ReadBuffer自动多读取一些字节,但是不占用CPU的总线时间,所以能加快读数据的速度;当使用Cache时如果要从内存中读取数据则每个数据都会占用CPU的时间,这是与ReadBuffer的最大不同点。ReadBuffer较小,通常只有几十个字节。Cache与Buffer的区别ARM9TDMIHarvard架构增加了可用的存储器宽度指令存储器接口数据存储器接口可以实现对指令和数据存储器的同时访问5级流水线实现了以下改进:改进CPI到~1.5提高了最大时钟频率ARM9TDMIInstructionFetchShift+ALUMemoryAccessRegWriteRegReadRegDecodeFETCHDECODEEXECUTEMEMORYWRITEARM9TDMIARMorThumb

InstDecodeRegSelectRegReadShiftALURegWriteThumb®ARM

decompressARMdecodeInstructionFetchFETCHDECODEEXECUTEARM7TDMI流水线ARM9TDMIARM9TDMIDCacheICacheMMUGLUE外部存储器ARM940T2x4KcachesMPU写缓冲ARM9xxTARM920T2x16KcachesMMU支持虚拟地址和内存保护写缓冲带Cache的ARM9TDMIARM9E-S系列概述ARM9E基于ARM9TDMI内核,有以下扩展和增强单周期32x16乘法器EmbeddedICE逻辑RT改进的ARM/Thumb交互操作新的32x16和16x16乘法指令新的计数到零指令新的饱和算术指令ARM946E-SARM9E-S内核指令和数据cache,大小可选择指令和数据RAM,大小可选择保护单元AHB总线接口ARM966E-S与ARM946E-S相似,但无cacheARM926EJ-S系列概述Jazelle状态允许直接执行Java8位码ARM926EJ-SARM9E-S内核可配置的cache和TCM内存管理单元双重32位AHB总线接口(多层)ARM10E系列概述v5TE架构CPI1.36级流水线静态分支预测32kB指令cache和32kB数据cache支持“Hitundermiss”非阻塞的执行单元每周期64位的LDM/STM操作EmbeddedICE逻辑-RT-II支持新的VFPv1结构同ARM1020E,除了cache大小为16kB对SUDL(singleuserdesignlicense)有效ARM1020EARM1022EARM9vsARM10流水线的对比Intel®StrongARM概述ARMV4架构(无Thumb支持)5级流水线,降低跳转损耗-stagepipeline,reducedbranchpenalty改进的乘法器(典型地比ARM9TDMI快2个周期)不支持Multi-ICE调试(JTAG限制在连通性测试)无外部协处理器接口SA-110:

16K指令和数据caches,8x16字节写缓冲.SA-1100/1110:片上外设,存储器控制器更小的cache容量PID寄存器指令断点,通过CP15Intel®XScale™概述V5TE兼容架构7-8级流水线带统计分支预测32k的数据和指令Cache,外加2k的数据Minicache8口写缓冲,4口填充和追加缓冲完整的32位协处理器接口调试和性能监控逻辑(通过CP14)乘-加模块(作为CP0)可配置的内核时钟速度100-733MHz,来自33-66MHz输入时钟异步输入总线时钟可到100MHz(最大总线内核时钟的1/3)总线概述总线是CPU与存储器和设备通信的机制,是计算机各部件之间传送数据、地址和控制信息的公共通道。片内总线或内部总线:连接CPU内部各主要功能部件片外总线:CPU与存储器(RAM和ROM)和I/O接口之间进行信息交换的通道数据总线Dbus地址总线Abus控制总线Cbus按相对于CPU位置划分按功能和信号类型总线分类总线概述总线宽度总线频率总线带宽总线带宽(单位:MB/s)=(总线宽度/8)×总线频率如:总线宽度32位,频率66MHZ,则总线带宽=(32/8)*66MHz=264MB/s总线的主要参数又称总线位宽,指的是总线能同时传送数据的位数。如16位总线就是具有16位数据传送能力。总线工作速度的一个重要参数,工作频率越高,速度越快。通常用MHz表示。又称总线的数据传送率,是指在一定时间内总线上可传送的数据总量,用每秒最大传送数据量来衡量。总线带宽越宽,传输率越高。总线概述原因:数据宽度:高速总线通常提供较宽的数据连接。成本:高速总线通常采用更昂贵的电路和连接器。桥允许总线独立操作,这样在I/O操作中可提供某些并行性。一个微处理器系统可能含有多条总线高速总线低速总线高速设备低速设备桥总线互联的电路总线概述存储器高速设备CPU低速设备低速设备桥高速总线低速总线多总线系统总线概述总线概述Processor-localbusMicro-processorCacheMemorycontrollerDMAcontrollerBridgePeripheralPeripheralPeripheralPeripheralbus嵌入式系统总线AMBA总线AMBA(AdvancedMicrocontrollerBusArchitecture)是ARM公司研发的一种总线规范,目前为3.0版本。在AMBA总线规范中,定义了3种总线:AHB(AdvancedHigh-performanceBus):用于高性能系统模块的连接,支持突发模式数据传输和事务分割;可以有效地连接处理器、片上和片外存储器,支持流水线操作。ASB(AdvancedSystemBus):也用于高性能系统模块的连接,由AHB总线替代;APB(AdvancedPeripheralBus):用于较低性能外设的简单连接,一般是接在AHB或ASB系统总线上的第二级总线。AMBA总线测试接口ARMCPUSDRAMControlSRAMLCDControl桥并行接口串行接口TimerUART基于AMBA总线的典型系统AHB系统总线APB外部总线ARM微处理器:编程模型数据类型

字节型数据(Byte):数据宽度为8bits

半字数据类型(HalfWord):数据宽度为16bits,存取式必须以2字节对齐的方式

字数据类型(Word):数据宽度为32bits,存取式必须以4字节对齐的方式ARM微处理器:处理器工作状态(PROCESSOROPERATINGSTATES)处理器有两种工作状态:ARM:32位,执行字对准的ARM指令Thumb:16位,执行半字对准的Thumb指令ARM和Thumb之间状态的切换不影响处理器的模式或寄存器的内容ARM微处理器:处理器工作状态进入Thumb状态:执行BX指令。在Thumb状态进入异常(IRQ,FIQ,UNDEF,ABORT,SWIetc.),当异常处理返回时自动转换到Thumb状态进入ARM状态:执行BX指令。进入异常时,将PC放入异常模式链接寄存器中,从异常向量地址开始执行也可进入ARM状态ARM微处理器:CPU模式(processormode)CPU模式的转变:软件控制异常外部中断7种CPU模式处理器模式处理器模式描述用户模式(User,usr)正常程序执行的模式快速中断模式(FIQ,fiq)用于高速数据传输和通道处理普通中断模式(IRQ,irq)用于通常的中断处理监管模式(Supervisor,svc)供操作系统使用的一种保护模式数据访问中止模式(Abort,abt)用于虚拟存储及存储保护未定义指令中止模式(Undefined,und)用于支持通过软件方针硬件的协处理器系统模式(System,sys)用于运行特权级的操作系统任务ARM微处理器:CPU模式User模式程序不能访问有些受保护的资源只能通过异常的形式来改变CPU的当前运行模式特权模式可以存取系统中的任何资源System模式与User模式的运行环境一样但是它可以不受任何限制的访问任何资源该模式主要用于运行系统中的一些特权任务FIQ模式IRQ模式Supervisor模式Abort模式Undefined模式异常模式:主要是在外部中断或者程序执行非法操作时会触发ARM微处理器:寄存器ARM处理器有37个寄存器

31个通用寄存器:程序计数器、堆栈及其他通用寄存器

6个状态寄存器这些寄存器不能同时看到不同的处理器状态和工作模式确定哪些寄存器是对编程者是可见的ARM微处理器:ARMState寄存器未分组寄存器分组寄存器程序计数器通用寄存器程序状态寄存器ARM微处理器:ThumbState寄存器ARMState与ThumbState寄存器关系ARM微处理器:通用寄存器通用寄存器是R0-R15的寄存器,分为三类

未分组寄存器:没有对应影子寄存器的寄存器R0-R7分组寄存器:有对应影子寄存器的寄存器R8-R14

程序计数器:R15(或者PC)

影子寄存器是指该寄存器在不同的模式下对应的物理寄存器ARM微处理器:通用寄存器R0-R7所有模式下,R0-R7所对应的物理寄存器都是相同的这八个寄存器是真正意义上的通用寄存器,ARM体系结构中对它们没有作任何特殊的假设,它们的功能都是等同的。在中断或者异常处理程序中一般都需要对这几个寄存器进行保存。ARM微处理器:通用寄存器R8-R14访问的物理寄存器取决于当前的处理器模式,若要访问特定的物理寄存器而不依赖当前的处理器模式,则要使用规定的名字。R8-R12各有两组物理寄存器:一组为FIQ模式,另一组是除FIQ以外的其他模式。R13-R14各有6个分组的物理寄存器,一个用于用户模式和系统模式,其他5个分别用于5种异常模式。R13(也被称为SP指针)被用作栈指针,通常在系统初始化时需要对所有模式下的SP指针赋值,当CPU在不同的模式时栈指针会被自动切换成相应模式下的值。R14有两个用途,一是在调用子程序时用于保存调用返回地址,二是在发生异常时用于保存异常返回地址。ARM微处理器:通用寄存器R15用作程序计数器(PC),可以被读写ARMstate:bits[1:0]为0,bits[31:2]即为PC.THUMBstate:bit[0]为0,bits[31:1]即为PCARM微处理器:程序状态寄存器CPSR(当前程序状态寄存器)在所有的模式下都是可以读写的;SPSR(备份程序状态寄存器)用来进行异常处理。它们主要包含:保存ALU中的当前操作信息中断使能标志当前处理器的模式其它的一些状态和控制标志ARM微处理器:程序状态寄存器置0表示执行32bit的ARM指令置1表示执行16bit的Thumb指令NegativeZeroCarryOverflowIRQ中断的响应:置1:禁止响应置0:允许响应FIQ中断的响应:置1:禁止响应置0:允许响应条件标志模式控制位ARM/Thumb控制标志中断标志ARM微处理器:程序状态寄存器模式控制位M0-M4ARM微处理器:异常异常是由内部或者外部原因引起的,当异常发生时CPU将暂停执行当前指令自动到指定的向量地址读取指令并且执行。在X86上,当有异常发生时CPU是到指定的向量地址读取要执行的程序的地址而ARM是到向量地址的地方读取指令,也就是ARM的向量地址处存放的是一条指令(一般是一条跳转指令)ARM微处理器:异常Reset:CPU被复位后,进入SupervisorMode并且禁止FIQ和IRQ。UndefinedInstructions:CPU执行一条未被定义的指令时就会触发该异常。这种机制可以用于通过软件仿真的方式扩展THUMBorARM指令集。SWI:软中断(SWI)是执行SWI指令时触发的,该异常主要用于OS的系统调用。ARM微处理器:异常PrefetchAbort:CPU在读取指令时发生读内存错误并且该指令又要被执行则触发该异常;如果只是在读取指令时发生了内存错误而该指令又未被执行则不会触发该异常。DataAbort:当CPU在读写数据时,如果发生错误则触发该异常。ARM微处理器:异常IRQ:当外部IRQ输入请求发生时(IRQ中断已经被使能),触发该异常。FIQ:FIQ通常被用于快速传输数据。当外部FIQ输入请求发生时(FIQ中断已经被使能),触发该异常。ARM微处理器:异常异常的优先级ARM微处理器:异常当异常出现时,异常模式分组的R14和SPSR用于保存状态,即:

R14_<exception_mode>=returnlinkSPSR_<exception_mode>=CPSRCPSR[4:0]=exceptionmodenumberCPSR[5]=0/*在ARM状态执行*/if<exception_mode>==ResetorFIQthenCPSR[6]=1/*禁止快速中断*/CPSR[7]=1/*禁止正常中断*/PC=exceptionvectoraddress当处理异常返回时,将SPSR传送到CPSR,R14传送到PCARM微处理器:内存和I/OARM的寻址空间是线性的地址空间,为232=4GBytes0to3存储第一个word,bytes4to7存储第二个wordARM支持大端(Big-endian)和小端(Little-endian)的内存数据方式ARM微处理器:内存和I/O大端的数据存放格式低地址高地址地址A地址A+1地址A+2地址A+3最高有效字节的地址就是该word的地址最高有效字节位于最低地址worda=0xf6

73

4b

cdf6734bcdARM微处理器:内存和I/O小端的数据格式

低地址高地址地址A地址A+1地址A+2地址A+3最低有效字节的地址就是该word的地址最低有效字节位于最低地址worda=0xf6

73

4b

cdf6734bcdARM微处理器:内存和I/O大端:小端:0xb32045000xddddddd00xb32045000xddddddd0f6f673734b4bcdcd0000dada实例变量A:wordA=0xf6734bcd,在内存中的起始地址为0xb3204500变量B:halfwordB=218,在内存中的起始地址为0xddddddd0问题:halfwordB=218与wordC=218在内存中的存放方式有何不同?请分大端和小端两种情况说明。ARM微处理器:内存和I/O实例ARM微处理器:内存和I/O数据信息状态信息控制信息数字量模拟量开关量连续几位二进制形式表示的数或字符。如键盘输入的信息以及打印机、显示器输出的信息等时间上

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论