嵌入式2arm[中小学堂]_第1页
嵌入式2arm[中小学堂]_第2页
嵌入式2arm[中小学堂]_第3页
嵌入式2arm[中小学堂]_第4页
嵌入式2arm[中小学堂]_第5页
已阅读5页,还剩64页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、ARM 嵌入式系统嵌入式系统 第第2章章 ARM体系结构体系结构 1课堂特制 ARM概述 uARMAdvanced RISC Machines ARM 公司从事基于公司从事基于RISC芯片技术开发的公司,是芯片技术开发的公司,是IP供应商。供应商。 该企业设计了大量高性能、廉价、耗能低的RISC (精简指令集) 处理器。公司的特点是只设计芯片,而不生产。它将技术授权给 世界上许多著名的半导体、软件和OEM厂商,并提供服务。 uIP(Intellectual Property)知识产权。)知识产权。 uFabless (无生产线)无生产线) uRISC (Reduced Instruction

2、Set Computer) ARM:RISC处理器处理器IP核核Fabless 2课堂特制 nARM公司成立于1981年,最初与英国广播公司合作为英国教育 界设计小型机,当时采用的是美国的6502芯片。取得成功后, 他们开始设计自己的芯片,受当时美国加洲大学伯克利分校提 出的RISC思想的影响,他们设计的芯片也采用RISC体系结构, 并命名为“Acorn RISC Machine”。 nARM公司的第一款芯片ARM1在1985年被设计出来,次年又设 计了真正实用的ARM2。ARM2具有32位数据总线和24位地址总 线,带有16个寄存器。ARM2可能是当时最简化的32位微处理 器,上面仅有300

3、00个晶体管(4年前Motorola公司的68000则 有68000个晶体管)。这种精简的结构使ARM2具有优异的低功 耗特性,而性能则超过了同期Intel公司的286(134K个晶体 管)。 n1990年ARM公司另外组建了一个名为“Advanced RISC Machines”的公司,专门从事ARM系列微处理器的开发。1998 年ARM公司在伦敦证券交易所和NASDAQ上市。 3课堂特制 ARM Powered Products Lexmark Z52 Color Jetprinter Samsung ML5100A JVC Pixstar GC-X1 HP Jornado 820 Psi

4、on Revo Plus HP CapShare Sony MZ-R90 MiniDisc Nokia 8810Nokia Mediamaster Nintendo Gameboy Advance Ericsson R380 Alba Bush Internet TV 3Com 10/100 PCI NIC Iomega HipZip Diamond Multimedia Rio 600 4课堂特制 ARM微处理器的特点 u体积小、低功耗、低成本、高性能体积小、低功耗、低成本、高性能 u支持支持Thumb(16位)位)/ARM(32位)双指令集位)双指令集 u大量使用寄存器,指令执行速度更快大

5、量使用寄存器,指令执行速度更快 u大多数数据操作都在寄存器中完成大多数数据操作都在寄存器中完成 u寻址方式灵活简单,执行效率高寻址方式灵活简单,执行效率高 u指令长度固定指令长度固定 5课堂特制 2.1 RISC技术和流水线技术技术和流水线技术 n2.2.1 计算机体系结构 1.冯诺依曼体系结构 冯诺依曼机:将数据和指令都存储在 存储器中的计算机。 计算系统由一个中央处理单元(CPU) 和一个存储器组成。存储器拥有数据和指 令,并且可以根据所给的地址对它进行读 或写。 6课堂特制 2.2.1 计算机体系结构(2) 2. 哈佛体系结构 n为数据和程序提供了各自独立的存 储器。 n程序计数器只指向

6、程序存储器而不 指向数据存储器 n两组数据线允许同时访问指令和数 据 (见图2.1) 7课堂特制 2.1.2 RISC技术技术 RISC体系结构特点:体系结构特点: u在进行指令系统设计时,只选择使用频率很高的指令,在此基础上增加在进行指令系统设计时,只选择使用频率很高的指令,在此基础上增加 少量能有效支持操作系统和高级语言实现以及其他功能的指令,使指令少量能有效支持操作系统和高级语言实现以及其他功能的指令,使指令 条数大大减少条数大大减少 u采用固定长度的指令格式,指令归整、简单、基本寻址方式有采用固定长度的指令格式,指令归整、简单、基本寻址方式有23种种 u使用单周期指令,便于流水线操作执

7、行使用单周期指令,便于流水线操作执行 u大量使用寄存器,数据处理指令只对寄存器进行操作,只有加载大量使用寄存器,数据处理指令只对寄存器进行操作,只有加载/存储指存储指 令可以访问存储器,以提高指令的执行效率令可以访问存储器,以提高指令的执行效率 u为提高指令执行速度,大部分指令直接采用硬件电路实现,少量采用微为提高指令执行速度,大部分指令直接采用硬件电路实现,少量采用微 码实现码实现 8课堂特制 RISC体系结构特点体系结构特点 ARM体系结构还采用了一些特别的技术,在保证高性能的前体系结构还采用了一些特别的技术,在保证高性能的前 提下尽量缩小芯片的面积,并降低功耗。提下尽量缩小芯片的面积,并

8、降低功耗。 u大多数的指令都可根据前面的执行结果决定是否被执行,从大多数的指令都可根据前面的执行结果决定是否被执行,从 而提高指令的执行效率而提高指令的执行效率 u可用加载可用加载/存储指令批量传输数据,以提高数据的传输效率存储指令批量传输数据,以提高数据的传输效率 u可在一条数据处理指令中同时完成逻辑处理和移位处理可在一条数据处理指令中同时完成逻辑处理和移位处理 u在循环处理中使用地址的自动增减来提高运行效率在循环处理中使用地址的自动增减来提高运行效率 9课堂特制 取指令取指令 3执行指令执行指令 3 2.1.3 流水线技术流水线技术 2. 指令的二级流水指令的二级流水 1. 指令的串行执行

9、指令的串行执行 取指令取指令 取指令部件取指令部件 完成完成总有一个部件总有一个部件 空闲空闲 指令预取指令预取 若若 取指取指 和和 执行执行 阶段时间上阶段时间上 完全重叠完全重叠 指令周期指令周期 减半减半 速度提高速度提高 1 倍倍 执行指令执行指令 执行指令部件执行指令部件 完成完成 取指令取指令 1执行执行指令指令 1 取取指令指令 2执行执行指令指令 2 取取指令指令 3执行指令执行指令 3 取指令取指令 2执行指令执行指令 2取指令取指令 1执行指令执行指令 1 10课堂特制 流水线技术流水线技术(2) 取指取指 译码译码 执行执行 从存储器取指从存储器取指 指令译码指令译码

10、从寄存器组中读寄存器,移位和从寄存器组中读寄存器,移位和ALU 操作,将寄存器写回到寄存器组操作,将寄存器写回到寄存器组 取指取指译码译码执行执行 取指取指译码译码执行执行 取指取指译码译码执行执行 t 指令指令 1 2 3 指令流水线功能段划分指令流水线功能段划分 ARM单周期指令单周期指令3级流水线操作级流水线操作 11课堂特制 流水线技术流水线技术(3) nARM7系列微处理器采用3级流水线级流水线结构结构 (取指、译码、执行)(取指、译码、执行) nARM9系列微处理器采用5级流水线结构级流水线结构 (取指、译码、执行、存储器访问、回写)(取指、译码、执行、存储器访问、回写) nARM

11、10系列微处理器采用6级流水线结构级流水线结构 nPXA270微处理器采用7级流水线结构级流水线结构 12课堂特制 2.2 ARM体系结构简介 nARM命名规则:ARM xyzTDMIEJFS x:系列 y:存储管理/保护单元 z:Cache 13课堂特制 n2.2.1 ARM体系结构的演变 (V1、V2、V3、V4、V5、V6、cortex) V4T版本:ARM7TDMI、ARM922T V5版本:ARM946E 、 ARM926EJ V6版本:ARM11系列 n2.2.2 ARM体系结构的特征 14课堂特制 n2.2.3 ARM体系的变种 T变种: 16位指令集 M变种:长乘法指令 E变种

12、:增强型DSP指令 J变种:JAVA加速器 SIMD变种:媒体功能扩展 15课堂特制 n2.2.4 ARM系列 ARM7 ARM9 ARM9E ARM10E ARM11 strongARM、XScale 16课堂特制 2.2.5 ARM存储数据类型 字(字(Word) 在在ARM体系结构中,字的长度为体系结构中,字的长度为32位位 半字(半字(Half-Word) 在在ARM体系结构中,半字的长度为体系结构中,半字的长度为16位位 字节(字节(Byte) 在在ARM体系结构中,字节的长度为体系结构中,字节的长度为8位。位。 字对齐:四字节对齐字对齐:四字节对齐 半字对齐:两字节对齐半字对齐:两

13、字节对齐 17课堂特制 练习: 1.哈佛体系结构和冯哈佛体系结构和冯诺依曼体系结构有何不同?诺依曼体系结构有何不同? n冯诺依曼机:将数据和指令都存储在存储器中 的计算机。计算系统由一个中央处理单元(CPU) 和一个存储器组成。存储器拥有数据和指令,并 且可以根据所给的地址对它进行读或写。 n哈佛机:为数据和程序提供了各自独立的存储器。 程序计数器只指向程序存储器而不指向数据存储器 18课堂特制 练习: n2. ARM7TDMI中的中的T、D、M、I的含义是什么?的含义是什么? ARM7TDMI采用几级流水线?使用何种体系结构?采用几级流水线?使用何种体系结构? n高密度 16 位的Thumb

14、指令机扩展(带T 后缀的) 支持片上调试(带D 后缀的)、 64 位乘法指令(带M 后缀的)、 嵌入式ICE,支持片上断点和调试点(带I 后缀的) n三级流水线(取指 译码 执行);使用了冯诺依曼 (Von Neumann )结构,指令和数据共用一条32 位 总线。 19课堂特制 2.3 ARM微处理器工作状态微处理器工作状态 2.3.1 两种两种工作工作状态:状态: uARM状态状态:处理器执行处理器执行32位位的的字对齐字对齐的的ARM指令指令 uThumb状态状态:处理器执行处理器执行16位位的、的、半字对齐半字对齐的的Thumb指令指令 处理器工作状态的转变并不影响处理器的工作模式和相

15、应处理器工作状态的转变并不影响处理器的工作模式和相应 寄存器中的内容。寄存器中的内容。 20课堂特制 ARM微处理器的工作状态微处理器的工作状态(2) 2.3.2 状态切换:状态切换: BX 指令的条件码。忽略时无条件执行。指令的条件码。忽略时无条件执行。 寄存器中为跳转的目标地址,当寄存器中为跳转的目标地址,当寄存器的寄存器的 bit0为为0时,目标地址处的指令为时,目标地址处的指令为ARM指令;当指令;当寄寄 存器的存器的bit0为为1时,目标地址处的指令为时,目标地址处的指令为Thumb指令。指令。 ARM微处理器在复位或上电时处于微处理器在复位或上电时处于ARM状态,发生异常时处状态,

16、发生异常时处 于于ARM状态。状态。 21课堂特制 2.4 ARM微处理器工作模式微处理器工作模式 7种处理器模式:种处理器模式: u用户模式(用户模式(usr):):用户应用程序用户应用程序 u系统模式(系统模式(sys):):特权模式特权模式 u快速中断模式(快速中断模式(fiq):用于快速数据传输):用于快速数据传输 u中断模式(中断模式(irq):):通用的中断处理通用的中断处理 u管理模式(管理模式(svc):):操作系统使用的保护模式操作系统使用的保护模式 u终止模式终止模式(abt):数据访问中止或指令预取中止数据访问中止或指令预取中止 u未定义指令模式(未定义指令模式(und)

17、:未定义的指令执行时):未定义的指令执行时 管理模式(管理模式(svc)是系统复位后的默认模式)是系统复位后的默认模式 特权模式(特权模式(Privileged Modes) 异常模式(异常模式(Exception Modes) 异常模式异常模式 特权模式特权模式 22课堂特制 ARM微处理器的处理器模式(微处理器的处理器模式(2) ARM微处理器的运行模式可以通过软件改变(特权模式),微处理器的运行模式可以通过软件改变(特权模式), 也可以通过外部中断或异常处理改变。也可以通过外部中断或异常处理改变。 大多数的应用程序运行在大多数的应用程序运行在用户模式用户模式下,当处理器运行在用下,当处理

18、器运行在用 户模式下时,某些被保护的系统资源是不能被访问的。也户模式下时,某些被保护的系统资源是不能被访问的。也 不能改变模式。除非异常发生。不能改变模式。除非异常发生。 特权模式可以自由地访问系统资源和改变模式。特权模式可以自由地访问系统资源和改变模式。 23课堂特制 练习 n1、ARM处理器模式和处理器模式和ARM处理器状态有何区别?处理器状态有何区别? n处理器模式指的是处理器在执行程序时在不同时刻所处 的不同状态,处理器状态指的是处理器当前所执行的指 令集。 n2、分别列举、分别列举ARM的处理器模式和状态。的处理器模式和状态。 n 状态:状态: ARM 状态:32 位,这种状态下执行

19、的是字方式的ARM 指令 Thumb 状态:16 位,这种状态下执行半字方式的 Thumb 指令 n 模式:模式: 用户模式、快中断模式、中断模式、管理模式、 中止模 式、未定义模式和系统模式。 24课堂特制 2.5 ARM处理器寄存器组织处理器寄存器组织 37个个32位的寄存器:位的寄存器: u31个通用寄存器个通用寄存器 未分组寄存器未分组寄存器(Unbanked Register):):R0R7 分组寄存器分组寄存器(Banked Register):):R8R14 程序计数器程序计数器R15(PC指针)指针) u6个状态寄存器,用以标识个状态寄存器,用以标识CPU的工作状态及程序的运行

20、状态,目前的工作状态及程序的运行状态,目前 只使用了其中的一部分只使用了其中的一部分 u在每一种处理器模式下均有一组相应的寄存器与之对应。在所有的在每一种处理器模式下均有一组相应的寄存器与之对应。在所有的 寄存器中,有些是在寄存器中,有些是在7种处理器模式下共用的同一个物理寄存器,而种处理器模式下共用的同一个物理寄存器,而 有些寄存器则是在不同的处理器模式下有不同的物理寄存器有些寄存器则是在不同的处理器模式下有不同的物理寄存器 25课堂特制 2.5.1 ARM状态下的寄存器组织状态下的寄存器组织 u未分组寄存器(未分组寄存器(Unbanked Register)R0R7 同一个寄存器名,在同一

21、个寄存器名,在ARM微处理器内部只有一个独立的物微处理器内部只有一个独立的物 理寄存器与之对应。理寄存器与之对应。 在所有的运行模式下,未分组寄存器都指向同一个物理寄在所有的运行模式下,未分组寄存器都指向同一个物理寄 存器,他们未被系统用作特殊的用途。存器,他们未被系统用作特殊的用途。 在中断或异常处理进行运行模式转换时,由于不同的处理在中断或异常处理进行运行模式转换时,由于不同的处理 器运行模式均使用相同的物理寄存器,可能会造成寄存器器运行模式均使用相同的物理寄存器,可能会造成寄存器 中数据的破坏,这一点在进行程序设计时应引起注意。中数据的破坏,这一点在进行程序设计时应引起注意。 26课堂特

22、制 2.5.1 ARM状态下的寄存器组织(状态下的寄存器组织(2) u分组寄存器分组寄存器(Banked Register)R8R14 同一个寄存器名,在同一个寄存器名,在ARM微处理器内部存在多个独立的物理寄存器微处理器内部存在多个独立的物理寄存器 对于分组寄存器,他们每一次所访问的物理寄存器与处理器当前的运对于分组寄存器,他们每一次所访问的物理寄存器与处理器当前的运 行模式有关。行模式有关。 R8R12:对应两个不同的物理寄存器:对应两个不同的物理寄存器 fiq模式模式(快速中断)快速中断): R8_fiqR12_fiq 非非fiq模式模式: R8_usrR12_usr R13、R14:对

23、应:对应6个不同的物理寄存器个不同的物理寄存器 用户模式与系统模式共用一个用户模式与系统模式共用一个 另外另外5个物理寄存器对应于其他个物理寄存器对应于其他5种不同的运行模式种不同的运行模式 Rn_ mode:usr、fiq、irq、svc、abt、und 27课堂特制 未分组未分组 寄存器寄存器 分组寄分组寄 存器存器 程序计数器程序计数器 PC 异常模式异常模式 System 特权模式特权模式 28课堂特制 2.5.1 ARM状态下的寄存器组织(状态下的寄存器组织(3) u寄存器寄存器R13 寄存器寄存器R13在在ARM指令中常用作指令中常用作堆栈指针堆栈指针。 在用户应用程序的初始化部分

24、,一般都要初始化每种模式在用户应用程序的初始化部分,一般都要初始化每种模式 下的下的R13 (R13_svc、R13_irq、R13_fiq、R13_abt 和和R13_und ),使其指向该运行模式的栈空间。),使其指向该运行模式的栈空间。 当程序的运行进入当程序的运行进入异常模式异常模式时,可以时,可以将需要保护的寄存器将需要保护的寄存器 放入放入R13所指向的堆栈所指向的堆栈,而当程序从异常模式,而当程序从异常模式返回时,则返回时,则 从对应的堆栈中恢复从对应的堆栈中恢复,采用这种方式可以保证异常发生后,采用这种方式可以保证异常发生后 程序的正常执行。程序的正常执行。 29课堂特制 2.

25、5.1 ARM状态下的寄存器组织(状态下的寄存器组织(4) u寄存器寄存器R14 子程序连接寄存器(子程序连接寄存器(Subroutine Link Register)或)或 链接寄存器链接寄存器LR。 子程序调用:子程序调用: 当执行当执行BL(BLX)子程序调用指令时,)子程序调用指令时,R14中得到中得到R15(程(程 序计数器序计数器PC)的备份。)的备份。 中断或异常:中断或异常: 对应的分组寄存器对应的分组寄存器R14_svc、R14_irq、R14_fiq、 R14_abt和和R14_und用来保存用来保存R15的返回值。的返回值。 30课堂特制 2.5.1 ARM状态下的寄存器

26、组织(状态下的寄存器组织(5) u寄存器寄存器R15 程序计数器程序计数器PC。 寄存器寄存器R15用作程序计数器(用作程序计数器(PC)。)。在在ARM状态下,位状态下,位1:0为为0,位,位 31:2用于保存用于保存PC;在在Thumb状态下,位状态下,位0为为0,位,位31:1用于保用于保 存存PC。 由于由于ARM体系结构采用了多级流水线技术,对于体系结构采用了多级流水线技术,对于ARM指令集而言,指令集而言,PC总总 是指向当前指令的下两条指令的地址,即是指向当前指令的下两条指令的地址,即PC的值为当前指令的地址值的值为当前指令的地址值 加加8个字节。个字节。 31课堂特制 2.5.

27、1 ARM状态下的寄存器组织(状态下的寄存器组织(6) u当前程序状态寄存器当前程序状态寄存器 CPSR CPSR(Current Program Status Register) CPSR可在任何运行模式下被访问,它包括条件标志位、中断禁止位、当前处可在任何运行模式下被访问,它包括条件标志位、中断禁止位、当前处 理器模式标志位,以及其他一些相关的控制和状态位。理器模式标志位,以及其他一些相关的控制和状态位。 备份的程序状态寄存器备份的程序状态寄存器SPSR(Saved Program Status Register) , 当异常发生时,当异常发生时,SPSR用于保存用于保存CPSR的当前值,

28、从异常退出时则可由的当前值,从异常退出时则可由SPSR来来 恢复恢复CPSR。 用户模式和系统模式不属于异常模式,他们没有用户模式和系统模式不属于异常模式,他们没有SPSR,当在这两种模式下访,当在这两种模式下访 问问SPSR,结果是未知的。,结果是未知的。 32课堂特制 2.5.1 ARM状态下的寄存器组织(状态下的寄存器组织(7) CPSR 33课堂特制 2.5.1 ARM状态下的寄存器组织(状态下的寄存器组织(8) u条件码标志(条件码标志(Condition Code Flags) N、Z、C、V:条件码标志位。可被算术或逻辑运算的结条件码标志位。可被算术或逻辑运算的结 果所改变,并且

29、可以决定某条指令是否被执行。果所改变,并且可以决定某条指令是否被执行。 在在ARM状态下,绝大多数的指令都是有条件执行的。状态下,绝大多数的指令都是有条件执行的。 在在Thumb状态下,仅有分支指令是有条件执行的。状态下,仅有分支指令是有条件执行的。 34课堂特制 2.5.1 ARM状态下的寄存器组织(状态下的寄存器组织(9) 在ARM v5及以上版本的E系列处理器中,用Q标志位指示增强的DSP运算 指令是否发生了溢出。在其他版本的处理器中,Q标志位无定义。 Q 对于加/减法运算指令,当操作数和运算结果为二进制的补码表示的带符 号数时,V=1表示符号位溢出。 对于其他的非加/减运算指令,C的值

30、通常不改变。 V 加法运算(包括比较指令CMN):当运算结果产生了进位时(无符号数 溢出),C=1,否则C=0。 减法运算(包括比较指令CMP):当运算时产生了借位(无符号数溢 出),C=0,否则C=1。 对于包含移位操作的非加/减运算指令,C为移出值的最后一位。 对于其他的非加/减运算指令,C的值通常不改变。 C Z=1 表示运算的结果为零;Z=0表示运算的结果为非零。Z N=1 表示运算的结果为负数;N=0 表示运算的结果为正数或零。N 含 义标志位 35课堂特制 2.5.1 ARM状态下的寄存器组织(状态下的寄存器组织(10) u控制位控制位 CPSR的低的低8位(包括位(包括I、F、T

31、和和M4:0)称为控制)称为控制 位,位,当发生异常时这些位可以被改变。如果处理器当发生异常时这些位可以被改变。如果处理器 处于特权模式,这些位也可以由程序修改。处于特权模式,这些位也可以由程序修改。 中断禁止位中断禁止位I、F: I=1 禁止禁止IRQ中断(外部中断)中断(外部中断) F=1 禁止禁止FIQ中断(快速中断)中断(快速中断) T标志位:标志位: T=1Thumb状态状态 T=0 ARM状态状态 36课堂特制 2.5.1 ARM状态下的寄存器组织(状态下的寄存器组织(11) M4:0运行模式位:这些位决定了处理器的运行模式。运行模式位:这些位决定了处理器的运行模式。 M4:0处理

32、器模式可访问的寄存器 0b10000用户模式PC,CPSR,R0-R14 0b10001FIQ模式PC,CPSR, SPSR_fiq,R14_fiq-R8_fiq, R7R0 0b10010IRQ模式PC,CPSR, SPSR_irq,R14_irq,R13_irq,R12R0 0b10011管理模式PC,CPSR, SPSR_svc,R14_svc,R13_svc,R12R0, 0b10111中止模式PC,CPSR, SPSR_abt,R14_abt,R13_abt, R12R0, 0b11011未定义模式PC,CPSR, SPSR_und,R14_und,R13_und, R12R0, 0

33、b11111系统模式PC,CPSR, R14R0 37课堂特制 2.5.1 ARM状态下的寄存器组织(状态下的寄存器组织(12) u保留位保留位 CPSR中的其余位为保留位,当改变中的其余位为保留位,当改变CPSR中中 的条件码标志位或者控制位时,保留位不要的条件码标志位或者控制位时,保留位不要 被改变,在程序中也不要使用保留位来存储被改变,在程序中也不要使用保留位来存储 数据。保留位将用于数据。保留位将用于ARM版本的扩展。版本的扩展。 38课堂特制 2.5.2 Thumb 状态下的寄存器组织 nR0-R7与ARM状态一致 nCPSR、SPSR与ARM状态一致 nSP映射到R13 nLR映射

34、到R14 nPC映射到R15 39课堂特制 练习 n(1)ARM模式中有多少通用寄存器?模式中有多少通用寄存器? n 31个通用寄存器 n(2)CPRS作用是什么?作用是什么? n 寄存器CPSR为当前程序状态寄存器,可以在任何工作模式下 被访问。 n状态标志:5个,N符号位,Z零标志,C进位,V溢出位,Q DSP 运算溢出位。 n控制标志:4个,I中断允许,F快速中断允许,T状态选择, M4:0 处理器工作模式 n(3)Z位的作用是什么?位的作用是什么? n Z=1 表示运算的结果为零;Z=0表示运算的结果不为零; n(4)程序计数器保存在何处?)程序计数器保存在何处? n寄存器R15为程序

35、计数器(PC),它指向正在取指的地址。 40课堂特制 练习 n5、PC和和LR分别使用哪个寄存器?分别使用哪个寄存器? n PC使用R15寄存器,LR使用R14寄存器 n6、R13寄存器的通用功能是什么?寄存器的通用功能是什么? n 堆栈 41课堂特制 2.6 ARM异常异常 nARM程序执行流程程序执行流程 顺序执行:执行ARM指令PC+4, 执行Thumb指令PC+2 跳转:PC=目标地址 异常中断:PC=异常中断处理程序入口 42课堂特制 2.6 ARM微处理器的异常状态微处理器的异常状态(1) u异常(异常(Exception) 当正常的程序执行流程发生改变时,称之为异常。当正常的程序

36、执行流程发生改变时,称之为异常。 u异常类型异常类型(7种)种)运行模式运行模式 复位复位svc(管理模式)(管理模式) 未定义指令未定义指令und(未定义指令中止)(未定义指令中止) 软件中断软件中断svc(管理模式)(管理模式) 指令预取中止指令预取中止abt(数据访问中止模式)(数据访问中止模式) 数据中止数据中止abt(数据访问中止模式)(数据访问中止模式) IRQ(外部中断请求)(外部中断请求)irq(外部中断模式)(外部中断模式) FIQ(快速中断请求)(快速中断请求)fiq(快速中断模式)(快速中断模式) 43课堂特制 ARM微处理器的异常状态(2) 当处理器的快速中断请求引脚有

37、效,且CPSR中的F位为0时,产生 FIQ异常。 FIQ(快速中断请求) 当处理器的外部中断请求引脚有效,且CPSR中的I位为0时,产生 IRQ异常。系统的外设可通过该异常请求中断服务。 IRQ(外部中断请求) 若处理器数据访问指令的地址不存在,或该地址不允许当前指令 访问时,产生数据中止异常。 数据中止 若处理器预取指令的地址不存在,或该地址不允许当前指令访问, 存储器会向处理器发出中止信号,但当预取的指令被执行时,才 会产生指令预取中止异常。 指令预取中止 该异常由执行SWI指令产生,可用于用户模式下的程序调用特权操 作指令。可使用该异常机制实现系统功能调用。 软件中断 当ARM处理器或协

38、处理器遇到不能处理的指令时,产生未定义指令 异常。可使用该异常机制进行软件仿真。 未定义指令 当处理器的复位电平有效时,产生复位异常,程序跳转到复位异 常处理程序处执行。 复位 具体含义异常类型 44课堂特制 2.6.2 ARM异常处理 u对异常的响应对异常的响应 ARM微处理器对异常的响应过程用伪码可以描述为:微处理器对异常的响应过程用伪码可以描述为: (1)R14_ = Return Link (2)SPSR_ = CPSR (3)CPSR4:0 = Exception Mode Number CPSR5 = 0/*在在ARM状态执行状态执行*/ If = Reset or FIQ the

39、n CPSR6 = 1/*禁止快速中断禁止快速中断*/ /*否则否则CPSR6 不变不变*/ CPSR7 = 1 /*禁止外部中断禁止外部中断*/ (4)PC = Exception Vector Address 45课堂特制 M4:0处理器模式可访问的寄存器 0b10000用户模式PC,CPSR,R0-R14 0b10001FIQ模式PC,CPSR, SPSR_fiq,R14_fiq-R8_fiq, R7 R0 0b10010IRQ模式PC,CPSR, SPSR_irq,R14_irq,R13_irq,R12 R0 0b10011管理模式PC,CPSR, SPSR_svc, R14_svc,

40、R13_svc,R12R0, 0b10111中止模式PC,CPSR, SPSR_abt,R14_abt,R13_abt, R12R0, 0b11011未定义模式PC,CPSR, SPSR_und,R14_und,R13_und, R12R0, 0b11111系统模式PC,CPSR, R14R0 46课堂特制 2.6.2 ARM异常处理(3) u复位复位 复位完成下列操作:复位完成下列操作: R14_svc = UNPREDICTABLE value SPSR_svc = UNPREDICTABLE value CPSR4:0 = 0b10011/*进入管理模式进入管理模式*/ CPSR5 =

41、0/*在在ARM状态执行状态执行*/ CPSR6 = 1 /*禁止快速中断禁止快速中断*/ CPSR7 = 1 /*禁止正常中断禁止正常中断*/ If high vectors configured then PC=0 xFFFF0000 else PC=0 x00000000 复位不需要返回。复位不需要返回。 47课堂特制 2.6.2 ARM异常处理(4) u未定义指令异常未定义指令异常 未定义指令异常出现时,执行下列操作:未定义指令异常出现时,执行下列操作: R14_und = address of next instruction after the undefined instruct

42、ion SPSR_und = CPSR CPSR4:0 = 0b11011/*进入未定义模式进入未定义模式*/ CPSR5 = 0/*在在ARM状态执行状态执行*/ /*CPSR6 不变不变*/ CPSR7 = 1 /*禁止正常中断禁止正常中断*/ If high vectors configured then PC=0 xFFFF0004 else PC=0 x00000004 返回:返回: MOVS PC,LR 设置设置 “S” bit,PC做为目的寄存器,做为目的寄存器,在特权模式不仅仅更新在特权模式不仅仅更新PC,而且拷贝,而且拷贝SPSR 到到 CPSR。 48课堂特制 2.6.2

43、ARM异常处理(5) u软件中断(软件中断(SWI)管理异常管理异常 管理异常异常出现时,执行下列操作:管理异常异常出现时,执行下列操作: R14_svc = address of next instruction after the SWI instruction SPSR_svc = CPSR CPSR4:0 = 0b10011/*进入管理模式进入管理模式*/ CPSR5 = 0/*在在ARM状态执行状态执行*/ /*CPSR6 不变不变*/ CPSR7 = 1 /*禁止正常中断禁止正常中断*/ If high vectors configured then PC=0 xFFFF0008

44、else PC=0 x00000008 返回:返回: MOVS PC, LR 49课堂特制 2.6.2 ARM异常处理(6) u预取中止异常预取中止异常 预取中止异常出现时,执行下列操作:预取中止异常出现时,执行下列操作: R14_abt = address of the aborted instruction + 4 SPSR_abt = CPSR CPSR4:0 = 0b10111/*进入指令预取中止模式进入指令预取中止模式*/ CPSR5 = 0/*在在ARM状态执行状态执行*/ /*CPSR6 不变不变*/ CPSR7 = 1 /*禁止正常中断禁止正常中断*/ If high vect

45、ors configured then PC=0 xFFFF000C else PC=0 x0000000C 返回:返回: SUBS PC, LR,#4 50课堂特制 2.6.2 ARM异常处理(7) u数据中止异常数据中止异常 预取中止异常出现时,执行下列操作:预取中止异常出现时,执行下列操作: R14_abt = address of the aborted instruction + 8 SPSR_abt = CPSR CPSR4:0 = 0b10111/*进入中止模式进入中止模式*/ CPSR5 = 0/*在在ARM状态执行状态执行*/ /*CPSR6 不变不变*/ CPSR7 = 1

46、 /*禁止正常中断禁止正常中断*/ If high vectors configured then PC=0 xFFFF0010 else PC=0 x00000010 返回:返回: SUBS PC, LR,#8 51课堂特制 2.6.2 ARM异常处理(8) u中断请求(中断请求(IRQ)异常异常 通过处理器上的通过处理器上的IRQ输入引脚,由外部产生输入引脚,由外部产生IRQ异常。异常。IRQ异常的优先级比异常的优先级比FIQ异常低。当进入异常低。当进入 FIQ处理时,会屏蔽掉处理时,会屏蔽掉IRQ异常。异常。 若若CPSR的的I位为位为1,则禁止,则禁止IRQ异常。异常。若若I位为位为0

47、,则,则ARM在指令执行完之后检查在指令执行完之后检查IRQ输入。输入。 IRQ异常出现时,执行下列操作:异常出现时,执行下列操作: R14_irq = address of next instruction to be executed + 4 SPSR_irq = CPSR CPSR4:0 = 0b10010/*进入进入IRQ模式模式*/ CPSR5 = 0/*在在ARM状态执行状态执行*/ /*CPSR6 不变不变*/ CPSR7 = 1 /*禁止正常中断禁止正常中断*/ If high vectors configured then PC=0 xFFFF0018 else PC=0 x

48、00000018 返回:返回: SUBS PC, LR,#4 52课堂特制 2.6.2 ARM异常处理(9) u快速中断请求(快速中断请求(FIQ)异常异常 通过处理器上的通过处理器上的FIQ输入引脚,由外部产生输入引脚,由外部产生FIQ异常。异常。 若若CPSR的的F位为位为1,则禁止,则禁止FIQ异常。异常。若若F位为位为0,则,则ARM在指令执行完之后检查在指令执行完之后检查FIQ输输 入入。 FIQ异常出现时,执行下列操作:异常出现时,执行下列操作: R14_fiq = address of next instruction to be executed + 4 SPSR_fiq =

49、CPSR CPSR4:0 = 0b10001/*进入进入FIQ模式模式*/ CPSR5 = 0/*在在ARM状态执行状态执行*/ CPSR6 = 1 /*禁止快速中断禁止快速中断*/ CPSR7 = 1 /*禁止正常中断禁止正常中断*/ If high vectors configured then PC=0 xFFFF001C else PC=0 x0000001C 返回:返回: SUBS PC, LR,#4 53课堂特制 2.6.2 ARM异常处理(10) u从异常返回从异常返回 异常处理完毕之后,异常处理完毕之后,ARM微处理器会执行以下几步操作从异微处理器会执行以下几步操作从异 常返回

50、:常返回: 1、将连接寄存器、将连接寄存器LR的值减去相应的偏移量后送到的值减去相应的偏移量后送到PC中中 2、将、将SPSR复制回复制回CPSR中中 3、若在进入异常处理时设置了中断禁止位,要在此清除、若在进入异常处理时设置了中断禁止位,要在此清除 54课堂特制 2.6.2 ARM异常处理(11) 返回指令 BLMOV PC,LR ;R14 SWI(软件中断)MOVS PC,LR ;R14_svc UDEF(未定义)MOVS PC,LR ;R14_und FIQ(快速)SUBS PC,LR,4 ;R14_fiq IRQ(外部)SUBS PC,LR,4 ;R14_irq PABT(指令中止)S

51、UBS PC,LR,4 ;R14_abt DABT(数据中止)SUBS PC,LR,8 ;R14_abt RESETNA u异常进入异常进入/退出小结退出小结 55课堂特制 2.6.3 ARM异常向量表 u异常向量(异常向量(Exception Vectors) 异常出现后强制从异常类型对应的固定存储器地址开始执行程序。这些固定异常出现后强制从异常类型对应的固定存储器地址开始执行程序。这些固定 的地址称为异常向量。的地址称为异常向量。 地 址异 常进入模式 0 x0000,000 0 复位管理模式 0 x0000,000 4 未定义指令未定义模式 0 x0000,000 8 软件中断管理模式

52、0 x0000,000 C 中止(预取指令)中止模式 0 x0000,001 0 中止(数据)中止模式 0 x0000,001 4 保留保留 0 x0000,001 8 IRQIRQ 管理模式管理模式 管理模式管理模式 中止模式中止模式 56课堂特制 32 Mbytes 4 Kbytes Literal pool containing address of Undef Handler IRQ handler within 32MBytes Branch instruction range SWI Exception handler placed on applicable address bo

53、undary FIQ handler follows vector table Undef handler outside 32MBytes branch instruction range 0 x0 0 x1000 0 x2000000 0 xFFC 0 x8 0 x1 8 0 x30000000 0 xFFFFFFFF 0 x1C 0 x4 MOV PC, #0 x30000000 B IRQ_handler 0 x30008000 IRQ Handler SWI Handler FIQ Handler LDR PC, PC, #+0 xFF0 Undef Handler 0 x30008

54、000 57课堂特制 2.6.4 ARM异常状态优先级异常状态优先级 u异常优先级(异常优先级(Exception Priorities) 优先级异 常 1(最高)复位 2数据中止 3FIQ 4IRQ 5预取指令中止 6(最低)未定义指令、SWI 58课堂特制 2.6.5 ARM 异常中断使用的寄存器异常中断使用的寄存器 n表2.11 地 址异 常进入模式 0 x0000,0000复位管理模式 0 x0000,0004未定义指令未定义模式 0 x0000,0008软件中断管理模式 0 x0000,000C中止(预取指令)中止模式 0 x0000,0010中止(数据)中止模式 0 x0000,0014保留保留 0 x0000,0018IRQIRQ 0 x0000,001CFIQFIQ 59课堂特制 2.7 ARM存储器和存储器映射存储器和存储器映射I/O 2.7.1 ARM体系的存储空间体系的存储空间 ARM体系结构所支持的最大寻址空间为体系结构所支持的最大寻址空间为4GB(232字节)字节) 230个个32位的字,字地址能被位的字,字地址能被

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论