1、微处理器系统结构与嵌入式系统设计微处理器系统结构与嵌入式系统设计1 1第七章第七章 ARMARM微处理器编程模型微处理器编程模型4学时学时微处理器系统结构与嵌入式系统设计微处理器系统结构与嵌入式系统设计第七章第七章 ARMARM微处理器编程模型微处理器编程模型7.1 ARM 内核体系结构内核体系结构(了解)(了解)ARM 体系结构版本体系结构版本ARM 内核简介内核简介7.2 ARM 编程模型编程模型(理解)(理解)处理器工作状态处理器工作状态处理器运行模式处理器运行模式寄存器组织寄存器组织数据类型和储存格式数据类型和储存格式异常异常2 2微处理器系统结构与嵌入式系统设计微处理器系统结构与嵌入
2、式系统设计3 37.1 ARM7.1 ARM内核体系结构内核体系结构nARM是Advanced RISC Machines的缩写,该企业设计了大量高性能、廉价、耗能低的RISC (精简指令集)处理器nARM公司的特点是只设计芯片,而不生产。它将技术授权给世界上许多著名的半导体、软件和OEM厂商,并提供服务将技术授权给其它芯片厂商形成各具特色的ARM芯片微处理器系统结构与嵌入式系统设计微处理器系统结构与嵌入式系统设计4 4ARMARM处理器的应用处理器的应用n工业控制领域:工业控制领域:过程控制、电力控制、数控机床过程控制、电力控制、数控机床n无线通讯无线通讯领域领域:目前已有超过目前已有超过8
3、5%的无线通讯设备采用了的无线通讯设备采用了ARM 技术技术n网络应用网络应用: ADSL 、路由器、交换机、路由器、交换机、VoIPn消费类电子消费类电子产品产品:数字音频播放器、数字机顶盒和游戏机数字音频播放器、数字机顶盒和游戏机n成像和安全成像和安全产品产品:语音及视频处理、数码相机、打印机、语音及视频处理、数码相机、打印机、手机中的手机中的32位位SIM 智能卡也采用了智能卡也采用了ARM 技术技术u到目前为止,基于到目前为止,基于ARM技术的微处理器应用约占据了技术的微处理器应用约占据了32位嵌入位嵌入式微处理器式微处理器75以上的市场份额以上的市场份额u全球全球80%的的GSM/3
4、G手机、手机、99%的的CDMA手机以及绝大多数手机以及绝大多数PDA产品均采用产品均采用ARM体系的嵌入式处理器,体系的嵌入式处理器,u“掌上计算掌上计算”相关的所有领域皆为其所主宰相关的所有领域皆为其所主宰微处理器系统结构与嵌入式系统设计微处理器系统结构与嵌入式系统设计5 5ARMARM体系结构的特点体系结构的特点nRISC芯片,其简单的结构使ARM内核非常小、功耗低、成本低、性能高n统一和固定长度的指令域,简化了指令的译码,便于指令流水线设计n装载/保存结构,数据处理操作只针对寄存器的内容,而不直接对存储器进行操作n支持Thumb(16位)/ARM(32位)双指令集,能很好的兼容8位/1
5、6位器件n每条数据处理指令都对算术逻辑单元和移位器控制,实现了ALU和移位器的最大利用n寻址方式灵活简单,执行效率高n地址自动增/减寻址模式,优化程序循环n多寄存器装载和存储指令实现最大数据吞吐量n所有指令的条件执行实现最快速的代码执行微处理器系统结构与嵌入式系统设计微处理器系统结构与嵌入式系统设计ARMARM处理器内核流水线工作流程处理器内核流水线工作流程6 6微处理器系统结构与嵌入式系统设计微处理器系统结构与嵌入式系统设计7 7nARM架构自诞生至今,已发展并定义了七种不同的版本,从V1到V7版架构nV1版架构n该版架构只在原型机ARM1中出现过,其基本性能有:u基本的数据处理指令(无乘法
6、)u字节、半字和字的LOAD/STORE指令u转移指令,包括子程序调用及链接指令u软件中断指令u寻址空间:64MB(26根地址线)微处理器系统结构与嵌入式系统设计微处理器系统结构与嵌入式系统设计8 8nV2版架构,现在已经废弃不再使用u该版架构对V1版进行了扩展,增加了以下功能:u乘法和乘加指令u支持协处理器操作指令u快速中断模式uSWP/SWPB基本存储器与寄存器交换指令u寻址空间:64M字节nV3版架构,目前已废弃不用u寻址范围扩展到32位u快速中断模式中具有的两个以上的分组寄存器;u具有原子性加载/存储指令SWP和SWPBu比V2增加了当前程序状态寄存器CPSR和程序状态保存寄存器SPS
7、R以便于异常的处理u比V2增加了中止和未定义二种处理器模式u增加了从异常处理返回的指令功能及MSR/MRS指令微处理器系统结构与嵌入式系统设计微处理器系统结构与嵌入式系统设计9 9ARMARM体系结构体系结构nV4V4版架构版架构uV4版架构是目前应用最广的ARM体系结构,对V3版架构进行了进一步扩充,使ARM使用更加灵活uARM7、ARM8、ARM9和StrongARM都采用该版架构u有符号、无符号的半字和有符号字节的Load/Store指令u增加了16位Thumb指令集u完善了软件中断SWI指令的功能u增加了处理器的特权模式微处理器系统结构与嵌入式系统设计微处理器系统结构与嵌入式系统设计1
8、010ARMARM体系结构体系结构nV5版架构n在V4版基本上增加了一些新的指令,ARM10和Scale都采用该版架构。新增功能有:u改进了ARM/Thumb状态之间的切换效率;uE-增强型DSP指令集,包括全部算法操作和16位乘法操作;uJ-支持新的JAVA,提供字节代码执行的硬件和优化软件加速功能u带有链接和交换的BLX指令u计数前导零CLZ指令u软件断点指令增加了信号处理指令为协处理器增加更多可选择的指令微处理器系统结构与嵌入式系统设计微处理器系统结构与嵌入式系统设计11 11ARMARM体系结构体系结构nV6版架构n2001年发布,ARM11处理器中采用此架构。此架构在V5版的基础上增
9、加了以下功能:u增加了 SIMD功能扩展,提高了嵌入式应用系统的音、视频处理能力u改进了内存管理u改进了混合端与不对齐数据支持,使得小端系统支持大端数据nV7版架构版架构u2005年发布,采用Thumb-2技术。uM系列传统单片机市场uA系列高端应用处理器市场Cortex-A8TM处理器采用的就是V7版的结构uR系列实时性控制微处理器系统结构与嵌入式系统设计微处理器系统结构与嵌入式系统设计ARMARM处理器核与体系结构的对应关系处理器核与体系结构的对应关系核体 系 结 构ARM1ARMv1ARM2ARMv2ARM2aS,ARM3ARMv2aARM6,ARM600,ARM610,ARM7,ARM
10、700,ARM710ARMv3Strong ARM,ARM8,ARM810ARMv4ARM7TDMI,ARM710T,ARM720T,ARM740T,ARM9TDMI,ARM920T,ARM940TARMv4TARM9E-S,ARM10TDMI,ARM1020EARMv5TEARM1136J( (F) )-S,ARM1176JZ( (F) )-S,ARM11MPCARMv6ARM1156T2( (F) )-SARMv6T2ARM Cortex-M,ARM Cortex-R,ARM Cortex-AARMv71212微处理器系统结构与嵌入式系统设计微处理器系统结构与嵌入式系统设计ARMARM处理
11、器(核)命名规则处理器(核)命名规则ARMxyzTDMIEJF-SARMxyzTDMIEJF-Sxx系列号系列号 yy存储管理存储管理/ /保护单元保护单元zCachezCacheTThumbTThumb指令集指令集DJTAGDJTAG调试器调试器MM快速乘法器快速乘法器II嵌入式跟踪宏单元嵌入式跟踪宏单元EE增强增强DSPDSP指令指令JJJazelleJazelle技术技术FF向量浮点单元向量浮点单元SS可综合的内核可综合的内核ARM7TDMI-SARM7TDMI-SARM926EJ-SARM926EJ-SARM966ESARM966ESARM1022EARM1022E2:带带MMU4:带
12、带MPU6:无无MMU和和MPU0:标准标准cache2:小小cache6:可变可变cache1313微处理器系统结构与嵌入式系统设计微处理器系统结构与嵌入式系统设计ARMARM芯片、内核和芯片、内核和CPUCPU的关系的关系ARM CPU数据通路数据通路ARM CPU控制逻辑控制逻辑ARM 内核内核ARM CPUARM 芯片芯片ARM 内核内核微处理器系统结构与嵌入式系统设计微处理器系统结构与嵌入式系统设计1515ARMARM处理器核简介处理器核简介nARM公司开发了很多系列的ARM处理器核,目前最新的系列已经是ARM11,而ARM6核以及更早的系列已经很罕见了。目前应用比较广泛的系列是:A
13、RM7ARM9ARM9EARM10SecurCoreXscaleARM11Cortex项目项目ARM7ARM9ARM10ARM11流水线流水线3568典型频率典型频率(MHz)80150260335功耗功耗(mW/MHz)0.060.19(+cache) 0.5(+cache) 0.4(+cache)性能性能MIPS*/MHz0.971.11.31.2架构架构冯冯 诺伊曼诺伊曼哈佛哈佛哈佛哈佛哈佛哈佛微处理器系统结构与嵌入式系统设计微处理器系统结构与嵌入式系统设计1616微处理器系统结构与嵌入式系统设计微处理器系统结构与嵌入式系统设计1717ARM系系列列微处理器核微处理器核特点特点ARM7A
14、RM7TDMI:整数处理核:整数处理核ARM7TDMI 处理器的可处理器的可综合版本;综合版本; ARM720T:带:带MMU的处理的处理器核心,支持操作系统;器核心,支持操作系统;ARM7EJ-S:带有:带有DSP和和Jazelle TM 技术,能够实现技术,能够实现Java加速功能加速功能l 冯冯 诺伊曼体系结构;诺伊曼体系结构;l ARMTDMI是目前应用最广的微处理是目前应用最广的微处理器核器核l ARM720T带有带有MMU和和8KB的指令数的指令数据混合据混合cache;l ARM7EJ-执行执行ARMv5TEJ指令,指令,5级级流水线,提供流水线,提供Java加速指令,没有存加速
15、指令,没有存储器保护。储器保护。ARM9ARM920T:带有独立的:带有独立的16KB 数据和指令数据和指令Cache;ARM922T:带有独立的:带有独立的8位位KB 数据和指令数据和指令Cache;ARM940T包括更小数据和包括更小数据和指令指令Cache和一个和一个MPUl 基于基于ARM9TDMI ,带,带16位的位的Thumb指令集,增强代码密度最多到指令集,增强代码密度最多到35%;l 在在0.13m工艺下最高性能可达到工艺下最高性能可达到300MIPS(Dhrystone 2.1测试标准)测试标准)l 集成了数据和指令集成了数据和指令Cache;l 32位位AMBA总线接口的总
16、线接口的MMU支持;支持;l 可在可在0.18m、 0.15m和和0.13m工艺的工艺的硅芯片上实现。硅芯片上实现。ARMARM处理器核简介处理器核简介微处理器系统结构与嵌入式系统设计微处理器系统结构与嵌入式系统设计1818ARM9EARM926EJ-S:Jazelle 技术,有技术,有MMU,可配置的数据和指令,可配置的数据和指令Cache,TCM接口;接口;ARM946E-S:可配置的数据和指:可配置的数据和指令令Cache及及TCM;ARM966E-S:针对要求高性能和:针对要求高性能和低功耗的可预测的指令执行时间的低功耗的可预测的指令执行时间的硬实时应用设计硬实时应用设计 ARM968
17、E-S:最小、功耗最小:最小、功耗最小的的 ARM9E系列处理器,针对嵌入系列处理器,针对嵌入式实时应用设计;式实时应用设计;lARM9E是针对微控制器、是针对微控制器、DSP和和Java的单处的单处理器解决方案;理器解决方案; lARM Jazelle 技术提供技术提供 8倍的倍的 Java 加速性能加速性能 (ARM926EJ-S) ;l5-级整数流水线;级整数流水线; l在在0.13m工艺下最高性能可达到工艺下最高性能可达到300MIPS(Dhrystone 2.1测试标准);测试标准);l可选择的可选择的 向量浮点单元向量浮点单元VFP9 协处理器指令协处理器指令优秀海浮点性能,对于优
18、秀海浮点性能,对于3D图形加速和实时控制图形加速和实时控制可达到可达到 215MFLOPS。l高性能的高性能的AHB总线,带总线,带MMUl可在可在0.18m, 0.15m, 0.13m工艺的硅芯片工艺的硅芯片上实现。上实现。 ARM10E ARM1020E:带:带DSP指令集,在片指令集,在片调试功能,独立的调试功能,独立的32KB数据和指数据和指令令Cache,MMU支持;支持;ARM1022E:与:与ARM1020E相同,相同,只是独立的数据和指令只是独立的数据和指令Cache变为变为16KB;ARM1026EJ-S:同时具有:同时具有MPU和和MMU,可综合版本;,可综合版本; l带分
19、支预测的带分支预测的6级整数流水线;级整数流水线;l在在0.13m工艺下最高性能可达到工艺下最高性能可达到430MIPS(Dhrystone 2.1测试标准);测试标准);l对于对于3D图形运算和实时控制采用图形运算和实时控制采用VFP协处理协处理器,浮点运算性能最高可达器,浮点运算性能最高可达650MFLOPS;l双双64位位AMBA总线接口和总线接口和64位内部总路线接位内部总路线接口;口;l优化的缓存结构提高了处理器访问低速存储优化的缓存结构提高了处理器访问低速存储器的性能;器的性能;l可在可在0.18m, 0.15m, 0.13m工艺的硅芯片工艺的硅芯片上实现上实现ARMARM处理器核
20、简介处理器核简介微处理器系统结构与嵌入式系统设计微处理器系统结构与嵌入式系统设计1919ARM11ARM11 MPCore:可综合的:可综合的多处理器核,多处理器核,1至至4个处理器个处理器可配置;可配置;ARM1136J(F)-S:可配置的:可配置的数据和指令数据和指令Cache,可提供,可提供1.9位的位的MPEG4编码加速功编码加速功能;能;ARM1156T2(F)-S:带集成:带集成浮点协处理器,带内存保护浮点协处理器,带内存保护单元单元MPU ;ARM1176JZ(F)-S:带针对:带针对CPU和系统安全架构扩展的和系统安全架构扩展的TrustZone技术。技术。l增强的增强的Thu
21、mb、Jazelle、DSP扩展支扩展支持;持; l带片上和系统安全带片上和系统安全TrustZone 技术支技术支持持 ;l在在0.13m工艺下最高可达到工艺下最高可达到550MHz;lMPCore在在0.13m工艺下最高性能可工艺下最高性能可达到达到740MIPS(Dhrystone 2.1测试标测试标准);准);l支持多媒体指令支持多媒体指令SIMD;l采用三种电源模式:全速采用三种电源模式:全速/待命待命/休眠休眠l集成集成DMA的的TCMl低功耗、高性能。低功耗、高性能。 SecurCoreSC100:第一个:第一个32位安全处位安全处理器;、理器;、SC110:在:在SC100上增
22、加密钥协处理器;上增加密钥协处理器;SC200:带:带Jazelle技术的高技术的高级安全处理器;级安全处理器;SC210:在:在SC200上增加密上增加密钥协处理器钥协处理器lSecurCore是专门为智能卡、安全是专门为智能卡、安全IC提供的提供的32位安全处理器,位安全处理器, 为电子商务、为电子商务、银行、网络、移动多媒体、公共交通提银行、网络、移动多媒体、公共交通提供安全解决方案;供安全解决方案;l体积小、功耗低,代码压缩密度高;体积小、功耗低,代码压缩密度高;l为快速增长的为快速增长的Java卡平台提供卡平台提供Java加加速功能;速功能;ARMARM处理器核简介处理器核简介微处理
23、器系统结构与嵌入式系统设计微处理器系统结构与嵌入式系统设计2020CortexCortex-A:面向应用的微:面向应用的微处理器,针对复杂操作系处理器,针对复杂操作系统和应用程序设计;统和应用程序设计;Cortex-R:针对实时系统:针对实时系统的嵌入式处理器;的嵌入式处理器;Cortex-M:针对成本敏:针对成本敏感应用优化的深度嵌入式感应用优化的深度嵌入式处理器;处理器;l2004年发布,提供增强的媒体和年发布,提供增强的媒体和数字处理能力,增加了系统性能;数字处理能力,增加了系统性能;l支持支持ARM、Thumb、Thumb-2指指令集;令集;lThumb-2指令集提供了更高的代指令集提
24、供了更高的代码存储密度,进一步降低成本;码存储密度,进一步降低成本;Intel系系列列StrongARM:ARMv4体体系系XScale:ARMv5TE体系,体系,增加增加MMX指令指令lStrongARM主要应用于手持设备主要应用于手持设备和和PDA,5级流水线,具有独立的数级流水线,具有独立的数据和指令据和指令Cache,不支持,不支持Thumb指指令集,目前已停产;令集,目前已停产;lXScale是目前是目前Intel公司主推的高公司主推的高性能嵌入式处理器,分通用处理器、性能嵌入式处理器,分通用处理器、网络处理器和网络处理器和I/O处理器三类。其中处理器三类。其中通用处理器有通用处理器
25、有PXA25x、PXA26x、PXA27x三个系列,被广泛应用于智三个系列,被广泛应用于智能手机、能手机、PDA领域。领域。ARMARM处理器核简介处理器核简介微处理器系统结构与嵌入式系统设计微处理器系统结构与嵌入式系统设计2121ARMARM体系结构直接支持的数据类型体系结构直接支持的数据类型nARM体系结构直接支持的体系结构直接支持的数据类型数据类型n字节:8位n半字:16位(必须分配为占用2个字节)n字:32位(必须分配为占用4个字节)注意:注意:1)半字半字存储单元地址存储单元地址最低位最低位为为0 2)字字存储单元地址存储单元地址最低两位最低两位为为0nN位无符号数:二进制格式表示范
26、围为02N-1的非负整数;nN位有符号数时,N位数据值使用2的补码格式表示范围为-2N-1+2N-1-1的整数1112342微处理器系统结构与嵌入式系统设计微处理器系统结构与嵌入式系统设计2222n所有数据处理操作,例如ADD,都以字为单位;n装载和保存指令可以对字节、半字和字进行操作,当装载字节或半字时自动实现零扩展或符号扩展;nARM指令的长度刚好是1个字(分配为占用4个字节),Thumb指令的长度刚好是半字(占用2个字节)ARMARM处理器操作处理器操作微处理器系统结构与嵌入式系统设计微处理器系统结构与嵌入式系统设计ARMARM处理器的工作状态处理器的工作状态ARM状态状态 执行执行32
27、位字方式的位字方式的ARM指令指令Thumb状态状态 执行执行16位半字方式的位半字方式的Thumb指令指令Jazelle状态状态 执行可变长的、以字节为单位的执行可变长的、以字节为单位的 Jazelle(Java)指令)指令注意:注意:1. 1. 处理器处理器复位复位后处于后处于ARMARM状态状态;2.2.处理器处理器异常处理异常处理时进入时进入ARMARM状态;状态;3.3.若处理器在若处理器在ThumbThumb状态进入异常,则状态进入异常,则异常返回异常返回仍然自动转换到仍然自动转换到ThumbThumb状态状态; ;4.4.状态切换状态切换不影响工作模式及寄存器不影响工作模式及寄存
28、器内容。内容。2323微处理器系统结构与嵌入式系统设计微处理器系统结构与嵌入式系统设计ARMARM处理器工作状态的切换处理器工作状态的切换 使用跳转指令使用跳转指令BX可将处理器内核可将处理器内核在在ARM状态状态和和Thumb状态状态之间进行切之间进行切换。换。;从从Arm状态切换到状态切换到Thumb状态状态 LDR R0,=Lable+1 BX R0;从从Thumb状态切换到状态切换到ARM状态状态 LDR R0,=Lable BX R0 地址最低位为地址最低位为1 1,表示,表示切换到切换到ThumbThumb状态状态 地址最低位为地址最低位为0 0,表示,表示切换到切换到ARMARM
29、状态状态跳转地址标号跳转地址标号, ,最低最低2bit2bit为为0 02424微处理器系统结构与嵌入式系统设计微处理器系统结构与嵌入式系统设计2525处理器工作状态切换u 进入进入Thumb状态状态处理器在处理器在Thumb状态进入异常状态进入异常,则当异常处理,则当异常处理(IRQ、FIQ、Undef、Abort 和和 SWI)返回时返回时,自动转换到自动转换到Thumb状态状态u 进入进入ARM状态状态处理器进行异常处理处理器进行异常处理(IRQ、FIQ、Undef、Abort 和和SWI ) 时,把程序计数器时,把程序计数器PC放入异常模式链接寄存器中。从放入异常模式链接寄存器中。从异
30、常异常 向量地址向量地址开始执行可以开始执行可以进入进入ARM状态状态。微处理器系统结构与嵌入式系统设计微处理器系统结构与嵌入式系统设计ARMARM微处理器支持微处理器支持7 7种运行模式种运行模式n 用户模式用户模式(usr):): ARM处理器处理器正常的程序执行正常的程序执行状态状态 快速中断模式快速中断模式(fiq):): 用于高速数据传输或通道处理用于高速数据传输或通道处理 外部中断模式外部中断模式(irq):): 用于通用的中断处理用于通用的中断处理 管理模式管理模式(svc):): 操作系统使用的保护模式操作系统使用的保护模式 数据访问中止模式数据访问中止模式(abt): 当数据
31、或指令预取中止时进当数据或指令预取中止时进入该模式,可用于虚拟存储及存储保护。入该模式,可用于虚拟存储及存储保护。 系统模式系统模式(sys):): 运行具有特权的操作系统任务。运行具有特权的操作系统任务。 未定义指令中止模式未定义指令中止模式(und):当未定义的指令执行时):当未定义的指令执行时进入该模式,可用于支持硬件协处理器的软件仿真。进入该模式,可用于支持硬件协处理器的软件仿真。nARM微处理器的微处理器的运行模式可以通过软件改变运行模式可以通过软件改变,也可以通,也可以通过过外部中断或异常处理改变外部中断或异常处理改变。n大多数的应用程序运行在用户模式下,当处理器运行在用大多数的应
32、用程序运行在用户模式下,当处理器运行在用户模式下时,某些被保护的系统资源是不能被访问的户模式下时,某些被保护的系统资源是不能被访问的2626微处理器系统结构与嵌入式系统设计微处理器系统结构与嵌入式系统设计2727处理器模式处理器模式n特权模式特权模式处理器模式处理器模式说明说明备注备注 用户用户 (usr)正常程序工作模式正常程序工作模式不能直接切换到其它模式不能直接切换到其它模式 系统系统 (sys)用于支持操作系统的特权用于支持操作系统的特权任务等任务等与用户模式类似,但具有可以与用户模式类似,但具有可以直接切换到其它模式等特权直接切换到其它模式等特权 快中断快中断 (fiq)支持高速数据
33、传输及通道支持高速数据传输及通道处理处理FIQ异常响应时进入此模式异常响应时进入此模式 中断中断 (irq)用于通用中断处理用于通用中断处理IRQ异常响应时进入此模式异常响应时进入此模式 管理管理 (svc)操作系统保护代码操作系统保护代码系统复位和软件中断响应时进系统复位和软件中断响应时进入此模式入此模式 中止中止 (abt)用于支持虚拟内存和用于支持虚拟内存和/或或存储器保护存储器保护在在ARM7TDMI没有大用处没有大用处 未定义未定义 (und)支持硬件协处理器的软件支持硬件协处理器的软件仿真仿真未定义指令异常响应时进入此未定义指令异常响应时进入此模式模式 除用户模式外,其它模式均为特
34、权模式。ARM内部寄存器和一些片内外设在硬件设计上只允许(或者可选为只允许)特权模式下访问。此外,特权模式可以自由的切换处理器模式,而用户模式不能直接切换到别的模式。 未定义未定义 (und) 中止中止 (abt) 管理管理 (svc) 中断中断 (irq) 快中断快中断 (fiq) 系统系统 (sys)微处理器系统结构与嵌入式系统设计微处理器系统结构与嵌入式系统设计2828处理器模式处理器模式n异常模式异常模式处理器模式处理器模式说明说明备注备注 用户用户 (usr)正常程序工作模式正常程序工作模式不能直接切换到其它模式不能直接切换到其它模式 系统系统 (sys)用于支持操作系统的特用于支持
35、操作系统的特权任务等权任务等与用户模式类似,但具有可以与用户模式类似,但具有可以直接切换到其它模式等特权直接切换到其它模式等特权 快中断快中断 (fiq)支持高速数据传输及通支持高速数据传输及通道处理道处理FIQ异常响应时进入此模式异常响应时进入此模式 中断中断 (irq)用于通用中断处理用于通用中断处理IRQ异常响应时进入此模式异常响应时进入此模式 管理管理 (svc) 操作系统保护代码操作系统保护代码系统复位和软件中断响应时进系统复位和软件中断响应时进入此模式入此模式 中止中止 (abt)用于支持虚拟内存和用于支持虚拟内存和/或或存储器保护存储器保护在在ARM7TDMI没有大用处没有大用处
36、 未定义未定义 (und)支持硬件协处理器的软支持硬件协处理器的软件仿真件仿真未定义指令异常响应时进入此未定义指令异常响应时进入此模式模式 未定义未定义 (und) 中止中止 (abt) 管理管理 (svc) 中断中断 (irq) 快中断快中断 (fiq) 这五种模式称为异常模式。它们除了可以通过程序切换进入外,也可以由特定的异常进入。当特定的异常出现时,处理器进入相应的模式。每种异常模式都有一些独立的寄存器,以避免异常退出时用户模式的状态不可靠。微处理器系统结构与嵌入式系统设计微处理器系统结构与嵌入式系统设计2929处理器模式处理器模式n用户和系统模式用户和系统模式处理器模式处理器模式说明说
37、明备注备注 用户用户 (usr)正常程序工作模式正常程序工作模式不能直接切换到其它模式不能直接切换到其它模式 系统系统 (sys)用于支持操作系统的特权用于支持操作系统的特权任务等任务等与用户模式类似,但具有可以与用户模式类似,但具有可以直接切换到其它模式等特权直接切换到其它模式等特权 快中断快中断 (fiq)支持高速数据传输及通道支持高速数据传输及通道处理处理FIQ异常响应时进入此模式异常响应时进入此模式 中断中断 (irq)用于通用中断处理用于通用中断处理IRQ异常响应时进入此模式异常响应时进入此模式 管理管理 (svc)操作系统保护代码操作系统保护代码系统复位和软件中断响应时进系统复位和
38、软件中断响应时进入此模式入此模式 中止中止 (abt)用于支持虚拟内存和用于支持虚拟内存和/或或存储器保护存储器保护在在ARM7TDMI没有大用处没有大用处 未定义未定义 (und)支持硬件协处理器的软件支持硬件协处理器的软件仿真仿真未定义指令异常响应时进入此未定义指令异常响应时进入此模式模式 这两种模式都不能由异常进入,而且它们使用完全相同的寄存器组。 系统模式是特权模式,不受用户模式的限制。操作系统在该模式下访问用户模式的寄存器就比较方便,而且操作系统的一些特权任务可以使用这个模式访问一些受控的资源。 系统系统 (sys) 用户用户 (usr)微处理器系统结构与嵌入式系统设计微处理器系统结
39、构与嵌入式系统设计3030ARMARM状态下寄存器状态下寄存器通用寄存器(通用寄存器(32位)位) 31个个寄存器(寄存器(32位)位) 37个个状态寄存器(状态寄存器(32位)位) 6个个 通用寄存器通用寄存器(R0R15)通用寄存器通用寄存器不分组寄存器(不分组寄存器(R0R7)分组寄存器(分组寄存器(R8R14)程序计数器程序计数器PC(R15)微处理器系统结构与嵌入式系统设计微处理器系统结构与嵌入式系统设计3131寄存器寄存器类别类别寄存器在汇编寄存器在汇编中的名称中的名称各模式下实际访问的寄存器各模式下实际访问的寄存器用户用户系统系统管理管理中止中止未定义未定义中断中断快中断快中断通
40、用寄通用寄存器和存器和程序计程序计数器数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiq *R9(SB,v6)R9R9_fiq *R10(SL,v7)R10R10_fiq *R11(FP,v8)R11R11_fiq *R12(IP)R12R12_fiq *R13(SP)R13R13_svc* R13_abt * R13_und * R13_irq *R13_fiq *R14(LR)R14R14_svc * R14_abt * R14_und * R14_irq *R14_fiq *R1
41、5(PC)R15状态寄状态寄存器存器R16(CPSR)CPSRSPSR无无SPSR_svc SPSR_abtSPSR_und SPSR_irq SPSR_fiqARM状态各模式下的寄存器微处理器系统结构与嵌入式系统设计微处理器系统结构与嵌入式系统设计3232寄存器寄存器类别类别寄存器在汇编寄存器在汇编中的名称中的名称各模式下实际访问的寄存器各模式下实际访问的寄存器用户用户系统系统管理管理中止中止未定义未定义中断中断快中断快中断通用寄通用寄存器和存器和程序计程序计数器数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R
42、7R8(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_abt SPSR_abtSPSR_und SPSR_irq SPSR_fiqARM状态各模式下的寄存器SPSR_fiqSPSR_irqSPSR_undSPSR_ab
43、tSPSR_svcCPSRR15R14_fiqR14_irqR14_undR14_abtR14_svcR14R13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8R7R6R5R4R3R2R1R0所有的37个寄存器,分成两大类:31个通用32位寄存器;6个状态寄存器。微处理器系统结构与嵌入式系统设计微处理器系统结构与嵌入式系统设计3333寄存器寄存器类别类别寄存器在汇编寄存器在汇编中的名称中的名称各模式下实际访问的寄存器各模式下实际访问的寄存器用户用户系统系统管理管理中止中止未定义未
44、定义中断中断快中断快中断通用寄通用寄存器和存器和程序计程序计数器数器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状态寄状态寄存器存器CPSR
45、CPSRSPSR无无SPSR_abt SPSR_abtSPSR_und SPSR_irq SPSR_fiq无无CPSRR15R14R13R12R11R10R9R8R7R6R5R4R3R2R1R0用户无无CPSRR15R14R13R12R11R10R9R8R7R6R5R4R3R2R1R0系统SPSR_svcCPSRR15R14_svcR13_svcR12R11R10R9R8R7R6R5R4R3R2R1R0管理SPSR_undCPSRR15R14_undR13_undR12R11R10R9R8R7R6R5R4R3R2R1R0未定义SPSR_abtCPSRR15R14_abtR13_abtR12R1
46、1R10R9R8R7R6R5R4R3R2R1R0中止SPSR_irqCPSRR15R14_irqR13_irqR12R11R10R9R8R7R6R5R4R3R2R1R0中断SPSR_fiqCPSRR15R14_fiqR13_fiqR12_fiqR11_fiqR10_fiqR9_fiqR8_fiqR7R6R5R4R3R2R1R0快中断ARM状态各模式下可以访问的寄存器微处理器系统结构与嵌入式系统设计微处理器系统结构与嵌入式系统设计3434寄存器寄存器类别类别寄存器在汇编寄存器在汇编中的名称中的名称各模式下实际访问的寄存器各模式下实际访问的寄存器用户用户系统系统管理管理中止中止未定义未定义中断中断
47、快中断快中断通用寄通用寄存器和存器和程序计程序计数器数器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状态寄状态寄存器存器CPSRCPSRSP
48、SR无无SPSR_svc SPSR_abtSPSR_und SPSR_irq SPSR_fiq一般的通用寄存器R13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8R7R6R5R4R3R2R1R0 在汇编语言中寄存器R0R13为保存数据或地址值的通用寄存器。它们是完全通用的寄存器,不会被体系结构作为特殊用途,并且可用于任何使用通用寄存器的指令。微处理器系统结构与嵌入式系统设计微处理器系统结构与嵌入式系统设计3535寄存器寄存器类别类别寄存器在汇编寄存器在汇编中的名称中的名称各模式下
49、实际访问的寄存器各模式下实际访问的寄存器用户用户系统系统管理管理中止中止未定义未定义中断中断快中断快中断通用寄通用寄存器和存器和程序计程序计数器数器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_u
50、ndR14_irqR14_fiqR15(PC)R15状态寄状态寄存器存器CPSRCPSRSPSR无无SPSR_svc SPSR_abtSPSR_und SPSR_irq SPSR_fiq一般的通用寄存器R13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8R7R6R5R4R3R2R1R0R7R6R5R4R3R2R1R0 其中R0R7为未分组的寄存器,也就是说对于任何处理器模式,这些寄存器都对应于相同的32位物理寄存器。注意:在中断或异常处理中进行注意:在中断或异常处理中进行模式切换