首页 第2章 ARM7体系结构

第2章 ARM7体系结构

举报
开通vip

第2章 ARM7体系结构nullARM7体系结构ARM7体系结构1.ARM简介 2.ARM7TDMI 3.ARM的模块、内核和功能框图 4.ARM处理器状态 5.ARM处理器模式6.ARM内部寄存器 7.当前程序状态寄存器 8.ARM体系的异常、中断及其向量表 9.ARM体系的存储系统2.1 ARM简介2.1 ARM简介ARM公司简介2.1 ARM简介2.1 ARM简介ARM公司简介将技术授权给其它芯片厂商形成各具特色的ARM芯片2.1 ARM简介2.1 ARM简介RISC结构特性 RISC是精简指令集计算机的缩...

第2章  ARM7体系结构
nullARM7体系结构ARM7体系结构1.ARM简介 2.ARM7TDMI 3.ARM的模块、内核和功能框图 4.ARM处理器状态 5.ARM处理器模式6.ARM内部寄存器 7.当前程序状态寄存器 8.ARM体系的异常、中断及其向量表 9.ARM体系的存储系统2.1 ARM简介2.1 ARM简介ARM公司简介2.1 ARM简介2.1 ARM简介ARM公司简介将技术授权给其它芯片厂商形成各具特色的ARM芯片2.1 ARM简介2.1 ARM简介RISC结构特性 RISC是精简指令集计算机的缩写,其目标是设计出在高时钟频率下单周期执行,简单而有效的指令集。ARM内核采用RISC体系结构,因此具有RISC的结构特点:2.1 ARM简介2.1 ARM简介ARM体系结构 为了使ARM能够更好地满足嵌入式应用的需要,ARM体系结构还有以下特点:每条数据处理指令可同时包含算术逻辑单元(ALU)的运算和移位处理,实现ALU和移位器的最大利用; 使用地址自增和自减的寻址方式优化程序循环; 装载/保存指令对数据的批量传输,实现最大数据吞吐量; 大多数指令的条件执行,实现最快速的代码执行。2.1 ARM简介2.1 ARM简介常用ARM处理器系列 ARM公司开发了很多系列的ARM处理器核,目前最新的系列是Cortex,而ARM6核以及更早的系列已经很罕见了。当前应用比较多的ARM处理器核系列有:2.1 ARM简介2.1 ARM简介ARM Cortex系列简介 基于ARMv7版本的ARM Cortex系列产品由A、R、M三个系列组成,具体分类延续了一直以来ARM面向具体应用设计CPU的思路。 ARM Cortex2.1 ARM简介2.1 ARM简介CortexTM-M3处理器简介 该处理器是首款基于ARMv7-M架构的处理器,采用了纯Thumb2指令的执行方式,具有极高的运算能力和中断相应能力。 Cortex-M3主要应用于汽车车身系统,工业控制系统和无线网络等对功耗和成本敏感的嵌入式应用领域。目前最便宜的基于该内核的ARM单片机售价为1美元。2.1 ARM简介2.1 ARM简介CortexTM-R4处理器简介 该处理器是首款基于ARMv7架构的高级嵌入式处理器,其主要目标为产量巨大的高级嵌入式应用系统,如硬盘,喷墨式打印机,以及汽车安全系统等等。CortexTM-R4F处理器简介 该处理器在CortexTM-R4处理器的基础上加入了代码错误校正(ECC)技术,浮点运算单元(FPU)以及DMA综合配置的能力,增强了处理器在存储器保护单元、缓存、紧密耦合存储器、DMA访问以及调试方面的能力。2.1 ARM简介2.1 ARM简介CortexTM-A8处理器简介 该处理器是ARM公司所开发的基于ARMv7架构的首款应用级处理器,其特色是运用了可增加代码密度和加强性能的技术、可支持多媒体以及信号处理能力的NEONTM技术、以及能够支持Java和其他文字代码语言的提前和即时编译的Jazelle@RTC技术。 众多先进的技术使其适用于家电以及电子行业等各种高端的应用领域。2.1 ARM简介2.1 ARM简介ARM7系列简介 该系列包括ARM7TDMI、ARM7TDMI-S、带有高速缓存处理器宏单元的ARM720T和扩充了Jazelle的ARM7EJ-S。该系列处理器提供Thumb 16位压缩指令集和EmbededICE软件调试方式,适用于更大规模的SoC设计中。 ARM7系列广泛应用于多媒体和嵌入式设备,包括Internet设备、网络和调制解调器设备,以及移动电话、PDA等无线设备。2.1 ARM简介2.1 ARM简介ARM9系列简介 该系列包括ARM9TDMI、ARM920T和带有高速缓存处理器宏单元的ARM940T。除了兼容ARM7系列,而且能够更加灵活的设计。 ARM9系列主要应用于引擎管理、仪器仪表、安全系统和机顶盒等领域。2.1 ARM简介2.1 ARM简介ARM9E系列简介 该系列为含有DSP指令集的综合处理器,包括ARM926EJ-S、带有高速缓存处理器宏单元的ARM966E-S/ARM946E-S。其内核在ARM7处理器内核的基础上使用了Jazelle增强技术,该技术支持一种新的Java操作状态,允许在硬件中执行Java字节码。 ARM9E系列主要应用于下一代无线设备、数字消费品、成像设备、工业控制、存储设备和网络设备等领域。2.1 ARM简介2.1 ARM简介ARM10E系列简介 该系列包括ARM1020E和ARM1020E处理器核,其核心在于使用向量浮点(VFP)单元VFP10提供高性能的浮点解决 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 ,从而极大提高了处理器的整型和浮点运算性能。 可以用于视频游戏机和高性能打印机等场合。2.1 ARM简介2.1 ARM简介Xscale简介 Intel Xscale微控制器则提供全性能、高性价比、低功耗的解决方案,支持16位Thumb指令并集成数字信号处理(DSP)指令。 主要应用于手提式通讯和消费电子类设备。ARM7体系结构ARM7体系结构1.ARM简介 2.ARM7TDMI 3.ARM的模块、内核和功能框图 4.ARM处理器状态 5.ARM处理器模式6.ARM内部寄存器 7.当前程序状态寄存器 8.ARM体系的异常、中断及其向量表 9.ARM体系的存储系统2.2 ARM7TDMI2.2 ARM7TDMI简介 ARM7TDMI是基于ARM体系结构V4版本的低端ARM核。 其弥补了ARM6很难在低于5V电压下稳定工作的不足,还增加了后缀所对应的功能:2.2 ARM7TDMI2.2 ARM7TDMI存储器的字与半字 从偶数地址开始的连续2个字节构成一个半字; 以能被4整除的地址开始的连续4个字节构成一个字; ARM指令的长度刚好是一个字,Thumb指令的长度刚好是一个半字。2.2 ARM7TDMI2.2 ARM7TDMI存储器的存储方式 如果一个数据是从偶地址开始的连续存储,那么它就是半字对齐,否则就是非半字对齐; 如果一个数据是以能被4整除的地址开始的连续存储,那么它就是字对齐,否则就是非字对齐。2.2 ARM7TDMI2.2 ARM7TDMI三级流水线 ARM处理器使用流水线来增加处理器指令流的速度,这样可使几个操作同时进行,并使处理和存储器系统连续操作,能提供0.9MIPS/MHz的指令执行速度。 ARM7TDMI的流水线分3级,分别为:取指译码执行2.2 ARM7TDMI2.2 ARM7TDMI三级流水线结构的指令执行顺序周期2周期1周期3周期4处理器执行一条指令的三个阶段2.2 ARM7TDMI2.2 ARM7TDMI思考 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 执行ADD PC,PC,#4指令后,PC的值为多少?ADD…………ARM7体系结构ARM7体系结构1.ARM简介 2.ARM7TDMI 3.ARM的模块、内核和功能框图 4.ARM处理器状态 5.ARM处理器模式6.ARM内部寄存器 7.当前程序状态寄存器 8.ARM体系的异常、中断及其向量表 9.ARM体系的存储系统2.3 ARM模块框图2.3 ARM模块框图CPU协处理接口信号EmbedICE硬件仿真功能模块片上调试系统读写总线2.3 ARM内核框图2.3 ARM内核框图2.3 ARM功能框图2.3 ARM功能框图总线控制ARM7体系结构ARM7体系结构1.ARM简介 2.ARM7TDMI 3.ARM的模块、内核和功能框图 4.ARM处理器状态 5.ARM处理器模式6.ARM内部寄存器 7.当前程序状态寄存器 8.ARM体系的异常、中断及其向量表 9.ARM体系的存储系统2.4 ARM处理器状态2.4 ARM处理器状态处理器状态 ARM7TDMI处理器内核包含2套指令系统,分别为ARM指令集和Thumb指令,并且各自对应1种处理器的状态: ARM状态:32位,处理器执行字方式的ARM指令,处理器默认为此状态; Thumb状态:16位,处理器执行半字方式的Thumb指令。注意:两个状态之间的切换并不影响处理器模式或寄存器内容。2.4 ARM处理器状态2.4 ARM处理器状态状态切换的一个例子 使用BX指令将ARM内核的操作状态在ARM状态和Thumb状态之间进行切换。ARM指令集 Thumb 指令集 CODE32 LDR R0, =Lable+1 BX R0 CODE16 Lable MOV R1, #12 CODE16 LDR R0, =Lable BX R0 CODE32 Lable MOV R1, #10执行完BX指令,处理器切换到Thumb状态,开始执行Thumb指令程序代码指令集关系 从ARM状态切换到Thumb状态的程序代码如下: 从Thumb状态切换到ARM状态的程序代码如下:执行完BX指令,处理器切换到ARM状态,开始执行ARM指令ARM7体系结构ARM7体系结构1.ARM简介 2.ARM7TDMI 3.ARM的模块、内核和功能框图 4.ARM处理器状态 5.ARM处理器模式6.ARM内部寄存器 7.当前程序状态寄存器 8.ARM体系的异常、中断及其向量表 9.ARM体系的存储系统2.5 ARM处理器模式2.5 ARM处理器模式简介 ARM体系结构支持7种处理器模式,分别为:用户模式、快中断模式、中断模式、管理模式、中止模式、未定义模式和系统模式。这样的好处是可以更好的支持操作系统并提高工作效率。ARM7TDMI完全支持这七种模式。null 除用户模式外,其它模式均为特权模式。ARM内部寄存器和一些片内外设在硬件设计上只允许(或者可选为只允许)特权模式下访问。此外,特权模式可以自由的切换处理器模式,而用户模式不能直接切换到别的模式。处理器模式 这两种模式都不能由异常进入,想要进入必须修改CPSR,而且它们使用完全相同的寄存器组。系统模式是特权模式,不受用户模式的限制。操作系统在该模式下访问用户模式的寄存器就比较方便,而且操作系统的一些特权任务可以使用这个模式访问一些受控的资源。 这五种模式称为异常模式。它们除了可以通过程序切换进入外,也可以由特定的异常进入。当特定的异常出现时,处理器进入相应的模式。每种异常模式都有一些独立的寄存器,以避免异常退出时用户模式的状态不可靠。何时进入异常模式,具体规定如下: 处理器复位之后进入管理模式,操作系统内核通常处于管理模式; 当处理器访问存储器失败时,进入数据访问中止模式; 当处理器遇到没有定义或不支持的指令时,进入未定义模式; 中断模式与快速中断模式分别对ARM处理器2种不同级别的中断作出响应。ARM7体系结构ARM7体系结构1.ARM简介 2.ARM7TDMI 3.ARM的模块、内核和功能框图 4.ARM处理器状态 5.ARM处理器模式6.ARM内部寄存器 7.当前程序状态寄存器 8.ARM体系的异常、中断及其向量表 9.ARM体系的存储系统2.6 ARM内部寄存器2.6 ARM内部寄存器简介 在ARM处理器内部共有37个用户可访问的寄存器,分别为31个通用32位寄存器和6个状态寄存器。 ARM处理器共有7种不同的处理器模式,每种模式都有一组相应的寄存器组,最多可以18个活动的寄存器。nullARM状态各模式下的寄存器 所有的37个寄存器,分成两大类: 31个通用32位寄存器; 6个状态寄存器。nullARM状态各模式下可以访问的寄存器null未分组的通用寄存器寄存器R0~R7为未分组的通用寄存器,它们在任何处理器模式都对应于相同的32位物理寄存器。第一类分组的通用寄存器寄存器R8~R12有两个分组的物理寄存器。一个用于除FIQ模式之外的所有寄存器模式,另一个用于FIQ模式。在发生FIQ中断后,处理器不必为保护寄存器而浪费时间,从而加速了FIQ的处理速度。第二类分组的通用寄存器寄存器R13、R14分别有6个分组的物理寄存器。1个用于用户和系统模式,其余5个分别用于5种异常模式。寄存器R13通常作为堆栈指针(SP),用于保存待使用的寄存器的内容。寄存器R14称为链接寄存器(LR),在结构上有两个特殊功能: 当使用BL指令调用子程序时,返回地址将自动存入R14中; 当发生异常时,将R14对应的异常模式版本设置为异常返回地址(有些异常有一个小的固定偏移量)。程序计数器寄存器R15称为程序计数器(PC),它指向正在“取指”的指令。状态寄存器寄存器CPSR为当前程序状态寄存器,在异常模式中,另外一个寄存器“程序状态保存寄存器(SPSR)”可以被访问。每种异常都有自己的SPSR,在进入异常时它保存CPSR的当前值,异常退出时可通过它恢复CPSR。2.6 ARM内部寄存器2.6 ARM内部寄存器在Thumb状态各模式下实际访问的寄存器 Thumb状态寄存器集是ARM状态集的子集,程序员可以直接访问的寄存器为: 8个通用寄存器R0~R7; 程序计数器(PC); 堆栈指针(SP); 链接寄存器(LR); 当前程序状态寄存器( CPSR)。null在Thumb状态各模式下的寄存器未分组的通用寄存器第二类分组的通用寄存器在汇编语言中寄存器R0~R7为通用寄存器,对于任何处理器模式,它们中的每一个都对应于相同的32为物理寄存器。堆栈指针SP对应ARM状态的寄存器R13。每个异常模式都有其自身的SP分组版本,SP通常指向各异常模式所专用的堆栈。 注意:在发生异常时,处理器自动进入ARM状态。链接寄存器LR对应ARM状态寄存器R14。 注意:在发生异常时,处理器自动进入ARM状态。nullARM状态Thumb寄存器在ARM状态寄存器上的映射Thumb状态 在Thumb状态中,高端寄存器的访问是受到限制的,只有MOV、CMP和ADD指令可以对其访问,可以用于数据的快速暂存。null状态切换过程 程序在正常运行的过程中,复位事件产生,导致系统复位。ARM7体系结构ARM7体系结构1.ARM简介 2.ARM7TDMI 3.ARM的模块、内核和功能框图 4.ARM处理器状态 5.ARM处理器模式6.ARM内部寄存器 7.当前程序状态寄存器 8.ARM体系的异常、中断及其向量表 9.ARM体系的存储系统2.7 当前程序状态寄存器2.7 当前程序状态寄存器简介 ARM内核包含1个CPSR和5个仅供异常处理程序使用的SPSR。CPSR反映当前处理器的状态,其包含: 4个条件代码标志(负标志N、零标志Z、进位标志C和溢出标志V ); 2个中断禁止位(IRQ禁止与FIQ禁止); 5个对当前处理器模式进行编码的位(M[4:0]); 1个用于指示当前执行指令的位(ARM指令还是Thumb指令)。2.7 当前程序状态寄存器2.7 当前程序状态寄存器程序状态寄存器的格式条件代码标志保留控制位溢出标志进位或借位扩展零负或小于IRQ禁止FIQ禁止状态位模式位NZCVITF2.7 当前程序状态寄存器2.7 当前程序状态寄存器条件代码标志各标志位的含义如下: 负标志N:运算结果的第31位值, 记录 混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载 标志设置操作的结果; 零标志Z:如果标志设置的操作为0,则置位; 进位标志C:记录无符号加法溢出,减法无借位,循环移位; 溢出标志V:记录标志设置操作的有符号溢出。2.7 当前程序状态寄存器2.7 当前程序状态寄存器 警告:绝对不要强制改变CPSR寄存器中的控制位T。如果这样做,处理器将进入一个无法预测的状态。控制位1、中断禁止控制位I和F;2、处理器状态位T;3、处理器模式位M0~M4。 注意:不是所有模式位的组合都定义了有效的处理器模式,如果将非法值写入M[4:0]中,处理器将进入一个无法恢复的模式。2.7 当前程序状态寄存器2.7 当前程序状态寄存器保留位 CPSR中的保留位被保留将来使用。当改变CPSR标志和控制位时,请确认没有改变这些保留位。 另外,请确保您的程序不依赖于包含特定值的保留位,因为将来的处理器可能会将这些位设置为1或者0。ARM7体系结构ARM7体系结构1.ARM简介 2.ARM7TDMI 3.ARM的模块、内核和功能框图 4.ARM处理器状态 5.ARM处理器模式6.ARM内部寄存器 7.当前程序状态寄存器 8.ARM体系的异常、中断及其向量表 9.ARM体系的存储系统2.8 ARM体系的异常2.8 ARM体系的异常异常简介 只要正常的程序流被暂时中止,处理器就进入异常模式。例如在用户模式下执行程序时,当外设向处理器内核发出中断请求导致内核从用户模式切换到异常中断模式。 如果同时发生两个或更多异常,那么将按照固定的顺序来处理异常。 null异常入口/出口汇总 下表所示为异常返回地址值以及退出异常处理程序所推荐使用的指令。 注意:“MOVS PC,R14_svc”是指在管理模式执行MOVS PC,R14 指令,同样类似的指令还有“MOVS PC,R14_und”、“SUBS PC,R14_abt,#4”等。2.8 ARM体系的异常2.8 ARM体系的异常异常向量表注:表中的I和F表示不对该位有影响,保留原来的值。 2.8 ARM体系的异常2.8 ARM体系的异常异常优先级 当多个异常同时发生时,一个固定的优先级决定系统处理它们的顺序。 优 先 级 由 高 到 低2.8 ARM体系的异常2.8 ARM体系的异常异常的进入当一个异常导致模式切换时,内核自动的做如下处理: 将异常处理程序的返回地址(加固定的偏移量)保存到相应异常模式下的LR;将CPSR的当前值保存到相应异常模式下的SPSR;设置CPSR为相应的异常模式;设置PC为相应异常处理程序的中断入口向量地址,跳转到相应的异常中断处理程序执行;-BackAddrJumpAddrUserModeExceptionMode程序代码正常运行在用户模式下。 2.8 ARM体系的异常2.8 ARM体系的异常异常的进入当一个异常导致模式切换时,内核自动的做如下处理: 将异常处理程序的返回地址(加固定的偏移量)保存到相应异常模式下的LR;将CPSR的当前值保存到相应异常模式下的SPSR;设置CPSR为相应的异常模式;设置PC为相应异常处理程序的中断入口向量地址,跳转到相应的异常中断处理程序执行;2.8 ARM体系的异常2.8 ARM体系的异常异常的退出 当异常处理程序结束时,异常处理程序必须: 返回到发生异常中断的指令的下一条指令处执行,即就是说将LR中的值减去偏移量后移入PC;将SPSR的值复制回CPSR;-BackAddrCurrentAddrUserModeExceptionModeBackAddr-Off2.8 ARM体系的异常2.8 ARM体系的异常异常的退出 当异常处理程序结束时,异常处理程序必须: 返回到发生异常中断的指令的下一条指令处执行,即就是说将LR中的值减去偏移量后移入PC;将SPSR的值复制回CPSR;清零在入口处置位的中断禁止标志。2.8 ARM体系的异常2.8 ARM体系的异常复位异常 当nRESET信号被拉低时,ARM处理器放弃正在执行的指令,等到nRESET信号再次变高时,处理器执行一下操作: 强制M[4:0]变为b10011,系统进入管理模式; 将CPSR中的标志位I和F置位,IRQ与FIQ中断被禁止; 将CPSR中的标志位T清零,处理器处于ARM状态; 强制PC从地址0x00开始对下一条指令进行取指; 返回到ARM状态并恢复执行。2.8 ARM体系的异常2.8 ARM体系的异常中断请求异常 只有当CPSR中相应的中断屏蔽位被清除时,才可能发生IRQ异常,中断请求(IRQ)异常由一个nIRQ输入端的低电平所产生的正常中断。 注:中断异常产生时,中断异常模式下的R14保存的是PC的值。指令1的执行不会中断;异常程序结束时返回到指令2;进入中断服务程序时,指令3地址被保存在R14中。2.8 ARM体系的异常2.8 ARM体系的异常 程序运行在用户模式下,当一个IRQ异常中断发生时,内核切换到“中断模式”,并自动的做如下处理: 进入IRQ异常模式USR模式IRQ模式2.8 ARM体系的异常2.8 ARM体系的异常退出IRQ异常模式IRQ模式USR模式 中断服务程序执行完毕后,系统将通过以下几步软件操作返回用户模式:2.8 ARM体系的异常2.8 ARM体系的异常快速中断请求异常 快速中断请求(FIQ)适用于对一个突发事件的快速响应,这得益于在ARM状态中,快中断模式有8个专用的寄存器可用来满足寄存器保护的需要(这可以加速上下文切换的速度)。 不管异常入口是来自ARM状态还是Thumb状态,FIQ处理程序都会通过执行下面的指令从中断返回: SUBS PC,R14_fiq,#4 在一个特权模式中,可以通过置位CPSR中的F位来禁止FIQ异常。nullFIQ中断的例子“?”表示该位无关BackAddrJumpAddr10BackAddr-4 Thumb不是一个完整的体系结构,不能指望处理器只执行Thumb指令而不支持ARM指令集。 因此,Thumb指令只需要支持通用功能,必要时可以借助于完善的ARM指令集,比如,所有异常自动进入ARM状态。 在系统模式下运行用户程序,当前处理器处于Thumb状态,执行Thumb指令代码,同时处理器还允许IRQ和FIQ中断。 指令1的在执行过程产生了FIQ中断。 注:完成指令1的执行后才响应中断。 FIQ中断相应过程中,硬件自动执行如下动作:将CPSR寄存器内容存入IRQ模式的SPSR寄存器置为F和I(禁止FIQ和IRQ中断); 清零T位(进入ARM状态); 设置MOD位,切换处理器模式至FIQ模式。将下一条的地址存入FIQ模式的LR寄存器,即指令3的地址。将跳转地址存入PC,即FIQ中断服务函数的入口地址,实现跳转。 FIQ中断服务程序在ARM状态下执行现场保护等操作。 FIQ中断服务程序使用BX指令,将处理器从ARM状态切换到Thumb状态,通过置位CPSR的T位实现。 FIQ中断服务程序开始执行Thumb指令。 FIQ中断服务程序使用BX指令,将处理器从Thumb状态切换到ARM状态,通过清除CPSR的T位实现。 FIQ中断服务程序在ARM状态下执行恢复中断现场等操作。 FIQ中断异常处理结束后,异常处理程序完成以下动作:将SPSR寄存器的值复制回CPSR寄存器;将LR寄存的值减去一个常量(FIQ异常为4)后复制到PC寄存器,跳转到被中断的用户程序(指令2的地址)。2.8 ARM体系的异常2.8 ARM体系的异常未定义的指令异常 未定义指令异常是内部异常中断,当ARM处理器遇到一条自己和系统内部任何协处理器都无法执行的指令时,就会发生未定义指令异常,从而进入中断处理程序,同时软件可使用这一机制通过仿真未定义的协处理器指令来扩展ARM指令集。 在仿真失败的指令后,捕获处理器执行下面的指令: MOVS PC,R14_und2.8 ARM体系的异常2.8 ARM体系的异常中止异常 中止表示当前对存储器的访问不能被完成,这是由外部ABORT输入信号引起的异常中断。中止类型有2种类型: 预取指中止:由程序存储器引起的中止异常; 数据中止:由数据存储器引起的中止异常。2.8 ARM体系的异常2.8 ARM体系的异常预取指中止 当发生预取指中止时,ARM内核将预取的指令标记为无效,但在指令到达流水线的执行阶段时才进入异常。如果指令在流水线中因为发生分支而没有被执行,中止将不会发生。 在处理中止的原因之后,不管处于哪种处理器操作状态,处理程序都会执行下面的指令恢复PC和CPSR并重试被中止的指令: SUBS PC,R14_abt,#42.8 ARM体系的异常2.8 ARM体系的异常数据中止 当发生数据中止异常时,异常会在“导致异常的指令”执行后的下一条指令发生。在这种情况下,理想的状况是进入数据中止异常的ISR,然后在内存中挑选出问题,再重新执行导致异常的指令。 在修复产生中止的原因后,不管处于哪种处理器操作状态,处理程序都必须执行下面的返回指令 : SUBS PC,R14_abt,#82.8 ARM体系的异常2.8 ARM体系的异常软件中断异常 软件中断异常(SWI)用于进入管理模式,通常用于请求一个特定的管理函数。SWI处理程序通过执行下面的指令返回: MOVS PC,R14_svc 这个动作恢复了PC和CPSR并返回到SWI之后的指令。SWI处理程序读取操作码以提取SWI函数编号。 2.8 ARM体系的异常2.8 ARM体系的异常中断延迟 中断延迟即从外部中断请求信号发出到执行对应的中断服务程序ISR的第1条指令所需要的时间。 通过软件程序设计来缩短中断延迟的方法有:中断优先级和中断嵌套。 ARM7体系结构ARM7体系结构1.ARM简介 2.ARM7TDMI 3.ARM的模块、内核和功能框图 4.ARM处理器状态 5.ARM处理器模式6.ARM内部寄存器 7.当前程序状态寄存器 8.ARM体系的异常、中断及其向量表 9.ARM体系的存储系统2.9 ARM体系的存储系统2.9 ARM体系的存储系统简介 ARM处理器采用冯·诺依曼(Von Neumann)结构,指令、数据和I/O统一编址(即存在同一个空间)。只有装载、保存和交换指令可访问存储器中的数据。 ARM芯片一般在处理器核和外部存储器之间有一个存储器管理部件将局部总线的信号和时序转换为现实的外部总线信号和时序。ARM7的规范定义了局部总线的信号和时序。各芯片生产厂商制定了自己的外部总线的信号和时序。2.9 ARM体系的存储系统2.9 ARM体系的存储系统地址空间 ARM结构使用单个平面的232个8位字节地址空间。地址空间可以看作是包含230个32位字,或231个16位半字。如果地址向上或向下溢出地址空间,通常会发生翻转。 注意:如果在取指操作时地址发生溢出,只要没有执行预取的无效指令,就不会导致异常。2.9 ARM体系的存储系统2.9 ARM体系的存储系统存储器格式地址空间的规则要求字地址A: 位于地址A的字包含的字节位于地址A,A+1,A+2和A+3; 位于地址A的半字包含的字节位于地址A和A+1; 位于地址A+2的半字包含的字节位于地址A+2和A+3; 位于地址A的字包含的半字位于地址A和A+2; 2.9 ARM体系的存储系统2.9 ARM体系的存储系统存储器格式存储器系统有两种映射机制: 小端存储器系统: 在小端格式中,数据的高字节存放在高地址中。 大端存储器系统: 在大端格式中,数据的高字节存放在低地址中。0x12 0x34 0x56 0x780x78 0x56 0x34 0x122.9 ARM体系的存储系统2.9 ARM体系的存储系统非对齐的存储器访问 ARM结构通常希望所有的存储器访问都合理的对齐,具体来说就是字访问的地址通常是字对齐的,而半字访问使用的地址是半字对齐的。不按这种方式对齐的存储器访问称为非对齐的存储器访问。 将一个非字(半字)对齐的地址写入ARM(Thumb)状态的R15寄存器,将引起非对齐的指令取指。 在一个非字(半字)对齐的地址读写一个字(半字),将引起非对齐的数据访问:
本文档为【第2章 ARM7体系结构】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_564760
暂无简介~
格式:ppt
大小:1MB
软件:PowerPoint
页数:0
分类:其他高等教育
上传时间:2012-12-21
浏览量:24