ARM体系结构ARM内部资源ARM内部结构教程.pptVIP

ARM体系结构ARM内部资源ARM内部结构教程.ppt

  1. 1、本文档共108页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第2章 ARM体系结构 硅谷芯微 技术贡献 网址:www.threeway.cc 本章中,将着眼于ARM9内核、处理器状态与模式、内部寄存器、程序状态寄存器、异常、中断及其向量表和存储系统的学习,这是成为一个应用工程师必备的基础。 本章中程序范例除非特别声明,否则处理器均处于ARM状态,执行字方式的ARM指令。 2.1 ARM9TDMI 2.2 ARM的模块、内核和功能框图 2.3 ARM处理器状态 2.4 ARM处理器模式 2.5 ARM内部寄存器 2.6 当前程序状态寄存器 2.7 ARM体系的异常、中断及其向量表 2.8 ARM体系的存储系统 2.9 课后练习 谢谢大家 硅谷芯微 技术贡献 2.8.1 地址空间(2) 一般来说,大多数指令都是通过指令所指定的偏移量与PC值相加并将结果写入PC来计算目标地址。如果用公式: 来确定溢出地址空间,那么该指令依赖于地址的翻转。由此可见,在技术上是不可预测的,因此程序应保证穿过地址0xFFFF FFFF的向前转移和穿过地址0x0000 0000的向后转移的情况都不发生。 另外,正常连续执行的指令实际上是通过“(当前程序执行位置)+4”来确定下一条将要执行的指令。如果该计算溢出了地址空间的顶端,结果同样不可预测。换句话说,程序不应在地址0xFFFF FFFC出 指令之后连续执行位于地址0x0000 0000的指令。 2.8.1 地址空间(3) LDR、LDM、STR和STM指令在增加的地址空间访问一连串的字,每次装载或保存,存储器的地址都会加4。如果计算溢出了地址空间的顶端,结果是不可预测的。换句话说,程序应保证在使用这些指令时不使其溢出地址空间的顶端。 注意:上述原则不只适用于执行的指令,还包括条件代码检测失败的指令。大多数ARM在当前执行的指令之前执行预取指令,如果预取操作溢出了地址空间的顶端,则不会产生执行动作并导致不可预测的结果,除非预取的指令实际上已经执行。 2.8.2 存储器格式 (1) 地址空间要求字地址A的规则如下: ■ 位于地址A的字包含的字节位于地址A、A+1、A+2和A+3; ■ 位于地址A的半字包含的字节位于地址A和A+1; ■ 位于地址A+2的半字包含的字节位于地址A+2和A+3; ■ 位于地址A的字包含的半字位于地址A和A+2。 但是这样并不能完全定义字、半字和字节之间的映射,存储器系统使用下列2种映射机制中的一种。 (1)小端存储器系统 : 在小端格式中,一个字当中最低地址的字节被看作是最低位字节,最高地址的字节被看作是最高位字节,因此存储器系统字节0连接到数据线7~0,如图2.15所示。 2.6.3 保留位 CPSR中的保留位被保留,以便将来使用。当改变CPSR标志和控制位时,请确认没有改变这些保留位。另外,请确保程序不依赖于包含特定值的保留位,因为将来的处理器可能会将这些位设置为1或者0。 只要正常的程序被暂时中止,处理器就进入异常模式。例如,在用户模式下执行程序时,外设向处理器内核发出中断请求,将导致内核从用户模式切换到异常中断模式。 如果同时发生两个或更多异常,那么将按照固定的顺序来处理异常。详见2.7.3小节。 2.7.1 异常入口/出口汇总 如表2.10所列为异常退出以及退出异常处理程序所推荐使用的指令。 表2.10 异常入口/出口指令汇总 注意:“MOVS PC,R14_svc”是指在管理模式下执行“MOVS PC,R14”指令。同样类似的指令还有“MOVS PC,R14_und”、“SUBS PC,R14_abt,#4”等。 2.7.2 异常向量表(1) 如表2.11所列为异常向量地址一览表。其中,I和F表示先前的值。每种处理器操作模式都有一个相关联的中断向量,当一个异常发生时,ARM将改变模式,而程序计数器PC将会被强行指向异常向量。异常向量表从地址0的复位向量开始,然后每4个字节就是一个异常向量。 表2.11 异常向量地址一览表 2.7.2 异常向量表(2) 在异常向量表中有一个保留的异常入口,其位于0x0000 0014地址处。这个位置在早期的ARM结构中会被用到,而在ARM9中则是保留的。以确保软件能与不同的ARM结构兼容。 注意:在发生异常后,为了让ARM内核可以转移到对应的中断服务程序上,必须在异常入口地址(0x00~0x1C)处放置

文档评论(0)

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

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

1亿VIP精品文档

相关文档