第二章ARM处理器基础ARM7课件.ppt

上传人(卖家):晟晟文业 文档编号:4063766 上传时间:2022-11-07 格式:PPT 页数:33 大小:674.54KB
下载 相关 举报
第二章ARM处理器基础ARM7课件.ppt_第1页
第1页 / 共33页
第二章ARM处理器基础ARM7课件.ppt_第2页
第2页 / 共33页
第二章ARM处理器基础ARM7课件.ppt_第3页
第3页 / 共33页
第二章ARM处理器基础ARM7课件.ppt_第4页
第4页 / 共33页
第二章ARM处理器基础ARM7课件.ppt_第5页
第5页 / 共33页
点击查看更多>>
资源描述

1、第二章 ARM处理器基础 一、ARM7处理器概述二、ARM处理器的数据格式 三、处理器模式与内部寄存器 四、ARM的异常处理五、本节附录一、ARM7处理器概述ARM7TDMI是一个32位的微处理器核,基于精简指令集(RISC)的原理设计而成的。处理器的译码结构相对简单;处理器内含集成元件的门数相对减少,功耗降低。ARM7微处理器系列特点:1 1、32位嵌入式RISC处理器;2 2、支持多种低功耗模式;3 3、支持片上调试功能,通过JTAG连接;4 4、实时中断处理系统;5 5、3级指令流水线,具有很高的指令吞吐量。1、32位ARM指令集,兼容16位Thumb 指令集;2、不但支持32位,16位

2、的数据类型,也支持8位数据类型;3、和51系列相似的中断向量结构;4、支持协处理器。V4V4指令体系的特点:指令体系的特点:ARM7ARM7微处理器核功能微处理器核功能框图框图 A31:0:地址总线。D31:0:数据总线。ABORT:存储器中止逻辑。BIGEND:数据格式大端、小端控制逻辑。MAS1:0:决定数据字长的控制逻辑。nFIQ:快速中断请求逻辑。nIRQ:通用中断请求逻辑。DM4:0:处理器工作模式控制逻辑。流水线级数越多,说明单位时间内执行的条数就越多。计算机在执行程序时的3个步骤:第一步是取指取指:即把指令从程序存储器中取出来。取指是在处理器内核和程序存储器之间进行的;第二步是译

3、码译码:把读到内核的指令进行解释,也就是把二进制的指令变换成电路的动作;第三步是执行执行:即按照指令的要求把门电路的动作送到指定的目标地址。1.1 三级流水线结构 ARM处理器的取指、译码和执行3个步骤是同时进行的。三级流水线结构的ARM7指令执行示意图 8位单片机以l2个时钟周期为一个机器周期,一个机器周期里完成对一条程序的取指、译码和执行三个步骤。8位单片机指令执行示意图 对于3级流水线的指令执行过程,在做程序设计时要注意以下几点:1.程序计算器R15(PC)总是指向取指的指令,而不是指向正在执行的指令或正在译码的指令。对于ARM指令,因为每条指令占4个字节,所以有:PC值值=当前程序执行

4、位置当前程序执行位置+4+4 对于Thumb指令,因为每条指令占2个字节,所以有:PC值值=当前程序执行位置当前程序执行位置+2+22.程序发生中断或跳转时,执行完当前的指令后,程序执行地址将发生变化。3.在计算多个指令执行时间时,必须注意时间是重叠的,而不是衔接的。二、ARM处理器的数据格式 1.1 存储空间格式 ARM7TDMI处理器采用冯诺依曼(Von Neumann)结构,指令和数据共用一条32位数据总线,存储器中的内容即可以是指令代码也可以是数据。ARM7TDMI处理器将存储器看作是一个从零开始的线性递增的字节集合,处理器的可寻址范围是0232-1个字节,共有4GB地址空间。ARM7

5、TDMI处理器采用存储器映像方式,互不冲突。ARM7TDMI没有专门的I/O指令,对存储器的访问和对I/O端口的访问采用同样的指令,唯一区别的是它们的地址空间。LPC2000系列处理器把4GB的地址空间统一划分为若干个地址区间分配给片内Flash、片内RAM、片外存储器、VPB外设、AHB外设。ARM体系结构的两种存储数据格式:小端存储格式;大端存储格式。LPC2200地址映射 1 1、小端存储格式(、小端存储格式(Little EndianLittle Endian)低字节的内容保存在低地址空间里,高字节的内容保存在高地址空间里的存储方式称为小端存储格式小端存储格式。假设有一个32位的数据0

6、 xA9876543,它要保存到地址范围为0 x0000 0 x0003的存储区中。按小端存储格式存储:4个字节保存1个字内容 2个半字保存1个字内容 注意:处理器在半字、字进行操作的时候要注意地址对准的要求。2 2、大端存储格式(、大端存储格式(Big EndianBig Endian)字数据的高字节存储在低地址中,而字数据的低字节则存储在高地址中的存储方式称为大端存储格式大端存储格式。假设一个32位的数据0 xA9876543,保存到起始地址为0 x0000的存储空间里,按大端存储格式对数据进行存储。注意:大端存储格式是也要对准地址。4个字节保存1个字内容2个半字保存1个字内容3 3、两种

7、存储格式的比较、两种存储格式的比较1、在两种存储格式下,对一个字或一个半字的内容存储,其存储结果是不同的;2、在这两种存储格式中,半字与字的存储地址没有发生变化;3、以ARM为内核的处理器都支持两种存储格式,具体设置见具体处理器的说明。1.2 ARM处理器的程序与数据存储 程序程序是ARM处理器可以运行的指令代码;数据数据是指令在运行中用到的操作数或者变量。1 1、程序存储、程序存储 ARM处理器支持两种指令:ARMARM汇编指令:汇编指令:ARM汇编指令是32位长,ARM处理器在执行地址a的ARM汇编指令时,会从地址a+4取下一条指令。ThumbThumb汇编指令:汇编指令:Thumb汇编指

8、令是16位长,ARM处理器在执行地址a的Thumb汇编指令时,会从地址a+2取下一条指令。ARM7TDMI内核的两种工作状态:ARMARM状态状态:此时执行32位字对齐的ARM汇编指令。THUMBTHUMB状态状态:此时执行16位半字对齐的THUMB汇编指令。2 2、数据存储、数据存储 ARM7处理器对数据操作(读或写)支持三种数据长度:字节(8位)、半字(16位)、字(32位)。字节字节:从地址0 x0000处取一个字节数据,则取出来的内容为12;从地址0 x0001处取一个字节数据,则取出来的内容为34;半字半字:从地址0 x0000处取一个半字数据,则取出来的内容为3412;从地址0 x

9、0001处取一个半字数据,则取出来的内容为5634;字字:从地址0 x0000处取一个字数据,则取出来的内容为78563412;从地址0 x0001处取一个字数据,则取出来的内容为9A785634。注意:ARM7处理器在对数据操作时要边界对齐,要找到正确的地址。三、处理器模式与内部寄存器 1.1处理器模式 ARM7TDMI内核支持7种操作模式:用户模式(用户模式(usr):运行应用程序的普通模式;快中断模式(快中断模式(fiq):):用来处理外设引发的快速中断;中断模式(中断模式(irq):):用来处理通用中断;管理模式(管理模式(svc):主要用于 SWI(软件中断)和 OS(操作系 统)。

10、此模式有额外的特权,允许程序员进 一步控制处理器;中止模式(中止模式(abt):当数据或预取指失败时进入;系统模式(系统模式(sys):是操作系统的特权用户模式;未定义模式(未定义模式(und):当未定义的指令被执行时进入。1.2内部寄存器寄存器类别寄存器在汇编中的名称各模式实际访问的寄存器用户 系统管理中止未定义中断快中断通用寄存器程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R1

11、1R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15状态寄存器CPSRCPSRSPSR无SPSR_svcSPSR_abtSPSR_undSPSR_irqSPSR_fiqARM状态下的寄存器组织结构(阴影部分的寄存器都是私有寄存器)2 2、堆栈指针、堆栈指针 R13R13寄存器R13(也称为堆栈指针或SP)有6个分组的物理寄存器。寄存器R13通常作为堆栈指针SP。3 3、链接寄存器、链接寄存器 R14

12、R14寄存器R14(也称为链接寄存器或LR)有6个分组的物理寄存器。寄存器R14有三种用途:1、当发生异常时,它被设置为该异常返回地址;2、在执行分支和链接(BL)指令时,它用于保存子程序的返回地址;3、而在其他时候,作为一个通用寄存器来对待。1 1、一般通用寄存器、一般通用寄存器 R0R0R12R12寄存器R0R12为保存数据或地址值的一般通用寄存器。寄存器R0R7为未分组的寄存器;寄存器R8R12为分组寄存器。4 4、程序计数器、程序计数器 R15R15寄存器R15(也称为程序计数器或PC)总是用于特殊用途,它总是指向下一条要读取指令的地址。5 5、CPSRCPSR和和SPSRSPSR 所

13、有模式共享一个程序状态寄存器CPSR。1.3 程序状态寄存器 ARM7TDMI包含1个当前程序状态寄存器(CPSR)和5个备份的程序状态寄存器(SPSR)。程序状态寄存器包含如下内容:04:设置处理器的运行模式;5:指示当前处理器工作状态;6、7:控制中断的允许和禁止;2831:保存ALU当前操作的有关信息。1 1、控制位、控制位 CPSR的低8位称为控制位。对各控制位的定义如下:T标志位标志位 该位反映处理器的操作状态。中断禁止位中断禁止位 I和F是中断禁止位。操作模式位操作模式位 MO,M1,M2,M3和M4(M4:0)是模式位,这些位决定了处理器的操作模式。2 2、条件码标志位、条件码标

14、志位 在ARM状态下,绝大多数指令都是有条件执行指令;在THUMB状态下,仅有分支指令是有条件执行指令。各条件码标志位的具体含义 标志位含义N运算结果的符号位。对于有符号二进制补码,结果为负时,N=1;结果为正或零时,N=0。ZZ=1表示运算的结果为零(通常表示比较结果“相等”);Z=0表示运算的结果不为零。C分4种情况设置C的值-加法运算 当运算结果产生进位时,C=1;否则C=0-减法运算 当运算产生借位时,C=0;否则C=1-包含移位操作的非加/减运算指令 C为移出值的最后一位-其他的非加/减运算指令 C的值通常不变V分2种情况设置V的值-加/减法运算指令 当发生有符号溢出时,V=1;否则

15、,V=0-其他的非加/减运算指令 V的值通常不变3 3、保留位、保留位 CPSR中和其余位为保留位。四、ARM的异常处理1.1 进入/退出异常 1 1、进入异常、进入异常 内核刚进入异常状态时,会依次采取以下动作:将原来执行的程序的下一条指令地址保存到链接寄存器(LR)中。复制CPSR到相应的SPSR进行保存。根据发生的异常类型改变CPSR的模式位的值。令程序计数器(PC)的值指向异常处理向量所指的下一条指令。这时也可能设置中断禁能标志,以防止不可估计的异常嵌套发生。2、退出异常 当完成异常处理,将退出该异常状态时,处理器应该进行如下动作:将SPSR内容复制到CPSR中。清除中断禁止标志。移出

16、LR并减去相应的偏移量后赋值给PC。退出异常处理采用的语句 异常或入口LR保存值返回指令注释BL(跳转指令)RA+4MOV PC,R14RA(Run Addr)是指在进入异常前或程序发生跳转前执行的最后一条程序的物理地址。SWI(软中断)RA+4MOVS PC,R14未定义的指令RA+4MOVS PC,R14预取中止RA+4SUBS PC,R14,#4快中断RA+4SUBS PC,R14,#4中断RA+4SUBS PC,R14,#4数据中止RA+8SUBS PC,R14,#8复位-以BL指令为例,下面解释为什么BL的返回指令是:MOV PC,R14。例例:某段汇编指令 MOV R1,#1 BL

17、 next ADD R1,#2 next 当处理器执行第条语句时,第条语句正在译码,PC指向第条语句的地址。第条语句是一个BL跳转指令,译码结果告诉处理器,程序的执行要发生跳转,所以指令预取被中断,即PC不会指向第条语句,仍保持指向第条语句的地址。“BL next”指令执行时,会将PC值(第条语句的地址)复制到LR中,然后跳转到next子程序运行,当子程序运行完,要想回到第条语句继续执行,只要在next子程序最后加上指令“MOV PC,R14”即可。1.2 六种异常模式 1 1、软件中断(、软件中断(SWISWI)执行软件中断指令将引发软件中断,并进入管理模式。退出异常处理执行的语句:MOV

18、PC,R142 2、未定义指令(、未定义指令(UDefUDef)当内核遇到一个它不能执行的指令,立即调用一个未定义指令陷阱处理程序。陷阱处理程序离开异常时执行的语句:MOVS PC,R143 3、快速中断请求(、快速中断请求(FIQFIQ)FIQ异常通常是用来支持数据传输和通道操作的;FIQ中断是由外部设备通过拉低nFIQ引脚触发的。FIQ处理程序在离开中断处理时执行的语句:SUBS PC,R14,#4 ;PC R14-4 FIQ异常可以通过设置CPSR中的F标志位来禁止(用户模式下除外)。4 4、中断请求(、中断请求(IRQIRQ)IRQ是支持普通中断操作的。当nIRQ上有低电平输入时将触发

19、该中断。退出IRQ中断处理时,采用的语句:SUBS PC,R14,4;PC R14-4IRQ也可以通过设备CPSR中的I标志来禁止(特权模式下)。5 5、中止(、中止(AbortAbort)Abort的产生,说明当前的处理器操作不能完成。该情况可以通过ABORT输入信号来告知处理器。ABORT异常包括以下两种类型:预取指异常预取指异常 发生在预取指令时。退出预取指异常处理程序。SUBS PC,R14,4 ;PC R14-4 数据异常数据异常 发生在数据操作时。通过以下中断处理程序退出语句:SUBS PC,R14,8 ;PC R14-8 1.3 异常中断向量与优先级 当异常发生时,PC会跳转到异

20、常中断的向量地址处开始执行程序。地址异常中断类型入口时处理器的操作模式0 x0000 0000复位管理0 x0000 0004未定义指令未定义0 x0000 0008SWI(软件中断)管理0 x0000 000C中止(预取指)中止(取址)0 x0000 0010中止(数据)中止(数据)0 x0000 0014保留保留0 x0000 0018IRQIRQ0 x0000 001CFIQFIQ五、本节附录1.1 ARM处理器系列1、ARM7微处理器系列:ARM7系列微处理器为低功耗的32位RISC处理器,最适合于对价位和功耗要求比较严格的消费类应用。2、ARM9微处理器系列:ARM9系列微处理器在高

21、性能和低功耗特性方面提供最佳的性能。3、ARM9E微处理器系列:ARM9E系列微处理器为可综合处理器,使用单一的处理器内核提供了单片机、DSP、Java 应用系统的解决方案。4、ARM10E微处理器系列:ARM10E系列微处理器具有高性能、低功耗的特点。5、SecurCore微处理器系列:SecurCore具有ARM体系结构的低功耗、高性能的特点外,还提供了对安全解决方案的支持。6、StrongARM微处理器系列:Intel StrongARM 处理器是采用ARM体系结构且高度集成的32位RISC微处理器。7、Xscale微处理器系列:Xscale微处理器是基于ARMv5TE体系结构的解决方案

22、,是一款全性能、高性价比、低功耗的微处理器。1.2 ThumbThumb状态下的寄存器集状态下的寄存器集 Thumb状态下,可直接访问的寄存器:8个通用的寄存器R0R7;程序计数器PC;堆栈指针(SP);链接寄存器(LR);CPSR(有条件的访问)。Thumb状态下的寄存器集 寄存器类别寄存器在汇编中的名称各模式实际访问的寄存器用户 系统管理中止未定义中断快中断通用寄存器、程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7SPR13R13_svcR13_abtR13_undR13_irqR13_fiqLRR

23、14R14_svcR14_abtR14_undR14_irqR14_fiqPCR15状态CPSRCPSRARM状态寄存器与Thumb状态寄存器的关系:Thumb状态的R0R7与ARM状态的R0R7相同;Thumb状态的CPSR和SPSR与ARM状态的CPSR和SPSR相同;Thumb状态的SP映射到ARM状态的SP(R13);Thumb状态的LR映射到ARM状态的LR(R14);Thumb状态的PC映射到ARM状态的PC(R15)。思考与练习1、ARM7TDMI采用几级流水线?程序是如何执行的?这与普通的8位单片机有何不同?2、ARM处理器支持哪两种存储格式?这两种存储格式在存储字内容上有区别

24、吗?这两种存储格式在存储字节内容上有何区别?3、存储单元中可以保存程序和数据。如果从存储单元取指令,那么我们应该注意什么?如果从存储单元取数据,我们又应该注意什么?4、ARM7TDMI内核支持哪7种操作模式,这些操作模式各自用在什么场合?5、SP、LR和PC分别使用了哪个寄存器?它们分别有什么作用?6、ARM处理器有哪两种操作模式共用了所有的寄存器?有哪些寄存器在所有的模式下都是共用的?7、CPSR寄存器中哪些位用来定义处理器状态?哪些位用来定义处理器模式?8、描述一下如何禁止或打开IRQ中断,如何禁止和打开FIQ中断?9、简述ARM异常中断的分类情况?10、简单描述一下ARM处理器如何进入异常和退出异常?11、请描述一下ARM7TDMI产生异常的条件分别是什么?每种异常产生后会从哪个地址取指令?各个异常的返回指令又是什么?12、当多个异常同时产生时,ARM处理器会如何处理?13、定义R0=0 x12345678,假设使用存储指令STR将R0的值存放在0 x4000单元中。如果存储器格式为大端格式,请写出在执行加载指令LDR将存储器0 x4000单元的内容取出存放到R2寄存器操作后所得R2的值;如果存储器格式改为小端格式,所得的R2值又是多少?低地址0 x4000单元的字节内容分别是多少?13、在ARM微处理器中,ARM7TDMI中的“TDMI”是什么含义。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(第二章ARM处理器基础ARM7课件.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|