ARM微处理器体系结构--课件

上传人:风*** 文档编号:240744189 上传时间:2024-05-04 格式:PPT 页数:65 大小:2.15MB
返回 下载 相关 举报
ARM微处理器体系结构--课件_第1页
第1页 / 共65页
ARM微处理器体系结构--课件_第2页
第2页 / 共65页
ARM微处理器体系结构--课件_第3页
第3页 / 共65页
点击查看更多>>
资源描述
2.2 ARM微处理器体系结构微处理器体系结构2.2.1 数据类型数据类型2.2.2 ARM微处理器的工作状态微处理器的工作状态2.2.3 ARM体系结构的存储器格式体系结构的存储器格式2.2.4 理器模式理器模式2.2.5 寄存器组织寄存器组织 1.ARM状态下的寄存器组织状态下的寄存器组织 2.Thumb状态下的寄存器组织状态下的寄存器组织2.2.6 异常异常1 1pptppt课件课件2.2 ARM微处理器体系结构微处理器体系结构 2.2.1 数据类型数据类型 ARM处理器支持以下处理器支持以下数据类型数据类型:字(字(Word):字的长度为):字的长度为32位,而在位,而在8位位/16位处理器体系结构中,字的长度一般为位处理器体系结构中,字的长度一般为16位,请位,请注意区分。注意区分。半字半字(Half-Word):半字的长度为:半字的长度为16位,与位,与8位位/16位处理器体系结构中字的长度一致。位处理器体系结构中字的长度一致。字节(字节(Byte):各种处理器体系结构中,字节):各种处理器体系结构中,字节的长度均为的长度均为8位。位。2 2pptppt课件课件2.2.2 ARM微处理器的工作状态微处理器的工作状态 从编程的角度看从编程的角度看,ARM微处理器的微处理器的工作状态工作状态一般有两种一般有两种,并可在两种状态之间切换并可在两种状态之间切换:ARM状态,此时处理器执行状态,此时处理器执行32位的字对位的字对齐的齐的ARM指令;指令;Thumb状态,此时处理器执行状态,此时处理器执行16位的、位的、半字对齐的半字对齐的Thumb指令。指令。3 3pptppt课件课件ARMARM处理器在两种工作状态之间可以处理器在两种工作状态之间可以处理器在两种工作状态之间可以处理器在两种工作状态之间可以切换切换切换切换:进入进入进入进入ThumbThumb状态状态状态状态。当操作数寄存器的状态位当操作数寄存器的状态位当操作数寄存器的状态位当操作数寄存器的状态位(位位位位0)0)为为为为1 1时,执行时,执行时,执行时,执行BXBX指令指令指令指令进入进入进入进入ThumbThumb状态。如果处理器在状态。如果处理器在状态。如果处理器在状态。如果处理器在ThumbThumb状态进入异常,状态进入异常,状态进入异常,状态进入异常,则当异常处理则当异常处理则当异常处理则当异常处理(IRQ(IRQ、FIQFIQ、UndefUndef、Abort Abort 和和和和 SWI)SWI)返返返返回时,自动转换到回时,自动转换到回时,自动转换到回时,自动转换到ThumbThumb状态。状态。状态。状态。进入进入进入进入ARMARM状态状态状态状态。当操作数寄存器的状态位当操作数寄存器的状态位当操作数寄存器的状态位当操作数寄存器的状态位(位位位位0)0)为为为为0 0时,执行时,执行时,执行时,执行BXBX指令指令指令指令进入进入进入进入ARMARM状态。处理器进行异常处理状态。处理器进行异常处理状态。处理器进行异常处理状态。处理器进行异常处理(IRQ(IRQ、FIQFIQ、ResetReset、UndefUndef、Abort Abort 和和和和 SWI SWI ARMARM状态执行状态执行状态执行状态执行)。在此情况下,。在此情况下,。在此情况下,。在此情况下,把把把把PC PC 放人异常模式链接寄存器中。从异常向量地址开放人异常模式链接寄存器中。从异常向量地址开放人异常模式链接寄存器中。从异常向量地址开放人异常模式链接寄存器中。从异常向量地址开始执行也可以进入始执行也可以进入始执行也可以进入始执行也可以进入ARMARM状态。状态。状态。状态。4 4pptppt课件课件2.2.3 ARM体系结构的存储器格式体系结构的存储器格式 ARM体系结构将存储器看作是体系结构将存储器看作是从零地址开从零地址开始的字节的线性组合始的字节的线性组合。从零字节到三字节放置第一个存储的字数从零字节到三字节放置第一个存储的字数据,从第四个字节到第七个字节放置第二个存据,从第四个字节到第七个字节放置第二个存储的字数据,依次排列。储的字数据,依次排列。作为作为32位的微处理器,位的微处理器,ARM体系结构所支体系结构所支持的最大寻址空间为持的最大寻址空间为4GB。ARM体系结构可以用两种方法存储字数据,体系结构可以用两种方法存储字数据,称为称为大端格式大端格式和和小端格式小端格式,具体说明如下。具体说明如下。5 5pptppt课件课件 大端格式:字数据的高字节存储在低大端格式:字数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中,而字数据的低字节则存放在高地址中。地址中。字地址字地址高地址高地址低地址低地址以大端格式存储字数据以大端格式存储字数据6 6pptppt课件课件 小端格式:与大端存储格式相反,在小端存储小端格式:与大端存储格式相反,在小端存储小端格式:与大端存储格式相反,在小端存储小端格式:与大端存储格式相反,在小端存储格式中,低地址中存放的是字数据的低字节,高格式中,低地址中存放的是字数据的低字节,高格式中,低地址中存放的是字数据的低字节,高格式中,低地址中存放的是字数据的低字节,高地址存放的是字数据的高字节。地址存放的是字数据的高字节。地址存放的是字数据的高字节。地址存放的是字数据的高字节。以小端格式存储字数据以小端格式存储字数据高地址高地址低地址低地址字地址字地址7 7pptppt课件课件2.2.4 理器模式 ARMARM微处理器支持微处理器支持微处理器支持微处理器支持7 7种运行模式,分别为:种运行模式,分别为:种运行模式,分别为:种运行模式,分别为:用户模式用户模式用户模式用户模式(usr):ARM(usr):ARM处理器正常的程序执行状态。处理器正常的程序执行状态。处理器正常的程序执行状态。处理器正常的程序执行状态。快速中断模式快速中断模式快速中断模式快速中断模式(fiq):(fiq):用于高速数据传输或通道处理。用于高速数据传输或通道处理。用于高速数据传输或通道处理。用于高速数据传输或通道处理。外部中断模式(外部中断模式(外部中断模式(外部中断模式(irqirq):用于通用的中断处理。):用于通用的中断处理。):用于通用的中断处理。):用于通用的中断处理。管理模式(管理模式(管理模式(管理模式(svcsvc):操作系统使用的保护模式,):操作系统使用的保护模式,):操作系统使用的保护模式,):操作系统使用的保护模式,系统复系统复系统复系统复位后的缺省模式。位后的缺省模式。位后的缺省模式。位后的缺省模式。1.1.指令终止模式指令终止模式指令终止模式指令终止模式(abt):(abt):指令预取终止时进入该模式。指令预取终止时进入该模式。指令预取终止时进入该模式。指令预取终止时进入该模式。2.2.数据访问终止模式数据访问终止模式数据访问终止模式数据访问终止模式(abt)(abt):当数据访问终止时进入该:当数据访问终止时进入该:当数据访问终止时进入该:当数据访问终止时进入该 模式,可用于虚拟存储及存储保护。模式,可用于虚拟存储及存储保护。模式,可用于虚拟存储及存储保护。模式,可用于虚拟存储及存储保护。指令未定义模式指令未定义模式指令未定义模式指令未定义模式(und):(und):支持硬件协处理器指令的软件支持硬件协处理器指令的软件支持硬件协处理器指令的软件支持硬件协处理器指令的软件 仿真仿真仿真仿真系统模式系统模式系统模式系统模式(sys)(sys):运行具有特权的操作系统任务。:运行具有特权的操作系统任务。:运行具有特权的操作系统任务。:运行具有特权的操作系统任务。8 8pptppt课件课件ARM微处理器的运行模式可以通过软件改微处理器的运行模式可以通过软件改变,也可以通过外部中断或异常处理改变。变,也可以通过外部中断或异常处理改变。大多数的应用程序运行在用户模式下,当处大多数的应用程序运行在用户模式下,当处理器运行在用户模式下时,某些被保护的系统资理器运行在用户模式下时,某些被保护的系统资源是不能被访问的。源是不能被访问的。除用户模式以外,其余的所有除用户模式以外,其余的所有6种模式称为种模式称为非用户模式或特权模式非用户模式或特权模式(Privileged Modes);其中除去用户模式和系统模式以外的其中除去用户模式和系统模式以外的5种又种又称为异常模式称为异常模式(Exception Modes),常用于处理,常用于处理中断或异常中断或异常,以及需要访问受保护的系统资源等以及需要访问受保护的系统资源等情况。情况。9 9pptppt课件课件处理器启动时的模式转换图处理器启动时的模式转换图超级模式超级模式(Supervisor)多种特权模式变化多种特权模式变化用户程序的运行模式用户程序的运行模式复位后的缺复位后的缺省模式省模式主要完成各主要完成各模式的堆栈模式的堆栈设置,注意设置,注意不要进入用不要进入用户模式户模式一般为用户一般为用户模式模式User处理器模式处理器模式1010pptppt课件课件2.2.5 寄存器组织如图如图 2-4 所示所示,ARM微处理器共有微处理器共有37个个32位寄存器,其中位寄存器,其中31个为通用寄存器,个为通用寄存器,6个个为状态寄存器。但是这些寄存器不能被同为状态寄存器。但是这些寄存器不能被同时访问,具体哪些寄存器是可编程访问的,时访问,具体哪些寄存器是可编程访问的,取决于微处理器的工作状态及具体的运行取决于微处理器的工作状态及具体的运行模式。但在任何时候,通用寄存器模式。但在任何时候,通用寄存器R0R14、程序计数器程序计数器PC、一个或两个状态寄存器都、一个或两个状态寄存器都是可访问的。是可访问的。1111pptppt课件课件1.ARM状态下的寄存器组织状态下的寄存器组织(1)通用寄存器通用寄存器(2)寄存器寄存器R16 1212pptppt课件课件(1)通用寄存器通用寄存器通用寄存器包括通用寄存器包括R0R15,可以分为,可以分为3类:类:未分组寄存器未分组寄存器R0R7分组寄存器分组寄存器R8R14程序计数器程序计数器PC(R15)未分组寄存器未分组寄存器R0R7在所有的运行模式下,未分组寄存器都指向在所有的运行模式下,未分组寄存器都指向同一个物理寄存器,它们未被系统用作特殊的用同一个物理寄存器,它们未被系统用作特殊的用途,因此,在中断或异常处理进行运行模式转换途,因此,在中断或异常处理进行运行模式转换时,由于不同的处理器运行模式均使用相同的物时,由于不同的处理器运行模式均使用相同的物理寄存器,可能会造成寄存器中数据的破坏,这理寄存器,可能会造成寄存器中数据的破坏,这一点在进行程序设计时应引起注意。一点在进行程序设计时应引起注意。1313pptppt课件课件 分组寄存器分组寄存器R8R14对于分组寄存器,它们每一次所访问的物对于分组寄存器,它们每一次所访问的物理寄存器与处理器当前的运行模式有关。理寄存器与处理器当前的运行模式有关。对于对于R8R12,每个寄存器对应两个不同的,每个寄存器对应两个不同的物理寄存器,当使用物理寄存器,当使用fiq模式时,访问寄存器模式时,访问寄存器R8_fiqR12_fiq;当使用除;当使用除fiq模式以外的其他模式以外的其他模式时,访问寄存器模式时,访问寄存器R8_usrR12_usr。对于对于R13、R14,每个寄存器对应,每个寄存器对应6个不同个不同的物理寄存器,其中一个是用户模式与系统模的物理寄存器,其中一个是用户模式与系统模式共用,另外式共用,另外5个物理寄存器对应于其他个物理寄存器对应于其他5种不种不同的运行模式。同的运行模式。1414pptppt课件课件采用以下记号来采用以下记号来区分区分不同的物理寄存器:不同的物理寄存器:R13_R14_其中,其中,mode为以下几种模式之一:为以下几种模式之一:usr、fiq、irq、svc、abt、und。寄存器寄存器R13在在ARM指令中常用作堆栈指针,指令中常用作堆栈指针,但这只是一种习惯用法,用户也可使用其他的但这只是一种习惯用法,用户也可使用其他的寄存器作为堆栈指针。而在寄存器作为堆栈指针。而在Thumb指令集中,指令集中,某些指令强制性的要求使用某些指令强制性的要求使用R13作为堆栈指针。作为堆栈指针。1515pptppt课件课件由于处理器的每种运行模式均有自己独由于处理器的每种运行模式均有自己独立的物理寄存器立的物理寄存器R13,在用户应用程序的初,在用户应用程序的初始化部分,一般都要初始化每种模式下的始化部分,一般都要初始化每种模式下的R13,使其指向该运行模式的栈空间,使其指向该运行模式的栈空间.这样,当程序的运行进入异常模式时,这样,当程序的运行进入异常模式时,可以将需要保护的寄存器放入可以将需要保护的寄存器放入R13所指向的所指向的堆栈,而当程序从异常模式返回时,则从对堆栈,而当程序从异常模式返回时,则从对应的堆栈中恢复,采用这种方式可以保证异应的堆栈中恢复,采用这种方式可以保证异常发生后程序的正常执行。常发生后程序的正常执行。1616pptppt课件课件R14也称做子程序连接寄存器也称做子程序连接寄存器(Subroutine Link Register)或连接寄存器或连接寄存器LR。当执行当执行BL子程序调用指令时,子程序调用指令时,R14中得到中得到R15(程序计数器程序计数器PC)的备份。其他情况下,的备份。其他情况下,R14用作通用寄存器。用作通用寄存器。与之类似,当发生中断或异常时,对应的与之类似,当发生中断或异常时,对应的分组寄存器分组寄存器R14_svc、R14_irq、R14_fiq、R14_abt和和R14_und用来保存用来保存R15的返回的返回值。值。1717pptppt课件课件寄存器寄存器R14常用于如下的情况:常用于如下的情况:在每一种运行模式下,都可用在每一种运行模式下,都可用R14保存子程序的返回地址,当用保存子程序的返回地址,当用BL或或BLX指令调用子程序时指令调用子程序时,将将PC的当前值复制的当前值复制给给R14,执行完子程序后,又将,执行完子程序后,又将R14的的值复制回值复制回PC,即可完成子程序的调用返,即可完成子程序的调用返回。回。以上的描述可用指令完成:以上的描述可用指令完成:1818pptppt课件课件执行以下任意一条指令:执行以下任意一条指令:MOV PC,LR 或或 BX LR在子程序入口处使用以下指令将在子程序入口处使用以下指令将R14存存 入入堆栈:堆栈:STMFD SP!,LR对应的对应的,使用以下指令可以完成子程序返回:使用以下指令可以完成子程序返回:LDMFD SP!,PC R14也可作为通用寄存器。也可作为通用寄存器。1919pptppt课件课件 程序计数器程序计数器PC(R15)寄存器寄存器R15用作程序计数器用作程序计数器(PC)。在。在ARM状态下,位状态下,位1:0为为0,位,位31:2用于保用于保存存PC;在;在Thumb状态下,位状态下,位0为为0,位,位31:1用于保存用于保存PC。虽然可以用作通用寄存器,但是有一些虽然可以用作通用寄存器,但是有一些指令在使用指令在使用R15时有一些特殊限制,若不注时有一些特殊限制,若不注意,执行的结果将是不可预料的。意,执行的结果将是不可预料的。在在ARM状态下,状态下,PC的的0和和1位是位是0,在,在Thumb状态下,状态下,PC的的0位是位是0。2020pptppt课件课件R15虽然也可用作通用寄存器,但一般虽然也可用作通用寄存器,但一般不这么使用,因为对不这么使用,因为对R15的使用有一些特殊的使用有一些特殊的限制,当违反了这些限制时,程序的执的限制,当违反了这些限制时,程序的执行结果是未知的。行结果是未知的。由于由于ARM体系结构采用多级流水线技术,体系结构采用多级流水线技术,对于对于ARM指令集而言,指令集而言,PC总是指向当前指总是指向当前指令的下两条指令的地址,即令的下两条指令的地址,即PC的值为当前的值为当前指令的地址值加八个字节。指令的地址值加八个字节。在在ARM状态下,任一时刻可以访问以上状态下,任一时刻可以访问以上所讨论的所讨论的16个通用寄存器和个通用寄存器和12个状态寄存个状态寄存器。在非用户模式器。在非用户模式(特权模式特权模式)下,则可访问下,则可访问到特定模式分组寄存器,图到特定模式分组寄存器,图2-4说明在每一说明在每一种运行模式下,哪一些寄存器是可以访问种运行模式下,哪一些寄存器是可以访问的。的。2121pptppt课件课件(2)寄存器寄存器R16 寄存器寄存器R16用作用作CPSR(Current Program Status Register,当前,当前程序状态寄存器程序状态寄存器),CPSR可在任何可在任何运行模式下被访问,它包括条件标运行模式下被访问,它包括条件标志位、中断禁止位、当前处理器模志位、中断禁止位、当前处理器模式标志位,以及其他一些相关的控式标志位,以及其他一些相关的控制和状态位。制和状态位。2222pptppt课件课件每一种运行模式下又都有一个专用每一种运行模式下又都有一个专用的物理状态寄存器,称为的物理状态寄存器,称为SPSR(Saved Program Status Register,备份的程序,备份的程序状态寄存器状态寄存器),当异常发生时当异常发生时,SPSR用于保用于保存存CPSR的当前值的当前值,从异常退出时则可由从异常退出时则可由SPSR来恢复来恢复CPSR。由于用户模式和系统模式不属于异由于用户模式和系统模式不属于异常模式,它们没有常模式,它们没有SPSR,当在这两种模,当在这两种模式下访问式下访问SPSR时,结果是未知的。时,结果是未知的。程序状态字参见后面说明。程序状态字参见后面说明。2323pptppt课件课件2.Thumb状态下的寄存器组织状态下的寄存器组织Thumb状态下的寄存器集是状态下的寄存器集是ARM状态状态下寄存器集的一个子集,程序可以直接访问下寄存器集的一个子集,程序可以直接访问8个通用寄存器个通用寄存器(R7R0)、程序计数器、程序计数器(PC)、堆栈指针堆栈指针(SP)、连接寄存器、连接寄存器(LR)和和CPSR。同时,在每一种特权模式下都有一组同时,在每一种特权模式下都有一组SP、LR和和SPSR。图图2-4表明表明Thumb状态下的寄存器组织。状态下的寄存器组织。2424pptppt课件课件(1)Thumb状态下的寄存器组织与状态下的寄存器组织与ARM状态下状态下的寄存器组织的关系的寄存器组织的关系Thumb状态下和状态下和ARM状态下的状态下的R0R7是相同是相同的的Thumb状态下和状态下和ARM状态下的状态下的CPSR和所有和所有的的SPSR是相同的是相同的Thumb状态下的状态下的SP对应于对应于ARM状态下的状态下的R13Thumb状态下的状态下的LR对应于对应于ARM状态下的状态下的R14Thumb状态下的程序计数器对应于状态下的程序计数器对应于ARM状态状态下的下的R15以上的对应关系如图以上的对应关系如图2-5所示所示。2525pptppt课件课件(2)访问访问THUMB状态下的高位寄存器状态下的高位寄存器(Hi-registers)在在Thumb状态下,高位寄存器状态下,高位寄存器R8R15并不是标准寄存器集的一部分,但可使用汇并不是标准寄存器集的一部分,但可使用汇编语言程序有限制地访问这些寄存器,将其编语言程序有限制地访问这些寄存器,将其用作快速的暂存器用作快速的暂存器.使用带特殊变量的使用带特殊变量的 MOV指令指令,数据可以数据可以在低位寄存器和高位寄存器之间进行传送在低位寄存器和高位寄存器之间进行传送,高高位寄存器的值可以使用位寄存器的值可以使用CMP和和ADD指令进行指令进行比较或加上低位寄存器中的值。比较或加上低位寄存器中的值。2626pptppt课件课件(3)程序状态寄存器程序状态寄存器 ARM体系结构包含一个当前程序状态寄存体系结构包含一个当前程序状态寄存器器(CPSR)和和5个备份的程序状态寄存器个备份的程序状态寄存器(SPSRs)。备份的程序状态寄存器用来进行异常处理,备份的程序状态寄存器用来进行异常处理,其功能包括:其功能包括:保存保存ALU中的当前操作信息。中的当前操作信息。控制允许和禁止中断。控制允许和禁止中断。设置处理器的运行模式。设置处理器的运行模式。程序状态寄存器每一位的安排程序状态寄存器每一位的安排如图如图2-6所示所示.2727pptppt课件课件 条件码标志条件码标志(Condition Code Flags)N、Z、C、V均为条件码标志位。它均为条件码标志位。它们的内容可被算术或逻辑运算的结果所们的内容可被算术或逻辑运算的结果所改变,并且可以决定某条指令是否被执改变,并且可以决定某条指令是否被执行。行。在在ARM状态下,绝大多数的指令都是状态下,绝大多数的指令都是有条件执行的。在有条件执行的。在Thumb状态下仅有状态下仅有分支指令是有条件执行的。条件码标志分支指令是有条件执行的。条件码标志各位的具体含义各位的具体含义如表如表2-1所示所示。2828pptppt课件课件 控制位控制位PSR的低的低8位位(包括包括I、F、T和和M4:0)称为控制称为控制位,当发生异常时这些位可以被改变。如果位,当发生异常时这些位可以被改变。如果处理器运行特权模式,这些位也可以由程序处理器运行特权模式,这些位也可以由程序修改。修改。中断禁止位中断禁止位I、FI1 禁止禁止IRQ中断中断F1 禁止禁止FIQ中断中断T标志位:该位反映处理器的运行状态。标志位:该位反映处理器的运行状态。2929pptppt课件课件对于对于ARM体系结构体系结构v5及以上版本的及以上版本的T系列处理器,当该位为系列处理器,当该位为1时,程序运行于时,程序运行于Thumb状态,否则运行于状态,否则运行于ARM状态。状态。对于对于ARM体系结构体系结构v5及以上版本的非及以上版本的非T系列处理器,当该位为系列处理器,当该位为1时,执行下一条时,执行下一条指令以引起未定义的指令异常;当该位为指令以引起未定义的指令异常;当该位为0时,表示运行于时,表示运行于ARM状态。状态。运行模式位运行模式位M4:0:M0、M1、M2、M3、M4是模式位。这些位决定了处理器是模式位。这些位决定了处理器的运行模式。具体含义的运行模式。具体含义如表如表2-2所示。所示。3030pptppt课件课件由表由表2-2可知,并不是所有的运行模可知,并不是所有的运行模式位的组合都是有效的,其他的组合结式位的组合都是有效的,其他的组合结果会导致处理器进入一个不可恢复的状果会导致处理器进入一个不可恢复的状态。态。保留位保留位PSR中的其余位为保留位,当改变中的其余位为保留位,当改变PSR中的条件码标志位或者控制位时,中的条件码标志位或者控制位时,保留位不要改变,在程序中也不要使用保留位不要改变,在程序中也不要使用保留位来存储数据。保留位将用于保留位来存储数据。保留位将用于ARM版本的扩展。版本的扩展。3131pptppt课件课件2.2.6 异常异常异常异常(exception)由内部或外部源产生以引由内部或外部源产生以引起处理器处理一个事件。例如,外部中断或试图起处理器处理一个事件。例如,外部中断或试图执行未定义指令都会引起异常。在处理异常之前,执行未定义指令都会引起异常。在处理异常之前,处理器状态必须保留,以便在异常处理程序完成处理器状态必须保留,以便在异常处理程序完成后,原来的程序能够重新执行。同一时刻可能出后,原来的程序能够重新执行。同一时刻可能出现多个异常。现多个异常。ARM支持支持7种种类型的类型的异常异常。表表2-3列出了异列出了异常的类型以及处理这些异常的处理器模式。异常常的类型以及处理这些异常的处理器模式。异常出现后,强制从异常类型对应的固定存储器地址出现后,强制从异常类型对应的固定存储器地址开始执行程序。这些固定的地址称为异常向量开始执行程序。这些固定的地址称为异常向量(Exception Vectors)。3232pptppt课件课件当异常出现时,异常模式分组的当异常出现时,异常模式分组的当异常出现时,异常模式分组的当异常出现时,异常模式分组的R14R14和和和和SPSRSPSR用于保存用于保存用于保存用于保存状态,即状态,即状态,即状态,即R14_=return linkR14_=return linkSPSR_=CPSRSPSR_=CPSRCPSR4:0=exception mode numberCPSR4:0=exception mode numberCPSR5CPSR5=0 =0 *在在在在ARMARM状态执行状态执行状态执行状态执行*if =Reset or FIQ if =Reset or FIQ then CPSR6=1 then CPSR6=1 *禁止快速中断禁止快速中断禁止快速中断禁止快速中断*否则否则否则否则CPSR6CPSR6不变不变不变不变*CPSR7=1 CPSR7=1 *禁止正常中断禁止正常中断禁止正常中断禁止正常中断*/PC=exception vector addressPC=exception vector address当处理异常返回时,将当处理异常返回时,将当处理异常返回时,将当处理异常返回时,将SPSRSPSR传送到传送到传送到传送到CPSRCPSR,R14R14传送传送传送传送到到到到PCPC。这可用两种方法自动完成,即。这可用两种方法自动完成,即。这可用两种方法自动完成,即。这可用两种方法自动完成,即使用带使用带使用带使用带S S位的数据处理指令,将位的数据处理指令,将位的数据处理指令,将位的数据处理指令,将PCPC作为目的寄存器;作为目的寄存器;作为目的寄存器;作为目的寄存器;使用带恢复使用带恢复使用带恢复使用带恢复CPSRCPSR的多加载指令。的多加载指令。的多加载指令。的多加载指令。3333pptppt课件课件复复 位位 处理器上一旦有复位输入,处理器上一旦有复位输入,处理器上一旦有复位输入,处理器上一旦有复位输入,ARMARM处理器立刻停止处理器立刻停止处理器立刻停止处理器立刻停止执行当前指令。复位完成下列操作执行当前指令。复位完成下列操作执行当前指令。复位完成下列操作执行当前指令。复位完成下列操作R14_svc=UNPREDICTABLE valueR14_svc=UNPREDICTABLE valueSPSR_svc=UNPREDICTABLE valueSPSR_svc=UNPREDICTABLE valueCPSR4:0=0b10011/*CPSR4:0=0b10011/*进入管理模式进入管理模式进入管理模式进入管理模式*/CPSR5CPSR50/*0/*在在在在ARMARM状态下执行状态下执行状态下执行状态下执行*/CPSR6CPSR61/*1/*禁止快速中断禁止快速中断禁止快速中断禁止快速中断*/CPSR7CPSR71/*1/*禁止正常中断禁止正常中断禁止正常中断禁止正常中断*/If high vectors configured thenIf high vectors configured thenPC=0 xFFFF0000PC=0 xFFFF0000ElseElsePC=0 x00000000PC=0 x00000000复位后复位后复位后复位后,ARM,ARM处理器在禁止中断的管理模式下处理器在禁止中断的管理模式下处理器在禁止中断的管理模式下处理器在禁止中断的管理模式下,从地从地从地从地址址址址0 x000000000 x00000000或或或或OxFFFF0000OxFFFF0000开始执行指令。开始执行指令。开始执行指令。开始执行指令。3434pptppt课件课件未定义指令异常未定义指令异常 当当ARM处理器执行协处理器指令时,它必须处理器执行协处理器指令时,它必须等待任一外部协处理器应答后,才能真正执行这等待任一外部协处理器应答后,才能真正执行这条指令。若协处理器没有响应,就会出现未定义条指令。若协处理器没有响应,就会出现未定义指令异常。指令异常。若试图执行未定义的指令,也会出现未定义若试图执行未定义的指令,也会出现未定义指令异常。指令异常。未定义指令异常可用于没有物理协处理器未定义指令异常可用于没有物理协处理器(硬硬件件)的系统上,对协处理器进行软件仿真,或在软的系统上,对协处理器进行软件仿真,或在软件仿真时进行指令集扩展。件仿真时进行指令集扩展。当未定义指令异常出现时,执行下列操作:当未定义指令异常出现时,执行下列操作:3535pptppt课件课件R14_und=address of next instruction after the R14_und=address of next instruction after the undefined instructionundefined instructionSPSR_und=CPSRSPSR_und=CPSRCPSR4:0=0b11011/*CPSR4:0=0b11011/*进入未定义模式进入未定义模式进入未定义模式进入未定义模式*/CPSR5=0/*CPSR5=0/*在在在在ARMARM状态执行状态执行状态执行状态执行*/*CPSR6/*CPSR6不变不变不变不变*/CPSR7=1/*CPSR7=1/*禁止正常中断禁止正常中断禁止正常中断禁止正常中断*/If high vectors configured thenIf high vectors configured thenPC=0 xFFFF0004PC=0 xFFFF0004ElseElsePC=0 x00000004PC=0 x00000004在仿真未定义指令后,使用下列指令返回,即在仿真未定义指令后,使用下列指令返回,即在仿真未定义指令后,使用下列指令返回,即在仿真未定义指令后,使用下列指令返回,即MOVS PCMOVS PC,R14R14上面的指令恢复上面的指令恢复上面的指令恢复上面的指令恢复PC(PC(从从从从R14_und)R14_und)和和和和CPSR(CPSR(从从从从SPSR_und)SPSR_und),并返回到未定义指令后的下一条指令。,并返回到未定义指令后的下一条指令。,并返回到未定义指令后的下一条指令。,并返回到未定义指令后的下一条指令。3636pptppt课件课件3软件中断异常软件中断异常软件中断指令软件中断指令软件中断指令软件中断指令SWI(SoftWare Interrupt SWI(SoftWare Interrupt lnstruction)lnstruction)进入管理模式,以请求特定的管理进入管理模式,以请求特定的管理进入管理模式,以请求特定的管理进入管理模式,以请求特定的管理(操作系操作系操作系操作系统统统统)函数。当执行函数。当执行函数。当执行函数。当执行SWISWI时,完成下列操作:时,完成下列操作:时,完成下列操作:时,完成下列操作:R14_svc=address of next instruction after the R14_svc=address of next instruction after the SWI instructionSWI instructionSPSR_svc=CPSRSPSR_svc=CPSRCPSR4:0=0b10011/*CPSR4:0=0b10011/*进入管理模式进入管理模式进入管理模式进入管理模式*/CPSR5=0/*CPSR5=0/*在在在在ARMARM状态执行状态执行状态执行状态执行*/*CPSR6/*CPSR6不变不变不变不变*/CPSR7=1/*CPSR7=1/*禁止正常中断禁止正常中断禁止正常中断禁止正常中断*/If high vectors configured thenIf high vectors configured thenPC=0 xFFFF0008PC=0 xFFFF0008ElesElesPC=0 x00000008PC=0 x000000083737pptppt课件课件完成完成SWI操作后,使用下列指令操作后,使用下列指令恢复恢复PC(从从R14_svc)和和CPSR(从从SPSR_svc),并返回到,并返回到SWI指令后指令后的下一条指令,即的下一条指令,即MOVS PC,R143838pptppt课件课件4.预取中止预取中止(取指令存储器中止取指令存储器中止)存储器系统发出存储器中止存储器系统发出存储器中止(abort)信号。信号。响应取指激活的中止标记所取的指令无效。响应取指激活的中止标记所取的指令无效。若处理器试图执行无效指令,则产生预若处理器试图执行无效指令,则产生预取中止异常。取中止异常。若指令未执行若指令未执行(例如,指令在流水线中发例如,指令在流水线中发生了转移生了转移),则不发生预取中止。在,则不发生预取中止。在ARMv5及以上版本中,执行及以上版本中,执行BKPT指令也会产生预指令也会产生预取中止异常。取中止异常。当试图执行一条中止的指令时,将执行当试图执行一条中止的指令时,将执行下列操作:下列操作:3939pptppt课件课件R14_abt=address of the aborted instruction+4R14_abt=address of the aborted instruction+4SPSR_abt=CPSRSPSR_abt=CPSRCPSR4:0=0b10111/*CPSR4:0=0b10111/*进入中止模式进入中止模式进入中止模式进入中止模式*/CPSR5=0/*CPSR5=0/*在在在在ARMARM状态执行状态执行状态执行状态执行*/*CPSR 6/*CPSR 6不变不变不变不变*/CPSR7=1/*CPSR7=1/*禁止正常中断禁止正常中断禁止正常中断禁止正常中断*/If high vectors configured thenIf high vectors configured thenPC=0 xFFFF000CPC=0 xFFFF000CElse Else PC=0 x0000000CPC=0 x0000000C确定中止原因后,使用下面指令从中止模式返回,即确定中止原因后,使用下面指令从中止模式返回,即确定中止原因后,使用下面指令从中止模式返回,即确定中止原因后,使用下面指令从中止模式返回,即SUBS PCSUBS PC,R14R14,#4#4上面的指令恢复上面的指令恢复上面的指令恢复上面的指令恢复PC(PC(从从从从R14_abt)R14_abt)和和和和CPSR(CPSR(从从从从SPSR_abt)SPSR_abt),并返回到中止的指令。,并返回到中止的指令。,并返回到中止的指令。,并返回到中止的指令。4040pptppt课件课件数据中止数据中止(数据访问存储器中止数据访问存储器中止)存储器系统发出存储器中止信号。响应数据存储器系统发出存储器中止信号。响应数据访问访问(加载或存储加载或存储)激活的中止标记数据为无效。激活的中止标记数据为无效。在下面的任何指令或异常改变在下面的任何指令或异常改变CPU状态之前,数状态之前,数据中止异常发生。执行下列操作:据中止异常发生。执行下列操作:R14_abt=address of the aborted instruction+8R14_abt=address of the aborted instruction+8SPSR_abt=CPSRCPSR4:0=0b10111/*进入中止模式进入中止模式*/CPSR5=0/*在在ARM状态执行状态执行*/*CPSR 6不变不变*/CPSR7=1/*禁止正常中断禁止正常中断*/4141pptppt课件课件If high vectors configured thenPC=0 xFFFF0010Else PC=0 x00000010确定中止原因后,使用下列指令从中止模式确定中止原因后,使用下列指令从中止模式返回,即返回,即SUBS PC,R14,#8上面的指令恢复上面的指令恢复PC(从从R14_abt)和和CPSR(从从SPSR_abt),并返回重新执行中止的指令。,并返回重新执行中止的指令。若中止的指令不需要重新执行,则使用下面的若中止的指令不需要重新执行,则使用下面的指令:指令:SUBS PC,R14,#44242pptppt课件课件.中断请求中断请求(IRQ)异常异常通过处理器上的通过处理器上的IRQ输入引脚,由外输入引脚,由外部产生部产生IRQ异常。异常。IRQ异常的优先级比异常的优先级比FIQ异常的低。当进入异常的低。当进入FIQ处理时,会屏处理时,会屏蔽掉蔽掉IRQ异常。异常。若若CPSR的的I位置为位置为1,则禁止,则禁止IRQ中断。中断。若若I位清零,则位清零,则ARM在指令执行完之前检在指令执行完之前检查查IRQ输入。输入。只能在特权模式下改变只能在特权模式下改变I位,当检测到位,当检测到IRQ时,执行下列操作:时,执行下列操作:4343pptppt课件课件R14_irq=address of the aborted instruction+4R14_irq=address of the aborted instruction+4SPSR_irq=CPSRSPSR_irq=CPSRCPSR4:0=0b10010/*CPSR4:0=0b10010/*进入进入进入进入IRQIRQ模式模式模式模式*/CPSR5=0/*CPSR5=0/*在在在在ARMARM状态执行状态执行状态执行状态执行*/*CPSR 6/*CPSR 6不变不变不变不变*/CPSR7=1/*CPSR7=1/*禁止正常中断禁止正常中断禁止正常中断禁止正常中断*/If high vectors configured thenIf high vectors configured thenPC=0 xFFFF0018PC=0 xFFFF0018Else Else PC=0 x00000018PC=0 x00000018使用下面的指令从中断服务返回,即使用下面的指令从中断服务返回,即使用下面的指令从中断服务返回,即使用下面的指令从中断服务返回,即SUBS PCSUBS PC,R14R14,#4#4上面的指令恢复上面的指令恢复上面的指令恢复上面的指令恢复PC(PC(从从从从R14_irq)R14_irq)和和和和CPSR(CPSR(从从从从SPSR_irq)SPSR_irq),并继续执行被中断的程序。,并继续执行被中断的程序。,并继续执行被中断的程序。,并继续执行被中断的程序。4444pptppt课件课件快速中断请求快速中断请求(FIQ)异常异常通过处理器上的通过处理器上的FIQ输入引脚,由外部产输入引脚,由外部产生生FIQ异常。异常。FIQ被设计成支持数据传送和通被设计成支持数据传送和通道处理,并有足够的私有道处理,并有足够的私有(private)寄存器,寄存器,从而在这样的应用中可避免对寄存器保存的从而在这样的应用中可避免对寄存器保存的需求,减少了上下文切换的总开销。需求,减少了上下文切换的总开销。当当CPSR的的F位置位置1时,禁止快速中断。时,禁止快速中断。若若F位清零,则位清零,则ARM在执行指令时检查在执行指令时检查FIQ输输入。只能在特权模式下改变入。只能在特权模式下改变F位,当检测到位,当检测到FIQ时时,执行下列操作,即执行下列操作,即4545pptppt课件课件R14_fiq=address of the aborted instruction+4SPSR_fiq=CPSRCPSR4:0=0b10001/*进入进入FIQ模式模式*/CPSR5=0/*在在ARM状态执行状态执行*/CPSR6=1/*禁止快速中断禁止快速中断*/CPSR7=1/*禁止正常中断禁止正常中断*/If high vectors configured thenPC=0 xFFFF001CElsePC=0 x0000001C 4646pptppt课件课件使用下面的指令从中断服务返回,使用下面的指令从中断服务返回,即即SUBS PC,R14,#4上面的指令恢复上面的指令恢复PC(从从R14_fiq)和和CPSR(从从SPSR_fiq),并继续执行被中,并继续执行被中断的程序。断的程序。FIQ向量放在最后,允许向量放在最后,允许FIQ异常处理程序直接放在地址异常处理程序直接放在地址0 x0000001C或或0 xFFFF001C开始的位开始的位置,而不需要由向量的分支指令执行跳置,而不需要由向量的分支指令执行跳转到异常处理程序。转到异常处理程序。4747pptppt课件课件8.异常优先级异常优先级异常的优先级如表异常的优先级如表2-4所列。所列。优先级优先级异常异常优先级优先级异常异常1(最高)(最高)复位复位4IRQ2数据中止数据中止5预取中止预取中止3FIQ6(最低)(最低)未定义指信、未定义指信、SWI4848pptppt课件课件9.高端向量高端向量一些一些ARM实现允许异常向量的定位实现允许异常向量的定位由由32位地址空间低端的正常地址范围位地址空间低端的正常地址范围Ox00000000Ox000000lC,移到接近,移到接近于地址空间高端的另一地址范围于地址空间高端的另一地址范围0 xFFFF00000 xFFFF00lC。这些改变后的地址位置称为高端向这些改变后的地址位置称为高端向量。由量。由IMPLEMENTATION DEFINED决决定是否支持高端向量。如果支持,则在定是否支持高端向量。如果支持,则在输入硬件配置时,选择是使用正常向量输入硬件配置时,选择是使用正常向量还是高端向量。还是高端向量。4949pptppt课件课件10.异常的进入和退出异常的进入和退出只要正常的程序流程被暂时停止只要正常的程序流程被暂时停止,则异常发生,例如服务外部的中断。则异常发生,例如服务外部的中断。在异常被处理之前,必须保存当在异常被处理之前,必须保存当前的处理器状态,以便当处理程序完前的处理器状态,以便当处理程序完成后,原来的程序能重新开始。成后,原来的程序能重新开始。如果几种异常同时发生,则对它如果几种异常同时发生,则对它们按固定的次序处理,可参考异常优们按固定的次序处理,可参考异常优先级先级5050pptppt课件课件(1)进入异常的操作进入异常的操作处理一个异常时,处理一个异常时,ARM7TDMI用于:用于:将下一条指令的地址保存在相应的将下一条指令的地址保存在相应的LR寄存器中。寄存器中。如果异常是从如果异常是从ARM状态进入,则保存状态进入,则保存在在LR寄存器中的是下一条指令的地址寄存器中的是下一条指令的地址(当当前前PC+4或或PC+8,取决于异常,见表,取决于异常,见表2-5)。5151pptppt课件课件 如果异常是从如果异常是从Thumb状态进入,则状态进入,则保存在保存在LR寄存器中的是当前寄存器中的是当前PC的偏移的偏移值。它能使程序在异常处理返回后从正值。它能使程序在异常处理返回后从正确的位置重新开始。确的位置重新开始。这就意味异常处不需要确定异常是这就意味异常处不需要确定异常是从何种状态进入的。例如在软件中断从何种状态进入的。例如在软件中断(SWI)情况下,情况下,“MOVS PC,R14_svc”,总是返回到下一条指令,而与总是返回到下一条指令,而与SWI是在是在ARM还是还是Thumb状态下执行的无关。状态下执行的无关。5252pptppt课件课件将将CPSR复制到相应的复制到相应的SPSR中。中。迫使迫使CPSR模式位设置成取决于异模式位设置成取决于异常的值。常的值。迫使迫使PC从相关的异常向量中取下从相关的异常向量中取下一条指令。也可以设置中断禁止位一条指令。也可以设置中断禁止位来阻止其它无法处理的异常嵌套。来阻止其它无法处理的异常嵌套。如果在异常发生时处理器是在如果在异常发生时处理器是在Thumb状态下,那么当用中断异常状态下,那么当用中断异常向量地址加载向量地址加载PC时,自动切换进入时,自动切换进入ARM状态。状态。5353pptppt课件课件(2)退出异常的操作退出异常的操作在完成异常处理后:在完成异常处理后:1.将将LR寄存器的值减去相应的偏移量寄存器的值减去相应的偏移量(偏移量根据异常不同而不同偏移量根据异常不同而不同),送到,送到PC中;中;2.将将SPSR复制回复制回CPSR中;中;3.清除中断禁止位标志。清除中断禁止位标志。另外,不需要显式切换回另外,不需要显式切换回Thumb状态,状态,因为从因为从SPSR中将中将CPSR T位自动设置为异位自动设置为异常前的原值。常前的原值。5454pptppt课件课件(3)进入和退出异常小结进入和退出异常小结表表2-5中总结了进入异常处理时保中总结了进入异常处理时保存在相应的存在相应的R14寄存器中的寄存器中的PC值,值,以及在退出异常处理时推荐使用的以及在退出异常处理时推荐使用的指令指令。5555pptppt课件课件1.PC是具有预取中止的是具有预取中止的BL/SWI/未定义指未定义指令所取的地址;令所取的地址;2.PC是从是从FIQ或或IRQ取得优先权后不能执取得优先权后不能执行的指令的地址;行的指令的地址;3.PC是产生数据中止的加载或存储指令是产生数据中止的加载或存储指令的地址;的地址;4.复位时保存在复位时保存在R14_svc中的值是不可预中的值是不可预知的。知的。5656pptppt课件课件
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学培训


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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