嵌入式总复习课件.pptx

上传人:莉*** 文档编号:77725313 上传时间:2023-03-16 格式:PPTX 页数:573 大小:2.18MB
返回 下载 相关 举报
嵌入式总复习课件.pptx_第1页
第1页 / 共573页
嵌入式总复习课件.pptx_第2页
第2页 / 共573页
点击查看更多>>
资源描述

《嵌入式总复习课件.pptx》由会员分享,可在线阅读,更多相关《嵌入式总复习课件.pptx(573页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、配套教材:ARM嵌入式系统结构与编程邱铁 编著,清华大学出版社,2009,3 嵌入式系统基于SEP3203微处理器的应用开发时龙兴等 编著,电子工业出版社,2006.10第1页/共573页2TM第第1 1章章 绪论绪论 本章主要介绍嵌入式系统的发展历史和相关概念,当前嵌入式技术的主要应用以及市场上最流行的嵌入式产品,通过典型产品实例使读者了解当前嵌入式技术的应用状况和研究方向。最后介绍了嵌入式技术未来的发展趋势。第2页/共573页内容提要内容提要1.1嵌入式系统定义1.2嵌入式操作系统1.3嵌入式技术在工程领域的应用1.4典型应用:嵌入式机器人控制系统1.5嵌入式技术的发展趋势第3页/共573

2、页1.1嵌入式系统定义嵌入式系统定义近年来,以集成电路为代表的微电子技术取得了重大突破,这使计算机技术、微控制器技术得到了迅速发展,再加上网络技术的应用与普及,加速了21世纪工业生产、军工国防、消费电子、商业活动、科学实验和家庭生活等领域的自动化和信息化进程,这些为嵌入式技术的大规模发展提供了强大的产业支撑。第4页/共573页111嵌入式系统发展历程嵌入式系统发展历程Intel公司于1971年开发出第一片具有4位总线结构的微处理器4004,当时主要用于电子玩具、家用电器,电子控制及简单的计算工具。1976年Intel公司推出功能相对较完备的单片机8048。Motorola同时推出了68HC05

3、,Zilog公司推出了Z80系列。在80年代初,Intel又进一步完善了8048,在它的基础上研制成功了8051,这在单片机的历史上是值得纪念的一页。51系列的单片机仍然在市场上占有很大的比例,在各种产品中有着非常广泛的应用。第5页/共573页在80年代早期,出现了商业级的“实时操作系统内核”,嵌入式系统开发的程序员开始在实时内核下编写嵌入式应用软件,从而使新产品的研制可以获取更短的开发周期、更低的开发资金和更高的开发效率。第6页/共573页嵌入工实时操作系统具有以下特点:(1)采用抢占式的调度策略,任务的实时性好,并且执行时间是确定的;(2)具有可裁剪性(根据任务的需要与否进行添加或删除操作

4、系统模块)和可移植性(移植到各种处理器上);(3)具有较好的可靠性和可扩展性,适合嵌入式产品的应用开发。第7页/共573页进入90年代,随着任务复杂性的不断增加,软件规模也越来越大,实时核也随之逐渐发展并完善,并由此发展成为实时多任务操作系统(RTOS),并作为一种可移植的软件平台成为当前国际嵌入式系统的应用软件支撑。这一阶段在国际上相继出现了PalmOS,WinCE,嵌入式Linux,Nucleux等嵌入式操作系统第8页/共573页进入21世纪,嵌入式系统得到了极大的发展。在硬件上,MCU的性能得到了极大的提升,特别是ARM技术的出现与完善,为嵌入式操作系统提供了功能强大的硬件载体。Inte

5、l、Sansung、Motorola、Phlips和Atmel纷纷采用ARM技术,再加上其公司先进的外围接口技术与先进的制造技术,设计出功能完备的MCU,应用到工业自动化、消费类电子、航空航天、军事工业等各个领域。第9页/共573页112嵌入式系统的定义与特点嵌入式系统的定义与特点 IEEE的定义:Devicesusedtocontrol,monitor,orassisttheoperationofequipment,machineryorplants.从中可以看出,嵌入式系统是软件和硬件的综合体,还可以涵盖机械等附属装置第10页/共573页我国嵌入式系统的行业定义我国嵌入式系统的行业定义我国

6、嵌入式系统的行业定义以应用为中心,以计算机技术为基础,软件硬件可裁剪适应应用系统对功能、可靠性、成本、功耗严格要求的专用计算机系统。第11页/共573页从这个定义可以看出嵌入式系统是与应用紧密结合的,它具有很强的专用性,必须结合实际系统需求进行合理的裁剪利用。因此有人把嵌入式系统比作是一个针对特定的应用而“量身定做”的专用计算机系统。第12页/共573页1.2嵌入式操作系统嵌入式操作系统嵌入式操作系统(EmbeddedOperationSystem)产生于20世纪80年代,当时国际上一些IT公司开始进行商用嵌入式操作系统和专用操作系统的设计与开发。到目前为止,已经出现了很多嵌入式操作系统,在嵌

7、入式产品开发中发挥着重要作用。第13页/共573页121嵌入式实时操作系统嵌入式实时操作系统嵌入式实时操作系统是指在限定的时间内对输入进行快速处理并作出响应的嵌入式操作系统。实时操作系统具有实时性,必须有相应的硬件支持才能达到实时控制的目的。第14页/共573页嵌入式实时操作系统大体可分为商用型和免费型(开源)两种。商用型的实时操作系统功能稳定、可靠,有完善的技术支持和售后服务,但价格一般较高。典型的商用嵌入式实时操作系统有VxWorks,QNX,OSE,ECOS,PSOS,WindowsCE等等。第15页/共573页嵌入式Linux:嵌入式Linux操作系统是针对嵌入式微控制器的特点而量身定

8、做的一种Linux操作系统,包括常用的嵌入式通信协议和常用驱动,支持多种文件系统。第16页/共573页嵌入式实时操作内核C/OS-II:C/OS-是一个实时操作系统内核,只包含了任务管理、任务调度、时间管理、内存管理和任务间的通信与同步等基本功能。没有提供文件系统、网络驱动及管理、图形界面等模块。但是由于C/OS-的可移植性和开源性,用户可以根据功能需求添加所需的各种服务第17页/共573页典型嵌入式操作系统介绍典型嵌入式操作系统介绍 C/OS-II嵌入式操作系统内核VxWorks嵌入式实时操作系统WinCE操作系统Linux操作系统第18页/共573页C/OS-II C/OS-II 嵌入式操

9、作系统内核嵌入式操作系统内核 C/OS-II是一个可裁减的、源码开放的、结构小巧、可剥夺型的实时多任务内核,主要面向中小型嵌入式系统,具有执行效率高、占用空间小、可移植性强、实时性能优良等特点。C/OS-II中最多可以支持64个任务,分别对应优先级063,其中0为最高优先级。实时内核在任何时候都是运行就绪了的最高优先级的任务。C/OS-II最大程度上使用ANSIC语言开发,现已成功移植到近40多种处理器体系上。第19页/共573页 WinCEWinCE操作系统操作系统 MicrosoftWindowsCE是针对有限资源的平台而设计的多线程、完整优先权、多任务的操作系统。高度模块化是WinCE的

10、一个特性,有利于对从掌上电脑到专用的工业控制器的用户电子设备进行定制。WinCE操作系统的基本内核需要至少200K的ROM,它支持Win32API子集、多种用户界面硬件、多种的串行和网络通讯技术、COM/OLE和其他的进程间通讯的先进方法。Microsoft公司为Windows CE提供了Platform Builder和EmbeddedVisualStudio开发工具。第20页/共573页 WinCEWinCE操作系统操作系统WindowsCE嵌入式操作系统能提供与PC机类似的图形界面和主要的应用程序。这样只要是对PC机上的Windows比较熟悉的用户,可以很快地使用移植有WindowsCE

11、嵌入式操作系统的设备。第21页/共573页1.5嵌入式技术的发展趋势嵌入式技术的发展趋势时代的发展使得嵌入式产品获得了巨大的商机,为嵌入式产品提供了广阔的市场前景,同时也对嵌入式生产厂商提出了新的挑战。第22页/共573页1随着信息化与数字化的发展,嵌入式设备进行网络互联是未来发展的趋势。未来的嵌入式设备为了适应信息化与数字化的发展,网络化成为发展的方向。要进行网络互联,在硬件设计上要提供各种网络通信接口。在应用软件方面,要提供可以在设备上安装嵌入式Web浏览器,实现网页浏览和远程数据库的访问。第23页/共573页2优化嵌入式系统软硬件内核,提高系统运行速度,降低功耗和硬件成本。嵌入式产品是软

12、件和硬件相结合的设备,为了提高运行速度、降低功耗和成本,要求开发人员尽量裁剪系统的硬件资源和软件内核,利用最少的硬件资源和软件结构实现最多的功能。在实现过程中要不断的优化硬件电路并改进算法,达到最佳的控制功能。第24页/共573页3指令级的并行计算技术将引入嵌入式微处理器。在工程的实际应用中会出现大量的数据执行相同的运算功能,比如向量计算,这就需要在单个时钟周期内实现多个数据的运算操作。在CPU中设计多个执行部件来完成此功能,这种CPU的架构形式称为单指令流多数据流体系结构,也称之为指令级的并行计算技术。第25页/共573页4嵌入式微处理器将会向多核技术发展。无所不在的智能必将带来无所不在的计

13、算,大量的图像信息也需要高速的处理器来处理,面对海量数据,单个处理器可能无法在规定的时间完成处理。引入并行计算技术,可以采用多个执行单元同时处理,这就是处理器的多核技术。第26页/共573页5嵌入式技术将引领信息时代嵌入式产品具有自身的优点,如体积小、低功耗等,这也正是在走可持续发展的战略;使我们无论身处何时、何地,想要什么信息都可以信手拈来;“无所不在的智能”的观点,它是嵌入式系统应用的最高境界。第27页/共573页28TM第第2章章 ARM技术与技术与ARM体系结体系结构构 本章主要介绍ARM处理器的产生及版本发展历史,以及各个版本的典型处理器及应用情况和性能分析;ARM处理器的内核调试结

14、构,重点分析了ARM7TDMI-S、ARM9TDMI两种结构;ARM处理器的工作模式及寄存器组织结构,分析了在什么情况下进入到相应的工作模式;ARM处理器支持的内存数据存储格式,分为大端格式和小端格式;最后介绍了ARM7的三级流水线运行机制和ARM9的五级流水线运行机制。第28页/共573页内容提要内容提要21ARM体系结构版本与内核22ARM内核模块23ARM处理器的工作模式24ARM内部寄存器25ARM异常处理26存储方式与存储器映射机制27ARM流水线技术分析第29页/共573页21 ARM体系结构版本与内核体系结构版本与内核第一片ARM处理器是1983年10月到1985年4月间在位于英

15、国剑桥的AcornComputer公司开发1990年,ARM公司成立20世纪90年代,ARM快速进入世界市场1995年StrongARM问世XScale是下一代StrongARM芯片的发展基础ARM10TDMI是ARM处理器核中的高端产品ARM11是ARM家族中性能最强的一个系列第30页/共573页211ARM体系结构版本体系结构版本ARM7TDMI4T1支持Halfword和signedhalfword/byte和Systemmode支持Thumb指令集24ARM9TDMIARM720TARM940T改良的ARM/Thumb交互作用以及CLZ指令5TESaturatedmathsDSPmul

16、tiply-accumulateinstructionsXScaleARM1020EARM9E-SARM966E-S3早期的ARMsARM9EJ-S5TEJARM7EJ-SARM926EJ-SJazelle支持Java字节码6ARM11SIMDSISIMDMDSSIMD7ARM Cotex第31页/共573页第一阶段:版本V1、V2、V3这3个早期ARM版本功能单一,没有大范围占领市场,主要是处于开发和实验阶段第二阶段:从ARM4开始,ARM体系结构处于完善和提高阶段第32页/共573页 版本4与以前版本相比增加了下列指令:有符号、无符号的半字和有符号字节的load和store指令。增加了T变

17、种,处理器可以工作于Thumb状态,在该状态下的指令集是16位的Thumb指令集。增加了处理器的特权模式。在该模式下,使用的是用户模式下的寄存器。第33页/共573页版本5主要由两个变型版本5T、5TE组成 相比与版本4,版本5的指令集有了如下的变化:提高了T变种中ARM/Thumb混合使用的效率。增加前导零记数(CLZ)指令,该指令可使整数除法和中断优先级排队操作更为有效;增加了BKPT(软件断点)指令;为协处理器设计提供了更多的可供选择的指令;更加严格地定义了乘法指令对条件码标志位的影响。第34页/共573页ARM体系版本6是2001年发布的。新架构v6在降低耗电量的同时还强化了图形处理性

18、能。通过追加有效进行多媒体处理的SIMD功能,将语音及图像的处理功能提高到了原机型的4倍。ARM体系版本6首先在2002年春季发布的ARM11处理器中使用。第35页/共573页ARM体系版本7包括三个系列:A系列(ARMv7A)CortexA8(应用处理器)R系列(ARMv7R)CortexR4(实时处理器)M系列(ARMv7M)CortexM3、M0(微处理器)第36页/共573页2.1.2 ARM体系结构的基本版本命名体系结构的基本版本命名规则规则ARMxyzTDMIEJF-S大括号内的字母是可选的,各个字母的含义如下:x系列号,例如ARM7中的“7”、ARM9中的“9”;y内部存储管理/

19、保护单元,例如ARM72中的“2”、ARM94中的“4”;z内含有高速缓存Cache;T技持16位的Thumb指令集;D支持JTAG片上调试;M支持用于长乘法操作(64位结果)的ARM指令,包含快速乘法器;I带有嵌入式追踪宏单元ETM(EmbeddedTraceMacro),用来设置断点和观察点的调试硬件;第37页/共573页续续E增强型DSP指令(基于TDMI);J含有Java加速器Jazelle,与Java虚拟机相比,Java加速器Jazelle使Java代码运行速度提高了8倍,功耗降低到原来的80%;F向量浮点单元;S可综合版本,意味着处理器内核是以源代码形式提供的。这种源代码形式又可以

20、被编译成一种易于EDA工具使用的形式。第38页/共573页 ARM体系结构的基本版本体系结构的基本版本版本版本版本变版本变种种系列号系列号处理器核处理器核V1V1ARM1ARM1V2V2ARM2ARM2V2aARM2aSARM3ARM3V3V3ARM6ARM6、ARM600、ARM610ARM7ARM7、ARM700、ARM710V4V4TARM7TDMI、ARM710T、ARM720T、ARM740TV4ARM8StrongARM、ARM8、ARM810V4TARM9ARM9TDMI、ARM920T、ARM940TV5V5TEARM9E-SARM10ARM10TDMI、ARM1020EV6V

21、6ARM11ARM11、ARM11562-S、ARM1156T2F-S、ARM11JZF-SV7V7ARM CotexARM Cotex-A8、ARM Cotex-R4、ARM Cotex-M3第39页/共573页2.2ARM内核模块内核模块ARM处理器一般都带有嵌入式追踪宏单元ETM(EmbeddedTraceMacro),它是ARM公司自己推出的调试工具第40页/共573页ARM调试结构调试结构 第41页/共573页221ARM7TDMI-S内核结构内核结构ARM7TDMI-S是一款32位嵌入式RISC处理器。它作为优化的硬核是性能、功耗和面积特性的最佳组合。使用ARM7TDMI核使得系统

22、设计师能够设计出小尺寸、低功耗以及高性能的嵌入式设备。第42页/共573页ARM7TDMIARM7TDMI是基于ARM7内核3级流水线-0.9MIPS/MHz冯.诺依曼架构CPI(CyclePerInstruction)约为1.9T-Thumb架构扩展,提供两个独立的指令集:ARM指令,均为32位Thumb指令,均为16位两种运行状态,用来选择哪个指令集被执行D-内核具有Debug扩展结构M-增强乘法器支持64位结果.I-EmbeddedICE-RT逻辑-提供片上断点和调试点支持第43页/共573页ARM7TDMI 内核信号内核信号ARM7TDMI内核MCLKnIRQnFIQnRESETBUS

23、ENBIGENDISYNCnWAITVDDVSSAPEDBE协处理器接口存储器管理存储器接口ABORTnOPCCPBCPAnCPInTRANSnM4:0MAS1:0nRWnMREQLOCKSEQnENOUTA31:0DOUT31:0DIN31:0D31:0电源总线控制时钟配置中断第44页/共573页ARM7TDMI 方框图方框图ARM7TDMI内核TAP 控制器JTAG接口数据总线控制信号D31:0地址总线A31:0DIN31:0DOUT31:0BUSSplitterEmbeddedICE逻辑第45页/共573页乘法器ARM7TDMI 内核内核指令解码地址自增器nRESETnMREQSEQAB

24、ORTnIRQnFIQnRWMAS1:0LOCKnCPICPACPBnWAITMCLKnOPCBIGENDISYNCnTRANSnM4:0D31:0桶形移位器32 位 ALUDBE写数据 寄存器读数据读数据 寄存器寄存器地址寄存器寄存器寄存器A31:0ABE及及控制控制 逻辑逻辑PCUpdate解码站指令 解码IncrementerPCABusBBusALUBus第46页/共573页外部地址产生外部地址产生PC31:2ARMStatePC31:1ThumbStateALU31:0INC自增器A31:0向量0 x1C0 x00地址寄存器第47页/共573页特点:32/16位RISC架构(ARMv

25、4T)。具有最高性能和灵活性的32位ARM指令集。代码紧凑的16位Thumb指令集。统一的总线接口,指令与数据都在32位总线上传输。3级流水线。32位算术逻辑单元(ALU)。极小的核心尺寸以及低功耗。完全的静态操作。协处理器接口。扩展的调试设备:第48页/共573页T标志位的作用标志位的作用161632-bitdata16A1MuxThumb指令解码MuxMuxT标志ARM指令解码阶段 1阶段 2D31:00110FetchDecodeExecute第49页/共573页参考教材P.21 T指令执行的状态控制位,用来说明本指令是ARM指令还是Thumb指令。第50页/共573页带带Cache的的

26、ARM7TDMI ARM710T8K统一的cache完整的内存管理单元(mmu),支持虚拟地址和存储器保护写缓冲ARM720T同ARM710T,但支持WinCEARM740T8K统一的cache内存管理单元写缓冲ARM7TDMI内核内核地址地址数据读AMBA接口接口写写缓冲缓冲MMU数据写数据ARM7xxT控制逻辑CacheAMBA总线接口JTAG和非AMBA信号CP15第51页/共573页ARM7系列内核采用了三条流水线的内核结构,三级流水线分别为取指(Fetch)、译码(Decode)、执行(Execute)第52页/共573页取指:将指令从存储器中取出,放入指令Cache中。译码:由译码

27、逻辑单元完成,是将在上一步指令Cache中的指令进行解释,告诉CPU将如何操作。执行:这阶段包括移位操作、读通用寄存器内容、输出结果、写通用寄存器等。第53页/共573页需要注意的是,PC指向正被取指的指令而不是正在执行的指令:第54页/共573页详细信息见教材ARM嵌入式系统结构与编程第16页第55页/共573页222 ARM9内核结构内核结构ARM920是一款32位嵌入式RISC处理器内核。在指令操作上采用5级流水线.取指:从指令Cache中读取指令。译码:对指令进行译码,识别出是对哪个寄存器进行操作并从通用寄存器中读取操作数。执行:进行ALU运算和移位操作,如果是对存储器操作的指令,则在

28、ALU中计算出要访问的存储器地址。存储器访问:如果是对存储器访问的指令,用来实现数据缓冲功能(通过数据Cache)。寄存器回写:将指令运算或操作结果写回到目标寄存器中。第56页/共573页ARM920 的的5级流水线操作级流水线操作 第57页/共573页2.3ARM处理器的工作模式处理器的工作模式ARM技术的设计者将ARM处理器在应用中可能产生的状态进行了分类,并针对同一类型的异常状态设定了一个固定的入口点,当异常产生时,程序会自动跳转到对应异常入口处进行异常服务。第58页/共573页ARM处理器共有处理器共有7种工作模式种工作模式1用户模式:非特权模式,也就是正常程序执行的模式,大部分任务在

29、这种模式下执行。在用户模式下,如果没异常发生,不允许应用程序自行改变处理器的工作模式,如果有异常发生,处理器会自动切换工作模式2FIQ模式:也称为快速中断模式,支持高速数据传输和通道处理,当一个高优先级(fast)中断产生时将会进入这种模式。第59页/共573页3IRQ模式:也称为普通中断模式,:当一个低优先级(normal)中断产生时将会进入这种模式。在这模式下按中断的处理器方式又分为向量中断和非向量中断两种。通常的中断处理都在IRQ模式下进行。4SVC模式:称之为管理模式,它是一种操作系统保护模式。当复位或软中断指令执行时处理器将进入这种模式。第60页/共573页5中止模式:当存取异常时将

30、会进入这种模式,用来处理存储器故障、实现虚拟存储或存储保护。6未定义指令异常模式:当执行未定义指令时会进入这种模式,主要是用来处理未定义的指令陷阱,支持硬件协处理器的软件仿真,因为未定义指令多发生在对协处理器的操作上。7系统模式:使用和User模式相同寄存器组的特权模式,用来运行特权级的操作系统任务。第61页/共573页在这7种工作模式中,除了用户模式以外,其他6种处理器模式可以称为特权模式,在这些模式下,程序可以访问所有的系统资源,也可以任意地进行处理器模式的切换。在这6种特权模式中,除了系统模式外的其他5种特权模式又称为异常模式,每种异常都对应有自己的异常处理入口点。第62页/共573页2

31、.4内部寄存器内部寄存器ARM处理器共有37个寄存器,这些寄存器包括以下两类寄存器。(1)31个通用寄存器:包括程序计数器PC等,这些寄存器都是32位寄存器。(2)6个状态寄存器:状态寄存器也是32位的寄存器,但是目前只使用了其中的14位。第63页/共573页r0r1r2r3r4r5r6r7r8r9r10r11r12r13(sp)r14(lr)r15(pc)cpsrr13(sp)r14(lr)spsrr13(sp)r14(lr)spsrr13(sp)r14(lr)spsrr13(sp)r14(lr)spsrr8r9r10r11r12r13(sp)r14(lr)spsrFIQIRQSVCUnde

32、fAbortUser Moder0r1r2r3r4r5r6r7r8r9r10r11r12r13(sp)r14(lr)r15(pc)cpsrr13(sp)r14(lr)spsrr13(sp)r14(lr)spsrr13(sp)r14(lr)spsrr13(sp)r14(lr)spsrr8r9r10r11r12r13(sp)r14(lr)spsrCurrent Visible RegistersBanked out RegistersFIQIRQSVCUndefAbortr0r1r2r3r4r5r6r7r15(pc)cpsrr13(sp)r14(lr)spsrr13(sp)r14(lr)spsrr

33、13(sp)r14(lr)spsrr13(sp)r14(lr)spsrr8r9r10r11r12r13(sp)r14(lr)spsrCurrent Visible RegistersBanked out RegistersUserIRQSVCUndefAbortr8r9r10r11r12r13(sp)r14(lr)FIQ ModeIRQ Moder0r1r2r3r4r5r6r7r8r9r10r11r12r15(pc)cpsrr13(sp)r14(lr)spsrr13(sp)r14(lr)spsrr13(sp)r14(lr)spsrr13(sp)r14(lr)spsrr8r9r10r11r12r

34、13(sp)r14(lr)spsrCurrent Visible RegistersBanked out RegistersUserFIQSVCUndefAbortr13(sp)r14(lr)Undef Moder0r1r2r3r4r5r6r7r8r9r10r11r12r15(pc)cpsrr13(sp)r14(lr)spsrr13(sp)r14(lr)spsrr13(sp)r14(lr)spsrr13(sp)r14(lr)spsrr8r9r10r11r12r13(sp)r14(lr)spsrCurrent Visible RegistersBanked out RegistersUserFI

35、QIRQSVCAbortr13(sp)r14(lr)SVC Moder0r1r2r3r4r5r6r7r8r9r10r11r12r15(pc)cpsrr13(sp)r14(lr)spsrr13(sp)r14(lr)spsrr13(sp)r14(lr)spsrr13(sp)r14(lr)spsrr8r9r10r11r12r13(sp)r14(lr)spsrCurrent Visible RegistersBanked out RegistersUserFIQIRQUndefAbortr13(sp)r14(lr)Abort Moder0r1r2r3r4r5r6r7r8r9r10r11r12r15(p

36、c)cpsrr13(sp)r14(lr)spsrr13(sp)r14(lr)spsrr13(sp)r14(lr)spsrr13(sp)r14(lr)spsrr8r9r10r11r12r13(sp)r14(lr)spsr当前可见寄存器备用寄存器UserFIQIRQSVCUndefr13(sp)r14(lr)ARM 寄存器寄存器第64页/共573页寄存器组织概要寄存器组织概要Usermoder0-r7,r15,andcpsrr8r9r10r11r12r13(sp)r14(lr)spsrFIQr8r9r10r11r12r13(sp)r14(lr)r15(pc)cpsrr0r1r2r3r4r5r6r7

37、Userr13(sp)r14(lr)spsrIRQUsermoder0-r12,r15,andcpsrr13(sp)r14(lr)spsrUndefUsermoder0-r12,r15,andcpsrr13(sp)r14(lr)spsrSVCUsermoder0-r12,r15,andcpsrr13(sp)r14(lr)spsrAbortUsermoder0-r12,r15,andcpsrThumb stateLow registersThumb stateHigh registersNote:System模式使用user模式寄存器集第65页/共573页ARM 寄存器寄存器ARM有37个32-

38、Bits长的寄存器.1个用作PC(programcounter)1个用作CPSR(currentprogramstatusregister)5个用作SPSR(savedprogramstatusregisters)30个通用寄存器第66页/共573页当前处理器的模式决定着哪组寄存器可操作.任何模式都可以存取:相应的r0-r12子集相应的r13(thestackpointer,sp)andr14(thelinkregister,lr)相应的r15(theprogramcounter,pc)相应的CPSR(currentprogramstatusregister,cpsr)特权模式(除system

39、模式)还可以存取;相应的spsr(savedprogramstatusregister)第67页/共573页程序状态寄存器程序状态寄存器条件位:N=1-结果为负,0-结果为正或0Z=1-结果为0,0-结果不为0C=1-进位,0-借位V=1-结果溢出,0结果没溢出Q位:仅ARM5TE/J架构支持指示增强型DSP指令是否溢出J位仅ARM5TE/J架构支持J=1:处理器处于Jazelle状态中断禁止位:I=1:禁止IRQ.F=1:禁止FIQ.TBit仅ARMxT架构支持T=0:处理器处于ARM状态T=1:处理器处于Thumb状态Mode位(处理器模式位):0b10000User0b10001FIQ0

40、b10010IRQ0b10011Supervisor0b10111Abort0b11011Undefined0b11111System2731N Z C V Q2867I F T mode1623 815 54024 U n d e f i n e dJ第68页/共573页当处理器执行在ARM状态:所有指令32bits宽所有指令必须word对齐所以pc值由bits31:2决定,bits1:0未定义(所以指令不能halfword/byte对齐).程序指针程序指针PC(r15)第69页/共573页当处理器执行在Thumb状态:所有指令16bits宽所有指令必须halfword对齐所以pc值由bit

41、s31:1决定,bits0未定义(所以指令不能byte对齐).第70页/共573页2.5 ARM异常处理异常处理异常通常定义为:处理器需要中止指令正常执行的任何情形并转向相应的处理,包括ARM内核产生复位,取指或存储器访问失败,遇到未定义指令,执行软件中断指令,或者出现外部中断等。大多数异常都对应一个软件的异常处理程序,也就是在异常发生时执行的软件程序。第71页/共573页251异常入口异常入口ARM处理器的异常分为数据中止、快速中断请求、普通中断请求、预取指中止、软件中断、复位及未定义指令共7种。第72页/共573页异常类型异常类型处理器模式处理器模式优先级优先级向量表偏移向量表偏移复 位S

42、VC10 x00000000未定义指令UND60 x00000004软件中断SWISVC60 x00000008预取指中止ABT50 x0000000c数据中止ABT20 x00000010保留/0 x00000014IRQ中断IRQ40 x00000018FIQ中断FIQ30 x0000001c第73页/共573页1复位具有最高的优先级,是系统启动(或芯片复位)时调用的程序。复位程序对异常处理程序和系统进行初始化(包括配置储存器和Cache)。同时要保证在IRQ和FIQ中断允许之前初始化外部中断源,避免在没有设置好相应的处理程序前产生中断。还要设置好各种处理器模式的堆栈指针。第74页/共57

43、3页2引起未定义指令异常:ARM试图执行一条真正的未定义指令;ARM遇到一条协处理器指令,可是系统中的协处理器硬件并不存在;ARM遇到一条协处理器指令,系统中协处理器硬件也存在,可是ARM不是在超级用户模式。解决方法:在处理程序中执行软协处理器仿真;禁止在非超级用户模式下操作;报告错误并退出。第75页/共573页3数据中止异常指示访问了无效的存储器地址,或者当前代码没有正确的数据访问权限。第76页/共573页4预取指中止由于处理器预取的指令地址不存在,或者地址无法访问,当被预取的指令执行时,发生预取指中止异常。第77页/共573页5.FIQ中断的优先级比IRQ中断的优先级要高,且内核进入FIQ

44、处理程序时,把FIQ和IRQ都禁止6软中断(SWI)和未定义指令异常的优先级最低,共享同一优先级,两者不可能同时出现。第78页/共573页26 存储方式与存储器映射机制存储方式与存储器映射机制ARM处理器地址空间大小为4G字节,这些字节的单元地址是一个无符号的32位数值,其取值范围为0232-1。各存储单元地址作为32位无符号数,可以进行常规的整数运算。当程序正常执行时,每执行一条ARM指令,当前指令计数器加4个字节;每执行一条Thumb指令,当前指令计数器加2个字节。第79页/共573页261数据存储格式数据存储格式小端存储格式(Little-Endian)第80页/共573页大端存储格式(

45、Big-Endian)第81页/共573页2.7 ARM流水线技术分析流水线技术分析ARM7流水线技术与三级流水线运行情况分析ARM9流水线技术与五级流水线互锁分析ARM10E系列概述第82页/共573页流水线分析部分详细信息参考教材ARM嵌入式系统结构与编程第二章2.7节第83页/共573页84TM第第3章章ARM指令集寻址方式指令集寻址方式ARM指令寻址方式可分为四大类:数据处理指令寻址Load/Store指令的寻址批量Load/Store指令的寻址协处理指令寻址。第84页/共573页内容提要内容提要31ARM指令的编码格式32数据处理指令寻址方式33Load/Store指令寻址34批量L

46、oad/Store指令寻址方式35协处理器指令寻址方式第85页/共573页31 ARM指令的编码格式指令的编码格式一般编码格式指令条件码第86页/共573页一般编码格式一般编码格式每条ARM指令占有4个字节,其指令长度为32位cond(bit31:28)指令执行的条件码;type(bit27:26)指令类型码cond(bit31:28)指令执行的条件码;type(bit27:26)指令类型码cond(bit31:28)指令执行的条件码;type(bit27:26)指令类型码cond(bit31:28)指令执行的条件码;type(bit27:26)指令类型码cond(bit31:28)指令执行的

47、条件码;type(bit27:26)指令类型码cond(bit31:28)指令执行的条件码;type(bit27:26)指令类型码cond(bit31:28)4 指令执行的条件码type(bit27:26)2指令类型码 opcode(bit24:21)4指令操作码;S(bit20)1决定指令的操作结果是否影响CPSR;Rn(bit19:16)4包含第一个操作数的寄存器编码;Rd(bit15:12)4目标寄存器编码;Operand2(bit11:0)12 指令第二个操作数。第87页/共573页ARM汇编指令语法格式:S,第88页/共573页指令条件码指令条件码0000EQ相等Z=10001NE不

48、相等Z=00010CS/HS无符号大于等于C=10011CC/LO无等号小于C=00100MI负数N=10101PL非负数N=00110VS上溢出V=10111VC没有上溢出 V=01000HI无符号数大于 C=1且Z=01001LS无符号小于等于C=0或Z=11010GE有符号数大于等于N=1且V=1或N=0且V=01011LT有符号数小于 N=1且V=0或N=0且V=11100GT有符号数大于 Z=0且N=V1101LE有符号数小于/等于Z=1或N!=V1110AL无条件执行第89页/共573页3.2 数据处理指令寻址方式数据处理指令寻址方式数据处理指令第2操作数的构成方式具体寻址类型第9

49、0页/共573页数据处理指令第数据处理指令第2操作数的构成方式操作数的构成方式立即数方式每个立即数由一个8位的常数进行32位循环右移偶数位得到,其中循环右移的位数由一个4位二进制的两倍表示。即:=immed_8进行32位循环右移(2*rotate_4)位第91页/共573页合法的立即数:0 xff=11111111B(循环右移32次得到)0 x104=000100000100(循环右移30次得到)不合法的立即数:0 x101=000100000001(超过8位)0 x102=000100000010(虽然是8位,但需循环右移31次得到)第92页/共573页寄存器方式操作数即为寄存器的数值如:M

50、OVR3,R2ADDR0,R1,R2第93页/共573页寄存器移位方式操作数为寄存器的数值做相应的移位而得到。在ARM指令中移位操作包括逻辑左移LSL、逻辑右移LSR、算术左移ASL、算术右移ASR、循环右移ROR和带扩展的循环右移RRX(6种)其中:算术左移ASL逻辑左移LSL第94页/共573页第95页/共573页具体寻址类型具体寻址类型 1第二操作数为立即数汇编语法格式:#第96页/共573页例:MOVR0,0 xfc0;R00 xfc00 xfc0=1111110000008位常数是:00111111经过循环右移26次得到111111000000第97页/共573页2第二操作数为寄存器

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > PPT文档

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁