ARM处理器模式介绍和模式切换

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表示工作模式为:管理模式。

http://blog.sina.com.cn/s/blog_602f87700100dq0h.html
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值