第3章 31ARM处理器工作模式及寄存器介绍

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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
相关文档
最新文档