ARM体系结构简介

声明:本文参考北京微芯力科技有限公司李驹光的课件

 

1、ARM微处理器的工作状态

从编程角度看,ARM的工作状态有两种:

ARM状态:处理器执行32位的字对齐的ARM指令

Thumb状态:处理器执行16位,半字对齐的Thumb指令

 

2、ARM体系结构的存储器格式

ARM有大端和小端存储模式,用户可以根据自己的需要来确定

大端模式:“高低高低”,字数据的高字节存储是低地址中

小端模式:“高高低低”,与大端模式恰好相反,低地址存放字数据的低字节,高地址存放字数据的高字节

 

3、处理器模式

ARM微处理器支持7种运行模式

管理模式(svc):操作系统使用的保护模式

用户模式(usr):ARM处理器正常的程序执行状态

系统模式(sys):运行具有特权的操作系统任务

中断模式(irq):用于通用的中断处理

快速中断模式(fiq):用于高速数据传输或通道处理

数据访问终止模式(abt):当数据访问终止时进入该模式,可用于虚拟存储及存储保护

未定义模式(und):当处理器遇到没有定义的指令或处理器不支持该指令时,进入未定义模式

 

除用户模式之外,所有其他模式统称为特权模式,他们具有对系统资源的完全访问权限,并可以随意更改模式。

 

 

4、寄存器组织器

ARM寄存器共有37个寄存器(31个通用寄存器+6个状态寄存器),全部是32bit宽,任何时候,通用寄存器R0-R14,PC(R15)、状态寄存器(CPSR)是可以访问的。

1)未分组寄存器(R0-R7):所有的运行的模式下,都指向同一个物理寄存器

2)分组寄存器(R8-R12):快速中断模式有自己独立的R8-R12,其他模式下都是通用的。

3)R13、R14:除了用户模式和系统模式共用,其他模式下都有自己单独的R13、R14

4)程序计数器R15,当前状态寄存器CPSR:所有模式下都共用一个R15和CPSR

5)备份程序状态寄存器SPSR:除了用户模式,其他模式下都有自己的SPSR

6)ARM寄存器组织图解:用户程序运行在usr模式,出usr外,其他六种模式都为特权模式,除usr、system外的五种称为异常模式,每种模式下都有自己独自的SPST,用于保存进入异常前的CPSR;

 

 

 

5、异常

当正常的程序执行流程发生暂时的停止或改变时,称之为异常,例如处理一个外部的中断请求

 

复位:当处理器的复位电平有效时,产生复位异常,程序跳转到复位异常处理程序处执行。

未定义指令:当ARM处理器或协处理器遇到不能处理的指令时,产生未定义指令异常。可使用该异常机制进行软件仿真。

指令预取中止:当处理器预取指令的地址不存在,或该地址不允许当前指令访问,存储器会向处理器发送中止信号,但当预取的指令被执行时,才会产生指令预取中止异常。

数据中止:若处理器数据访问指令的地址不存在,或该地址不允许当前指令访问时,产生数据中止异常。

软件中断:该异常由执行SWI指令产生,可用于用户模式下的程序调用特权操作指令。可使用该异常机制实现系统功能调用。

IRQ(外部中断请求):当处理器的外部中断请求引脚有效,且CPSR中的I位为0时,产生TRQ异常。系统的外设可通过该异常请求中断服务。

FIQ(快速中断请求):当处理器的快速中断请求引脚有效且CPSR中的F位为0时,产生FIQ异常。

 

 

6、ARM处理器对异常的响应

1)、将下一条指令的地址存入相应链接寄存器LR,以便程序在处理异常返回是能从正确的位置重新开始执行。

2)、将CPSR复制到相应的SPSR中

3)、根据异常类型,强制设置CPSR的运行模式位

4)、强制PC从相关的异常向量地址取下一条指令执行,从而跳转到相应的异常处理程序处。

 

 

7、从异常返回

异常处理完毕后,ARM微处理器会执行以下几步操作从异常返回:

1)将连接寄存器LR的值减去相应的偏移量后送到PC中。

2)将SPSR复制回CPSR中

 

 

8、异常向量

0x0000,0000:复位

0x0000,0004:未定义指令

0x0000,0008:软件中断

0x0000,000c:中止(预取指令)

0x0000,0010:中止(数据)

0x0000,0014:保留

0x0000,0018:IRQ

0x0000,001c:FIQ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值