ARM的工作模式和37个寄存器

一、ARM的工作模式

ARM一共有7种工作模式

模式含义
User非特权模式,大部分任务执行在这种模式
FIQ当一个高优先级(fast) 中断产生时将会进入这种模式
IRQ当一个低优先级(normal) 中断产生时将会进入这种模式
Supervisor当复位或软中断指令执行时将会进入这种模式
Abort当存取异常时将会进入这种模式
Undef当执行未定义指令时会进入这种模式
System使用和User模式相同寄存器集的特权模式
17个模式中除了user是普通模式以外,其他6个都是特权模式
26个特权模式中,除了System模式以外,其他5个都是异常模式
3、模式的切换是通过代码写CPSR寄存器进行主动切换的,或者CPU自动切换
4、各种模式可访问的寄存器数量不同,操作权限不同,方便操作系统的安全等级需求

二、ARM的寄存器

2.1 ARM的37个寄存器

1、ARM一共有37个寄存器,在不同的工作模式下,可操作不同的寄存器,
237个寄存器中30个为“通用” 型, 1个固定用作PC,一个固定用作CPSR, 5个固定用作5种异常模式下的SPSR
3、User和System模式共用同一组寄存器

在这里插入图片描述

2.2 ARM的程序状态寄存器

CPSR程序状态寄存器
在这里插入图片描述

1、CPSR中的各个Bit位表明了CPU的某些状态信息
2、CPSR中的I、F位和开关中断有关
3、CPSR中的mode位(bit4~bit0共5位)决定了CPU的工作模式,在uboot代码中会使用汇编进行设置

2.3 ARM的程序控制寄存器

PC(r15)程序控制寄存器

1、PC为程序指针, PC指向哪里, CPU就会执行哪条指令(所以程序跳转时就是把目标地址代码放到PC中)
2、CPU中只有一个PC、一个CPSR,5个SPSR
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值