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

原文地址:https://www.cnblogs.com/zhai1997/p/12426520.html

时间: 2024-11-07 10:04:49

ARM(ARM内部寄存器及SFR、异常处理、中断向量表)的相关文章

ARM七种异常源和异常处理流程(四大步三小步)

ARM七种异常源和异常处理流程 2014-11-30  北京海淀区  张俊浩 ARM七种异常源及其工作模式                                                                                             异常源                                              含义                      ARM工作模式                        

[ARM] ARM处理器寻址方式

ARM处理器寻址方式 寻址方式是处理器根据指令给出的地址码字段来寻找物理地址的方式. 1.立即寻址 立即寻址也称为立即数据寻址,在立即寻址中的操作码字段后面的地址码部分就是操作数据本身,在数据包含在指令当中,取出指令就取出了立即数. ADD     R0,R0,#1 MOV    R0,#0X3FF 2.寄存器寻址 在寄存器寻址中,操作数的值在寄存器中,就是利用指令中的地址码字段指出的寄存器中的数值作为操作数,指令执行时直接取出寄存器值操作,这种寻址方式是各类微处理器经常采用的一种方式,也是一种

[ARM] ARM指令集

ARM指令集 一.ARM指令的格式和分类 经典ARM指令格式如下: <opcode> {<cond>} {S} <Rd>,<Rn>,<operand2> <opcode>   {<cond>}   {S}    <Rd>,<Rn>,<operand2> <> 为必选项,{}为可选项 为操作码,如ADD表示算术加操作指令 {} 决定指令执行条件域 {S} 决定指令执行是否影响C

LINUX-内核-中断分析-中断向量表(3)-arm【转】

转自:http://blog.csdn.net/haolianglh/article/details/51986987 arm中断概念 在<ARM体系结构与编程>第9章中说到,ARM 中有个概念叫做“异常中断”,也就是包括外部中断在内的各种异常.显然,ARM体系的“异常中断”概念更加接近MIPS体系中的“异常”概念. 既然更类似MIPS体系,那么自然的ARM体系就存在“异常中断入口”和“异常中断向量表”的概念. arm的异常中断向量表 非向量化中断 ARM体系定义了7种异常中断,在<AR

一、ARM

1.1 ARM 分类 1.1.1 版本号分类 以前分类的是 ARM7,ARM9... ARM11,在 ARM11 之后,就是以 Cortex 系列分类了: Cortex-R:应用在实时系统上的系列 Cortex-M:替代单片机的系列,M0  M3  M4  M7 Cortex-A:A8  A9  A15  A72  A53 1.1.2 指令集分类 指令集原则上是向下兼容的. 指令集是根据核来分的,比如 ARMv7指令集.ARMv8指令集等等 1.2 ARM 商业模式及半导体公司 1.2.1 IP

ARM体系结构和汇编指令

第一节 可编程器件的编程原理 1. 可编程器件的特点 1 . CPU在固定频率的时钟控制下节奏运行 2 . CPU可以通过总线读取外部存储设备中的二进制指令集,然后解码执行 3 . 这些可以被CPU解码执行的二进制指令集是CPU设计的时候确定的,是CPU的设计者(ARM公司)定义的,本质上是一串由1和0组成的数字.这就是CPU的汇编指令集 2. 从源代码到cpu执行过程 第二节 指令集对cpu的意义 1. 汇编语言与C等高级语言的差异 汇编无移植性,c语言有一定可移植性,jave等更高级的语言移

嵌入式开发学习(4)&lt;ARM汇编指令集详解&gt;

数据传送指令: MOV 两个寄存器之间传递.例 MOV r1,r0,将寄存器r0中的内容赋值给r1. MVN 同MOV用法一样,区别是MOV是原值传递,而MVN是按位取反后传递. 算数运算指令: ADD SUB RSB ADC SBC RSC 逻辑指令: AND ORR EOR BIC BIC的用法:BIC r0,r1,#0x1f,将r1中的数的bit0到bit4清零后赋值给r0:为什么是bit0到bit4呢,这个是由#0x1f来决定,#0x1f有五个bit位是1.如写成#0xf,就有四个bit

arm汇编

(汇编)指令是CPU机器指令的助记符,经过编译后会得到一串10组成的机器码,可以由CPU读取执行.(汇编)伪指令本质上不是指令(只是和指令一起写在代码中),它是编译器环境提供的,目的是用来指导编译过程,经过编译后伪指令最终不会生成机器码. ARM官方的ARM汇编风格:指令一般用大写.Windows中IDE开发环境(如ADS.MDK等)常用.如: LDR R0, [R1] GNU风格的ARM汇编:指令一般用小写字母.linux中常用.如:ldr r0, [r1] ARM采用RISC架构,CPU本身

常用的ARM指令

数据处理指令 (1)数据传输指令 mov mvn (2)算术指令 add sub rsb adc sbc rsc (3)逻辑指令 and orr eor bic       //与或非 (4)比较指令 cmp cmn tst teq (5)乘法指令 mvl mla umull umlal smull smlal (6)前导零计数 clz        (用的不多) 详细分析: mov r1, r0     @两个寄存器之间数据传递,r0赋值给r1 mov r1, #0x0 @将立即数赋值给寄存器