(嵌入式系统开发)02第二章 ARM技术 知识概述.pptVIP

(嵌入式系统开发)02第二章 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文档。上传文档
查看更多
(嵌入式系统开发)02第二章 ARM技术 知识概述.ppt

第二章 ARM技术概述 一 ARM体系结构的发展历史 从ARM7开始, 最近10多年来ARM9、ARM10、 Strong-ARM和ARM11等系列不断推出 ARM体系结构的基本版本 核 体系结构 ARM1 V1 ARM2 V2 ARM2aS,ARM3 V2a ARM6,ARM600,ARM610 V3 ARM7,ARM700,ARM710 V3 ARM7TDMI,ARM710T,ARM720T ARM740T V4T Strong ARM,ARM8,ARM810 V4 ARM9TDMI,ARM920T,ARM940T V4T ARM9E-S V5TE ARM10TDMI,ARM1020E V5TE ARM11,ARM1156T2-S,ARM1156T2F-S,ARM1176JZ-S,ARM11JZF-S V6 有6个版本,不同的ARM核对应使用不同版本, 二 ARM体系结构的技术特征 ARM的体系结构采用了若干 RISC处理器设计中的特征 Load/store体系结构. 固定的32位指令 3地址指令格式 使用“Thumb”的新型压缩指令格式,使得应用系统开发可降低系统成本和功耗; Thumb指令集(T变种): 从标准32位ARM指令集抽出来的36条指令格式,重新编成16位的操作码。 精简指令系统计算机(简称RISC) 三 ARM处理器工作状态 ARM处理器核可以工作在以下2种状态 ARM状态: 32位状态,ARM状态下执行字对准的32位ARM指令. Thumb状态 16位,Thumb状态下执行半字对准的16位Thumb指令。在Thumb状态下,程序计数器PC使用位1选择另一个半字。 ARM处理器在开始执行代码时,处于ARM状态;ARM指令集和Thumb指令集都有相应的状态切换命令;ARM和Thumb之间状态的切换不影响处理器的模式或寄存器的内容。 四 ARM处理器工作模式 CPSR(当前程序状态寄存器)的低5位用于定义当前操作模式 , 如图示 异 常 模 式 特权 模式 usr abt und sys 不分组通用寄存器(The unbanked registers):R0~R7 : 在每种状态下都统一的通用寄存器。 分组寄存器(The banked registers):R8~R14 : 其中:R13通常用做堆栈指针SP; R14用作子程序链接寄存器LR; 各模式自己拥有独立的物理寄存器SP(R13_mode)和LR(R14_mode). 程序计数器:R15(PC): ARM处理器采用多级流水线技术,因此保存在R15的程序地址并不是当前指令的地址;一些指令对于R15的用法有一些特殊的要求 程序状态寄存器CPSR: 所有处理器模式下都可以访问。 程序状态保存寄存器SPSR: 当异常出现时,SPSR用于保存CPSR的状态,以便异常返回后恢复异常发生时的工作状态。 2. Thumb状态下的寄存器组织 Thumb状态下的寄存器集是ARM状态下寄存器集的子集。可以直接访问8个通用的寄存器(R0~R7),程序计数器PC、堆栈指针SP、连接寄存器LR和当前状态寄存器CPSP。每一种特权模式都各有一组SP,LR和SPSR。(p68) 六 ARM的异常中断 在ARM体系结构中,异常中断用来处理软件中断、未定义指令陷阱(它不是真正的“意外”事件)及系统复位功能(它在逻辑上发生在程序执行前而不是在程序执行中,尽管处理器在运行中可能再次复位)和外部事件,这些“不正常”事件都被划归“异常”,因为在处理器的控制机制中,它们都使用同样的流程进行异常处理。 1.ARM的异常中断响应过程 将引起异常指令的下一条指令的地址(返回地址)保存到R14 (R14_mode); R14_mode=return link 将CPSR的内容保存到对应的SPSR_ mode 中; SPSR _mode=CPSR 设置当前状态寄存器CPSR中的相应位; CPSR[4:0]=exception mode number CPSR[5]=0 CPSR[7]=1 ifexception_mode=Reset or FIQ then CPSR[6]=1 给程序计数器(PC)强制赋值 PC=exception vector address 2.从异常中断处理程序中返回 所有修改过的用户寄存器必须从处理程序的保护堆栈中恢复(即出栈)。 将SPSR_mode寄存器内容复制到CPSR中,即恢复被中断的程序工作状态; 根据异常类型将PC变回到用户指令流中相应指令处. 最后清除CPSR中的中断禁止标志位I/F

文档评论(0)

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

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

1亿VIP精品文档

相关文档