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

PPT
  • 阅读 97 次
  • 下载 0 次
  • 页数 33 页
  • 大小 674.540 KB
  • 2022-12-05 上传
  • 收藏
  • 违规举报
  • © 版权认领
下载文档20.00 元 加入VIP免费下载
此文档由【小橙橙】提供上传,收益归文档提供者,本网站只提供存储服务。若此文档侵犯了您的版权,欢迎进行违规举报版权认领
第二章ARM处理器基础ARM7课件
可在后台配置第一页与第二页中间广告代码
第二章ARM处理器基础ARM7课件
可在后台配置第二页与第三页中间广告代码
第二章ARM处理器基础ARM7课件
可在后台配置第三页与第四页中间广告代码
第二章ARM处理器基础ARM7课件
第二章ARM处理器基础ARM7课件
还剩10页未读,继续阅读
【这是免费文档,您可以免费阅读】
/ 33
  • 收藏
  • 违规举报
  • © 版权认领
下载文档20.00 元 加入VIP免费下载
文本内容

【文档说明】第二章ARM处理器基础ARM7课件.ppt,共(33)页,674.540 KB,由小橙橙上传

转载请保留链接:https://www.ichengzhen.cn/view-92622.html

以下为本文档部分文字说明:

第二章ARM处理器基础一、ARM7处理器概述二、ARM处理器的数据格式三、处理器模式与内部寄存器四、ARM的异常处理五、本节附录一、ARM7处理器概述ARM7TDMI是一个32位的微处理器核,基于精简指令集(RISC)的原理设计而成的。处理器的译码结构相对简单;处理器内含集成

元件的门数相对减少,功耗降低。ARM7微处理器系列特点:1、32位嵌入式RISC处理器;2、支持多种低功耗模式;3、支持片上调试功能,通过JTAG连接;4、实时中断处理系统;5、3级指令流水线,具有很高的指令吞吐量。1、3

2位ARM指令集,兼容16位Thumb指令集;2、不但支持32位,16位的数据类型,也支持8位数据类型;3、和51系列相似的中断向量结构;4、支持协处理器。V4指令体系的特点:ARM7微处理器核功能框图A[31:0]:地址总线。D[31:0]:数据

总线。ABORT:存储器中止逻辑。BIGEND:数据格式大端、小端控制逻辑。MAS[1:0]:决定数据字长的控制逻辑。nFIQ:快速中断请求逻辑。nIRQ:通用中断请求逻辑。DM[4:0]:处理器工作模式

控制逻辑。流水线级数越多,说明单位时间内执行的条数就越多。计算机在执行程序时的3个步骤:第一步是取指:即把指令从程序存储器中取出来。取指是在处理器内核和程序存储器之间进行的;第二步是译码:把读到内核的指令进行解释,也就是把二进制的指令变换成电

路的动作;第三步是执行:即按照指令的要求把门电路的动作送到指定的目标地址。1.1三级流水线结构ARM处理器的取指、译码和执行3个步骤是同时进行的。取指译码执行取指译码执行取指译码执行取指译码执行3级流水线指令n指令n+1指

令n+2指令n+3t三级流水线结构的ARM7指令执行示意图8位单片机以l2个时钟周期为一个机器周期,一个机器周期里完成对一条程序的取指、译码和执行三个步骤。取指译码执行取指译码执行取指译码执行取指指令n指令n+1指令n+2顺序执行t8位单片机

指令执行示意图对于3级流水线的指令执行过程,在做程序设计时要注意以下几点:1.程序计算器R15(PC)总是指向取指的指令,而不是指向正在执行的指令或正在译码的指令。对于ARM指令,因为每条指令占4个字节,所以有:PC值=当前程序执行位置+4+

4对于Thumb指令,因为每条指令占2个字节,所以有:PC值=当前程序执行位置+2+22.程序发生中断或跳转时,执行完当前的指令后,程序执行地址将发生变化。3.在计算多个指令执行时间时,必须注意时间是重叠的,而不是衔接的。二、ARM处理器的数据格式1

.1存储空间格式ARM7TDMI处理器采用冯•诺依曼(VonNeumann)结构,指令和数据共用一条32位数据总线,存储器中的内容即可以是指令代码也可以是数据。ARM7TDMI处理器将存储器看作是一个从零开始的线性递增的字节集合,处理器的可寻址范围

是0~232-1个字节,共有4GB地址空间。ARM7TDMI处理器采用存储器映像方式,互不冲突。ARM7TDMI没有专门的I/O指令,对存储器的访问和对I/O端口的访问采用同样的指令,唯一区别的是它们的地址空间。AHB外设VPB外设保留给外部存储器BootBlock(

从片内Flash存储器重新映射)保留给片内存储器16KB片内静态RAM256KB片内非易失性存储器(LPC2212/2214)128KB片内非易失性存储器(LPC2114/2124)0.0GB1.0GB2.0GB3.5GB3.75GB4.0GB0x000000000x0001FFFF0

x000200000x0003FFFF0x000400000x400000000x800000000x4001FFFF0xE00000000xF00000000xFFFFFFFFLPC2000系列处理器把4GB的地址空间

统一划分为若干个地址区间分配给片内Flash、片内RAM、片外存储器、VPB外设、AHB外设。ARM体系结构的两种存储数据格式:小端存储格式;大端存储格式。LPC2200地址映射1、小端存储格式(Littl

eEndian)低字节的内容保存在低地址空间里,高字节的内容保存在高地址空间里的存储方式称为小端存储格式。3124231615870字单元A半字单元A+2半字单元A字节单元A+2字节单元A+1字节单元A字节

单元A+3地址空间假设有一个32位的数据0xA9876543,它要保存到地址范围为0x0000~0x0003的存储区中。按小端存储格式存储:430x00030x00020x00010x00006587A965430x00020x0000A9874个字节保存1个字

内容2个半字保存1个字内容注意:处理器在半字、字进行操作的时候要注意地址对准的要求。2、大端存储格式(BigEndian)字数据的高字节存储在低地址中,而字数据的低字节则存储在高地址中的存储方式称为大端存

储格式。3124231615870字单元A半字单元A半字单元A+2字节单元A+1字节单元A+2字节单元A+3字节单元A地址空间假设一个32位的数据0xA9876543,保存到起始地址为0x0000的存储空间里,按大端存储格式对数据进行存储。注意:大端存储格式是也要对准地址。A90x00030

x00020x00010x00008743650x00020x00006543A9874个字节保存1个字内容2个半字保存1个字内容3、两种存储格式的比较1、在两种存储格式下,对一个字或一个半字的内容存储,其存储结果是不同的;2、在这两种存储格式中,半字与字的存储地址没有发生变化;3、以

ARM为内核的处理器都支持两种存储格式,具体设置见具体处理器的说明。1.2ARM处理器的程序与数据存储程序是ARM处理器可以运行的指令代码;数据是指令在运行中用到的操作数或者变量。1、程序存储ARM处理器支持两种指令:ARM汇编指令

:ARM汇编指令是32位长,ARM处理器在执行地址a的ARM汇编指令时,会从地址a+4取下一条指令。Thumb汇编指令:Thumb汇编指令是16位长,ARM处理器在执行地址a的Thumb汇编指令时,会从地址a+2取下一条指令。ARM7T

DMI内核的两种工作状态:ARM状态:此时执行32位字对齐的ARM汇编指令。THUMB状态:此时执行16位半字对齐的THUMB汇编指令。2、数据存储ARM7处理器对数据操作(读或写)支持三种数据长度:字节(8位)、半字(16位)、字(32位)。120x00030x00020x00010

x00003456780x00049A字节:从地址0x0000处取一个字节数据,则取出来的内容为12;从地址0x0001处取一个字节数据,则取出来的内容为34;半字:从地址0x0000处取一个半字数据,则取出来的内容为3412;从地址0x0001处取一个半字数据,则取出来的内

容为5634;字:从地址0x0000处取一个字数据,则取出来的内容为78563412;从地址0x0001处取一个字数据,则取出来的内容为9A785634。注意:ARM7处理器在对数据操作时要边界对齐,要找到正

确的地址。三、处理器模式与内部寄存器1.1处理器模式ARM7TDMI内核支持7种操作模式:用户模式(usr):运行应用程序的普通模式;快中断模式(fiq):用来处理外设引发的快速中断;中断模式(irq):用来处

理通用中断;管理模式(svc):主要用于SWI(软件中断)和OS(操作系统)。此模式有额外的特权,允许程序员进一步控制处理器;中止模式(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)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiq

R14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15状态寄存器CPSRCPSRSPSR无SPSR_svcSPSR_abtSPSR_undSPSR_irqSPSR_fiqARM状态下的寄存器组织结构(阴影部分的寄存器

都是私有寄存器)2、堆栈指针R13寄存器R13(也称为堆栈指针或SP)有6个分组的物理寄存器。寄存器R13通常作为堆栈指针SP。3、链接寄存器R14寄存器R14(也称为链接寄存器或LR)有6个分组的物理寄存器。寄存

器R14有三种用途:1、当发生异常时,它被设置为该异常返回地址;2、在执行分支和链接(BL)指令时,它用于保存子程序的返回地址;3、而在其他时候,作为一个通用寄存器来对待。1、一般通用寄存器R0~R12寄存器R0~R

12为保存数据或地址值的一般通用寄存器。寄存器R0~R7为未分组的寄存器;寄存器R8~R12为分组寄存器。4、程序计数器R15寄存器R15(也称为程序计数器或PC)总是用于特殊用途,它总是指向下一条要读取指令的地址。5、CPSR和SPSR所有模式共享一个程序状态寄存器C

PSR。1.3程序状态寄存器ARM7TDMI包含1个当前程序状态寄存器(CPSR)和5个备份的程序状态寄存器(SPSR)。NZCV3130292827IFTM4M3M2M1M0876543210零IRQ禁止FIQ禁止T标志位操作模式位保留„负或小于

溢出进位或借位或扩展程序状态寄存器包含如下内容:◎0~4:设置处理器的运行模式;◎5:指示当前处理器工作状态;◎6、7:控制中断的允许和禁止;◎28~31:保存ALU当前操作的有关信息。1、控制位CPSR的低8位称为控制位。对各控制位的定义如下:①T标

志位该位反映处理器的操作状态。②中断禁止位I和F是中断禁止位。③操作模式位MO,M1,M2,M3和M4(M[4:0])是模式位,这些位决定了处理器的操作模式。2、条件码标志位在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;否则,V=0-其他的非加/减运算指令V的值通常不变3、保留位CPSR中和其余位为保留位。四、ARM的异常处理1.1进入/退出异常1、进入异常内核刚进入异常状态时,会依次采取以下动作:①将原来执行的程

序的下一条指令地址保存到链接寄存器(LR)中。②复制CPSR到相应的SPSR进行保存。③根据发生的异常类型改变CPSR的模式位的值。④令程序计数器(PC)的值指向异常处理向量所指的下一条指令。⑤这时也可能设置中断禁能标志,以防止不可估计的异常嵌套发生。2、退出异常①当完成异常处理

,将退出该异常状态时,处理器应该进行如下动作:②将SPSR内容复制到CPSR中。③清除中断禁止标志。④移出LR并减去相应的偏移量后赋值给PC。退出异常处理采用的语句异常或入口LR保存值返回指令注释BL(跳转指令)RA+4MOVPC,R14R

A(RunAddr)是指在进入异常前或程序发生跳转前执行的最后一条程序的物理地址。SWI(软中断)RA+4MOVSPC,R14未定义的指令RA+4MOVSPC,R14预取中止RA+4SUBSPC,R14,#4快中断RA+4SUBS

PC,R14,#4中断RA+4SUBSPC,R14,#4数据中止RA+8SUBSPC,R14,#8复位--以BL指令为例,下面解释为什么BL的返回指令是:MOVPC,R14。例:某段汇编指令①MOVR1,#1②BLnext③ADDR1,#2④next当处理器执行第①条语句时,第②

条语句正在译码,PC指向第③条语句的地址。第②条语句是一个BL跳转指令,译码结果告诉处理器,程序的执行要发生跳转,所以指令预取被中断,即PC不会指向第④条语句,仍保持指向第③条语句的地址。“BLnext”指令执行时,会将PC值(第③条语句的地址)复制到LR中,然后跳转到next子程序运行,

当子程序运行完,要想回到第③条语句继续执行,只要在next子程序最后加上指令“MOVPC,R14”即可。1.2六种异常模式1、软件中断(SWI)执行软件中断指令将引发软件中断,并进入管理模式。退出异常处理执行的语句:MOVPC,R14

2、未定义指令(UDef)当内核遇到一个它不能执行的指令,立即调用一个未定义指令陷阱处理程序。陷阱处理程序离开异常时执行的语句:MOVSPC,R143、快速中断请求(FIQ)FIQ异常通常是用来支持数据传输和

通道操作的;FIQ中断是由外部设备通过拉低nFIQ引脚触发的。FIQ处理程序在离开中断处理时执行的语句:SUBSPC,R14,#4;PC←R14-4FIQ异常可以通过设置CPSR中的F标志位来禁止(用户模式下除外)。4、中断请求(IRQ)IRQ是支持普通中断操作的。当

nIRQ上有低电平输入时将触发该中断。退出IRQ中断处理时,采用的语句:SUBSPC,R14,#4;PC←R14-4IRQ也可以通过设备CPSR中的I标志来禁止(特权模式下)。5、中止(Abort)Abort的产生,说明当前的处理器操作不能完成。该情况可以通过ABOR

T输入信号来告知处理器。ABORT异常包括以下两种类型:①预取指异常发生在预取指令时。退出预取指异常处理程序。SUBSPC,R14,#4;PC←R14-4②数据异常发生在数据操作时。通过以下中断处理程序退出语句:SUBSP

C,R14,#8;PC←R14-81.3异常中断向量与优先级当异常发生时,PC会跳转到异常中断的向量地址处开始执行程序。地址异常中断类型入口时处理器的操作模式0x00000000复位管理0x00000004未定义指令未定义

0x00000008SWI(软件中断)管理0x0000000C中止(预取指)中止(取址)0x00000010中止(数据)中止(数据)0x00000014保留保留0x00000018IRQIRQ0x0000001C

FIQFIQ五、本节附录1.1ARM处理器系列1、ARM7微处理器系列:ARM7系列微处理器为低功耗的32位RISC处理器,最适合于对价位和功耗要求比较严格的消费类应用。2、ARM9微处理器系列:ARM9系列微处理器在高性能和低功耗特性方面提供最佳的性能。3、ARM9

E微处理器系列:ARM9E系列微处理器为可综合处理器,使用单一的处理器内核提供了单片机、DSP、Java应用系统的解决方案。4、ARM10E微处理器系列:ARM10E系列微处理器具有高性能、低功耗的特点。5、SecurCore微处理器系列:Secu

rCore具有ARM体系结构的低功耗、高性能的特点外,还提供了对安全解决方案的支持。6、StrongARM微处理器系列:IntelStrongARM处理器是采用ARM体系结构且高度集成的32位RISC微处理器。7、Xscale微处理器系列:Xscale微处理器是基于A

RMv5TE体系结构的解决方案,是一款全性能、高性价比、低功耗的微处理器。1.2Thumb状态下的寄存器集Thumb状态下,可直接访问的寄存器:◎8个通用的寄存器R0~R7;◎程序计数器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_fiqLRR14R14_svcR14_abtR14_undR14_irqR14_fiqPCR15状态CPSRCPSRARM状态寄存器与Thumb状态寄存器的关系:◎Thumb状态的R0~R7

与ARM状态的R0~R7相同;◎Thumb状态的CPSR和SPSR与ARM状态的CPSR和SPSR相同;◎Thumb状态的SP映射到ARM状态的SP(R13);◎Thumb状态的LR映射到ARM状态的LR(R14);◎Thumb状态的PC映射到ARM状态的PC(R1

5)。思考与练习1、ARM7TDMI采用几级流水线?程序是如何执行的?这与普通的8位单片机有何不同?2、ARM处理器支持哪两种存储格式?这两种存储格式在存储字内容上有区别吗?这两种存储格式在存储字节内容上有何区别?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=0x12345678,假设使用存储指令STR将R0的值存放在0x4000单元

中。如果存储器格式为大端格式,请写出在执行加载指令LDR将存储器0x4000单元的内容取出存放到R2寄存器操作后所得R2的值;如果存储器格式改为小端格式,所得的R2值又是多少?低地址0x4000单元的字节内容分别是多少?1

3、在ARM微处理器中,ARM7TDMI中的“TDMI”是什么含义。

小橙橙
小橙橙
文档分享,欢迎浏览!
  • 文档 25747
  • 被下载 7
  • 被收藏 0
相关资源
广告代码123
若发现您的权益受到侵害,请立即联系客服,我们会尽快为您处理。侵权客服QQ:395972555 (支持时间:9:00-21:00) 公众号
Powered by 太赞文库
×
确认删除?