《嵌入式系统及其应用课件》第二章嵌入式微处理器的体系结构.ppt

上传人(卖家):三亚风情 文档编号:3605208 上传时间:2022-09-24 格式:PPT 页数:101 大小:1.80MB
下载 相关 举报
《嵌入式系统及其应用课件》第二章嵌入式微处理器的体系结构.ppt_第1页
第1页 / 共101页
《嵌入式系统及其应用课件》第二章嵌入式微处理器的体系结构.ppt_第2页
第2页 / 共101页
《嵌入式系统及其应用课件》第二章嵌入式微处理器的体系结构.ppt_第3页
第3页 / 共101页
《嵌入式系统及其应用课件》第二章嵌入式微处理器的体系结构.ppt_第4页
第4页 / 共101页
《嵌入式系统及其应用课件》第二章嵌入式微处理器的体系结构.ppt_第5页
第5页 / 共101页
点击查看更多>>
资源描述

1、嵌入式系统及其应用嵌入式系统及其应用李李 登登 峰峰主要内容:主要内容:n一、一、ARM处理器概述处理器概述n二、二、ARM内核结构内核结构 n三、三、ARM中断与异常中断与异常n四、四、ARM寄存器组织寄存器组织n五、五、ARM的协处理器接口的协处理器接口n六、六、ARM的存储系统的存储系统n七、七、S3C2440微处理器微处理器一一、ARM处理器概述处理器概述 ARM(Advanced RISC Machines)是一家专是一家专门从事基于门从事基于RISC技术的芯片设计开技术的芯片设计开 发的公司,发的公司,但公司并不直接从事芯片生产,而是靠转让设但公司并不直接从事芯片生产,而是靠转让设

2、计许可获得收益。计许可获得收益。ARM微处理器内核产品是一个庞大产品系列,微处理器内核产品是一个庞大产品系列,采用采用ARM微处理器内核的微处理器芯片遍及微处理器内核的微处理器芯片遍及工业控制消费类电子产品、通信系统、网络系工业控制消费类电子产品、通信系统、网络系统、无线传输等各类产品市场,约占据了统、无线传输等各类产品市场,约占据了32位位RISC微处理器微处理器75%以上的市场份额。以上的市场份额。1.ARM处理器体系结构版本 从指令集体系结构版本来看,为了清楚从指令集体系结构版本来看,为了清楚地表达每个地表达每个ARM内核应用实例所使用的指内核应用实例所使用的指令集,令集,ARM公司定义

3、了公司定义了7种主要的种主要的ARM指指令集体系结构版本,以版本号令集体系结构版本,以版本号V1V7表示,表示,其中其中V1、V2、V3版本已经不再使用或未版本已经不再使用或未实现商业化。实现商业化。(1)V3版架构(目前已废弃)对原来的ARM体系结构作了较大的改动:n寻址空间增至32位(4GB);n当前程序状态信息从原来的R15寄存器移到当前程序状态寄存器CPSR中(Current Program Status Register)n增加了程序状态保存寄存器SPSR(Saved Program Status Register);n增加了两种异常模式,使操作系统代码可方便地使用数据访问中止异常、

4、指令预取中止异常和未定义指令异常;n增加了MRS/MSR指令,以访问新增的CPSR/SPSR寄存器;n增加了从异常处理返回的指令功能。(2)V4版架构是目前应用最广的ARM体系结构,不再强制要求与26位地址址空间兼容,而且还明确了哪些指令会引起未定义指令异常指令集中增加了以下功能:n符号化和非符号化半字及符号化字节的存/取指令;n增加了T变种,处理器可工作在Thumb状态,增加了16位Thumb指令集;n完善了软件中断SWI指令的功能;n处理器系统模式引进特权方式时使用用户寄存器操作;n把一些未使用的指令空间捕获为未定义指令。(3)V5版架构是在V4版的基础上增加了一些新的指令:n带有链接和交

5、换的转移BLX指令;n计数前导零CLZ指令;nBRK中断指令;n增加了数字信号处理指令(V5TE版);n为协处理器增加更多可选择的指令;n改进了ARM/Thumb状态之间的切换效率;n增加了两个E和J两个变种,其中E表示增强型DSP指令集,包括全部算法操作和16位乘法操作,J表示支持新的JAVA,提供字节代码执行的硬件和优化软件加速功能。(4)V6版架构在V5版的基础上强化了图形处理性能,增加了一些新的功能:n单指令多数据功能(Single Instruction,Multiple Data,SIMD),将语音及图像的处理功能提高到了原型机的4倍;nThumb增强功能,使得35%代码压缩;高性

6、能定点DSP功能;nJazelleTM功能,Java性能优化,速度可提高8倍。(5)v7构架是在V6版的基础上发展的,是目前ARM处理器体系结构的最高版本,并保持了对现存ARM解决方案的完整的代码兼容性。n采用了新型13级流水线,指令的吞吐率更高;n增加了硬件处理中断嵌套功能,具有更好的实时性;n采用了Thumb-2技术,比纯32位代码少使用31%的内存;n采用了NEON(可执行打包的 SIMD处理)技术,将DSP和媒体处理能力提高了进4倍,可加速多媒体和信号处理算法(如视频编码/解码、2D/3D 图形、游戏、音频和语音处理、图像处理技术、电话和声音合成),其性能至少为 ARMv6 SIMD性

7、能的2倍;n增加了支持改良的浮点运算,满足下一代3D图形、游戏以、信号分析及传统嵌入式控制需求。2.ARM处理器家族nARM7 FamilyUnified Cache内存管理内存管理流水线级流水线级别别ThumbDSPJazelleARM7TDMI无无无无3有有无无无无ARM7TDMI-S无无无无3有有无无无无ARM710T/720T8kMMU3有有无无无无ARM740T8k或或4kProtection Unit3有有无无无无ARM7EJ-S无无无无3有有有有有有ARM9 FamilyCache内存管理内存管理流水线流水线级别级别ThumbDSPJazelleARM9无无无无5有有无无无无AR

8、M920T16K/16kMMU5有有无无无无ARM922T8k/8kMMU5有有无无无无ARM940T4k/4kProtection Unit5有有无无无无ARM10 FamilyCache内存管内存管理理流水线流水线级别级别ThumbDSPJazelleARM10E无无无无6有有有有无无ARM1020E32k/32kMMU6有有有有无无ARM1022E16k/16kMMU6有有有有无无ARM10EJ-S无无无无6有有有有有有ARM1026EJ-S0,4-128k/0,4-128kMMU6有有有有有有ARM10TDMI无无无无6有有无无无无ARM1020T32k/32kMMU6有有无无无无AR

9、M11 FamilyCache内存内存管理管理流水线流水线级别级别ThumbDSPJazelle浮点浮点运算运算ARM1136J-S4-64kMMU8有有有有有有无无ARM1136JF-S4-64kMMU8有有有有有有有有ARM1156T2-S可配置可配置9Thumb-2有有无无无无ARM1156T2F-S可配置可配置9Thumb-2有有无无有有3.ARM产品命名规则可综合版本S支持向量浮点运算F支持Jazelle加速J基于TDMI增强型,支持DSP指令E支持Embedded ICE,支持嵌入式跟踪调试I支持快速乘法器M支持片上调试D支持Thumb指令集TcacheZ存储管理/保护单元Y处理器

10、系列,如ARM7/ARM9/ARM11等X含义后缀变量此外还必须注意:nARM7TDMI之后的所有ARM内核,即使“ARM”标志后没有包含那些字符,但也包含了TDMI的特性;处理器系列是共享相同硬件特性的一组处理器的具体实现。n例如,ARM7TDMI:nARM740T和ARM720T都共享相同的系列特性,都属于ARM7系列;nJTAG是由 IEEE1149。1标准测试访问端口(standard test access port)和边界扫描来描述的。它是ARM 用来发送和接受处理器内核与测试一起之间调试信息的一系列协议;嵌入式ICE宏单元(Embedded ICE macrocell)是建立在处

11、理器内部、用来设置断点和观察点的调试硬件。n可综合版本,意味着处理器内核是以源代码形式提供的。这种源代码形式又可以被编译成一种易于EDA工具使用的形式。家族架构內核主要特点ARM7ARMv4TARM7TDMI(-S)基本内核/无cache/无MMU,3级流水ARM710TARM7TDMI+8KB/8KB+MMUARM720TARM710T的超集ARM740TARM7TDMI+8KB/8KB+MPUARMv5TEJARM7EJ-SARM7TDMI+DSP+Jazelle+可综合ARM9ARMv4TARM9TDMI基本内核/无cache/无MMU,5级流水ARM920TARM9TDMI+16KB/

12、16KB+MMUARM922TARM9TDMI+8KB/8KB+MMUARM940TARM9TDMI+4KB/4KB+MPUARM9EARMv5TEARM946E-SARM9E+可变+MPU+可综合ARM966E-SARM9E+无cache+TCMs+可综合ARM968E-SARM9E+无cache+TCMs+可综合ARMv5TEJARM926EJ-SARM9E+无cache+MMU+Jazelle+可综合ARMv5TEARM996HSARM966E(无振荡器)ARM主要产品家族、架构、内核及主要特点关系ARM10EARMv5TEARM1020EARM10E+32KB/32KB+MMU+(VF

13、P)ARM1022EARM10E+16KB/16KB+MMU+(VFP)ARMv5TEJARM1026EJ-SARM10E+可变+MMU+(VFP)+Jazelle+可综合ARM11ARMv6ARM1136J(F)-SARM11+可变+MMU+JazelleDBX+(VFP)ARMv6T2ARM1156T2(F)-SARM11+可变+MMU+JazelleDBX+(VFP)ARMv6KZARM1176JZ(F)-SARM11+可变+MMU+JazelleDBX+(VFP)+TrustZoneARMv6KARM11 MPCoreARM11+可变+MMU+JazelleDBX+(VFP)+对称多核

14、处理器CortexARMv7-ACortex-A8可变动+MMU+VFP+NEON+Jazelle RCT+Thumb-2+TrustZoneARMv7-RCortex-R4(F)可变动+(MMU)+(FPU)+Embedded profileARMv7-MCortex-M3基本核心+无cache+MPUARMv7-MECortex-M4Optional 8 region MPU with sub regions and background region二、二、ARM内核结构内核结构T功能模块功能模块(16 Thumb):可以在可以在兼顾性能的同时减少代码尺寸。兼顾性能的同时减少代码尺寸。M

15、功能模块功能模块:(增强型乘法器增强型乘法器)可生可生成全成全64位的结果。位的结果。D功能模块功能模块(Debug):该内核中放该内核中放置了用于调试的结构。置了用于调试的结构。I功能模块功能模块(EmbeddedICE Logic):用于实现断点观测及变量用于实现断点观测及变量观测的逻辑电路部分观测的逻辑电路部分 ARM内核内核TMDIARM9内核模块示意图ARM内核采用了内核采用了RISC型处理器结构,具有低功耗、型处理器结构,具有低功耗、成本低、功能强等突出优势,在嵌入式系统及应用成本低、功能强等突出优势,在嵌入式系统及应用领域具有重要的影响,其主要特点包括:领域具有重要的影响,其主要

16、特点包括:n采用了采用了RISC型处理器结构;型处理器结构;n低功耗、成本低、功能强;低功耗、成本低、功能强;n采用采用ARM/Thumb(32位位/16位)双指令集;位)双指令集;n具有多处理器状态模式;具有多处理器状态模式;n具有在线仿真调试功能;具有在线仿真调试功能;n具有协处理器接口;具有协处理器接口;n具有优化设计的片上总线具有优化设计的片上总线AMBA(AHB/ASB/APB);n具有灵活方便的接口。具有灵活方便的接口。1.ARM7TDMI主处理器逻辑结构三级指令流水线是三级指令流水线是ARM7TDMI的主要特征之一,三级指令的主要特征之一,三级指令流水线指令的执行分为取指、译码和

17、执行三个阶段,各阶段流水线指令的执行分为取指、译码和执行三个阶段,各阶段所完成的操作详细分解表如下:所完成的操作详细分解表如下:ARM7TDMI单周期指令最佳流水线MOV、ADD、SUB指令为单周期指令。从指令为单周期指令。从T1开始,用开始,用3个时个时钟周期执行了钟周期执行了3条指令,指令平均周期数等于条指令,指令平均周期数等于1个时钟周期。个时钟周期。2.ARM9TDMI主处理器通用内核结构3.ARM920T内核结构 4.ARM启动方式nARM内核真正支持的启动方式只有一个:内核真正支持的启动方式只有一个:通过操作通过操作CP15来实现对来实现对reset vector的重的重定向定向

18、nmemory remap:这一机制并非:这一机制并非ARM内内核本身所支持的,而是在核本身所支持的,而是在SoC的时候人为的时候人为修改修改memory的访问逻辑而实现的的访问逻辑而实现的 5.ARM处理器运行模式处理器模式处理器模式说明说明备注备注 用户用户 (usr)正常程序执行模式正常程序执行模式不能直接切换到其它模式不能直接切换到其它模式 系统系统 (sys)运行操作系统的特权任务运行操作系统的特权任务与用户模式类似,但具有可以直与用户模式类似,但具有可以直接切换到其它模式等特权接切换到其它模式等特权 快中断快中断 (fiq)支持高速数据传输及通道支持高速数据传输及通道处理处理FIQ

19、异常响应时进入此模式异常响应时进入此模式 中断中断 (irq)用于通用中断处理用于通用中断处理IRQ异常响应时进入此模式异常响应时进入此模式 管理管理 (svc)操作系统保护模式操作系统保护模式系统复位和软件中断响应时进入系统复位和软件中断响应时进入此模式此模式 中止中止 (abt)用于支持虚拟内存和用于支持虚拟内存和/或存或存储器保护储器保护在在ARM7TDMI没有大用处没有大用处 未定义未定义 (und)支持硬件协处理器的软件支持硬件协处理器的软件仿真仿真未定义指令异常响应时进入此模未定义指令异常响应时进入此模式式、ARM微处理器的运行模式可以通过软件微处理器的运行模式可以通过软件改变,也

20、可以通过外部中断或异常处理改变。改变,也可以通过外部中断或异常处理改变。、大多数的应用程序运行在用户模式下,当、大多数的应用程序运行在用户模式下,当处理器运行在用户模式下时,某些被保护的系统资处理器运行在用户模式下时,某些被保护的系统资源是不能被访问的。源是不能被访问的。、除用户模式以外,其余的所有、除用户模式以外,其余的所有6种模式称种模式称为非用户模式或特权模式为非用户模式或特权模式(Privileged Modes);、其中除去用户模式和系统模式以外的、其中除去用户模式和系统模式以外的5种种又称为异常模式又称为异常模式(Exception Modes),常用于处理,常用于处理中断或异常中

21、断或异常,以及需要访问受保护的系统资源等情况。以及需要访问受保护的系统资源等情况。ARM微处理器运行模式要注意的问题微处理器运行模式要注意的问题nARM体系中有以下3种方式控制程序的执行流程。n1.顺序执行:每执行一条ARM指令,程序计数器寄存器的值加4个字节;每执行一条Thumb指令,程序计数器寄存器的值加两个字节。n2.跳转:通过跳转指令,程序可以跳转到特定的地址标号处执行,或者跳转到特定的子程序处执行。n3.异常:当异常或中断发生时,系统执行完当前指令后,将跳转到相应的异常处理程序处执行。异常是指处理器正常的程序执行流程发生暂时的停止。三、三、ARM中断与异常中断与异常1.ARM中断与异

22、常类型 异常类型复位(reset)当处理器的复位引脚有效时,系统产生复位异常,程序跳转到复位异常处理程序执行。复位异常中断通常用在下面几种情况下:系统上电、系统复位、软复位。未定义指令(undefined instruction)当ARM处理器或协处理器遇到不能处理的指令时,产生未定义指令异常,可使用异常机制进行软件仿真软件中断(software interrupt)该异常由执行SWI指令产生,可用于用户模式下的程序调用特权操作指令,可使用该异常机制实现系统功能调用。指令预取中止(prefech abort)若处理器预取指令的地址不存在,或该地址不允许当前指令访问,存储器会向处理器发出终止信号

23、,但当预取的指令被执行时,才会产生指令预取中止异常。数据中止(data abort)若处理器数据访问指令的地址不存在,或该地址不允许当前指令访问时,产生数据中止异常。外部中断请求(irq)当处理器的外部中断请求引脚有效,且CPSR中的1位为0时,产生IRQ异常,系统的外设可通过该异常请求中断服务。快速中断请求(fiq)当处理器的快速中断请求引脚有效,且CPSR中的F位为0时,产生FIQ异常。当一个异常出现以后,当一个异常出现以后,ARM微处理器会执行以下几步操微处理器会执行以下几步操作:作:n(1)保存处理器当前状态、中断屏蔽位以及各条件标志位。将下一条指令的地址存入相应连接寄存器,以便程序在

24、处理异常返回时能从正确的位置重新开始执行。n(2)根据异常类型,设置CPSR中相应的位 包括设置CPSR中的位,使处理器进入相应的执行模式;设置CPSR中的位,禁止IRQ中断,当进入FIQ模式时,禁止FIQ中断。n(3)将程序计数器设置为该异常中断的中断向量地址,之后跳转到相应的异常中断处理程序处执行。n(4)还可以设置中断禁止位,以禁止中断发生。如果异常发生时,处理器处于Thumb状态,则当异常向量地址加载PC时,处理器自动切换到ARM状态。2.异常的响应及返回类型地址异常类型进入时的模式进入时I的状态进入时F的状态0 x0000 0000复位管理 禁止禁止0 x0000 0004未定义指令

25、未定义IF0 x0000 0008软件中断(SWI)管理禁止F0 x0000 000C预取中止(指令)中止IF0 x0000 0010数据中止中止IF0 x0000 0014保留保留0 x0000 0018IRQ中断禁止F0 x0000 001CFIQ快中断禁止禁止3.中断与异常入口向量 ARM处理器有处理器有37个寄存器:个寄存器:31个通用寄存器,个通用寄存器,6个状态寄存器。个状态寄存器。1.通用寄存器 通用寄存器包括通用寄存器包括R0R15,可以分为三类:,可以分为三类:未分组寄存器未分组寄存器 R0-R7分组寄存器分组寄存器 R8R14 寄存器类别寄存器在汇编中的名称各模式下实际访问

26、的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器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

27、无SPSR_abtSPSR_abt SPSR_undSPSR_irqSPSR_fiqSPSR_fiqSPSR_irqSPSR_undSPSR_abtSPSR_abtCPSRR15R14_fiqR14_irqR14_undR14_abtR14_svcR14R13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8R7R6R5R4R3R2R1R0所有的37个寄存器,分成两大类:31个通用32位寄存器;6个状态寄存器。寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定

28、义中断快中断通用寄存器和程序计数器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_abtSPSR_

29、abt SPSR_undSPSR_irqSPSR_fiqR13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8R7R6R5R4R3R2R1R0 在汇编语言中寄存器R0R13为保存数据或地址值的通用寄存器。它们是完全通用的寄存器,不会被体系结构作为特殊用途,并且可用于任何使用通用寄存器的指令。寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(

30、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_abtSPSR_abt SPSR_undSPSR_irqSPSR_fiq 其中R0R7为未分组的寄存器,也就是说对于任何处理器模式,这些

31、寄存器都对应于相同的32位物理寄存器。寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器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_un

32、dR14_irqR14_fiqR15(PC)R15状态寄存器CPSRCPSRSPSR无SPSR_abtSPSR_abt SPSR_undSPSR_irqSPSR_fiqR14_fiqR14_irqR14_undR14_abtR14_svcR14R13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8 寄存器R8R14为分组寄存器。它们所对应的物理寄存器取决于当前的处理器模式,几乎所有允许使用通用寄存器的指令都允许使用分组寄存器寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户

33、系统管理中止未定义中断快中断通用寄存器和程序计数器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_

34、abtSPSR_abt SPSR_undSPSR_irqSPSR_fiqR12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8 寄存器R8R12有两个分组的物理寄存器。一个用于除FIQ模式之外的所有寄存器模式,另一个用于FIQ模式。这样在发生FIQ中断后,可以加速FIQ的处理速度。寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6

35、)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_abtSPSR_abt SPSR_undSPSR_irqSPSR_fiq 寄存器R13、R14分别有6个分组的物理寄存器。一个用于用户和系统模式,其余5个分别用于5种异常模式。R14_fiqR14_irqR14_undR1

36、4_abtR14_svcR14R13_fiqR13_irqR13_undR13_abtR13_svcR13寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器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

37、_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15状态寄存器CPSRCPSRSPSR无SPSR_abtSPSR_abt SPSR_undSPSR_irqSPSR_fiq 寄存器R13常作为堆栈指针(SP)。在ARM指令集当中,没有以特殊方式使用R13的指令或其它功能,只是习惯上都这样使用。但是在Thumb指令集中存在使用R13的指令。寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v

38、2)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_abtSPSR_abt SPSR_undSPSR_irqSPSR_fiq R14为链接寄存器(LR),在结构上有两个特殊功能:在每种模式下

39、,模式自身的R14版本用于保存子程序返回地址;当发生异常时,将R14对应的异常模式版本设置为异常返回地址(有些异常有一个小的固定偏移量)。Lable程序A程序BR14nR14(LR)寄存器与子程序调用)寄存器与子程序调用BL Lable地址A?MOV PC,LRR14(地址A)Lable?1.1.程序程序A A执行过程中调执行过程中调用程序用程序B B;调用流程调用流程2.2.程序跳转至标号程序跳转至标号LableLable,执行程序,执行程序B B。同。同时硬件将时硬件将“BL Lable”BL Lable”指令的下一条指令所在指令的下一条指令所在地址存入地址存入R14R14(LRLR);)

40、;3.3.程序程序B B执行最后,将执行最后,将R14R14寄存器的寄存器的内容放入内容放入PCPC,返回程序,返回程序A A;R14R14_irq用户模式下的程序IRQ模式下的程序AaB.XA地址A地址A1.执行用户模式下的程序;2.发生IRQ中断,硬件将某个地址存入IRQ模式下的R14_irq寄存器,用户模式下的R14没有被破坏;3.IRQ服务程序A执行完毕,将R14_irq寄存器的内容减去某个常量后存入PC,返回之前被中断的程序;未被破坏IRQ模式下的程序BareturnB.XA地址B地址B4.如果在IRQ处理程序中打开IRQ中断,并且再次发生IRQ中断;5.硬件将返回地址保存在R14_

41、irq寄存器中,原来保存的返回地址将被覆盖,造成错误;R14_irq 被破坏6.在程序B返回到程序A,然后在返回到用户模式下被中断的程序时,发生错误,将不能正确返回;returnreturnnR14寄存器注意要点寄存器注意要点寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器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_f

42、iqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15状态寄存器CPSRCPSRSPSR无SPSR_abtSPSR_abt SPSR_undSPSR_irqSPSR_fiq 寄存器R15为程序计数器(PC),它指向正在取指的地址。可以认为它是一个通用寄存器,但是对于它的使用有许多与指令相关的限制或特殊情况。如果R15使用的方式超出了这些限制,那么结果将是不可预测的。读读R15的限制的限制 正常操作时,从正常操作时

43、,从R15读取的值是处理器正在取指的地读取的值是处理器正在取指的地址,即当前正在执行指令的地址加上址,即当前正在执行指令的地址加上8个字节(两条个字节(两条ARM指令的长度)。由于指令的长度)。由于ARM指令总是以字为单位,所以指令总是以字为单位,所以R15寄存器的最低两位总是为寄存器的最低两位总是为0。LDR R0,PC?PCPC-4PC-8正在执行正在译码正在取指流水线状态地址程序代码寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6

44、(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_abtSPSR_abt SPSR_undSPSR_irqSPSR_fiq 寄存器CPSR为程序状态寄存器,在异常模式中,另外一个寄存器“程序状态保存寄

45、存器(SPSR)”可以被访问。每种异常都有自己的SPSR,在进入异常时它保存CPSR的当前值,异常退出时可通过它恢复CPSR。NZCV IM0M1M2M3M4TF.31 30 29 28 27 26 8 7 6 5 4 3 2 1 0条件代码标志保留控制位溢出标志oVerflow进位或借位扩展 Carry零 Zero负或小于 NegativeIRQ禁止 InterruptFIQ禁止 Fast状态位 Thumb模式位 ModeNZCVIM0M1M2M3M4TF2.程序状态寄存器 N、Z、C、V均为条件码标志位。它们的内容可被均为条件码标志位。它们的内容可被算术或逻辑运算的结果所改变,并且可以决定

46、某条指令算术或逻辑运算的结果所改变,并且可以决定某条指令是否被执行。是否被执行。标志位标志位含义含义N当用两个补码表示的带符号数进行运算时,当用两个补码表示的带符号数进行运算时,N=1表表示运算的结果为负数;示运算的结果为负数;N=0表示运算的结果为正数表示运算的结果为正数或零或零ZZ=1表示运算的结果为零;表示运算的结果为零;Z=0表示运算的结果为表示运算的结果为非零非零C可以有可以有4种方法设置种方法设置C的值;的值;加法运算(包括比较指令加法运算(包括比较指令CMP);当运算结果产);当运算结果产生了进位时(无符号数溢出),生了进位时(无符号数溢出),C=1,否则,否则C=0;减法运算(

47、包括比较指令减法运算(包括比较指令CMP);当运算时产生);当运算时产生了借位(无符号数溢出),了借位(无符号数溢出),C=0,否则,否则C=1;对于包含移位操作的非加对于包含移位操作的非加/减运算指令,减运算指令,C为移出值为移出值的最后一位;的最后一位;对于其它的非加对于其它的非加/减运算指令,减运算指令,C的值通常不改变的值通常不改变条条件件码码的的具具体体含含义义PSR的低的低8位位(包括包括I、F、T和和M4:0)称为控制位,当发生称为控制位,当发生异常时这些位可以被改变。如果处理器运行特权模式,这些异常时这些位可以被改变。如果处理器运行特权模式,这些位也可以由程序修改。位也可以由程

48、序修改。中断禁止位中断禁止位I、FI1 禁止禁止IRQ中断中断F1 禁止禁止FIQ中断中断T标志位:该位反映处理器的运行状态。标志位:该位反映处理器的运行状态。对于对于ARM体系结构体系结构v5及以上版本的及以上版本的T系列处理器,当该系列处理器,当该位为位为1时,程序运行于时,程序运行于Thumb状态,否则运行于状态,否则运行于ARM状态。状态。非非T系列处理器,当该位为系列处理器,当该位为1时,执行下一条指令以引起未定时,执行下一条指令以引起未定义的指令异常;当该位为义的指令异常;当该位为0时,表示运行于时,表示运行于ARM状态。状态。运行模式位运行模式位M4:0:M0、M1、M2、M3、

49、M4是模式位。是模式位。这些位决定了处理器的运行模式。具体含义如下表:这些位决定了处理器的运行模式。具体含义如下表:M4:0 处理器模式处理器模式可访问的寄存器可访问的寄存器0b10000 用户模式用户模式PC,CPSR,R0R140b10001 FIQ模式模式PC,CPSR,SPSR_fiq,R14_fiqR8_fiq,R7R00b10010 IRQ模式模式PC,CPSR,SPSR_irq,R14_isqR13_isq,R12R00b10011管理模式管理模式PC,CPSR,SPSR_svc,R14_svcR13_svc,R12R00b10111中止模式中止模式PC,CPSR,SPSR_ad

50、t,R14_adtR13_adt,R12R00b11011未定义模式未定义模式PC,CPSR,SPSR_und,R14_undR13_und,R12R00b11111系统模式系统模式PC,CPSR,(ARM v4及以上版本及以上版本),R1R0注意:注意:并不是所有的运行模式位的组合都是有效的,其他的并不是所有的运行模式位的组合都是有效的,其他的组合结果会导致处理器进入一个不可恢复的状态!组合结果会导致处理器进入一个不可恢复的状态!PSR中的其余位为保留位,当改变中的其余位为保留位,当改变PSR中的条件码标志中的条件码标志位或者控制位时,保留位不要改变,在程序中也不要使用保位或者控制位时,保留

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

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

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


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

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


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