ARM处理器基础ARM市公开课一等奖省赛课获奖课件_第1页
ARM处理器基础ARM市公开课一等奖省赛课获奖课件_第2页
ARM处理器基础ARM市公开课一等奖省赛课获奖课件_第3页
ARM处理器基础ARM市公开课一等奖省赛课获奖课件_第4页
ARM处理器基础ARM市公开课一等奖省赛课获奖课件_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

第二章ARM处理器基础一、ARM7处理器概述二、ARM处理器数据格式三、处理器模式与内部存放器四、ARM异常处理五、本节附录ARM处理器基础ARM第1页一、ARM7处理器概述

ARM7TDMI是一个32位微处理器核,基于精简指令集(RISC)原理设计而成。处理器译码结构相对简单;处理器内含集成元件门数相对降低,功耗降低。ARM7微处理器系列特点:1、32位嵌入式RISC处理器;2、支持各种低功耗模式;3、支持片上调试功效,经过JTAG连接;4、实时中止处理系统;5、3级指令流水线,含有很高指令吞吐量。ARM处理器基础ARM第2页1、32位ARM指令集,兼容16位Thumb指令集;2、不但支持32位,16位数据类型,也支持8位数据类型;3、和51系列相同中止向量结构;4、支持协处理器。V4指令体系特点:

ARM处理器基础ARM第3页ARM7微处理器核功效框图

A[31:0]:地址总线。D[31:0]:数据总线。ABORT:存放器中止逻辑。BIGEND:数据格式大端、小端控制逻辑。MAS[1:0]:决定数据字长控制逻辑。nFIQ:快速中止请求逻辑。nIRQ:通用中止请求逻辑。DM[4:0]:处理器工作模式控制逻辑。ARM处理器基础ARM第4页流水线级数越多,说明单位时间内执行条数就越多。计算机在执行程序时3个步骤:第一步是取指:即把指令从程序存放器中取出来。取指是在处理器内核和程序存放器之间进行;第二步是译码:把读到内核指令进行解释,也就是把二进制指令变换成电路动作;第三步是执行:即按照指令要求把门电路动作送到指定目标地址。1.1三级流水线结构

ARM处理器基础ARM第5页ARM处理器取指、译码和执行3个步骤是同时进行。三级流水线结构ARM7指令执行示意图

8位单片机以l2个时钟周期为一个机器周期,一个机器周期里完成对一条程序取指、译码和执行三个步骤。8位单片机指令执行示意图

ARM处理器基础ARM第6页对于3级流水线指令执行过程,在做程序设计时要注意以下几点:程序计算器R15(PC)总是指向取指指令,而不是指向正在执行指令或正在译码指令。对于ARM指令,因为每条指令占4个字节,所以有:PC值=当前途序执行位置+4+4对于Thumb指令,因为每条指令占2个字节,所以有:PC值=当前途序执行位置+2+22.程序发生中止或跳转时,执行完当前指令后,程序执行地址将发生改变。3.在计算多个指令执行时间时,必须注意时间是重合,而不是衔接。ARM处理器基础ARM第7页二、ARM处理器数据格式1.1存放空间格式ARM7TDMI处理器采取冯•诺依曼(VonNeumann)结构,指令和数据共用一条32位数据总线,存放器中内容即能够是指令代码也能够是数据。ARM7TDMI处理器将存放器看作是一个从零开始线性递增字节集合,处理器可寻址范围是0~232-1个字节,共有4GB地址空间。ARM7TDMI处理器采取存放器映像方式,互不冲突。ARM7TDMI没有专门I/O指令,对存放器访问和对I/O端口访问采取一样指令,唯一区分是它们地址空间。ARM处理器基础ARM第8页LPC系列处理器把4GB地址空间统一划分为若干个地址区间分配给片内Flash、片内RAM、片外存放器、VPB外设、AHB外设。ARM体系结构两种存放数据格式:小端存放格式;大端存放格式。LPC2200地址映射

ARM处理器基础ARM第9页1、小端存放格式(LittleEndian)低字节内容保留在低地址空间里,高字节内容保留在高地址空间里存放方式称为小端存放格式。假设有一个32位数据0xA9876543,它要保留到地址范围为0x0000~0x0003存放区中。按小端存放格式存放:4个字节保留1个字内容

2个半字保留1个字内容

注意:处理器在半字、字进行操作时候要注意地址对准要求。ARM处理器基础ARM第10页2、大端存放格式(BigEndian)

字数据高字节存放在低地址中,而字数据低字节则存放在高地址中存放方式称为大端存放格式。假设一个32位数据0xA9876543,保留到起始地址为0x0000存放空间里,按大端存放格式对数据进行存放。注意:大端存放格式是也要对准地址。4个字节保留1个字内容2个半字保留1个字内容ARM处理器基础ARM第11页3、两种存放格式比较1、在两种存放格式下,对一个字或一个半字内容存放,其存放结果是不一样;2、在这两种存放格式中,半字与字存放地址没有发生改变;3、以ARM为内核处理器都支持两种存放格式,详细设置见详细处理器说明。ARM处理器基础ARM第12页1.2ARM处理器程序与数据存放

程序是ARM处理器能够运行指令代码;数据是指令在运行中用到操作数或者变量。1、程序存放ARM处理器支持两种指令:

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

Thumb汇编指令:Thumb汇编指令是16位长,ARM处理器在执行地址aThumb汇编指令时,会从地址a+2取下一条指令。ARM7TDMI内核两种工作状态:ARM状态:此时执行32位字对齐ARM汇编指令。THUMB状态:此时执行16位半字对齐THUMB汇编指令。ARM处理器基础ARM第13页2、数据存放ARM7处理器对数据操作(读或写)支持三种数据长度:字节(8位)、半字(16位)、字(32位)。字节:从地址0x0000处取一个字节数据,则取出来内容为12;从地址0x0001处取一个字节数据,则取出来内容为34;半字:从地址0x0000处取一个半字数据,则取出来内容为3412;从地址0x0001处取一个半字数据,则取出来内容为5634;字:从地址0x0000处取一个字数据,则取出来内容为78563412;从地址0x0001处取一个字数据,则取出来内容为9A785634。注意:ARM7处理器在对数据操作时要边界对齐,要找到正确地址。ARM处理器基础ARM第14页三、处理器模式与内部存放器1.1处理器模式ARM7TDMI内核支持7种操作模式:用户模式(usr):运行应用程序普通模式;快中止模式(fiq):用来处理外设引发快速中止;中止模式(irq):用来处理通用中止;管理模式(svc):主要用于SWI(软件中止)和OS(操作系统)。此模式有额外特权,允许程序员进一步控制处理器;中止模式(abt):当数据或预取指失败时进入;系统模式(sys):是操作系统特权用户模式;未定义模式(und):当未定义指令被执行时进入。ARM处理器基础ARM第15页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_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15状态存放器CPSRCPSRSPSR无SPSR_svcSPSR_abtSPSR_undSPSR_irqSPSR_fiqARM状态下存放器组织结构(阴影部分存放器都是私有存放器)ARM处理器基础ARM第16页2、堆栈指针R13存放器R13(也称为堆栈指针或SP)有6个分组物理存放器。存放器R13通常作为堆栈指针SP。3、链接存放器R14存放器R14(也称为链接存放器或LR)有6个分组物理存放器。存放器R14有三种用途:1、当发生异常时,它被设置为该异常返回地址;2、在执行分支和链接(BL)指令时,它用于保留子程序返回地址;3、而在其它时候,作为一个通用存放器来对待。1、普通通用存放器R0~R12存放器R0~R12为保留数据或地址值普通通用存放器。存放器R0~R7为未分组存放器;存放器R8~R12为分组存放器。4、程序计数器R15存放器R15(也称为程序计数器或PC)总是用于特殊用途,它总是指向下一条要读取指令地址。5、CPSR和SPSR

全部模式共享一个程序状态存放器CPSR。ARM处理器基础ARM第17页1.3程序状态存放器ARM7TDMI包含1个当前途序状态存放器(CPSR)和5个备份程序状态存放器(SPSR)。程序状态存放器包含以下内容:◎0~4:设置处理器运行模式;◎5:指示当前处理器工作状态;◎6、7:控制中止允许和禁止;◎28~31:保留ALU当前操作相关信息。

ARM处理器基础ARM第18页1、控制位CPSR低8位称为控制位。对各控制位定义以下:①T标志位

该位反应处理器操作状态。②中止禁止位

I和F是中止禁止位。③操作模式位

MO,M1,M2,M3和M4(M[4:0])是模式位,这些位决定了处理器操作模式。ARM处理器基础ARM第19页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处理器基础ARM第20页四、ARM异常处理1.1进入/退出异常

1、进入异常

内核刚进入异常状态时,会依次采取以下动作:①将原来执行程序下一条指令地址保留到链接存放器(LR)中。②复制CPSR到对应SPSR进行保留。③依据发生异常类型改变CPSR模式位值。④令程序计数器(PC)值指向异常处理向量所指下一条指令。⑤这时也可能设置中止禁能标志,以预防不可预计异常嵌套发生。ARM处理器基础ARM第21页2、退出异常①当完成异常处理,将退出该异常状态时,处理器应该进行以下动作:②将SPSR内容复制到CPSR中。③去除中止禁止标志。④移出LR并减去对应偏移量后赋值给PC。退出异常处理采取语句异常或入口LR保留值返回指令注释BL(跳转指令)RA+4MOVPC,R14RA(RunAddr)是指在进入异常前或程序发生跳转前执行最终一条程序物理地址。SWI(软中止)RA+4MOVSPC,R14未定义指令RA+4MOVSPC,R14预取中止RA+4SUBSPC,R14,#4快中止RA+4SUBSPC,R14,#4中止RA+4SUBSPC,R14,#4数据中止RA+8SUBSPC,R14,#8复位--ARM处理器基础ARM第22页以BL指令为例,下面解释为何BL返回指令是:MOVPC,R14。例:某段汇编指令①MOVR1,#1②BLnext③ADDR1,#2④next当处理器执行第①条语句时,第②条语句正在译码,PC指向第③条语句地址。第②条语句是一个BL跳转指令,译码结果告诉处理器,程序执行要发生跳转,所以指令预取被中止,即PC不会指向第④条语句,仍保持指向第③条语句地址。“BLnext”指令执行时,会将PC值(第③条语句地址)复制到LR中,然后跳转到next子程序运行,当子程序运行完,要想回到第③条语句继续执行,只要在next子程序最终加上指令“MOVPC,R14”即可。ARM处理器基础ARM第23页1.2六种异常模式

1、软件中止(SWI)执行软件中止指令将引发软件中止,并进入管理模式。退出异常处理执行语句:

MOVPC,R142、未定义指令(UDef)当内核碰到一个它不能执行指令,马上调用一个未定义指令陷阱处理程序。陷阱处理程序离开异常时执行语句:MOVSPC,R14ARM处理器基础ARM第24页3、快速中止请求(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标志来禁止(特权模式下)。ARM处理器基础ARM第25页5、中止(Abort)Abort产生,说明当前处理器操作不能完成。该情况能够经过ABORT输入信号来通知处理器。ABORT异常包含以下两种类型:①

预取指异常

发生在预取指令时。 退出预取指异常处理程序。SUBSPC,R14,#4;PC←R14-4②

数据异常

发生在数据操作时。经过以下中止处理程序退出语句:SUBSPC,R14,#8;PC←R14-8ARM处理器基础ARM第26页1.3异常中止向量与优先级当异常发生时,PC会跳转到异常中止向量地址处开始执行程序。地址异常中止类型入口时处理器操作模式0x00000000复位管理0x00000004未定义指令未定义0x00000008SWI(软件中止)管理0x0000000C中止(预取指)中止(取址)0x00000010中止(数据)中止(数据)0x00000014保留保留0x00000018IRQIRQ0x0000001CFIQFIQARM处理器基础ARM第27页五、本节附录1.1ARM处理器系列1、ARM7微处理器系列:ARM7系列微处理器为低功耗32位RISC处理器,最适合于对价位和功耗要求比较严格消费类应用。2、ARM9微处理器系列:

ARM9系列微处理器在高性能和低功耗特征方面提供最正确性能。

3、ARM9E微处理器系列:ARM9E系列微处理器为可综合处理器,使用单一处理器内核提供了单片机、DSP、Java应用系统处理方案。ARM处理器基础ARM第28页4、ARM10E微处理器系列:ARM10E系列微处理器含有高性能、低功耗特点。5、SecurCore微处理器系列:SecurCore含有ARM体系结构低功耗、高性能特点外,还提供了对安全处理方案支持。

6、StrongARM微处理器系列:IntelStrongARM处理器是采取ARM体系结构且高度集成32位RISC微处理器。7、Xscale微处理器系列:Xscale微处理器是基于ARMv5TE体系结构处理方案,是一款全性能、高性价比、低功耗微处理器。ARM处理器基础ARM第29页1.2Thumb状态下存放器集

Thumb状态下,可直接访问存放器:

◎8个通用存放器R0~R7;◎程序计数器PC;◎堆栈指针(SP);◎链接存放器(LR);◎CPSR(有条件访问)。ARM处理器基础ARM第30页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处理器基础ARM第31页ARM状态存放器与Thumb状态存放器关系:

◎Thumb状态R0~

温馨提示

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

评论

0/150

提交评论