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

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

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第3章31arm处理器工作模式及寄存器介绍

3.1 ARM处理器工作模式及寄存器介绍 3.1.1 ARM微处理器的工作状态 3.1.2 处理器模式 3.1.3 寄存器组织 3.1.4 异常 3.1.1 ARM微处理器的工作状态 从编程的角度看,ARM微处理器的工作状态一般有两种,并可在两种状态之间切换: ARM状态,此时处理器执行32位的字对齐的ARM指令; Thumb状态,此时处理器执行16位的、半字对齐的Thumb指令。 两种工作状态切换的情况: 在执行Thumb程序段时发生异常中断 在执行Thumb程序段时,处理器处于Thumb状态,异常中断发生时,处理器自动进入ARM状态。 程序从中断返回时 如果发生异常中断时,处理器处于Thumb状态,则中断返回时,处理器会恢复为Thumb状态 执行BX指令 使用BX指令时,程序可以实现跳转和处理器工作状态转换。 BX Rn 3.1.2 处理器模式 ARM微处理器支持7种运行模式,分别为: 用户模式(User):正常的程序执行模式。 快速中断模式(Fast Interrupt):用于高速数据传输或通道处理。 外部中断模式(Interrupt):用于通用的中断处理。 管理模式(Supervisor):操作系统使用的保护模式,系统复位后的缺省模式。 中止模式(Abort):用于虚拟存储或存储器保护。 1.指令中止模式(abt):指令预取终止时进入该模式。 2.数据访问中止模式(abt):当数据访问终止时进入该模式,可用于虚拟存储及存储保护。 指令未定义模式(Undefined):支持硬件协处理器指令的软件仿真 系统模式(System):运行具有特权的操作系统任务。 ARM微处理器的运行模式可以通过软件改变,也可以通过外部中断或异常处理改变。 大多数的应用程序运行在用户模式下,当处理器运行在用户模式下时,某些被保护的系统资源是不能被访问的。 除用户模式以外,其余的所有6种模式称为非用户模式或特权模式(Privileged Modes); 其中除去用户模式和系统模式以外的5种又称为异常模式(Exception Modes),常用于处理中断或异常,以及需要访问受保护的系统资源等情况。 3.1.3 寄存器组织 如图 3-1 所示,ARM微处理器共有37个32位寄存器,其中31个为通用寄存器,6个为状态寄存器。 这些寄存器不能被同时访问,具体哪些寄存器是可编程访问的,取决于微处理器的工作状态及具体的运行模式。 但在任何时候,通用寄存器R0~R14、程序计数器PC、当前状态寄存器CPSR都是可访问的。 1. ARM状态下的寄存器组织 (1) 通用寄存器. (2) 状态寄存器 如图 3-2 所示 (1) 通用寄存器. 通用寄存器包括R0~R15,可以分为3类: 未分组寄存器R0~R7 分组寄存器R8~R14 程序计数器PC(R15) ① 未分组寄存器R0~R7 在所有的运行模式下,未分组寄存器都指向同一个物理寄存器,它们未被系统用作特殊的用途,因此,在中断或异常处理进行运行模式转换时,由于不同的处理器运行模式均使用相同的物理寄存器,可能会造成寄存器中数据的破坏,这一点在进行程序设计时应引起注意。 ② 分组寄存器R8~R14 对于分组寄存器,它们每一次所访问的物理寄存器与处理器当前的运行模式有关。 对于R8~R12,每个寄存器对应两个不同的物理寄存器,当使用fiq模式时,访问寄存器R8_fiq~R12_fiq;当使用除fiq模式以外的其他模式时,访问寄存器R8_usr~R12_usr。 对于R13、R14,每个寄存器对应6个不同的物理寄存器,其中一个是用户模式与系统模式共用,另外5个物理寄存器对应于其他5种不同的运行模式。 采用以下记号来区分不同的物理寄存器: R13_mode R14_mode 其中,mode为以下几种模式之一:usr、fiq、irq、svc、abt、und。 寄存器R13在ARM指令中常用作堆栈指针,但这只是一种习惯用法,用户也可使用其他的寄存器作为堆栈指针。而在Thumb指令集中,某些指令强制性的要求使用R13作为堆栈指针。 由于处理器的每种运行模式均有自己独立的物理寄存器R13,在用户应用程序的初始化部分,一般都要初始化每种模式下的R13,使其指向该运行模式的栈空间。 这样,当程序的运行进入异常模式时,可以将需要保护的寄存器放入R13所指向的堆栈,而当程序从异常模式返回时,则从对应的堆栈中恢复,采用这种方式可以保证异常发生后程序的正常执行。 R14也称做子程序连接寄存器(Subroutine Link Register)或连接寄存器LR

文档评论(0)

sandaolingcrh + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档