1、ARM内部寄存器:设计在CPU内部
(1)特点:速度快
(2)数量:一共有37个:
6个状态寄存器;
31个通用寄存器(R0-R12)
R13(SP):栈指针,不同模式下栈空间是不一样的
R14(LR):链接寄存器(存放断点),硬件自动完成
R15(PC):程序指针,取指令的位置
在FIQ模式下是独立的与其他模式不同
R16 PSR--CPSR(当前状态寄存器)
SPSR:程序状态寄存器
条件状态(NZCV)保留字 I F T 模式位(M4-M0)
SFR(Special Function Register)特殊功能寄存器
IO端口/寄存器,它属于外设的组成部分,ARM是采用与寄存器统一编址的方式
使用软件编程控制某一硬件,其实就是编程读写该硬件的寄存器
2、ARM异常处理
(1)模式与异常
异常的类型:
Reset:复位
undefined instruction:未定义
swi:软中断
prefect/bort
data/abort
Reserved
IRQ:中断
FIQ:快速中断
处理器的模式:每一个异常对应一种模式,但不是一一对应关系
(2)ARM异常处理的过程:
进入异常硬件完成下面动作:
(1)断点:放到LR里面,
(2)CPSR的值放到SPSR
(3)修改CPSR中的模式位
(4)PC跳到中断向量(异常向量)
软件完成下面的动作:
(1)中断散转,二级中断(由硬件完成,不需要手动代码)
(2)保护现场
(3)中断服务程序
(4)恢复现场(LR赋给PC,SPSR的值返回CPSR)
3、中断向量表