第2章arm体系结构及编程模型速东北电力大学.pptVIP

第2章arm体系结构及编程模型速东北电力大学.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文档。上传文档
查看更多
第2章arm体系结构及编程模型速东北电力大学

课件 ARM7微处理器系列 ARM7微处理器系列 ARM9微处理器系列 ARM9微处理器系列 ARM9E微处理器系列 ARM9E微处理器系列 ARM10E微处理器系列 ARM10E微处理器系列 SecurCore微处理器系列 SecurCore微处理器系列 StrongARM微处理器系列 Xscale处理器 处理器模式 用户模式和特权模式 模式切换 寄存器组织 ARM微处理器共有37个32位寄存器,其中31个为通用寄存器,6个为状态寄存器。但是这些寄存器不能被同时访问,具体哪些寄存器是可编程访问的,取决微处理器的工作状态及具体的运行模式。但在任何时候,通用寄存器R14~R0、程序计数器PC、一个或两个状态寄存器都是可访问的。 ARM状态下的寄存器组织 ARM状态下的寄存器组织 未分组寄存器R0~R7 分组寄存器R8~R12 分组寄存器R13~R14 堆栈指针—R13 子程序连接寄存器—R14 程序计数器PC(R15) 程序状态寄存器(CPSR/SPSR) 寄存器R16用作CPSR(当前程序状态寄存器),CPSR可在任何运行模式下被访问,它包括条件标志位、中断禁止位、当前处理器模式标志位,以及其他一些相关的控制和状态位。 异常(Exceptions) 当正常的程序执行流程发生暂时的停止时,称之为异常,例如处理一个外部的中断请求。在处理异常之前,当前处理器的状态必须保留,这样当异常处理完成之后,当前程序可以继续执行。处理器允许多个异常同时发生,它们将会按固定的优先级进行处理。 ARM体系结构所支持的异常类型 对异常的响应 异常响应伪代码 从异常返回 FIQ(Fast Interrupt Request) FIQ异常是为了支持数据传输或者通道处理而设计的。 IRQ(Interrupt Request) IRQ异常属于正常的中断请求,可通过对处理器的nIRQ引脚输入低电平产生,IRQ的优先级低于FIQ,当程序执行进入FIQ异常时,IRQ可能被屏蔽。 ABORT(中止) 产生中止异常意味着对存储器的访问失败。ARM微处理器在存储器访问周期内检查是否发生中止异常。 Software Interruupt(软件中断) 软件中断指令(SWI)用于进入管理模式,常用于请求执行特定的管理功能。软件中断处理程序执行以下指令可以从SWI模式返回,无论是在ARM状态还是Thumb状态: MOVS PC , R14_svc 以上指令恢复PC(从R14_svc)和CPSR(从SPSR_svc) 的值,并返回到SWI的下一条指令。 Undefined Instruction(未定义指令) 异常向量表(Exception Vectors) 异常优先级(Exception Priorities) 应用程序中的异常处理 当系统运行时,异常可能会随时发生,为保证在ARM处理器发生异常时不至于处于未知状态,在应用程序的设计中,首先要进行异常处理,采用的方式是在异常向量表中的特定位置放置一条跳转指令,跳转到异常处理程序,当ARM处理器发生异常时,程序计数器PC会被强制设置为对应的异常向量,从而跳转到异常处理程序,当异常处理完成以后,返回到主程序继续执行。 我们需要处理所有的异常,尽管我们可以简单的在某些异常处理程序处放置死循环。 ARM微处理器的存储器格式 ARM体系结构的存储器格式—大端格式 ARM体系结构的存储器格式—小端格式 指令长度及数据类型 非对齐的存储访问操作 非对齐的指令预取操作 非对齐的数据访问操作 ARM微处理器的工作状态 ARM与THUMB 状态切换方法 进入Thumb状态 切换到ARM状态 Thumb状态下的寄存器组织 Thumb状态下的寄存器集是ARM状态下寄存器集的一个子集 Thumb状态下的寄存器组织图 Thumb状态下的寄存器与ARM状态下的寄存器关系 Thumb状态下的寄存器与ARM状态下的寄存器关系图 访问THUMB状态下的高位寄存器(Hi-registers) 在Thumb状态下,高位寄存器R8~R15并不是标准寄存器集的一部分,但可使用汇编语言程序受限制的访问这些寄存器,将其用作快速的暂存器。 程序状态寄存器 程序状态寄存器的每一位的安排 程序状态寄存器的条件码标志 N、Z、C、V均为条件码标志位。它们的内容可被算术或逻辑运算的结果所改变,并且可以决定某条指令是否被执行 影响标志位的指令 程序状态寄存器的控制位 状态寄存器的低8位(I、F、T和M[4:0])称为控制位,发生异常时这些位可以被改变。如果处理器运行特权模式,这些位也可以由程序修改。 处理器运行模式及可以访问的寄存器 课件 THUMB指令是ARM指令的子集 ARM微处理器的工作状态 可以相互调用

文档评论(0)

173****1616 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档