ARM体系结构支撑7种处理器形式:
用户形式:正常程序作业形式,不能直接切换到其它形式。
快间断形式:支撑高速数据传输及通道处理。FIR反常响应时,进入此形式
间断形式:通用间断处理。IRQ反常响应时,进入此形式。
办理形式:操作体系维护代码,体系复位和软件间断时,进入此形式。
间断形式:支撑虚拟内存,存储器维护。
未定义形式:支撑硬件协处理器和软件仿真。未定义指令反常响应时,进入此形式。
体系形式:用于支撑OS的特权使命。与用户形式相似,但能够直接切换到其它形式。
除用户形式外,其它都为特权形式。某些ARM内部寄存器和一些片表里设在硬件规划上只允许特权形式下拜访。特权形式能够自在切换处理器形式。但用户形式不能直接切换到其他形式。
ARM7TDMI内核包括1个CPSR和5个供反常处理程序运用的SPSR.
ARM7TDMI内核一切处理器状况都保存在CPSR中。
CPSR包括:
4个条件代码标志。
2个间断制止位。
5个队当时处理器形式进行编码的位。
1个用于仅仅当时履行指令(ARM仍是Thumb)的位。
每个反常形式(快间断形式,间断形式,办理形式,间断形式,未定义形式)还带有一个程序状况保存寄存器 SPSR。用于保存使命在反常发生之前的CPSR.
4个条件代码标志:
N:运算成果的B31值。
Z:指令成果为0时,Z=1(一般表明比较成果持平) . 不然Z=0.
C: 运用加法运算时,B31位发生进位,C=1.不然C=0. 运用减法运算时,b31借位时,C=0,不然C=1。
V: 加减运算时,有符号溢出,V=1,不然V=0。
2个间断制止位:
I: 置位,IRQ 间断被制止。
F:置位,FIQ间断被制止。
1个用于仅仅当时履行指令(ARM仍是Thumb)的位:
置位:表明处理器在Thumb.
清零:处理器在ARM。
5个队当时处理器形式进行编码的位:
10000:用户。
10001:快间断。
10010:间断
10011:办理
10111:间断
11011:未定义
11111:体系。
留意,在不同形式下,可见的寄存器不同。
运用MRS指令能够读取状况寄存器指令。
MRS R1, CPSR
MRS R2,SPSR
运用MSR指令,能够写状况寄存器。
例1:使能IRQ间断:
MRS R0, CPSR //把cpsr内容放到Ro中
BIC R0, R0, #0x80 //将I 位铲除。IRQ Enable
MSR CPSR_c ,R0
MOV PC, LR
留意:AXD中的Processor Registers项中,CPSR,SPSR显现形式如下:
nzCvqIFt_SVC
nzcv:别离表明4个标志位。小写字母表明0 , 大写字母表明1
IFt别离表明IRQ,FIQ,和履行指令标志位。
SVC表明作业形式为:办理形式。