版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、3C H A P T E RARM7体系结构第3章目目录录1.简介介2.ARM7TDMI3.ARM7TDMI的模块块和内部部框图4.体系系结构直直接支持持的数据据类型5.处理理器状态态6.处理理器模式式7.内部部寄存器器8.程程序状态态寄存器器9.异常常10.复复位11.存存储器及及存储器器映射I/O第3章目目录录1.简介介2.ARM7TDMI3.ARM7TDMI的模块块和内部部框图4.体系系结构直直接支持持的数据据类型5.处理理器状态态6.处理理器模式式7.内部部寄存器器8.程程序状态态寄存器器9.异常常10.复复位11.存存储器及及存储器器映射I/O3.1ARM简介介ARM公公司简介介AR
2、M是是AdvancedRISCMachines的缩写写,它是是一家微微处理器器行业的的知名企企业,该该企业设设计了大大量高性性能、廉廉价、耗耗能低的的RISC(精简指指令集)处理器器。公司的特特点是只只设计芯芯片,而而不生产产。它将将技术授授权给世世界上许许多著名名的半导导体、软软件和OEM厂厂商,并并提供服服务。3.1ARM简介介ARM公公司简介介将技术授授权给其其它芯片片厂商形成各具具特色的的ARM芯片. . .3.1ARM简介介微处理器器是整个个系统的的核心,通常由由3大部部分组成成:控制制单元、算术逻逻辑单元元和寄存存器。算术逻辑单元寄存器控制单元微处理器存储器输入输出3.1ARM简介
3、介ARM处处理器的的应用当前主要要应用于于消费类类电子领领域;到目前为为止,基基于ARM技术术的微处处理器应应用约占占据了32位嵌嵌入式微微处理器器75以上的的市场份份额全球80%的GSM/3G手手机、99%的的CDMA手机机以及绝绝大多数数PDA产品均均采用ARM体体系的嵌嵌入式处处理器,“掌上计计算”相相关的所所有领域域皆为其其所主宰宰。ARM技技术正在在逐步渗渗入到我我们生活活的各个个方面。3.1ARM简介介ARM体体系结构构ARM处处理器为为RISC芯片片,其简简单的结结构使ARM内内核非常常小,这这使得器器件的功功耗也非非常低。它具有有经典RISC的特点点:大的、统一的寄存器文件;装
4、载/保存结构,数据处理 操作只针对寄存器的内容,而不直接对存储器进行操作;简单的寻址模式;统一和固定长度的指令域,简化了指令的译码,便于指令流水线设计。3.1ARM简介介ARM体体系结构构ARM体体系结构构的特点点:每条数据处理指令都对算术逻辑单元和移位器控制,实现了ALU和移位器的最大利用;地址自动增加和减少寻址模式,优化程序循环;多寄存器装载和存储指令实现最大数据吞吐量;所有指令的条件执行实现最快速的代码执行。3.1ARM简介介各ARM体系结结构版本本ARM体体系结构构从最初初开发到到现在有有了很大大的改进进,并仍仍在完善善和发展展。为了了清楚的的表达每每个ARM应用用实例所所使用的的指令
5、集集,ARM公司司定义了了6种主主要的ARM指指令集体体系结构构版本,以版本本号V1V6表示。3.1ARM简介介各ARM体系结结构版本本V1该版本的的ARM体系结结构,只只有26位的寻寻址空间间,没有有商业化化,其特特点为:基本的数数据处理理指令(不包括括乘法);字节、字字和半字字加载/存储指指令;具有分支支指令,包括在在子程序序调用中中使用的的分支和和链接指指令;在操作系系统调用用中使用用的软件件中断指指令。3.1ARM简介介各ARM体系结结构版本本V2同样为26位寻寻址空间间,现在在已经废废弃不再再使用,它相对对V1版版本有以以下改进进:具有乘法法和乘加加指令;支持协处处理器;快速中断断模
6、式中中的两个个以上的的分组寄寄存器;具有原子子性加载载/存储储指令SWP和和SWPB。3.1ARM简介介各ARM体系结结构版本本V3寻址范围围扩展到到32位位(目前前已废弃弃),具具有独立立的程序序:具有乘法法和乘加加指令;支持协处处理器;快速中断断模式中中具有的的两个以以上的分分组寄存存器;具有原子子性加载载/存储储指令SWP和和SWPB。3.1ARM简介介各ARM体系结结构版本本V4不在为了了与以前前的版本本兼容而而支持26位体体系结构构,并明明确了哪哪些指令令会引起起未定义义指令异异常发生生,它相相对V3版本作作了以下下的改进进:半字加载载/存储储指令;字节和半半字的加加载和符符号扩展展
7、指令;具有可以以转换到到Thumb状状态的指指令(BX);增加了用用户模式式寄存器器的新的的特权处处理器模模式。3.1ARM简介介各ARM体系结结构版本本V5在V4版版本的基基础上,对现在在指令的的定义进进行了必必要的修修正,对对V4版版本的体体系结构构进行了了扩展并并并增加加了指令令,具体体如下:改进了ARM/Thumb状状态之间间的切换换效率;E-增强型型DSP指令集集,包括括全部算算法操作作和16位乘法法操作;J-支持持新的JAVA,提供供字节代代码执行行的硬件件和优化化软件加加速功能能。3.1ARM简介介ARM处处理器核核简介ARM公公司开发发了很多多系列的的ARM处理器器核,目目前最
8、新新的系列列已经是是ARM11了了,而ARM6核以及及更早的的系列已已经很罕罕见了。目前应应用比较较广泛的的系列是是:ARM7ARM9ARM9EARM10SecurCoreXscaleARM11Cortex预取(Fetch)译码(Decode)执行(Execute)预取(Fetch)译码(Decode)执行(Execute)访存(Memory)写入(Write)预取(Fetch)译码(Decode)发送(Issue)预取(Fetch)预取(Fetch)执行(Execute)访存(Memory)写入(Write)译码(Decode)发送(Issue)执行(Execute)转换(Snny)访存(M
9、emory)写入(Write)ARM7ARM9ARM10ARM113.1ARM简介介项目ARM7ARM9ARM10ARM11流水线3568典型频率(MHz)80150260335功耗(mW/MHz)0.060.19(+cache)0.5(+cache)0.4(+cache)性能MIPS*/MHz0.971.11.31.2架构冯诺伊曼哈佛哈佛哈佛3.1ARM简介介ARM系列微处理器核特点ARM7ARM7TDMI:整数处理核ARM7TDMI 处理器的可综合版本; ARM720T:带MMU的处理器核心,支持操作系统;ARM7EJ-S:带有DSP和Jazelle TM 技术,能够实现Java加速功能冯
10、诺伊曼体系结构;ARMTDMI是目前应用最广的微处理器核ARM720T带有MMU和8KB的指令数据混合cache;ARM7EJ-执行ARMv5TEJ指令,5级流水线,提供Java加速指令,没有存储器保护。ARM9ARM920T:带有独立的16KB 数据和指令Cache;ARM922T:带有独立的8位KB 数据和指令Cache;ARM940T包括更小数据和指令Cache和一个MPU基于ARM9TDMI ,带16位的Thumb指令集,增强代码密度最多到35%;在0.13m工艺下最高性能可达到300MIPS(Dhrystone 2.1测试标准);集成了数据和指令Chche;32位AMBA总线接口的M
11、MU支持;可在0.18m、 0.15m和0.13m工艺的硅芯片上实现。3.1ARM简介介ARM9EARM926EJ-S:Jazelle 技术,有MMU,可配置的数据和指令Cache,TCM接口;ARM946E-S:可配置的数据和指令Cache及TCM;ARM966E-S:针对要求高性能和低功耗的可预测的指令执行时间的硬实时应用设计 ARM968E-S:最小、功耗最小的ARM9E系列处理器,针对嵌入式实时应用设计;ARM9E是针对微控制器、DSP和Java的单处理器解决方案; ARMJazelle技术提供 8倍的 Java 加速性能 (ARM926EJ-S) ;5-级整数流水线; 在0.13m工
12、艺下最高性能可达到300MIPS(Dhrystone 2.1测试标准);可选择的向量浮点单元VFP9 协处理器指令优秀海浮点性能,对于3D图形加速和实时控制可达到215MFLOPS。高性能的AHB总线,带MMU可在0.18m, 0.15m, 0.13m工艺的硅芯片上实现。 ARM10EARM1020E:带DSP指令集,在片调试功能,独立的32KB数据和指令Cache,MMU支持;ARM1022E:与ARM1020E相同,只是独立的数据和指令Cache变为16KB;ARM1026EJ-S:同时具有MPU和MMU,可综合版本; 带分支预测的6级整数流水线;在0.13m工艺下最高性能可达到430MI
13、PS(Dhrystone 2.1测试标准);对于3D图形运算和实时控制采用VFP协处理器,浮点运算性能最高可达650MFLOPS;双64位AMBA总线接口和64位内部总路线接口;优化的缓存结构提高了处理器访问低速存储器的性能;可在0.18m, 0.15m, 0.13m工艺的硅芯片上实现3.1ARM简介介ARM11ARM11 MPCore:可综合的多处理器核,1至4个处理器可配置;ARM1136J(F)-S:可配置的数据和指令Cache,可提供1.9位的MPEG4编码加速功能;ARM1156T2(F)-S:带集成浮点协处理器,带内存保护单元MPU;ARM1176JZ(F)-S:带针对CPU和系统
14、安全架构扩展的TrustZone技术。增强的Thumb、Jazelle、DSP扩展支持; 带片上和系统安全TrustZone 技术支持 ;在0.13m工艺下最高可达到550MHz;MPCore在0.13m工艺下最高性能可达到740MIPS(Dhrystone 2.1测试标准);支持多媒体指令SIMD;采用三种电源模式:全速/待命/休眠集成DMA的TCM低功耗、高性能。 SecurCoreSC100:第一个32位安全处理器;、SC110:在SC100上增加密钥协处理器;SC200:带Jazelle技术的高级安全处理器;SC210:在SC200上增加密钥协处理器SecurCore是专门为智能卡、安
15、全IC提供的32位安全处理器, 为电子商务、银行、网络、移动多媒体、公共交通提供安全解决方案;体积小、功耗低,代码压缩密度高;为快速增长的Java卡平台提供Java加速功能;3.1ARM简介介CortexCortex-A:面向应用的微处理器,针对复杂操作系统和应用程序设计;Cortex-R:针对实时系统的嵌入式处理器;Cortex-M:针对成本敏感应用优化的深度嵌入式处理器;2004年发布,提供增强的媒体和数字处理能力,增加了系统性能;支持ARM、Thumb、Thumb-2指令集;Thumb-2指令集提供了更高的代码存储密度,进一步降低成本;Intel系列StrongARM:ARMv4体系XS
16、cale:ARMv5TE体系,增加MMX指令StrongARM主要应用于手持设备和PDA,5级流水线,具有独立的数据和指令Cache,不支持Thumb指令集,目前已停产;XScale是目前Intel公司主推的高性能嵌入式处理器,分通用处理器、网络处理器和I/O处理器三类。其中通用处理器有PXA25x、PXA26x、PXA27x三个系列,被广泛应用于智能手机、PDA领域。3.1ARM简介介第3章目目录录1.简介介2.ARM7TDMI3.ARM7TDMI的模块块和内部部框图4.体系系结构直直接支持持的数据据类型5.处理理器状态态6.处理理器模式式7.内部部寄存器器8.程程序状态态寄存器器9.异常常
17、10.复复位11.存存储器及及存储器器映射I/O3.2ARM7TDMI简介ARM7TDMI基于于ARM体系结结构V4版本,是目前前低端的的ARM核核。具有广广泛的应应用,其其最显著著的应用用为数字字移动电电话。注意:“ARM核”并不是是芯片,ARM核与其其它部件件如RAM、ROM、片内外外设组合合在一起起才能构构成现实实的芯片片。3.2ARM7TDMI简介ARM7TDMI支持持32位位寻址范范围,并并弥补了了ARM6不能能在低于于5V电电源电压压下工作作的不足足。ARM7TDMI的后缀缀意义为为:支持高密度16位的Thumb指令集;支持片上调试;支持64位乘法;支持Embeded-ICE观察硬
18、件;ARM7TDMI 的可综合(synthesizable)版本(软核),对应用工程师来说其编程模型与ARM7TDMI 一致;ARM7 T D M I - S3.2ARM7TDMI简介ARM7TDMI处理理器是ARM通通用32位微处处理器家家族的成成员之一一。它具具有优异异的性能能,但功功耗却很很低,使使用门的的数量也也很少。它属于于精简指指令集计计算机(RISC),比复杂杂指令集集计算机机(CISC)要简单单得多。这样的的简化实实现了:高的指令令吞吐量量;出色的实实时中断断响应;小的、高高性价比比的处理理器宏单单元。3.2ARM7TDMI三级流水水线ARM7TDMI处理理器使用用流水线线来增
19、加加处理器器指令流流的速度度。这样样可使几几个操作作同时进进行,并并使处理理和存储储器系统统连续操操作,能能提供0.9MIPS/MHz的指指令执行行速度。ARM7TDMI的流流水线分分3级,分别为为:取指译码执行3.2ARM7TDMI存储器访访问ARM7TDMI处理理器使用用了冯诺依依曼(Von Neumann)结构,指令和和数据共共用一条条32位位总线。只有装装载、存存储和交交换指令令可以对对存储器器中的数数据进行行访问。数据可以以是字节节(8位)、半字( 16位)或或者字(32位位)。第3章目目录录1.简介介2.ARM7TDMI3.ARM7TDMI的模块块和内部部框图4.体系系结构直直接支
20、持持的数据据类型5.处理理器状态态6.处理理器模式式7.内部部寄存器器8.程程序状态态寄存器器9.异常常10.复复位11.存存储器及及存储器器映射I/O3.3系系统内内部结构构图ARM7TDMI处理理器部件件和主要要信号路路径的框框图如图图所示。它内部部由处理理器核、用于边边界扫描描的TAP控制制器和在在线仿真真器ICE组成成。双向向数据总总线D31:0被被分割成成单向输输入和输输出总线线,以便便于与外外部存储储器兼容容。3.3ARM7TDMI的模块块和内核核框图ARM7TDMI模块块地址寄存存器寄存器组组31*32位寄寄存器(6个状状态寄存存器)地址增量量器乘法器桶形移位位器32位ALU写数
21、据寄寄存器指令流水水线读数数据寄存存器Thumb指令令译码器器指令译码码和逻辑控制制ADDR31:0CLKCLENCFGBIGENDnIRQnFIQnRESETABORTLOCKWRITESIZE1:0PROT1:0TRANS1:0DBG输输出DBG输输入CP控制制CP握手手WDATA31:0RDATA31:0扫描调试试控制A总线B总线ALU总线增量器总总线PC总线3.3ARM7TDMI功功能信号号图ARM7TDMI第3章目目录录1.简介介2.ARM7TDMI3.ARM7TDMI的模块块和内部部框图4.体系系结构直直接支持持的数据据类型5.处理理器状态态6.处理理器模式式7.内部部寄存器器8.
22、程程序状态态寄存器器9.异常常10.复复位11.存存储器及及存储器器映射I/O3.4体体系系结构直直接支持持的数据据类型体系结构构直接支支持的数数据类型型ARM处处理器支支持下列列数据类类型:字节8位半字16位位(必须须分配为为占用两两个字节节)字32位位(必须须分配为为占用4各字节节)1112342体系结构构直接支支持的数数据类型型注意:V4版本本之后的的ARM结构都都支持这这3种结结构(包包括V4版本),而以以前的版版本只支支持字节节和字;当数据类类型定义义为无符符号型时时,N位位数据值值使用正正常的二二进制格格式表示示范围为为02N-1的非非负整数数;当数据类类型定义义为有符符号型时时,
23、N位位数据值值使用2的补码码格式表表示范围围为-2N-1+2N-1-1的整整数;3.4体体系系结构直直接支持持的数据据类型体系结构构直接支支持的数数据类型型注意:所有数据据操作,例如ADD,都以字字为单位位;装载和保保存指令令可以对对字节、半字和和字进行行操作,当装载载字节或或半字时时自动实实现零扩扩展或符符号扩展展;ARM指指令的长长度刚好好是1个个字(分分配为占占用4个个字节),Thumb指令的的长度刚刚好是半半字(占占用2个个字节)。3.4体体系系结构直直接支持持的数据据类型第3章目目录录1.简介介2.ARM7TDMI3.ARM7TDMI的模块块和内部部框图4.体系系结构直直接支持持的数
24、据据类型5.处理理器状态态6.处理理器模式式7.内部部寄存器器8.程程序状态态寄存器器9.异常常10.复复位11.存存储器及及存储器器映射I/O3.5处处理理器状态态处理器状状态ARM7TDMI处理理器内核核使用V4T版版本的ARM结结构,该该结构包包含32位ARM指令令集和16位Thumb指令令集。因因此ARM7TDMI处理器器有两种种操作状状态:ARM状状态:32位,这种状状态下执执行的是是字方式式的ARM指令令;Thumb状态态:16位,这这种状态态下执行行半字方方式的ARM指指令。注意:两个状状态之间间的切换换并不影影响处理理器模式式或寄存存器内容容。3.5处处理理器状态态处理器状状态
25、使用BX指令将将ARM7TDMI内内核的操操作状态态在ARM状态态和Thumb状态之之间进行行切换(详见第第4章) ,程程序如下下所示。;从Arm状态态切换到到Thumb状状态LDRR0,=Lable+1BXR0;从Thumb状态切切换到ARM状状态LDRR0,=LableBXR0地址最低低位为1,表示示切换到到Thumb状状态地址最低低位为0,表示示切换到到ARM状态跳转地址址标号第3章目目录录1.简介介2.ARM7TDMI3.ARM7TDMI的模块块和内部部框图4.体系系结构直直接支持持的数据据类型5.处理理器状态态6.处理理器模式式7.内部部寄存器器8.程程序状态态寄存器器9.异常常10
26、.复复位11.存存储器及及存储器器映射I/O处理器模式说明备注 用户 (usr)正常程序执行模式不能直接切换到其它模式 系统 (sys)运行操作系统的特权任务与用户模式类似,但具有可以直接切换到其它模式等特权 快中断 (fiq)支持高速数据传输及通道处理FIQ异常响应时进入此模式 中断 (irq)用于通用中断处理IRQ异常响应时进入此模式 管理 (svc)操作系统保护模式系统复位和软件中断响应时进入此模式 中止 (abt)用于支持虚拟内存和/或存储器保护在ARM7TDMI没有大用处 未定义 (und)支持硬件协处理器的软件仿真未定义指令异常响应时进入此模式3.6处处理理器模式式处理器7种模式式
27、3.6处处理理器模式式特权模式式处理器模式说明备注 用户 (usr)正常程序工作模式不能直接切换到其它模式 系统 (sys)用于支持操作系统的特权任务等与用户模式类似,但具有可以直接切换到其它模式等特权 快中断 (fiq)支持高速数据传输及通道处理FIQ异常响应时进入此模式 中断 (irq)用于通用中断处理IRQ异常响应时进入此模式 管理 (svc)操作系统保护代码系统复位和软件中断响应时进入此模式 中止 (abt)用于支持虚拟内存和/或存储器保护在ARM7TDMI没有大用处 未定义 (und)支持硬件协处理器的软件仿真未定义指令异常响应时进入此模式除用户模模式外,其它模模式均为为特权模式式。
28、ARM内部寄寄存器和和一些片片内外设设在硬件件设计上上只允许许(或者者可选为为只允许许)特权权模式下下访问。此外,特权模模式可以以自由的的切换处处理器模模式,而而用户模模式不能能直接切切换到别别的模式式。 未定义 (und) 中止 (abt) 管理 (svc) 中断 (irq) 快中断 (fiq) 系统 (sys)3.6处处理理器模式式异常模式式处理器模式说明备注 用户 (usr)正常程序工作模式不能直接切换到其它模式 系统 (sys)用于支持操作系统的特权任务等与用户模式类似,但具有可以直接切换到其它模式等特权 快中断 (fiq)支持高速数据传输及通道处理FIQ异常响应时进入此模式 中断 (
29、irq)用于通用中断处理IRQ异常响应时进入此模式 管理 (svc)操作系统保护代码系统复位和软件中断响应时进入此模式 中止 (abt)用于支持虚拟内存和/或存储器保护在ARM7TDMI没有大用处 未定义 (und)支持硬件协处理器的软件仿真未定义指令异常响应时进入此模式 未定义 (und) 中止 (abt) 管理 (svc) 中断 (irq) 快中断 (fiq)这五种模模式称为为异常模式式。它们除除了可以以通过程程序切换换进入外外,也可可以由特特定的异异常进入入。当特特定的异异常出现现时,处处理器进进入相应应的模式式。每种种异常模模式都有有一些独独立的寄寄存器,以避免免异常退退出时用用户模式
30、式的状态态不可靠靠。3.6处处理理器模式式用户和系系统模式式处理器模式说明备注 用户 (usr)正常程序工作模式不能直接切换到其它模式 系统 (sys)用于支持操作系统的特权任务等与用户模式类似,但具有可以直接切换到其它模式等特权 快中断 (fiq)支持高速数据传输及通道处理FIQ异常响应时进入此模式 中断 (irq)用于通用中断处理IRQ异常响应时进入此模式 管理 (svc)操作系统保护代码系统复位和软件中断响应时进入此模式 中止 (abt)用于支持虚拟内存和/或存储器保护在ARM7TDMI没有大用处 未定义 (und)支持硬件协处理器的软件仿真未定义指令异常响应时进入此模式这两种模模式都不
31、不能由异异常进入入,而且且它们使使用完全全相同的的寄存器器组。系统模式式是特权权模式,不受用用户模式式的限制制。操作作系统在在该模式式下访问问用户模模式的寄寄存器就就比较方方便,而而且操作作系统的的一些特特权任务务可以使使用这个个模式访访问一些些受控的的资源。 系统 (sys) 用户 (usr)第3章目目录录1.简介介2.ARM7TDMI3.ARM7TDMI的模块块和内部部框图4.体系系结构直直接支持持的数据据类型5.处理理器状态态6.处理理器模式式7.内部部寄存器器8.程程序状态态寄存器器9.异常常10.复复位11.存存储器及及存储器器映射I/O3.7内内部部寄存器器简介在ARM7TDMI处
32、处理器内内部有37个用用户可见见的寄存存器。在不同的的工作模模式和处处理器状状态下,程序员员可以访访问的寄寄存器也也不尽相相同。寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器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*R1
33、3_abt *R13_und *R13_irq *R13_fiq *R14(LR)R14R14_svc *R14_abt *R14_und *R14_irq *R14_fiq *R15(PC)R15状态寄存器R16(CPSR)CPSRSPSR无SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiqARM状状态各模模式下的的寄存器器寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(
34、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_abtSPSR_undSPSR_irqSPSR_fiqARM状状态各模模式下的的寄存器器SPSR_fiqSPSR_irqSPSR_undSPSR_abtSPSR_abt
35、CPSRR15R14_fiqR14_irqR14_undR14_abtR14_svcR14R13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8R7R6R5R4R3R2R1R0所有的37个寄寄存器,分成两两大类:31个通通用32位寄存存器;6个状态态寄存器器。寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(
36、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_abtSPSR_undSPSR_irqSPSR_fiq无CPSRR15R14R13R12R11R10R9R8R7R6R5R4R3R2R1R0用户无CPS
37、RR15R14R13R12R11R10R9R8R7R6R5R4R3R2R1R0系统SPSR_abtCPSRR15R14_svcR13_svcR12R11R10R9R8R7R6R5R4R3R2R1R0管理SPSR_abtCPSRR15R14_abtR13_abtR12R11R10R9R8R7R6R5R4R3R2R1R0中止SPSR_undCPSRR15R14_undR13_undR12R11R10R9R8R7R6R5R4R3R2R1R0未定义SPSR_irqCPSRR15R14_irqR13_irqR12R11R10R9R8R7R6R5R4R3R2R1R0中断SPSR_fiqCPSRR15R14
38、_fiqR13_fiqR12_fiqR11_fiqR10_fiqR9_fiqR8_fiqR7R6R5R4R3R2R1R0快中断ARM状状态各模模式下可可以访问问的寄存存器寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器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)R1
39、3R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15状态寄存器CPSRCPSRSPSR无SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq一般的通通用寄存存器R13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8R7R6R5R4R3R2R1R0在汇编语语言中寄寄存器R0R13为为保存数数据或地地址值的的通用寄存存器。它们是是
40、完全通通用的寄寄存器,不会被被体系结结构作为为特殊用用途,并并且可用用于任何何使用通通用寄存存器的指指令。寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器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
41、_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15状态寄存器CPSRCPSRSPSR无SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq一般的通通用寄存存器R13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8R7R6R5R4R3R2R1R0R7R6R5R4R3R2R1R0其中R0R7为未分组的的寄存器器,也就是是说对于于任何处处理器模模式,这这些寄存存器都对对应于相相同的32位物物理
42、寄存存器。寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器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_fi
43、qR15(PC)R15状态寄存器CPSRCPSRSPSR无SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq一般的通通用寄存存器R14_fiqR14_irqR14_undR14_abtR14_svcR14R13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8寄存器R8R14为为分组寄存存器。它们所所对应的的物理寄寄存器取取决于当当前的处处理器模模式,几几乎所有有允许使使用通用用寄存器器的指令令都允许许使用分分组寄存存器寄存器类别寄存器在汇编中的名称各模
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状态寄存器CPSRCP
45、SRSPSR无SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq一般的通通用寄存存器R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8寄存器R8R12有有两个分分组的物物理寄存存器。一一个用于于除FIQ模式式之外的的所有寄寄存器模模式,另另一个用用于FIQ模式式。这样样在发生生FIQ中断后后,可以以加速FIQ的的处理速速度。寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R
46、5R6(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_abtSPSR_undSPSR_irqSPSR_fiq一般的通通用寄存存器寄存器R13、R14分别有有6个分分组的物物理寄存存器
47、。一一个用于于用户和和系统模模式,其其余5个个分别用用于5种种异常模模式。R14_fiqR14_irqR14_undR14_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_f
48、iqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15状态寄存器CPSRCPSRSPSR无SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq堆栈指针针寄存器器R13(SP)寄存器R13常常作为堆栈指针针(SP)。在ARM指指令集当当中,没没有以特特殊方式式使用R13的的指令或或其它功功能,只只是习惯惯上都这这样使用用。但是是在Thumb指令集集中存在在使用R13的的指令。寄存器类别寄
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_undR14_irqR14_fiqR15(PC)R15
50、状态寄存器CPSRCPSRSPSR无SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq链接寄存存器R14(LR)R14为为链接寄存存器(LR),在结结构上有有两个特特殊功能能:在每种模模式下,模式自自身的R14版版本用于于保存子子程序返返回地址址;当发生异异常时,将R14对应应的异常常模式版版本设置置为异常常返回地地址(有有些异常常有一个个小的固固定偏移移量)。Lable程序A程序BR143.7内内部部寄存器器R14(LR)寄存器器与子程程序调用用BL Lable地址A?MOVPC,LRR14(地址A)Lable?1.程序A执执行过程程中调用用程序B;操作流程程2
51、.程序跳转转至标号号Lable,执行程程序B。同时硬硬件将“BLLable”指令令的下一一条指令令所在地地址存入入R14(LR);3.程序B执执行最后后,将R14寄寄存器的的内容放放入PC,返回回程序A;3.7内内部部寄存器器R14寄寄存器与与异常发发生异常发生生时,程程序要跳跳转至异异常服务务程序,对返回回地址的的处理与与子程序序调用类类似,都都是由硬硬件完成成的。区区别在于于有些异异常有一一个小常常量的偏偏移。3.7内内部部寄存器器R14寄寄存器注注意要点点当发生异异常嵌套套时,这这些异常常之间可可能会发发生冲突突。例如:如如果用户户在用户户模式下下执行程程序时发发生了IRQ中中断,用用户
52、模式式寄存器器不会被被破坏。但是如如果允许许在IRQ模式式下的中中断处理理程序重重新使能能IRQ中断,并且发发生了嵌嵌套的IRQ中中断时,外部中中断处理理程序保保存在R14_irq中的任任何值都都将被嵌嵌套中断断的返回回地址所所覆盖。3.7内内部部寄存器器R14寄寄存器注注意要点点R14R14_irq用户模式下的程序IRQ模式下的程序AareturnB.XA地址A地址A1.执行行用户模模式下的的程序;2.发生生IRQ中断,硬件将将某个地地址存入入IRQ模式下下的R14_irq寄寄存器,用户模式式下的R14没没有被破破坏;3.IRQ服服务程序序A执行行完毕,将R14_irq寄寄存器的的内容减减去
53、某个个常量后后存入PC,返返回之前前被中断断的程序序;未被破坏坏R14_irq3.7内内部部寄存器器R14寄寄存器注注意要点点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中断,
54、并且再再次发生生IRQ中断;5.硬硬件将返返回地址址保存在在R14_irq寄存存器中,原来保存存的返回回地址将将被覆盖盖,造成成错误;R14_irq被破坏6.在在程序B返回到到程序A,然后后在返回回到用户户模式下下被中断断的程序序时,发发生错误误,将不不能正确确返回;returnreturn解决办法法是确保保R14的对应应版本在在发生中中断嵌套套时不再再保存任任何有意意义的值值(将R14入入栈),或者切切换到其其它处理理器模式式下。寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a
55、4)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_abtSPSR_undSPSR_irqSPSR_fiq程序计数数器R15(PC)寄存器R1
56、5为为程序计数数器(PC),它指指向正在在取指的的地址。可以认认为它是是一个通通用寄存存器,但但是对于于它的使使用有许许多与指指令相关关的限制制或特殊殊情况。如果R15使使用的方方式超出出了这些些限制,那么结结果将是是不可预预测的。3.7内内部部寄存器器读R15的限制制正常操作作时,从从R15读取的的值是处处理器正正在取指指的地址址,即当当前正在在执行指指令的地地址加上上8个字字节(两两条ARM指令令的长度度)。由由于ARM指令令总是以以字为单单位,所所以R15寄存存器的最最低两位位总是为为0。LDR R0,PC?PCPC-4PC-8正在执行正在译码正在取指流水线状态地址程序代码3.7内内部部
57、寄存器器读R15的限制制当使用STR或或STM指令保保存R15时,会有一一个例外外。这些些指令可可能将当当前指令令地址加加8字节节或加12字节节保存(将来可可能还有有其它数数字)。偏移量量是8还还是12取决于于具体的的ARM芯片,但是对对于一个个确定的的芯片,这个值值是一个个常量。所以最好好避免使使用STR和STM指指令来保保存R15,如如果很难难做到,那么应应当在程程序中计计算出该该芯片的的偏移量量。3.7内内部部寄存器器读R15的限制制计算偏移移量(PC值和当前前指令地地址的差差)程序序代码:SUBR1,PC,#4;R1=下面面STR指令的的地址STRPC,R0;保存存STR指令地地址+偏
58、偏移量LDRR0,R0;然后后重装SUBR0,R0,R1;计算算偏移量量04812ARM状状态3.7内内部部寄存器器写R15的限制制正常操作作时,写写入R15的的值被当当作一个个指令地地址,程程序从这这个地址址处继续续执行(相当于于执行一一次无条条件跳转转)。3.7内内部部寄存器器写R15的限制制由于ARM指令令以字节节为边界界,因此此写入R15的的值最低低两位通通常为0b00。具体体的规则则取决于于内核结结构的版版本:在ARM结构V3版及及以下版版本中,写入R15的的值的最最低两位位被忽略略,因此此跳转地地址由指指令的实实际目标标地址(写入R15的的值)和和0 xFFFFFFFC相与与得到;
59、在ARM结构V4版及及以上版版本中,写入R15的的值的最最低两位位为0,如果不不是,结结果将不不可预测测。寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器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
60、_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15状态寄存器CPSRCPSRSPSR无SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq程序状态态寄存器器CPSR寄存器CPSR为程序状态态寄存器器,在异常常模式中中,另外外一个寄寄存器“程序状状态保存存寄存器器(SPSR)”可以以被访问问。每种种异常都都有自己己的SPSR,在进入入异常时时它保存存CPSR的当当前值,异常退退出时可可通过它它恢复CPSR。详细细描述参参看3.8小节节。3.7内内部部寄存器器ARM状状态和Thumb状态态之间寄寄存器的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 全员安全上岗培训
- 消防安全热点话题解析
- 遴选面试技巧分享
- 网格员消防安全职责指南
- 面粉加工安全规程讲解
- 高校安全检查方案讲解
- 2025-2026学年广东省肇庆某中学初中部九年级(上)期中化学试卷(含答案)
- 2025-2026学年高一年级上册第一次月考(10月)历史试卷 (含解析)
- 光伏电站安全培训课程课件
- 光伏电力安全规程课件教学
- 医疗物资(血液制品)低空无人飞行器运输技术
- 三年级上册语文1-8单元习作范文暑假预习
- 2025年出入境管理信息系统考试试卷及答案
- 宫颈癌术后淋巴水肿护理
- 中医骨科适宜技术
- 空间计算发展报告(2024年)-元宇宙标准化工作组
- 2025《混凝土搅拌站劳动合同》
- 企业机要管理制度
- T/CWAN 0068-2023铜铝复合板
- JJG 539-2016 数字指示秤宣贯材料
- 儿童寓言故事-乌鸦喝水
评论
0/150
提交评论