ARM day1

ARM核工作模式

User和System是正常工作模式,其他七个是异常工作状态

Monitor只能在安全情况执行

Hyp(主要用来做虚拟化处理)只能在非安全情况执行

User权限级别为0

除过Hyp级别为2,其他都为1

Encoding用来区分不同工作模式

FIQ(快中断)和IRQ(慢中断)用的比较多,要记

模式的改变可以在软件控制的情况下改变

工作模式的转换可以通过代码来转换,也可以通过外部和内部的异常来引起转换

安全状态都是PL0和PL1(权限级别)

PL0--非特权模式,有些系统资源没法访问

PL1、PL2--特权模式,可以访问系统资源

在User模式下无法通过编码形式来引起模式的改变,只能通过异常

用户模式是用户程序的工作模式,只能处理自己的数据,也不能切换到其他模式下

System模式不能通过异常进入,用户模式和System共用一套寄存器,系统模式属于特权模式

Supervisor mode 处理器在复位时进入该模式,当用户模式下的用户程序请求使用硬件资源时,通过软件中断进入该模式

Abort mode 段错误会导致进入中止模式

Underfined mode 未定义模式,是指令的异常(未能识别的指令)导致的模式

FIQ快中断,用来处理时间要求比较紧的中断请求,主要用于高速数据传输以及通道处理

IRQ一般中断,用于处理一般的中断请求,通常在硬件产生中断之后自动进入,该模式是特权模式,可以自由访问系统硬件资源

寄存器可以记录因中断而停止的位置

Hyp只能在非安全的PL1模式下进入

Monitor mode 监视器模式始终处于安全模式,处于该模式下可以访问寄存器的安全和非安全区域

ARM核V7架构

指令寄存器和程序计数器

系统视图

九种工作模式

R0-R12 SP LR PC 寄存器名称

在有些工作模式下由独立的寄存器

所有工作模式下共享寄存器R0-R7的值

快中断有R8-R12的独立寄存器资源

SP--栈寄存器

SP和LR(除过Hyp)在异常工作模式下有自己独立的寄存器资源

SPSR 恢复寄存器 用来恢复CPSR寄存器的数据 记录转入其他模式前的状态

R0-R10用来存放用户数据

R11(fp) 用来记录一个栈空间的开始地址

R12 (ip)用来存放临时sp

R13 (sp)栈指针寄存器(栈顶)

R14(lr)发生跳转时,用来保存PC寄存器的值

R15(pc)程序计数器,用来存放CPU需要执行的指令所在内存的地址

CPSR  当前程序状态寄存器 ,包括当前在哪种工作状态下执行 0-4位记录当前工作模式

第5位用来决定处于ARM态还是Thumb态

NZCV用来判断接下来的指令是否需要执行

寄存器长度为32,所以标出0-31

SPSR 保存程序状态寄存器,还会保存CPSR寄存器的值,用来恢复

中断是一种特殊的异常

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值