一、处理器模式
arm微处理器支持7种工作模式,其中,除用户模式之外的其余6种称为非用户模式,或特权模式(privileged modes);而在特权模式中,除系统模式之外的其余5种又称为异常模式(exception modes)。处理器的各种工作模式由当前程序状态寄存器cpsr的低4位m[4:0]决定。
二、处理器工作状态
(1)arm状态:处理器执行32位的arm指令集时,工作在这种状态。
(2)thumb状态:处理器执行16位的thumb指令集时,工作在这种状态。
三、寄存器组织
arm处理器总共有37个寄存器:31个通用寄存器,包括程序计数器pc;6个状态寄存器。各寄存器均为32位。
根据arm处理器的不同工作模式,可将全部寄存器分成7组;各工作模式拥有属于自己的寄存器组,也只能访问自己的寄存器组。各寄存器组间,有些寄存器是重叠的,有些是自己特有的。
程序状态寄存器包括寄存器cpsr和寄存器spsr。当前程序状态寄存器cpsr可以 在任何工作模式下被访问,spsr用来保存cpsr的值,其格式同cpsr。
四、异常中断
异常中断是指处理器由于外部或内部的原因,停止执行当前任务,转而处理特定的事件,处理完后返回原程序,继续执行。异常类型 工作模式 特定地址(低端) 特定地址(高端) 优先级
复位 管理模式 0x00000000 0xffff0000 1
未定义指令 未定义指令中止模式 0x00000004 0xffff0004 6
软件中断(swi) 管理模式 0x00000008 0xffff0008 6
指令预取中止 中止模式 0x0000000c 0xffff000c 5
数据访问中止 中止模式 0x00000010 0xffff0010 2
外部中断请求(irq) 外部中断模式 0x00000018 0xffff0018 4
快速中断请求(fiq) 快速中断模式 0x0000001c 0xffff001c 3