与嵌入式系统-第七章_ARM微处理器编程模型.ppt_第1页
与嵌入式系统-第七章_ARM微处理器编程模型.ppt_第2页
与嵌入式系统-第七章_ARM微处理器编程模型.ppt_第3页
与嵌入式系统-第七章_ARM微处理器编程模型.ppt_第4页
与嵌入式系统-第七章_ARM微处理器编程模型.ppt_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

1、微处理器系统架构和嵌入式系统设计,第7章:ARM微处理器编程模型,7.1 ARM内核架构,7.2 ARM编程模型,7.2.1处理器工作状态,7.2.2处理器运行模式,7.2.3寄存器组织,7.2.4数据类型和存储格式,7.2.5异常,ARM是高级RISC机的缩写,公司设计了大量高性能、低成本、低能耗的处理器。ARM的特点是只设计不生产。它向世界上许多著名的半导体、软件和原始设备制造商授权技术,并提供服务。许可其他芯片制造商的技术,形成具有自身特点的ARM芯片的应用领域、3/95、ARM、工控领域过程控制、电源控制、数控机床、ABS无线通信领域基站、带蓝牙/定位的手机/PDA、全球定位系统网络应

2、用ADSL、路由器、交换机、VoIP消费类电子产品DVD、机顶盒、游戏机成像产品数码相机、打印机、录像机安防产品ATM机、POS机、考勤系统、SIM卡至今, 基于ARM技术的微处理器应用约占32位嵌入式微处理器75 80%的GSM/3G手机、99%的码分多址手机和世界上大多数PDA产品使用ARM嵌入式处理器,与“手持计算”相关的所有领域都由它们主导;4/95,ARM架构的特点,RISC简单的结构使得ARM内核非常小,功耗低,成本低,指令字段统一且固定长度,简化了指令解码,便于指令流水线设计采用加载/保存结构,数据处理操作只针对寄存器的内容,不直接操作内存,支持拇指(16位)/ARM(32位)双

3、指令集。它能很好地兼容8位/16位设备,每个数据处理指令控制算术逻辑单元和移位器,从而实现灵活简单的寻址方式,最大限度地利用ALU和移位器,执行效率高,地址自动增减寻址方式,优化程序周期,多寄存器加载和存储指令,实现最大的数据吞吐量,实现最快的代码执行,5/95,ARM处理器核心流水线的工作流程,ARM架构的版本,自诞生以来已经开发和定义了从V1到V7的七个不同版本。仅在原型ARM1中,支持基本数据处理指令(无乘法)、字节、半字和字的LOAD/STORE指令支持传输指令。包括子程序调用和链接指令支持软件中断指令SWI寻址空间位64MB(26位),2020年7月16日,95年7月,V2版本架构已

4、被放弃。它不再支持乘法和乘加指令,支持协处理器操作指令,支持基本内存和寄存器交换指令SWP/SWPB,支持快速中断模式。V3版本的架构已经被放弃。寻址范围已扩展到4GB(32位)。快速中断模式有两个以上的分组寄存器,并增加了状态寄存器CPSR/SPSR。异常处理返回MSR/MRS指令,便于异常处理。增加了挂起和未定义两种处理器模式。2020年7月16日,8/95,V4架构是目前使用最广泛的ARM架构。ARM7、ARM8、ARM9和StrongARM都采用这种版本的体系结构,增加了有符号/无符号半字和有符号字节加载/存储指令,增加了16位拇指指令集,完善了软件中断SWI指令的功能,增加了处理器的

5、特权模式。V5架构ARM10和XScale都采用这种版本的架构,以提高在ARM/Thumb状态之间的切换效率;增强型数字信号处理器指令集,包括所有算术运算和16位乘法运算;J-支持新的JAVA,提供了字节码执行的加速功能,增加了链接和交换指令BLX,增加了计数前导零指令CLZ,增加了软件断点指令,为协处理器增加了更多的可选指令,采用V6版本架构的ARM11处理器采用这种版本架构增加了多媒体功能来扩展SIMD。提高嵌入式应用系统的音视频处理能力,改善内存管理,改善混合端和错位数据支持,使小端系统支持大端数据V7架构。Cortex-A/M/R系列处理器于2005年发布,采用Thumb-2技术。m系

6、列传统单芯片市场A系列高端应用处理器市场R系列实时控制,2020-7-16,10/95,ARM处理器内核与架构的对应关系,ARM处理器(内核)的命名规则,ARMxyzTDMIEJF-S x系列数字y存储管理/保护单元zCache TThumb指令集DJTAG调试器m快速乘法器I嵌入式跟踪宏单元e增强型DSP指令JJazelle技术f矢量浮点单元集成内核,Arm7TDMi-S Arm926 EJ-S Arm7TdMi 2:带内存管理单元4:带内存管理单元6:不带内存管理单元和内存管理单元,0:标准缓存2:小缓存6:可变缓存,12/95,arm芯片、内核和中央处理器之间的关系,ARM中央处理器数据

7、路径,ARM中央处理器控制逻辑,ARM内核、ARM中央处理器、ARM芯片、ARM内核和ARM处理器(内核)的比较,ARM处理器(内核)简介,2020-7-16,16/95,7.2 ARM处理器的工作状态,ARM状态执行32位字ARM指令Thumb状态执行16 注:1 .处理器复位后处于ARM状态;2.处理器在异常处理期间进入ARM状态;3.如果处理器进入拇指状态的异常,异常返回仍将自动转换到拇指状态;4.状态切换不影响工作模式和寄存器内容。2020-7-16,20/95,切换ARM处理器的工作状态,使用跳转指令BX在ARM状态和Thumb状态之间切换处理器内核。从手臂状态切换到拇指状态。从Th

8、umb状态切换到arm状态ldr0,=可用bxr0,最低地址位为1,表示切换到Thumb状态,最低地址位为0,表示切换到ARM状态,跳转地址标签,最低2位为0,2020-7-16,21/95,除用户模式外,ARM处理器的工作模式为特权模式。在硬件设计中,只允许在特权模式下访问ARM内部寄存器和一些片内外设。此外,特权模式可以自由切换处理器模式,而用户模式不能直接切换到其他模式。这五种模式被称为异常模式。它们不仅可以通过程序切换来访问,还可以通过特定的异常来访问。每个异常模式都有一些独立的寄存器,以避免异常退出时用户模式的不可靠状态。这两种模式不能由异常进入,并且它们使用完全相同的寄存器组。系统

9、模式是特权模式,这使得操作系统可以方便地以用户模式访问寄存器,并且操作系统的一些特权任务可以使用这种模式来访问一些受控资源。在ARM状态的每种模式下,R0R7都是一个未分组的寄存器。注意:在异常处理中切换模式时,寄存器中的数据可能会被破坏,需要保护;R8R14是一个分组寄存器。它们对应于不同处理器模式下的不同物理寄存器。R8R12有一个专用于FIQ模式的数据包。这样,在FIQ中断发生后,可以加快FIQ的处理速度。R14是一个链接寄存器LR,它有两个特殊功能:用于保存子程序返回地址;根据不同的异常模式将其保存为异常返回地址(有些异常有一个小的固定偏移量)。R14(LR)寄存器和子程序调用,MOV

10、 PC,LR,R14(地址a),1。在程序1执行期间调用程序2;2。程序跳转到标签标签并执行程序2。3.同时,硬件将“BL标签”的下一条指令的地址存储到R14中;4.程序2执行后,将R14寄存器的内容放入PC机,返回程序1继续执行;2020-7-16,24/95,1。异常返回地址处理类似于子程序调用,由硬件自动完成。不同的是,有些异常有一个小的恒定偏移。2.当发生异常嵌套时,这些异常之间可能会发生冲突。如果在用户模式下发生IRQ中断嵌套,R14_irq中低级中断的返回地址将被高级中断的返回地址覆盖。R14(LR)寄存器和异常处理、地址a、未销毁、返回、地址B、R14_irq已销毁、返回、返回、

11、1。在用户模式下执行程序0;2.irq中断发生后,硬件在IRQ模式下将带有偏移量的返回地址存储到R14_irq寄存器中,用户模式下的R14不被破坏;3。IRQ服务程序1执行后,R14_irq寄存器的内容可以从偏移量中减去并存储在PC中,返回到先前中断的程序;4。如果IRQ中断在IRQ处理程序中打开,并且IRQ中断再次发生;5.硬件将返回地址保存在R14_irq寄存器中,原始保存的返回地址信息将被覆盖,导致错误;6.当程序2返回到程序1,然后在用户模式下返回到中断的程序时,出现错误,并且不会正确返回;解决方案是确保当发生中断嵌套或切换到其他处理器模式时,R14的相应版本不再保存任何有意义的值(将

12、R14放在堆栈上)。2020-7-16,25/95,R15寄存器的读取操作,ARM指令以字为单位,所以R15的最低两位总是0;R15的值是处理器正在获取的指令地址。由于流水线,在它和当前执行的指令的地址之间有一个偏移量(这个值对于某些ARM芯片是恒定的)。当使用STR/STM保存R15时,不同芯片(三级流水线的ARM7或五级流水线的ARM9)的PC偏移量可能为8或12,因此需要提前计算该芯片的PC偏移量。R1,个人电脑,# 4;将正在解码的指令地址保存在R1 STR PC,R0中;保存当前PC值=正在执行的指令的地址偏移LDR R0,R0;然后重新加载子帧0、r0和R1;计算偏移量,这是相同的

13、指令。R15中写入的值被视为指令地址,程序将从该地址继续执行(相当于执行无条件跳转);由于ARM指令受字限制,写入R15的值的最低两位通常为0b00。具体规则取决于内核结构的版本:在V3及以下版本中,写入R15的值的最低两位被忽略,因此跳转地址是从指令的实际目标地址(写入R15的值)和0xfffff fc阶段获得的;在V4和更高版本中,如果写入R15的值的最低两位不是0,结果将是不可预测的。R15(PC)寄存器写操作,2020-7-16,27/95,程序状态寄存器PSR,条件码标志,保留,控制位,溢出,借用/借用位扩展进位,零零,负,禁止IRQ,禁止FIQ,拇指状态,模式,n。但是,某些指令的

14、执行总是会影响条件代码标志。所有的ARM指令都可以指定是否需要通过条件字段来执行,而只有Thumb指令中的分支指令可以有条件地执行。每个例外模式都有SPSR在例外发生前拯救CPSR。CPSR和SPSR可以通过特殊指令(MRS/MSR)进入。28/95、程序状态寄存器CPSR模式位设置表、拇指状态和ARM状态之间的寄存器映射关系、低电平寄存器、高电平寄存器和拇指状态中的高电平寄存器(R8R15)不是标准寄存器组的一部分,但它可以由MOV、化学机械抛光和加法指令操作。30/95,exception,exception表示正常执行的程序流程由于某种原因暂时中止;ARM支持7种异常类型(P231表7-

15、6)和5种异常模式。如果同时出现多个异常,将按照优先级顺序进行处理;2020-7-16,31/95,复位异常复位,当复位引脚信号变为低电平时,ARM立即停止执行当前指令,导致复位异常;当复位再次变为高电平时,ARM处理器执行以下操作:1 .强制CPSR的M4:0成为b10011,进入管理模式;2.在CPSR设置I和F位;3.清除CPSR的T位;4.强制计算机从地址0 x00获取第一条指令;5.返回ARM状态并恢复执行;2020-7-16,32/95,异常中止,包括指令预取中止和数据中止;当预取被中止时,ARM将预取的指令标记为无效,但仅当指令到达流水线的执行阶段时才进入异常。如果一条指令由于分

16、支而没有在流水线中执行,那么中止将不会发生。当数据暂停时,数据访问被记录为无效,暂停程序应根据暂停的原因进行处理,以便能够访问数据。中止异常意味着对内存的访问失败。这种机制实际上保证了虚拟存储技术的实现。2020-7-16,33/95,中断异常(IRQ,FIQ),中断请求(IRQ)是由nIRQ引脚信号低电平引起的正常中断(nIRQ是内核信号,用户看不见)。IRQ的优先级低于FIQ,并且它被FIQ异常屏蔽。在特权模式下,可以通过在CPSR设置I位来禁用IRQ。快速中断请求(FIQ)适用于对紧急情况的快速响应。还有七个包寄存器(r8 _ FIQr14 _ fiq)在ARM状态下设置为fiq模式,这

17、可以加快上下文切换。在特权模式下,可以通过在CPSR设置f位来禁止FIQ异常。34/95,中断延迟。当FIQ中断被允许时,FIQ在最坏情况下的中断延迟由以下部分组成,即Tsyncmax(请求通过同步器的最长时间)。Tsyncmax为4个处理器周期。Tldm(最长指令的完成时间)。最长的指令是加载所有寄存器(包括个人计算机)的LDM指令。在零等待系统中,Tdm是20个处理器周期。Texc(数据暂停异常进入时间)。Texc是3个处理器周期。Tfiq(FIQ进入时间)。Tfiq是2个处理器周期。总延迟为29个处理器周期。在使用40兆赫处理器时钟的系统中,总延迟超过0.7毫秒.当延迟结束时,处理器在0 x1C执行指令。对于最大IRQ延迟,其计算类似于FIQ。如果必须允许FIQ具有更高的优先级,那么进入IRQ处理程序的延迟时间是随机的。未定义的指令异常。当ARM处理器遇到

温馨提示

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

评论

0/150

提交评论