第3章 31ARM处理器工作模式及寄存器介绍
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
December 25, 2018
Neusoft Institute of Information
1. ARM状态下的寄存器组织
(1) 通用寄存器. (2) 状态寄存器 如图 3-2 所示
December 25, 2018
Neusoft Institute of Information
(1) 通用寄存器.Βιβλιοθήκη Baidu
December 25, 2018
Neusoft Institute of Information
3.1.2 处理器模式
• • • • •
•
•
ARM微处理器支持7种运行模式,分别为: 用户模式(User):正常的程序执行模式。 快速中断模式(Fast Interrupt):用于高速数据传输或通道处理。 外部中断模式(Interrupt):用于通用的中断处理。 管理模式(Supervisor):操作系统使用的保护模式,系统复位 后的缺省模式。 中止模式(Abort):用于虚拟存储或存储器保护。 – 1.指令中止模式(abt):指令预取终止时进入该模式。 – 2.数据访问中止模式(abt):当数据访问终止时进入该模式, 可用于虚拟存储及存储保护。 指令未定义模式(Undefined):支持硬件协处理器指令的软件 仿真 系统模式(System):运行具有特权的操作系统任务。
3.1.1 ARM微处理器的工作状态
从编程的角度看,ARM微处理器的工作状态一般有两种, 并可在两种状态之间切换: •ARM状态,此时处理器执行32位的字对齐的ARM指 令; •Thumb状态,此时处理器执行16位的、半字对齐的 Thumb指令。
December 25, 2018
Neusoft Institute of Information
两种工作状态切换的情况: •在执行Thumb程序段时发生异常中断
在执行Thumb程序段时,处理器处于Thumb状 态,异常中断发生时,处理器自动进入ARM状态。
•程序从中断返回时
如果发生异常中断时,处理器处于Thumb状态, 则中断返回时,处理器会恢复为Thumb状态
•执行BX指令
使用BX指令时,程序可以实现跳转和处理器工作 状态转换。 BX Rn
December 25, 2018
Neusoft Institute of Information
对于R13、R14,每个寄存器对应6个不 同的物理寄存器,其中一个是用户模式与系统 模式共用,另外5个物理寄存器对应于其他5种 不同的运行模式。 采用以下记号来区分不同的物理寄存器: R13_<mode> R14_<mode> 其中,mode为以下几种模式之一:usr、 fiq、irq、svc、abt、und。
December 25, 2018
Neusoft Institute of Information
寄存器R13在ARM指令中常用作堆栈指针, 但这只是一种习惯用法,用户也可使用其他的寄存 器作为堆栈指针。而在Thumb指令集中,某些指令 强制性的要求使用R13作为堆栈指针。 由于处理器的每种运行模式均有自己独立的物 理寄存器R13,在用户应用程序的初始化部分,一 般都要初始化每种模式下的R13,使其指向该运行 模式的栈空间。 这样,当程序的运行进入异常模式时,可以将 需要保护的寄存器放入R13所指向的堆栈,而当程 序从异常模式返回时,则从对应的堆栈中恢复,采 用这种方式可以保证异常发生后程序的正常执行。
Neusoft Institute of Information
3.1.3 寄存器组织
如图 3-1 所示,ARM微处理器共有37个 32位寄存器,其中31个为通用寄存器,6个为 状态寄存器。 这些寄存器不能被同时访问,具体哪些寄 存器是可编程访问的,取决于微处理器的工作 状态及具体的运行模式。 但在任何时候,通用寄存器R0~R14、程 序计数器PC、当前状态寄存器CPSR都是可访 问的。
December 25, 2018
Neusoft Institute of Information
② 分组寄存器R8~R14 对于分组寄存器,它们每一次所访问的物 理寄存器与处理器当前的运行模式有关。 对于R8~R12,每个寄存器对应两个不同 的物理寄存器,当使用fiq模式时,访问寄存器 R8_fiq~R12_fiq;当使用除fiq模式以外的其 他模式时,访问寄存器R8_usr~R12_usr。
December 25, 2018
Neusoft Institute of Information
ARM微处理器的运行模式可以通过软件改变,也 可以通过外部中断或异常处理改变。 大多数的应用程序运行在用户模式下,当处理器 运行在用户模式下时,某些被保护的系统资源是不能 被访问的。 除用户模式以外,其余的所有6种模式称为非用户 模式或特权模式(Privileged Modes); 其中除去用户模式和系统模式以外的5种又称为异 常模式(Exception Modes),常用于处理中断或异常, 以及需要访问受保护的系统资源等情况。
December 25, 2018
Neusoft Institute of Information
处理器启动时的模式转换图
管理模式 (Supervisor)
多种特权模式变化
用户程序的运行模式
复位后的缺 省模式
主要完成各 模式的堆栈 设置,注意 不要进入用 户模式
一般为用户 模式
处理器模式
December 25, 2018
• • • 通用寄存器包括R0~R15,可以分为3类: 未分组寄存器R0~R7 分组寄存器R8~R14 程序计数器PC(R15)
December 25, 2018
Neusoft Institute of Information
① 未分组寄存器R0~R7
在所有的运行模式下,未分组寄存器都指 向同一个物理寄存器,它们未被系统用作特殊 的用途,因此,在中断或异常处理进行运行模 式转换时,由于不同的处理器运行模式均使用 相同的物理寄存器,可能会造成寄存器中数据 的破坏,这一点在进行程序设计时应引起注意。
December 25, 2018
Neusoft Institute of Information
3.1 ARM处理器工作模式及寄存器介绍
3.1.1 ARM微处理器的工作状态 3.1.2 处理器模式 3.1.3 寄存器组织 3.1.4 异常
December 25, 2018
Neusoft Institute of Information