ARM(ARM内部寄存器及SFR异常处理中断向量表)

Posted zhai1997

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ARM(ARM内部寄存器及SFR异常处理中断向量表)相关的知识,希望对你有一定的参考价值。

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、中断向量表

技术图片

 

以上是关于ARM(ARM内部寄存器及SFR异常处理中断向量表)的主要内容,如果未能解决你的问题,请参考以下文章

Linux异常处理体系结构

ARM体系结构简介

ARM 寄存器及异常处理

LINUX-内核-中断分析-中断向量表-arm

学习总结之ARM处理器的运行模式及ARM寄存器

S5PV210-arm裸机-异常中的中断实现过程