版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第3章 ARM7体系构造第3章 目录q1.简介q2.ARM7TDMIq3.ARM7TDMI的模块和内部框图q4.体系构造直接支持的数据类型q5.处置器形状q6.处置器方式q7.内部存放器q8. 程序形状存放器q9.异常q10.中断延迟q11.复位q12.存储器及存储器映射I/Oq13.寻址方式简介q14.ARM7指令简介q15.协处置器接口q16.调试接口简介q17.ETM接口简介第3章 目录q1.简介q2.ARM7TDMIq3.ARM7TDMI的模块和内部框图q4.体系构造直接支持的数据类型q5.处置器形状q6.处置器方式q7.内部存放器q8. 程序形状存放器q9.异常q10.中断延迟q11
2、.复位q12.存储器及存储器映射I/Oq13.寻址方式简介q14.ARM7指令简介q15.协处置器接口q16.调试接口简介q17.ETM接口简介3.1 ARM简介 ARM公司简介 ARM是Advanced RISC Machines的缩写,它是一家微处置器行业的知名企业,该企业设计了大量高性能、廉价、耗能低的RISC 精简指令集处置器。 公司的特点是只设计芯片,而不消费。它将技术授权给世界上许多著名的半导体、软件和OEM厂商,并提供效力。3.1 ARM简介 ARM公司简介将技术授权给其它芯片厂商构成各具特征的ARM芯片. . .3.1 ARM简介 ARM体系构造 ARM处置器为RISC芯片,其
3、简单的构造使ARM内核非常小,这使得器件的功耗也非常低。它具有经典RISC的特点:大的、一致的存放器文件;装载/保管构造,数据处置 操作只针对存放器的内容,而不直接对存储器进展操作load,store);简单的寻址方式(存放器寻址;一致和固定长度的指令域,简化了指令的译码。3.1 ARM简介 ARM体系构造ARM体系构造的特点:每条数据处置指令都对算术逻辑单元和移位器控制,以实现ALU和移位器的最大利用;地址自动添加和减少寻址方式,优化程序循环;多存放器装载和存储指令实现最大数据吞吐量;一切指令的条件执行实现最快速的代码执行。指令的条件执行ADD R0, R0, R1 R0+R1-R0 ADD
4、S R0, R0, R1 ADDEQS R0, R0, R1第一个例子是一个根本的加法(把 R1 的值添加到 R0),它不影响形状存放器。 第二个例子是同一个加法,只不过它导致更改形状存放器。 最后一个例子是同一个加法,更改形状存放器。不同在于它是一个有条件的指令。只需前一个操作的结果是 EQ (假设设置了 Z 标志)的时候它才执行。 3.1 ARM简介 各ARM体系构造版本 ARM体系构造从最初开发到如今有了宏大的改良,并仍在完善和开展。为了清楚的表达每个ARM运用实例所运用的指令集,ARM公司定义了5种主要的ARM指令集体系构造版本,以版本号V1V5表示。3.1 ARM简介 各ARM体系构
5、造版本V1 该版本的ARM体系构造,只需26位的寻址空间,没有商业化,其特点为:根本的数据处置指令不包括乘法;字节、字和半字加载/存储指令;具有分支指令,包括在子程序调用中运用的分支和链接指令;在操作系统调用中运用的软件中断指令。3.1 ARM简介 各ARM体系构造版本V2 同样为26位寻址空间,如今曾经废弃不再运用,它相对V1版本有以下改良:具有乘法和乘加指令;支持协处置器;快速中断方式中的两个以上的分组存放器;具有原子性加载/存储指令SWP和SWPB。3.1 ARM简介 各ARM体系构造版本V3 寻址范围扩展到32位现实上也根本废弃,具有独立的程序:具有乘法和乘加指令;支持协处置器;快速中
6、断方式中具有的两个以上的分组存放器;具有原子性加载/存储指令SWP和SWPB。3.1 ARM简介 各ARM体系构造版本V4 不在为了与以前的版本兼容而支持26位体系构造,并明确了哪些指令会引起未定义指令异常发生,它相对V3版本作了以下的改良:半字加载/存储指令;字节和半字的加载和符号扩展指令;具有可以转换到Thumb形状的指令;用户方式存放器的新的特权处置器方式。3.1 ARM简介 各ARM体系构造版本V5 在V4版本的根底上,对如今指令的定义进展了必要的修正,对V4版本的体系构造进展了扩展并并添加了指令,详细如下:改良了ARM/Thumb形状之间的切换效率;允许非T变量和T变量一样,运用一样
7、的代码生成技术;添加计数前导零指令和软件断点指令;对乘法指令如何设置标志作了严厉的定义。3.1 ARM简介 ARM处置器核简介 ARM公司开发了很多系列的ARM处置器核,目前最新的系列曾经是ARM11了,而ARM6核以及更早的系列曾经很稀有了。目前运用比较广泛的系列是:ARM7ARM9ARM9EARM10SecurCoreXscale3.1 ARM简介 ARM处置器核简介ARM7 该系列包括ARM7TDMI、ARM7TDMI-S、带有高速缓存处置器宏单元的ARM720T和扩展了Jazelle的ARM7EJ-S。该系列处置器提供Thumb 16位紧缩指令集和EmbededICE软件调试方式,适用
8、于更大规模的SoC设计中。 ARM7系列广泛运用于多媒体和嵌入式设备,包括Internet设备、网络和调制解调器设备,以及挪动、PDA等无线设备。3.1 ARM简介 ARM处置器核简介ARM9 该系列包括ARM9TDMI、ARM920T和带有通知缓存处置器宏单元的ARM940T。除了兼容ARM7系列,而且可以更加灵敏的设计。 ARM9系列主要运用于引擎管理、仪器仪表、平安系统和机顶盒等领域。3.1 ARM简介 ARM处置器核简介ARM10 该系列包括ARM1020E和ARM1020E处置器核,其中心在于运用向量浮点VFP单元VFP10提供高性能的浮点处理方案,从而极大提高了处置器的整型和浮点运
9、算性能。 可以用于视频游戏机和高性能打印机等场所。3.1 ARM简介 ARM处置器核简介SecurCore 该系列涵盖了SC100、SC110、SC200和SC210处置核。该系列处置器主要针对新兴的平安市场,以一种全新的平安处置器设计为智能卡和其它平安IC开发提供独特的32位系统设计,并具有特定反伪造方法,从而有助于防止对硬件和软件的盗版。3.1 ARM简介 ARM处置器核简介Xscale Intel Xscale微控制器那么提供全性能、高性价比、低功耗的处理方案,支持16位Thumb指令并集成数字信号处置DSP指令。第3章 目录q1.简介q2.ARM7TDMIq3.ARM7TDMI的模块和
10、内部框图q4.体系构造直接支持的数据类型q5.处置器形状q6.处置器方式q7.内部存放器q8. 程序形状存放器q9.异常q10.中断延迟q11.复位q12.存储器及存储器映射I/Oq13.寻址方式简介q14.ARM7指令简介q15.协处置器接口q16.调试接口简介q17.ETM接口简介3.2 ARM7TDMI 简介 ARM7TDMI基于ARM体系构造V4版本,是目前低端的ARM核。具有广泛的运用,其最显著的运用为数字挪动。留意:“ARM核并不是芯片,ARM核与其它部件如RAM、ROM、片内外设组合在一同才干构成现实的芯片。3.2 ARM7TDMI 简介 ARM7TDMI支持32位寻址范围,并弥
11、补了ARM6不能在低于5V电源电压下任务的缺乏。ARM7TDMI的后缀意义为:支持高密度16位的Thumb指令集;支持片上调试;支持64位乘法;支持EmbededICE察看硬件;ARM7TDMI 的可综合synthesizable版本软核,对运用工程师来说其编程模型与ARM7TDMI 一致;ARM7 T D M I - S3.2 ARM7TDMI 简介 ARM7TDMI处置器是ARM通用32位微处置器家族的成员之一。它具有优良的性能,但功耗却很低,运用门的数量也很少。它属于精简指令集计算机RISC,比复杂指令集计算机CISC要简单得多。这样的简化实现了:高的指令吞吐量;出色的实时中断呼应;小的
12、、高性价比的处置器宏单元。3.2 ARM7TDMI 三级流水线 ARM7TDMI处置器运用流水线来添加处置器指令流的速度。这样可使几个操作同时进展,并使处置和存储器系统延续操作,能提供0.9MIPS/MHz的指令执行速度。 ARM7TDMI的流水线分3级,分别为:取指译码执行3.2 ARM7TDMI 三级流水线 正常操作过程中,在执行一条指令的同时对下一条指令进展译码,并将第三条指令从存储器中取出。这三条指令之间的位置关系如下表所示:流水线上各指令的地址流水线工位描画ARM指令集Thumb指令集PCPC取指指令从存储器中取出PC-4PC-2译码对指令运用的存放器进展译码PC-8PC-4执行从存
13、放器组中读出存放器,执行移位和ALU操作,存放器被写回到存放器组中3.2 ARM7TDMI 存储器访问 ARM7TDMI处置器运用了冯诺依曼Von Neumann构造,指令和数据共用一条32位总线。只需装载、存储和交换指令可以对存储器中的数据进展访问。 数据可以是字节 8位、半字 16位或者字32位。3.2 ARM7TDMI 存储器访问计算机构造阐明:“冯诺依曼 构造:把代码作为一种特殊的数据来操作,指令总线和数据总线及其存储区域是一致的;“哈佛构造:指令总线和数据总线及其存储区是分开、独立的。3.2 ARM7TDMI 存储器访问 ARM7TDMI处置器的存储器接口可以使潜在的性能得以实现,这
14、样减少了存储器的运用。对速度有严厉要求的控制信号运用流水线,这样使系统控制功能以规范的低功耗逻辑实现。ARM7TDMI处置器的存储器周期有4个根本类型:内部周期;非延续的周期;延续的周期;协处置器存放器的传输周期。第3章 目录q1.简介q2.ARM7TDMIq3.ARM7TDMI的模块和内部框图q4.体系构造直接支持的数据类型q5.处置器形状q6.处置器方式q7.内部存放器q8. 程序形状存放器q9.异常q10.中断延迟q11.复位q12.存储器及存储器映射I/Oq13.寻址方式简介q14.ARM7指令简介q15.协处置器接口q16.调试接口简介q17.ETM接口简介 3.3 ARM7TDMI
15、的模块和内核框图NoImageARM7TDMI模块 3.3 ARM7TDMI的模块和内核框图ARM7TDMI模块地址存放器存放器组31*32位存放器6个形状存放器地址添加器乘法器桶形移位器32位ALU写数据存放器指令管线读数据存放器Thumb指令译码器指令译码和控制逻辑ADDR31:0CLKCLENCFGBIGENDnIRQnFIQnRESETABORTLOCKWRITESIZE1:0PROT1:0TRANS1:0DBG输出DBG输入CP控制CP握手WDATA31:0RDATA31:0扫描调试控制 3.3 ARM7TDMI的模块和内核框图ARM7TDMI模块CPBCPACPnICPTBITCP
16、SEQCPnMREQCPnOPCCPnTRAN STRANS1 : 0 PROT1: 0 SIZE1: 0 WRITEABORTRDATA31:0WDATA31:0ADDR31 : 0 DBGTDODBGnTDO E NDBGnTRS TDBGTDIDBGTMSDBGTCKE NDBGCOMM T XDBGCOMM R XDBGRNG 0 DBGRNG 1 DBGENDBGEXT 0 DBGEXT 1 DBGnEXE CDBGACKDBGBREA KDBGRQLOCKCFGBIGE N DnRESETnFIQnIRQCLKENCLKDBGINST RVALIDARM7TDM I - SDMOR
17、E同步的Em bededICE-RT扫描调试访问 端口存储器接口存储器管理接 口协处理器接口时钟中断总线控制仲裁调试处理器第3章 目录q1.简介q2.ARM7TDMIq3.ARM7TDMI的模块和内部框图q4.体系构造直接支持的数据类型q5.处置器形状q6.处置器方式q7.内部存放器q8. 程序形状存放器q9.异常q10.中断延迟q11.复位q12.存储器及存储器映射I/Oq13.寻址方式简介q14.ARM7指令简介q15.协处置器接口q16.调试接口简介q17.ETM接口简介3.4 体系构造直接支持的数据类型 体系构造直接支持的数据类型ARM处置器支持以下数据类型:字节 8位半字 16位必需
18、分配为占用两个字节字 32为必需分配为占用4各字节1112342 体系构造直接支持的数据类型留意:V4版本之后的ARM构造都支持这3种构造包括V4版本,而以前的版本只支持字节和字;当数据类型定义为无符号型时,N位数据值运用正常的二进制格式表示范围为02N-1的非负整数;当数据类型定义为有符号型时,N位数据值运用2的补码格式表示范围为-2N-1+2N-1-1的整数;3.4 体系构造直接支持的数据类型 体系构造直接支持的数据类型留意:一切数据操作,例如ADD,都以字为单位;装载和保管指令可以对字节、半字和字进展操作,当装载字节或半字时自动实现零扩展或符号扩展;ARM指令的长度刚好是1个字分配为占用
19、4个字节,Thumb指令的长度刚好是半字占用2个字节。3.4 体系构造直接支持的数据类型第3章 目录q1.简介q2.ARM7TDMIq3.ARM7TDMI的模块和内部框图q4.体系构造直接支持的数据类型q5.处置器形状q6.处置器方式q7.内部存放器q8. 程序形状存放器q9.异常q10.中断延迟q11.复位q12.存储器及存储器映射I/Oq13.寻址方式简介q14.ARM7指令简介q15.协处置器接口q16.调试接口简介q17.ETM接口简介3.5 处置器形状 处置器形状 ARM7TDMI处置器内核运用V4T版本的ARM构造,该构造包含32位ARM指令集和16位Thumb指令集。因此ARM7
20、TDMI处置器有两种操作形状:ARM形状:32位,这种形状下执行的是字方式的ARM指令;Thumb形状:16位,这种形状下执行半字方式的Thumb指令。留意:两个形状之间的切换并不影响处置器方式或存放器内容。3.5 处置器形状 处置器形状 运用BX指令将ARM7TDMI内核的操作形状在ARM形状和Thumb形状之间进展切换,程序如下所示。;从Arm形状切换到Thumb形状 LDR R0,=Lable+1 BX R0;从Thumb形状切换到ARM形状 LDR R0,=Lable BX R0地址最低位为1,表示切换到Thumb形状地址最低位为0,表示切换到ARM形状跳转地址标号第3章 目录q1.简
21、介q2.ARM7TDMIq3.ARM7TDMI的模块和内部框图q4.体系构造直接支持的数据类型q5.处置器形状q6.处置器方式q7.内部存放器q8. 程序形状存放器q9.异常q10.中断延迟q11.复位q12.存储器及存储器映射I/Oq13.寻址方式简介q14.ARM7指令简介q15.协处置器接口q16.调试接口简介q17.ETM接口简介3.6 处置器方式 简介 ARM体系构造支持7种处置器方式,分别为:用户方式、快中断方式、中断方式、管理方式、中止方式、未定义方式和系统方式,如下表所示。这样的益处是可以更好的支持操作系统并提高任务效率。ARM7TDMI完全支持这七种方式。处置器方式阐明备注
22、用户 (usr)正常程序任务方式不能直接切换到其它方式 系统 (sys)用于支持操作系统的特权义务等与用户方式类似,但具有可以直接切换到其它方式等特权 快中断 (fiq)支持高速数据传输及通道处置FIQ异常呼应时进入此方式 中断 (irq)用于通用中断处置IRQ异常呼应时进入此方式 管理 (svc)操作系统维护代码系统复位和软件中断呼应时进入此方式 中止 (abt)用于支持虚拟内存和/或存储器维护在ARM7TDMI没有大用途 未定义 (und)支持硬件协处置器的软件仿真未定义指令异常呼应时进入此方式3.6 处置器方式 处置器方式3.6 处置器方式 特权方式处置器方式阐明备注 用户 (usr)正
23、常程序任务方式不能直接切换到其它方式 系统 (sys)用于支持操作系统的特权义务等与用户方式类似,但具有可以直接切换到其它方式等特权 快中断 (fiq)支持高速数据传输及通道处置FIQ异常呼应时进入此方式 中断 (irq)用于通用中断处置IRQ异常呼应时进入此方式 管理 (svc)操作系统维护代码系统复位和软件中断呼应时进入此方式 中止 (abt)用于支持虚拟内存和/或存储器维护在ARM7TDMI没有大用途 未定义 (und)支持硬件协处置器的软件仿真未定义指令异常呼应时进入此方式 除用户方式外,其它方式均为特权方式。ARM内部存放器和一些片内外设在硬件设计上只允许或者可选为只允许特权方式下访
24、问。此外,特权方式可以自在的切换处置器方式,而用户方式不能直接切换到别的方式。 未定义 (und) 中止 (abt) 管理 (svc) 中断 (irq) 快中断 (fiq) 系统 (sys)3.6 处置器方式 异常方式处置器方式阐明备注 用户 (usr)正常程序任务方式不能直接切换到其它方式 系统 (sys)用于支持操作系统的特权义务等与用户方式类似,但具有可以直接切换到其它方式等特权 快中断 (fiq)支持高速数据传输及通道处置FIQ异常呼应时进入此方式 中断 (irq)用于通用中断处置IRQ异常呼应时进入此方式 管理 (svc)操作系统维护代码系统复位和软件中断呼应时进入此方式 中止 (a
25、bt)用于支持虚拟内存和/或存储器维护在ARM7TDMI没有大用途 未定义 (und)支持硬件协处置器的软件仿真未定义指令异常呼应时进入此方式 未定义 (und) 中止 (abt) 管理 (svc) 中断 (irq) 快中断 (fiq) 这五种方式称为异常方式。它们除了可以经过程序切换进入外,也可以由特定的异常进入。当特定的异常出现时,处置器进入相应的方式。每种异常方式都有一些独立的存放器,以防止异常退出时用户方式的形状不可靠。3.6 处置器方式 用户和系统方式处置器方式阐明备注 用户 (usr)正常程序任务方式不能直接切换到其它方式 系统 (sys)用于支持操作系统的特权义务等与用户方式类似
26、,但具有可以直接切换到其它方式等特权 快中断 (fiq)支持高速数据传输及通道处置FIQ异常呼应时进入此方式 中断 (irq)用于通用中断处置IRQ异常呼应时进入此方式 管理 (svc)操作系统维护代码系统复位和软件中断呼应时进入此方式 中止 (abt)用于支持虚拟内存和/或存储器维护在ARM7TDMI没有大用途 未定义 (und)支持硬件协处置器的软件仿真未定义指令异常呼应时进入此方式 这两种方式都不能由异常进入,而且它们运用完全一样的存放器组。 系统方式是特权方式,不受用户方式的限制。操作系统在该方式下访问用户方式的存放器就比较方便,而且操作系统的一些特权义务可以运用这个方式访问一些受控的
27、资源。 系统 (sys) 用户 (usr)第3章 目录q1.简介q2.ARM7TDMIq3.ARM7TDMI的模块和内部框图q4.体系构造直接支持的数据类型q5.处置器形状q6.处置器方式q7.内部存放器q8. 程序形状存放器q9.异常q10.中断延迟q11.复位q12.存储器及存储器映射I/Oq13.寻址方式简介q14.ARM7指令简介q15.协处置器接口q16.调试接口简介q17.ETM接口简介3.7 内部存放器 简介 在ARM7TDMI处置器内部有37个用户可见的存放器。 在不同的任务方式和处置器形状下,程序员可以访问的存放器也不尽一样。存放器类别存放器在汇编中的称号各方式下实践访问的存
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无S
29、PSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiqARM形状各方式下的存放器存放器类别存放器在汇编中的称号各方式下实践访问的存放器用户系统管理中止未定义中断快中断通用存放器和程序计数器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_
30、fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15形状存放器CPSRCPSRSPSR无SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiqARM形状各方式下的存放器SPSR_fiqSPSR_irqSPSR_undSPSR_abtSPSR_abtCPSRR15R14_fiqR14_irqR14_undR14_abtR14_svcR14R13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8R7
31、R6R5R4R3R2R1R0一切的37个存放器,分成两大类:31个通用32位存放器;6个形状存放器。存放器类别存放器在汇编中的称号各方式下实践访问的存放器用户系统管理中止未定义中断快中断通用存放器和程序计数器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_fi
32、qR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15形状存放器CPSRCPSRSPSR无SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq无CPSRR15R14R13R12R11R10R9R8R7R6R5R4R3R2R1R0用户用户无CPSRR15R14R13R12R11R10R9R8R7R6R5R4R3R2R1R0系统系统SPSR_abtCPSRR15R14_svcR13_svcR12R11R10R9R8R7R6R5R4R3R2R1R0管理管理SPSR_abtCPSRR15R14_abtR13_abtR
33、12R11R10R9R8R7R6R5R4R3R2R1R0中止中止SPSR_undCPSRR15R14_undR13_undR12R11R10R9R8R7R6R5R4R3R2R1R0未定义未定义SPSR_irqCPSRR15R14_irqR13_irqR12R11R10R9R8R7R6R5R4R3R2R1R0中断中断SPSR_fiqCPSRR15R14_fiqR13_fiqR12_fiqR11_fiqR10_fiqR9_fiqR8_fiqR7R6R5R4R3R2R1R0快中断快中断ARM形状各方式下可以访问的存放器存放器类别存放器在汇编中的称号各方式下实践访问的存放器用户系统管理中止未定义中断快
34、中断通用存放器和程序计数器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_abtS
35、PSR_undSPSR_irqSPSR_fiq普通的通用存放器R13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8R7R6R5R4R3R2R1R0 在汇编言语中存放器R0R13为保管数据或地址值的通用存放器。它们是完全通用的存放器,不会被体系构造作为特殊用途,并且可用于任何运用通用存放器的指令。存放器类别存放器在汇编中的称号各方式下实践访问的存放器用户系统管理中止未定义中断快中断通用存放器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4
36、R5(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普通的通用存放器R13_fiqR13_irqR13_undR
37、13_abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8R7R6R5R4R3R2R1R0R7R6R5R4R3R2R1R0 其中R0R7为未分组的存放器,也就是说对于任何处置器方式,这些存放器都对应于一样的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
38、,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普通的通用存放器R14_fiqR14_irqR14_undR14_abtR14_svcR14R13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiq
39、R12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8 存放器R8R14为分组存放器。它们所对应的物理存放器取决于当前的处置器方式,几乎一切允许运用通用存放器的指令都允许运用分组存放器存放器类别存放器在汇编中的称号各方式下实践访问的存放器用户系统管理中止未定义中断快中断通用存放器和程序计数器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)
40、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普通的通用存放器R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8 存放器R8R12有两个分组的物理存放器。一个用于除FIQ方式之外的一切存放器方式,另一个用于FIQ方式。这样在发生FIQ中断后,可以加速FIQ的处置速度。
41、存放器类别存放器在汇编中的称号各方式下实践访问的存放器用户系统管理中止未定义中断快中断通用存放器和程序计数器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(
42、PC)R15形状存放器CPSRCPSRSPSR无SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq普通的通用存放器 存放器R13、R14分别有6个分组的物理存放器。一个用于用户和系统方式,其他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)
43、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堆栈指针存放器R13SP 存放器R13常作为堆栈指针SP。在ARM指令集
44、当中,没有以特殊方式运用R13的指令或其它功能,只是习惯上都这样运用。但是在Thumb指令集中存在运用R13的指令。存放器类别存放器在汇编中的称号各方式下实践访问的存放器用户系统管理中止未定义中断快中断通用存放器和程序计数器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_i
45、rqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15形状存放器CPSRCPSRSPSR无SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq链接存放器R14LR R14为链接存放器LR,在构造上有两个特殊功能:在每种方式下,方式本身的R14版本用于保管子程序前往地址;当发生异常时,将R14对应的异常方式版本设置为异常前往地址有些异常有一个小的固定偏移量。Lable程序A程序BR143.7 内部存放器 R14存放器与子程序调用BL Lable地址A?MOV PC,LRR14(地址A)Lable
46、?1.程序A执行过程中调用程序B;操作流程2.程序跳转至标号Lable,执行程序B。同时硬件将“BL Lable指令的下一条指令所在地址存入R14;3.程序B执行最后,将R14存放器的内容放入PC,前往程序A;3.7 内部存放器 R14存放器与异常发生 异常发生时,程序要跳转至异常效力程序,对前往地址的处置与子程序调用类似,都是由硬件完成的。区别在于有些异常有一个小常量的偏移。3.7 内部存放器 R14存放器留意要点 当发生异常嵌套时,这些异常之间能够会发生冲突。例如:假设用户在用户方式下执行程序时发生了IRQ中断,用户方式存放器不会被破坏。但是假设允许在IRQ方式下的中断处置程序重新使能IR
47、Q中断,并且发生了嵌套的IRQ中断时,外部中断处置程序保管在R14_irq中的任何值都将被嵌套中断的前往地址所覆盖。3.7 内部存放器 R14存放器留意要点R14R14_irq用户方式下的程序IRQ方式下的程序AareturnB.XA地址A地址A1.执行用户方式下的程序;2.发生IRQ中断,硬件将某个地址存入IRQ方式下的R14_irq存放器,用户方式下的R14没有被破坏;3. IRQ效力程序A执行终了,将R14_irq存放器的内容减去某个常量后存入PC,前往之前被中断的程序;未被破坏3.7 内部存放器 R14存放器留意要点R14R14_irq用户方式下的程序IRQ方式下的程序AaB.XA地址
48、A地址A1.执行用户方式下的程序;2.发生IRQ中断,硬件将某个地址存入IRQ方式下的R14_irq存放器,用户方式下的R14没有被破坏;3. IRQ效力程序A执行终了,将R14_irq存放器的内容减去某个常量后存入PC,前往之前被中断的程序;未被破坏IRQ方式下的程序BareturnB.XA地址B地址B4. 假设在IRQ处置程序中翻开IRQ中断,并且再次发生IRQ中断,或者调用子程序;5. 硬件将前往地址保管在R14_irq存放器中,原来保管的前往地址将被覆盖,呵斥错误;被破坏6. 在程序B前往到程序A,然后在前往到用户方式下被中断的程序时,发生错误,将不能正确前往;returnreturn
49、 处理方法是确保R14的对应版本在发生中断嵌套时不再保管任何有意义的值将R14入栈,或者切换到其它处置器方式下。ARM 和Thumb的区别 Thumb代码所需求的存储空间约为ARM代码的60%-70% Thumb运用的指令数比ARM代码多约30%-40% 假设运用32位存储器,ARM代码比Thumb代码快约40% 假设运用16位存储器,Thumb代码比ARM快约40%-50%存放器类别存放器在汇编中的称号各方式下实践访问的存放器用户系统管理中止未定义中断快中断通用存放器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R
50、7(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程序计数器R15PC 存放器R15为程序计数器PC,它指向正在取指的地址。可以以为它是一个通用
51、存放器,但是对于它的运用有许多与指令相关的限制或特殊情况。假设R15运用的方式超出了这些限制,那么结果将是不可预测的。3.7 内部存放器 读R15的限制 正常操作时,从R15读取的值是处置器正在取指的地址,即当前正在执行指令的地址加上8个字节两条ARM指令的长度。由于ARM指令总是以字为单位,所以R15存放器的最低两位总是为0。LDR R0,PC?PCPC-4PC-8正在执行正在译码正在取指流水线形状地址程序代码3.7 内部存放器 读R15的限制 当运用STR或STM指令保管R15时,会有一个例外。这些指令能够将当前指令地址加8字节或加12字节保管未来能够还有其它数字。偏移量是8还是12取决于
52、详细的ARM芯片,但是对于一个确定的芯片,这个值是一个常量。 所以最好防止运用STR和STM指令来保管R15,假设很难做到,那么该当在程序中计算出该芯片的偏移量。3.7 内部存放器 读R15的限制计算偏移量程序代码:SUBR1,PC,#4;R1=下面STR指令的地址STRPC,R0;保管STR指令地址+偏移量LDRR0,R0;然后重装SUBR0,R0,R1;计算偏移量3.7 内部存放器 写R15的限制 正常操作时,写入R15 的值被当作一个指令地址,程序从这个地址处继续执行相当于执行一次无条件跳转。 3.7 内部存放器 写R15的限制 由于ARM指令以字节为边境,因此写入R15的值最低两位通常
53、为0b00。详细的规那么取决于内核构造的版本:在ARM构造V3版及以下版本中,写入R15的值的最低两位被忽略,因此跳转地址由指令的实践目的地址写入R15的值和0 xFFFFFFFC相与得到;在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)R1
54、0R10_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程序形状存放器CPSR 存放器CPSR为程序形状存放器,在异常方式中,另外一个存放器“程序形状保管存放器SPSR可以被访问。每种异常都有本人的SPSR,在由于异常事件而进入异常时它保管CPSR的
55、当前值,异常退出时可经过它恢复CPSR。3.7 内部存放器 Thumb形状存放器 Thumb形状存放器集是ARM形状集的子集,程序员可以直接访问的存放器为:8个通用存放器R0R7;程序计数器PC;堆栈指针SP;链接存放器LR;有条件访问程序形状存放器 CPSR。Thumb形状各方式下的存放器CPSRCPSR形状存放器R15PCR14_fiqR14_irqR14_undR14_abtR14_svcR14LRR13_fiqR13_irqR13_undR13_abtR13_svcR13SPR7R7(v4,wr)R6R6(v3)R5R5(v2)R4R4(v1)R3R3(a4)R2R2(a3)R1R1(
56、a2)R0R0(a1)通用存放器和程序计数器快中断中断未定义中止管理系统用户各方式下实践访问的存放器存放器在汇编中的称号存放器类别留意:括号内为ATPCS中存放器的命名,可以运用RN汇编伪指令将存放器定义多个名字。其中ADS1.2的汇编程序直接支持这些称号,但留意a1a4,v1v4必需用小写。Thumb形状下的通用存放器CPSRCPSR形状存放器R15PCR14_fiqR14_irqR14_undR14_abtR14_svcR14LRR13_fiqR13_irqR13_undR13_abtR13_svcR13SPR7R7(v4,wr)R6R6(v3)R5R5(v2)R4R4(v1)R3R3(a
57、4)R2R2(a3)R1R1(a2)R0R0(a1)通用存放器和程序计数器快中断中断未定义中止管理系统用户各方式下实践访问的存放器存放器在汇编中的称号存放器类别R7R6R5R4R3R2R1R0 在汇编言语中存放器R0R7为保管数据或地址值的通用存放器。对于任何处置器方式,它们中的每一个都对应于一样的32为物理存放器。它们是完全通用的存放器,不会被体系构造作为特殊的用途,并且可用于任何运用通用存放器的指令。Thumb形状下的堆栈指针存放器SPCPSRCPSR形状存放器R15PCR14_fiqR14_irqR14_undR14_abtR14_svcR14LRR13_fiqR13_irqR13_un
58、dR13_abtR13_svcR13SPR7R7(v4,wr)R6R6(v3)R5R5(v2)R4R4(v1)R3R3(a4)R2R2(a3)R1R1(a2)R0R0(a1)通用存放器和程序计数器快中断中断未定义中止管理系统用户各方式下实践访问的存放器存放器在汇编中的称号存放器类别 堆栈指针SP对应ARM形状的存放器R13。每个异常方式都有其本身的SP分组版本,SP通常指向各异常方式所公用的堆栈。 留意:在发生异常时,处置器自动进入ARM形状。R13_fiqR13_irqR13_undR13_abtR13_svcR13Thumb形状下的链接存放器R14LRCPSRCPSR形状存放器R15PCR
59、14_fiqR14_irqR14_undR14_abtR14_svcR14LRR13_fiqR13_irqR13_undR13_abtR13_svcR13SPR7R7(v4,wr)R6R6(v3)R5R5(v2)R4R4(v1)R3R3(a4)R2R2(a3)R1R1(a2)R0R0(a1)通用存放器和程序计数器快中断中断未定义中止管理系统用户各方式下实践访问的存放器存放器在汇编中的称号存放器类别 链接存放器LR对应ARM形状存放器R14,在构造上有两个特殊功能,详见“ARM形状下的链接存放器LR。 留意:在发生异常时,处置器自动进入ARM形状。R14_fiqR14_irqR14_undR14
60、_abtR14_svcR143.7 内部存放器 ARM形状和Thumb形状之间存放器的关系 Thumb形状存放器与ARM形状存放器有如下的关系:Thumb形状R0R7与ARM形状R0R7一样;Thumb形状CPSR和SPSR与ARM形状CPSR和SPSR一样;Thumb形状SP映射到ARM形状R13;Thumb形状LR映射到ARM形状R14;Thumb形状PC映射到ARM形状PCR15。 R1 R2 R3 R4 R5 T humb R6 R7 ( C PSR ) ( SPSR ) R1 R2 R3 R4 R5 A R M R6 R7 R8 ( C PSR ) ( SPSR ) R9 R10 R
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 燃气价格协议合同范本
- 电梯共同出资合同范本
- 父母首付赠与合同范本
- 海淀客厅装修合同范本
- 科技计划项目合同范本
- 石材龙骨包工合同范本
- 游戏软件销售合同范本
- 安徽2023行测真题及答案
- 地方安全专家观点讲解
- 2024年执业药师(中药学类)职业资格考试真题及答案中药学专业知识
- 铁路局技术和统计科QC小组降低电梯故障发生率确保旅客人身安全成果汇报书
- 储气罐事故安全应急预案
- 无菌技术操作制度
- 浙江省炮制规范2015版电子版
- 红木国家标准指导培训
- 中学生2021电影《信者》观后感800字
- 物质跨膜运输的实例 PPT
- 人教版四年级数学上册(全册)电子教案
- TWSJD 002-2019 医用清洗剂卫生要求
- GB/T 7324-2010通用锂基润滑脂
- GB/T 7061-2016船用低压成套开关设备和控制设备
评论
0/150
提交评论