n3_ARM嵌入式微处理器体系结构指令.ppt

  1. 1、本文档共249页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
n3_ARM嵌入式微处理器体系结构指令

ARM7TDMI系统内部结构图 ARM7TDMI处理器部件和主要信号路径的框图如图所示。 它内部由处理器核、用于边界扫描的TAP控制器和在线仿真器ICE组成。双向数据总线D[31:0]被分割成单向输入和输出总线,以便于与外部存储器兼容。 ARM7TDMI 的模块和内核框图 ARM7TDMI功能信号图 3.2.1 ARM和Thumb状态 ARM体系结构在V4T及其以上版本定义了称为Thumb指令集的16位指令集。Thumb指令集的功能是32位ARM指令集的功能子集。 工作在Thumb状态下的处理器译码和执行Thumb指令集。工作在ARM状态下的处理器译码和执行ARM指令集。必须确保处理器不接受对当前状态来说为错误指令集的指令。每个指令集都包括切换处理器状态的指令。处理器初始状态默认是ARM状态 注意:两个状态之间的切换并不影响处理器模式或寄存器内容。 THUMB指令集 ( ‘T’) THUMB 指令集: 32位ARM指令集的子集,按16位指令重新编码 代码尺寸小 ( up to 35 % compression) 简化设计 THUMB指令的特点: 1、THUMB代码所需空间为ARM代码的70%; 2、THUMB代码所使用的指令数比ARM代码多40%; 3、用32位存储器,ARM代码比THUMB代码快40%; 4、用16位存储器,THUMB代码比ARM代码快45%; 5、使用THUMB代码,外部存储器功耗比ARM代码少30% 处理器状态切换:使用BX指令将ARM7TDMI内核的操作状态在ARM状态和Thumb状态之间进行切换(详见第4章) ,程序如下所示。 3.2.2 ARM处理器模式 除了用户模式以外,其他6种处理器模式可以称为特权模式,在这些模式下,程序可以访问所有的系统资源,也可以任意地进行处理器模式的切换。其中除了系统模式外的其他5种特权模式又称为异常模式。 3.2.2 ARM处理器模式 处理器7种模式 3.2.2 ARM处理器模式 特权模式 3.2.2 ARM处理器模式 异常模式 3.2.2 ARM处理器模式 用户和系统模式 ARM寄存器介绍 ARM状态各模式下的寄存器 一般的通用寄存器 一般的通用寄存器 一般的通用寄存器 一般的通用寄存器 一般的通用寄存器 堆栈指针寄存器R13(SP) 链接寄存器R14(LR) 链接寄存器R14(LR) R14(LR)寄存器与子程序调用 链接寄存器R14(LR) 异常发生时,程序要跳转至异常服务程序,对返回地址的处理与子程序调用类似,都是由硬件完成的。区别在于有些异常有一个小常量的偏移。 当发生异常嵌套时,这些异常之间可能会发生冲突。 例如:如果用户在用户模式下执行程序时发生了IRQ中断,用户模式寄存器不会被破坏。但是如果允许在IRQ模式下的中断处理程序重新使能IRQ中断,并且发生了嵌套的IRQ中断时,外部中断处理程序保存在R14_irq中的任何值都将被嵌套中断的返回地址所覆盖。 链接寄存器R14(LR) R14寄存器注意要点 链接寄存器R14(LR) R14寄存器注意要点 程序计数器R15(PC) 程序计数器R15(PC) 读R15的限制 正常操作时,从R15读取的值是处理器正在取指的地址,即当前正在执行指令的地址加上8个字节(两条ARM指令的长度)。由于ARM指令总是以字为单位,所以R15寄存器的最低两位总是为0。 程序计数器R15(PC) 读R15的限制 当使用STR或STM指令保存R15时,会有一个例外。这些指令可能将当前指令地址加8字节或加12字节保存(可能还有其它数字)。偏移量是8还是12取决于具体的ARM芯片,但是对于一个确定的芯片,这个值是一个常量。 所以最好避免使用STR和STM指令来保存R15,如果很难做到,那么应当在程序中计算出该芯片的偏移量。 程序计数器R15(PC) 写R15的限制 正常操作时,写入R15 的值被当作一个指令地址,程序从这个地址处继续执行(相当于执行一次无条件跳转)。 由于ARM指令以字节为边界,因此写入R15的值最低两位通常为0b00。具体的规则取决于内核结构的版本: 在ARM结构V3版及以下版本中,写入R15的值的最低两位被忽略,因此跳转地址由指令的实际目标地址(写入R15的值)和0xFFFFFFFC相与得到; 在ARM结构V4版及以上版本中,写入R15的值的最低两位为0,如果不是,结果将不可预测。 程序状态寄存器CPSR 程序状态寄存器(PSR) CPSR(当前程序状态寄存器)可以在任何处理器模式下被访问。每一种模式下都有一个专用的物理状态寄存器,称为SPSR(备份程序状态寄存器)。当特定的异常中断发生时,这个寄存器用于存放当前程序状态寄存器的内容。在异常退出时,可以用SPSR中保存的值来恢复CP

文档评论(0)

yaocen + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档