
ARM处理器工作模式.docx
3页ARM处理器共有7种运行模式如表1-2所示表1-2ARM处理器运行模式处理器模式描述用户模式(User,usr)正常程序执行的模式快速中断模式(FIQfiq)用于高速数据传输和通道处理外部中断模式(IRQ,irq)用户通常的中断使用特权模式(Supervisor,sve)供操作系统使用的一种保护模式数据访问中止模式(Abort,abt)用于虚拟存储及存储保护未定义指令中止模式(Undefin-ed,und)用于支持通过软件仿真硬件的协处理器系统模式(System,sys)用于运行特权级的操作系统任务2•程序状态寄存器31302928272676543210NZCVQDNMLRAZIFTM4M3MM0条件标志位N(Negative)、Z(Zero)、C(Carry)及V(oVerflow)表1-4CPSR标志位含义标志位含义N本位设置成当前指令运算结果的bit[31]的值当两个补码表示的有符号整数运算时,N=1表示运算的结果为负数,N=0表示结果为正数或零ZZ=1表示运算结果是0,Z=0表示运算结果不是零对于CMP指令,Z=1表示进行比较的两个数大小相等C在加法指令中(包括比较指令CMN),结果产生进位了,则C=1,表示无符号数运算发生上溢出,其他情况下C=0在减法指令中(包括比较指令CMP),结果产生借位了,则C=0,表示无符号数运算发生下溢出,其他情况下C=1对于包含移位操作的非加/减法运算指令,C中包含最后一次被溢出的位的数值,对于其他非加/减法运算指令,C位的值通常不受影响V对于加/减法运算指令,当操作数和运算结果为二进制的补码表示的带符号数时,v=1表示符号位溢出其他的指令通常不影响V位2)Q标志位在ARMv5的E系列处理器中,CPSR的bit[27]称为Q标志位,主要用于指示增强的DSP指令是否发生了溢出,同样的,SPSR的bit[27]也称为Q标志位,用于在异常中断发生时保存和恢复CPSR中的Q标志位。
3)CPSR中的控制位CPSR的低8位I、F、T及M[4:0]统称为控制位,当异常中断发生时这些位发生变化在特权级的处理器模式下,软件可以修改这些控制位I中断禁止位当1=1时禁止IRQ中断当F=1时禁止FIQ中断通常一旦进入中断服务程序可以通过置位I和F来禁止中断,但是在本中断服务程序退出前必须恢复原来I、F位的值① T控制位,用来控制指令执行的状态,即说明本指令是ARM指令还是Thumb指令对于不同版本的ARM处理器,T控制位的含义是有些不同的对于ARMv3及更低的版本和ARMv4的非T系列版本的处理器,没有ARM和Thumb指令的切换,所以T始终为0对于ARMv4及更高版本的T系列处理器,T控制位含义如下当T=0,表示执行ARM指令当T=1,表示执行Thumb指令对于ARMv5及更高的版本的非T系列处理器,T控制位的含义如下当T=0表示执行ARM指令当T=1表示强制下一条执行的指令产生为定义指令中断M控制位控制位M[4:0]称为处理器模式标识位,具体说明如表1-5所示表1-5CPSR处理器模式位M[4:0]处理器模式可访问的寄存器OblOOOOUserPC,R14〜R0,CPSR0b10001FIQPC,R14fiq〜R8fiq,R7〜RO,CPSR,SPSRfiqOblOOlOIRQPC,R14irq〜R13irq,R12〜RO,CPSR,SPSRirqOblOOllSupervisorPC,R14svc〜R13svc,R12〜RO,CPSR,SPSRsvcOblOlllAbortPC,R14abt〜R13abt,R12〜RO,CPSR,SPSRabtObllOllUndefinedPC,R14und〜R13und,R12〜R0,CPSR,SPSRundOblllllSystemPC,R14〜R0,CPSR(ARMv4及更高版本)CPSR的其他位用于将来ARM版本的扩展,程序可以先不操作这些位。
1.4.4ARM体系结构的异常中断表1-6ARM异常中断异常中断名称含义复位(Reset)当处理器复位引脚有效时,系统产生复位,程序跳转到复位异常中断处理程序处执行,复位异常中断的优先级是最高优先级的中断通常复位产生有下面几种情况:系统加电时、系统复位时、各种不同的ARM处理器的复位有一些区别的,具体的参见后面的实例中的描述未定义的指令Undefinedinstruction当ARM处理器或者系统中的协处理器认为当前指令未定义时,产生该中断,可以通过该异常中断仿真浮点向量运算软件中断SoftwareInterruptSWI这是由用户定义的中断指令,可用于用户模式下的程序调用特权操作指令数据访问中止DataAbort数据访问指令的目标地址不存在,或者该地址不允许当前指令访问,处理器产生数据访问中止异常中断外部中断请求IRQ当处理器的外部中断请求引脚有效,或者CPSR寄存器的I控制位被清除时,处理器产生外部中断请求,应用中对于IRQ的中断处理是比较关键的技术快速中断请求FIQ当处理器的外部中断请求引脚有效,或者CPSR寄存器的F控制位被清楚时,处理器产生外部中断请求1ARM存储系统中的大/小端在大端模式下的存储格式如下所示。
3124231615870字单元A半字单元A半字单元A+2字节单元A字节单元A+1字节单元A+2字节单元A+3而在小端模式下的存储格式如下所示3124231615字单元A半字单元A+2半字单元A字节单元A+3字节单元A+2字节单元A+1字节单元A。
