ARM7体系结构_第1页
ARM7体系结构_第2页
ARM7体系结构_第3页
ARM7体系结构_第4页
ARM7体系结构_第5页
已阅读5页,还剩82页未读 继续免费阅读

下载本文档

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

文档简介

1、 嵌入式技术与应用嵌入式技术与应用 智能电器与智能系统省重点实验室智能电器与智能系统省重点实验室 3C H A P T E RARM7体系结构体系结构第3章 目录q 1.简介简介q 的模块和内部框图的模块和内部框图q 4.体系结构直接支持的数据体系结构直接支持的数据类型类型q 5.处理器状态处理器状态q 6.处理器模式处理器模式q 7.内部寄存器内部寄存器q 8. 程序状态寄存器程序状态寄存器q 9.异常异常q 10.中断延迟中断延迟q 11.复位复位q 12.存储器及存储器映射存储器及存储器映射I/Oq 13.寻址方式简介寻址方式简介q 指令简介指令简介q 15.协处理器接口协处理器接口q

2、16.调试接口简介调试接口简介q 接口简介接口简介第3章 目录q 1.简介简介q 的模块和内部框图的模块和内部框图q 4.体系结构直接支持的数据体系结构直接支持的数据类型类型q 5.处理器状态处理器状态q 6.处理器模式处理器模式q 7.内部寄存器内部寄存器q 8. 程序状态寄存器程序状态寄存器q 9.异常异常q 10.中断延迟中断延迟q 11.复位复位q 12.存储器及存储器映射存储器及存储器映射I/Oq 13.寻址方式简介寻址方式简介q 指令简介指令简介q 15.协处理器接口协处理器接口q 16.调试接口简介调试接口简介q 接口简介接口简介3.1 ARM简介nARM公司简介 ARMARM是

3、是A Advanced dvanced R RISC ISC M Machinesachines的缩写,它是的缩写,它是一家微处理器行业的知名企业,该企业设计了大量一家微处理器行业的知名企业,该企业设计了大量高性能、廉价、耗能低的高性能、廉价、耗能低的RISC RISC (精简指令集)处(精简指令集)处理器。理器。 公司的特点是只设计芯片,而不生公司的特点是只设计芯片,而不生产。它将技术授权给世界上许多著名的半导体、软产。它将技术授权给世界上许多著名的半导体、软件和件和OEMOEM厂商,并提供服务。厂商,并提供服务。3.1 ARM简介nARM公司简介将技术授权给其它芯片厂商形成各具特色的ARM

4、芯片. . .n微处理器是整个系统的核心,通常由微处理器是整个系统的核心,通常由3 3大部分组成:控大部分组成:控制单元、算术逻辑单元和寄存器。制单元、算术逻辑单元和寄存器。 算术逻辑单元算术逻辑单元寄存器寄存器控制单元控制单元微处理器微处理器存储器存储器输入输入输出输出3.1 ARM简介nARM体系结构 ARM ARM处理器为处理器为RISCRISC芯片,其简单的结构使芯片,其简单的结构使ARMARM内内核非常小,这使得器件的功耗也非常低。它具有经核非常小,这使得器件的功耗也非常低。它具有经典典RISCRISC的特点:的特点:大的、统一的寄存器文件;大的、统一的寄存器文件;装载装载/ /保存

5、结构,数据处理保存结构,数据处理 操作只针对寄存器的操作只针对寄存器的内容,而不直接对存储器进行操作;内容,而不直接对存储器进行操作;简单的寻址模式简单的寻址模式; ;统一和固定长度的指令域,简化了指令的译码。统一和固定长度的指令域,简化了指令的译码。3.1 ARM简介nARM体系结构ARMARM体系结构的特点:体系结构的特点:每条数据处理指令都对算术逻辑单元和移位器控每条数据处理指令都对算术逻辑单元和移位器控制,以实现制,以实现ALUALU和移位器的最大利用;和移位器的最大利用;地址自动增加和减少寻址模式,优化程序循环;地址自动增加和减少寻址模式,优化程序循环;多寄存器装载和存储指令实现最大

6、数据吞吐量多寄存器装载和存储指令实现最大数据吞吐量; ;所有指令的条件执行实现最快速的代码执行。所有指令的条件执行实现最快速的代码执行。3.1 ARM简介n各ARM体系结构版本 ARM ARM体系结构从最初开发到现在有了巨大的改进,体系结构从最初开发到现在有了巨大的改进,并仍在完善和发展。为了清楚的表达每个并仍在完善和发展。为了清楚的表达每个ARMARM应用实应用实例所使用的指令集,例所使用的指令集,ARMARM公司定义了公司定义了5 5种主要的种主要的ARMARM指指令集体系结构版本,以版本号令集体系结构版本,以版本号V1V1V5V5表示。表示。3.1 ARM简介n各ARM体系结构版本V1

7、该版本的该版本的ARMARM体系结构,只有体系结构,只有2626位的寻址空间,没位的寻址空间,没有商业化,其特点为:有商业化,其特点为:基本的数据处理指令(不包括乘法);基本的数据处理指令(不包括乘法);字节、字和半字加载字节、字和半字加载/ /存储指令;存储指令;具有分支指令,包括在子程序调用中使用的分支和具有分支指令,包括在子程序调用中使用的分支和链接指令;链接指令;在操作系统调用中使用的软件中断指令。在操作系统调用中使用的软件中断指令。3.1 ARM简介n各ARM体系结构版本V2 同样为同样为2626位寻址空间,现在已经废弃不再使用,位寻址空间,现在已经废弃不再使用,它相对它相对V1V1

8、版本有以下改进:版本有以下改进:具有乘法和乘加指令;具有乘法和乘加指令;支持协处理器;支持协处理器;快速中断模式中的两个以上的分组寄存器;快速中断模式中的两个以上的分组寄存器;具有原子性加载具有原子性加载/ /存储指令存储指令SWPSWP和和SWPBSWPB。3.1 ARM简介n各ARM体系结构版本V3 寻址范围扩展到寻址范围扩展到3232位(事实上也基本废弃),具位(事实上也基本废弃),具有独立的程序:有独立的程序:具有乘法和乘加指令;具有乘法和乘加指令;支持协处理器;支持协处理器;快速中断模式中具有的两个以上的分组寄存器;快速中断模式中具有的两个以上的分组寄存器;具有原子性加载具有原子性加

9、载/ /存储指令存储指令SWPSWP和和SWPBSWPB。3.1 ARM简介n各ARM体系结构版本V4 不在为了与以前的版本兼容而支持不在为了与以前的版本兼容而支持2626位体系结位体系结构,并明确了哪些指令会引起未定义指令异常发生,构,并明确了哪些指令会引起未定义指令异常发生,它相对它相对V3V3版本作了以下的改进:版本作了以下的改进:半字加载半字加载/ /存储指令;存储指令;字节和半字的加载和符号扩展指令;字节和半字的加载和符号扩展指令;具有可以转换到具有可以转换到ThumbThumb状态的指令;状态的指令;用户模式寄存器的新的特权处理器模式。用户模式寄存器的新的特权处理器模式。3.1 A

10、RM简介n各ARM体系结构版本V5 在在V4V4版本的基础上,对现在指令的定义进行了必要的版本的基础上,对现在指令的定义进行了必要的修正,对修正,对V4V4版本的体系结构进行了扩展并增加了指令,具版本的体系结构进行了扩展并增加了指令,具体如下:体如下:改进了改进了ARM/ThumbARM/Thumb状态之间的切换效率;状态之间的切换效率;允许非允许非T T变量和变量和T T变量一样,使用相同代码生成技术;变量一样,使用相同代码生成技术;增加计数前导零指令和软件断点指令;增加计数前导零指令和软件断点指令;对乘法指令如何设置标志作了严格的定义。对乘法指令如何设置标志作了严格的定义。3.1 ARM简

11、介nARM处理器核简介 ARM ARM公司开发了很多系列的公司开发了很多系列的ARMARM处理器核,目处理器核,目前最新的系列已经是前最新的系列已经是ARM11ARM11了,而了,而ARM6ARM6核以及更早核以及更早的系列已经很罕见了。目前应用比较广泛的系列是:的系列已经很罕见了。目前应用比较广泛的系列是:ARM7ARM9ARM9EARM10SecurCoreXscale3.1 ARM简介nARM处理器核简介ARM7 该系列包括该系列包括ARM7TDMIARM7TDMI、ARM7TDMI-SARM7TDMI-S、带有高速、带有高速缓存处理器宏单元的缓存处理器宏单元的ARM720TARM720

12、T和扩充了和扩充了JazelleJazelle的的ARM7EJ-SARM7EJ-S。该系列处理器提供。该系列处理器提供Thumb 16Thumb 16位压缩指位压缩指令集和令集和EmbededICEEmbededICE软件调试方式,适用于更大规模软件调试方式,适用于更大规模的的SoCSoC设计中。设计中。 ARM7ARM7系列广泛应用于多媒体和嵌入式设备,包系列广泛应用于多媒体和嵌入式设备,包括括InternetInternet设备、网络和调制解调器设备,以及移设备、网络和调制解调器设备,以及移动电话、动电话、PDAPDA等无线设备。等无线设备。3.1 ARM简介nARM处理器核简介ARM9

13、该系列包括该系列包括ARM9TDMIARM9TDMI、ARM920TARM920T和带有高速缓和带有高速缓存处理器宏单元的存处理器宏单元的ARM940TARM940T。除了兼容。除了兼容ARM7ARM7系列,系列,而且能够更加灵活的设计。而且能够更加灵活的设计。 ARM9ARM9系列主要应用于引擎管理、仪器仪表、安系列主要应用于引擎管理、仪器仪表、安全系统和机顶盒等领域。全系统和机顶盒等领域。3.1 ARM简介nARM处理器核简介ARM10 该系列包括该系列包括ARM1020EARM1020E和和ARM1020EARM1020E处理器核,处理器核,其核心在于使用向量浮点(其核心在于使用向量浮点

14、(VFPVFP)单元)单元VFP10VFP10提供高提供高性能的浮点解决方案,从而极大提高了处理器的整性能的浮点解决方案,从而极大提高了处理器的整型和浮点运算性能。型和浮点运算性能。 可以用于视频游戏机和高性能打印机等场合可以用于视频游戏机和高性能打印机等场合。3.1 ARM简介nARM处理器核简介SecurCore 该系列涵盖了该系列涵盖了SC100SC100、SC110SC110、SC200SC200和和SC210SC210处处理核。该系列处理器主要针对新兴的安全市场,以理核。该系列处理器主要针对新兴的安全市场,以一种全新的安全处理器设计为智能卡和其它安全一种全新的安全处理器设计为智能卡和

15、其它安全ICIC开发提供独特的开发提供独特的3232位系统设计,并具有特定反伪造位系统设计,并具有特定反伪造方法,从而有助于防止对硬件和软件的盗版。方法,从而有助于防止对硬件和软件的盗版。3.1 ARM简介nARM处理器核简介Xscale Intel Xscale Intel Xscale微控制器则提供全性能、高性价微控制器则提供全性能、高性价比、低功耗的解决方案,支持比、低功耗的解决方案,支持1616位位ThumbThumb指令并集指令并集成数字信号处理(成数字信号处理(DSPDSP)指令。)指令。第3章 目录q1.简介q的模块和内部框图q4.体系结构直接支持的数据类型q5.处理器状态q6.

16、处理器模式q7.内部寄存器q8. 程序状态寄存器q9.异常q10.中断延迟q11.复位q12.存储器及存储器映射I/Oq13.寻址方式简介q指令简介q15.协处理器接口q16.调试接口简介q接口简介3.2 ARM7TDMIn简介 ARM7TDMI ARM7TDMI基于基于ARMARM体系结构体系结构V4V4版本,是目前低版本,是目前低端的端的ARMARM核核。具有广泛的应用,其最显著的应用为。具有广泛的应用,其最显著的应用为数字移动电话。数字移动电话。3.2 ARM7TDMIn简介 ARM7TDMI ARM7TDMI支持支持3232位寻址范围,并弥补了位寻址范围,并弥补了ARM6ARM6不不能

17、在低于能在低于5V5V电源电压下工作的不足。电源电压下工作的不足。ARM7TDMIARM7TDMI的后的后缀意义为:缀意义为:支持高密度16位的Thumb指令集;支持片上调试;支持64位乘法;支持EmbededICE观察硬件;ARM7TDMI 的可综合(synthesizable)版本(软核),对应用工程师来说其编程模型与ARM7TDMI 一致;ARM7 T D M I - S3.2 ARM7TDMIn简介 ARM7TDMI ARM7TDMI处理器是处理器是ARMARM通用通用3232位微处理器家族的位微处理器家族的成员之一。它属于精简指令集计算机(成员之一。它属于精简指令集计算机(RISCR

18、ISC):):高的指令吞吐量;高的指令吞吐量;出色的实时中断响应;出色的实时中断响应;小的、高性价比的处理器宏单元。小的、高性价比的处理器宏单元。3.2 ARM7TDMIn三级流水线三级流水线 ARM7TDMIARM7TDMI处理器使用流水线来增加处理器指令处理器使用流水线来增加处理器指令流的速度,使处理和存储器系统连续操作,能提供流的速度,使处理和存储器系统连续操作,能提供0.9MIPS/MHz0.9MIPS/MHz的指令执行速度。的指令执行速度。3.2 ARM7TDMIn三级流水线三级流水线 正常操作过程中,在执行一条指令的同时对下正常操作过程中,在执行一条指令的同时对下一条指令进行译码,

19、并将第三条指令从存储器中取一条指令进行译码,并将第三条指令从存储器中取出。这三条指令之间的位置关系如下表所示:出。这三条指令之间的位置关系如下表所示:流水线上各指令的地址流水线上各指令的地址流水线工位流水线工位描述描述ARM指令集指令集Thumb指令集指令集PCPC取指取指指令从存储器中取出指令从存储器中取出PC-4PC-2译码译码对指令使用的寄存器进行译码对指令使用的寄存器进行译码PC-8PC-4执行执行从寄存器组中读出寄存器,执行移位和从寄存器组中读出寄存器,执行移位和ALU操作,寄存器被写回到寄存器组中操作,寄存器被写回到寄存器组中 最佳流水线n该例中用该例中用6 6个时钟周期执行了个时

20、钟周期执行了6 6条指令条指令n所有的操作都在寄存器中(单周期执行)所有的操作都在寄存器中(单周期执行)n指令周期数指令周期数 (CPI) = 1(CPI) = 1 操作操作周期周期 1 2 3 45 6 ADD SUB MOV AND ORR EOR CMP RSBFetchDecodeExecuteFetchDecodeExecuteFetchDecodeExecuteFetchDecodeExecuteFetchDecodeExecuteDecodeExecuteFetchDecodeFetchFetch LDR 流水线举例n该例中,用该例中,用6 6周期执行了周期执行了4 4条指令条指

21、令n 周期周期 操作操作123456 ADD SUB LDR MOV AND ORRFetchDecodeExecuteFetchDecodeExecuteFetchDecodeExecuteDataWritebackFetchDecodeExecuteFetchDecodeFetch分支流水线举例n流水线被阻断n注意:内核运行在ARM状态周期周期 1 2 3 4 5 0 x8000 BL 0 x8004 X0 x8008 XX0 x8FEC ADD0 x8FF0 SUB0 x8FF4 MOV地址地址 操作操作FetchDecodeExecuteFetchDecodeExecuteFetchD

22、ecodeFetchFetchDecodeExecuteLinkretAdjustFetchDecodeFetch3.2 ARM7TDMIn存储器访问存储器访问 ARM7TDMI ARM7TDMI处理器使用了处理器使用了冯冯诺依曼诺依曼(Von NeumannVon Neumann)结构,指令和数据共用一条结构,指令和数据共用一条3232位总线。只有装载、存位总线。只有装载、存储和交换指令可以对存储器中的数据进行访问。储和交换指令可以对存储器中的数据进行访问。 数据可以是字节(数据可以是字节( 8 8位)、半字(位)、半字( 1616位)或者字位)或者字(3232位)。位)。第3章 目录q1.

23、简介q的模块和内部框图q4.体系结构直接支持的数据类型q5.处理器状态q6.处理器模式q7.内部寄存器q8. 程序状态寄存器q9.异常q10.中断延迟q11.复位q12.存储器及存储器映射I/Oq13.寻址方式简介q指令简介q15.协处理器接口q16.调试接口简介q接口简介3.3 ARM7TDMI的模块和内核框图nARM7TDMIARM7TDMI处理处理器部件和主要器部件和主要信号路径的框信号路径的框图如图所示。图如图所示。它内部由处理它内部由处理器核、用于边器核、用于边界扫描的界扫描的TAPTAP控制器和在线控制器和在线仿真器仿真器ICEICE组组成。双向数据成。双向数据总线总线D31D31

24、:00被分割成单向被分割成单向输入和输出总输入和输出总线,以便于与线,以便于与外部存储器兼外部存储器兼容。容。 n3.3 ARM7TDMI的模块和内核框图ARM7TDMI模块地址寄存器寄存器组31*32位寄存器(6个状态寄存器)地址增加器乘法器桶形移位器32位ALU写数据寄存器指令管线读数据寄存器Thumb指令译码器指令译码和控制逻辑ADDR31:0CLKCLENCFGBIGENDnIRQnFIQnRESETABORTLOCKWRITESIZE1:0PROT1:0TRANS1:0DBG输出DBG输入CP控制CP握手WDATA31:0RDATA31:0扫描调试控制ARM7TDMIn3.3 ARM

25、7TDMI的模块和内核框图第3章 目录q1.简介q的模块和内部框图q4.体系结构直接支持的数据类型q5.处理器状态q6.处理器模式q7.内部寄存器q8. 程序状态寄存器q9.异常q10.中断延迟q11.复位q12.存储器及存储器映射I/Oq13.寻址方式简介q指令简介q15.协处理器接口q16.调试接口简介q接口简介3.4 体系结构直接支持的数据类型体系结构直接支持的数据类型n体系结构直接支持的数据类型体系结构直接支持的数据类型ARMARM处理器支持下列数据类型:处理器支持下列数据类型:字节字节 8 8位位半字半字 1616位(必须分配为占用两个字节)位(必须分配为占用两个字节)字字 3232

26、位位(必须分配为占用(必须分配为占用4 4个个字节)字节)1112342第3章 目录q1.简介q的模块和内部框图q4.体系结构直接支持的数据类型q5.处理器状态q6.处理器模式q7.内部寄存器q8. 程序状态寄存器q9.异常q10.中断延迟q11.复位q12.存储器及存储器映射I/Oq13.寻址方式简介q指令简介q15.协处理器接口q16.调试接口简介q接口简介3.5 处理器状态n处理器状态处理器状态 ARM7TDMI ARM7TDMI处理器内核使用处理器内核使用V4TV4T版本的版本的ARMARM结构,结构,该结构包含该结构包含3232位位ARMARM指令集和指令集和1616位位ThumbT

27、humb指令集。因指令集。因此此ARM7TDMIARM7TDMI处理器有两种操作状态:处理器有两种操作状态:ARMARM状态:状态:3232位,这种状态下执行的是字方式的位,这种状态下执行的是字方式的ARMARM指令;指令;ThumbThumb状态:状态:1616位,这种状态下执行半字方式的位,这种状态下执行半字方式的ARMARM指令。指令。注意注意:两个状态之间的切换并不影响处理器模式或:两个状态之间的切换并不影响处理器模式或寄存器内容。寄存器内容。3.5 处理器状态n处理器状态处理器状态 使用使用BXBX指令将指令将ARM7TDMIARM7TDMI内核的操作状态在内核的操作状态在ARMAR

28、M状状态和态和ThumbThumb状态之间进行切换,程序如下所示。状态之间进行切换,程序如下所示。;从从Arm状态切换到状态切换到Thumb状态状态 LDR R0,=Lable+1 BX R0;从从Thumb状态切换到状态切换到ARM状态状态 LDR R0,=Lable BX R0地址最低位为1,表示切换到Thumb状态地址最低位为0,表示切换到ARM状态跳转地址标号第3章 目录q1.简介q的模块和内部框图q4.体系结构直接支持的数据类型q5.处理器状态q6.处理器模式q7.内部寄存器q8. 程序状态寄存器q9.异常q10.中断延迟q11.复位q12.存储器及存储器映射I/Oq13.寻址方式简

29、介q指令简介q15.协处理器接口q16.调试接口简介q接口简介3.6 处理器模式n简介简介 ARM ARM体系结构支持体系结构支持7 7种处理器模式,分别为:种处理器模式,分别为:用用户模式、快中断模式、中断模式、管理模式、中止户模式、快中断模式、中断模式、管理模式、中止模式、未定义模式和系统模式,模式、未定义模式和系统模式,如下表所示。这样如下表所示。这样的好处是可以更好的支持操作系统并提高工作效率。的好处是可以更好的支持操作系统并提高工作效率。ARM7TDMIARM7TDMI完全支持这七种模式。完全支持这七种模式。处理器模式处理器模式说明说明备注备注 用户用户 (usr)正常程序工作模式正

30、常程序工作模式不能直接切换到其它模式不能直接切换到其它模式 系统系统 (sys)用于支持操作系统的特用于支持操作系统的特权任务等权任务等与用户模式类似,但具有可以与用户模式类似,但具有可以直接切换到其它模式等特权直接切换到其它模式等特权 快中断快中断 (fiq)支持高速数据传输及通支持高速数据传输及通道处理道处理FIQ异常响应时进入此模式异常响应时进入此模式 中断中断 (irq) 用于通用中断处理用于通用中断处理IRQ异常响应时进入此模式异常响应时进入此模式 管理管理 (svc)操作系统保护代码操作系统保护代码系统复位和软件中断响应时进系统复位和软件中断响应时进入此模式入此模式 中止中止 (a

31、bt)用于支持虚拟内存和用于支持虚拟内存和/或或存储器保护存储器保护在在ARM7TDMI没有大用处没有大用处 未定义未定义 (und)支持硬件协处理器的软支持硬件协处理器的软件仿真件仿真未定义指令异常响应时进入此未定义指令异常响应时进入此模式模式3.6 处理器模式n处理器模式3.6 处理器模式n特权模式处理器模式处理器模式说明说明备注备注 用户用户 (usr)正常程序工作模式正常程序工作模式不能直接切换到其它模式不能直接切换到其它模式 系统 (sys)用于支持操作系统的特权任务等与用户模式类似,但具有可以直接切换到其它模式等特权 快中断 (fiq)支持高速数据传输及通道处理FIQ异常响应时进入

32、此模式 中断 (irq) 用于通用中断处理IRQ异常响应时进入此模式 管理 (svc)操作系统保护代码系统复位和软件中断响应时进入此模式 中止 (abt)用于支持虚拟内存和/或存储器保护在ARM7TDMI没有大用处 未定义 (und)支持硬件协处理器的软件仿真未定义指令异常响应时进入此模式 除用户模式外,其它模式均除用户模式外,其它模式均为为特权模式特权模式。ARMARM内部寄存器和内部寄存器和一些片内外设在硬件设计上只允许一些片内外设在硬件设计上只允许(或者可选为只允许)特权模式下(或者可选为只允许)特权模式下访问。此外,特权模式可以自由的访问。此外,特权模式可以自由的切换处理器模式,而用户

33、模式不能切换处理器模式,而用户模式不能直接切换到别的模式。直接切换到别的模式。 未定义未定义 (und) 中止中止 (abt) 管理管理 (svc) 中断中断 (irq) 快中断快中断 (fiq) 系统系统 (sys)3.6 处理器模式n异常模式处理器模式说明备注 用户 (usr)正常程序工作模式不能直接切换到其它模式 系统 (sys)用于支持操作系统的特权任务等与用户模式类似,但具有可以直接切换到其它模式等特权 快中断 (fiq)支持高速数据传输及通道处理FIQ异常响应时进入此模式 中断 (irq) 用于通用中断处理IRQ异常响应时进入此模式 管理 (svc)操作系统保护代码系统复位和软件中

34、断响应时进入此模式 中止 (abt)用于支持虚拟内存和/或存储器保护在ARM7TDMI没有大用处 未定义 (und)支持硬件协处理器的软件仿真未定义指令异常响应时进入此模式 未定义 (und) 中止 (abt) 管理 (svc)中断 (irq)快中断 (fiq) 这五种模式称为异常模式。它们除了可以通过程序切换进入外,也可以由特定的异常进入。当特定的异常出现时,处理器进入相应的模式。每种异常模式都有一些独立的寄存器,以避免异常退出时用户模式的状态不可靠。3.6 处理器模式n用户和系统模式处理器模式说明备注 用户 (usr) 正常程序工作模式不能直接切换到其它模式 系统 (sys)用于支持操作系

35、统的特权任务等与用户模式类似,但具有可以直接切换到其它模式等特权 快中断 (fiq)支持高速数据传输及通道处理FIQ异常响应时进入此模式 中断 (irq)用于通用中断处理IRQ异常响应时进入此模式 管理 (svc)操作系统保护代码系统复位和软件中断响应时进入此模式 中止 (abt)用于支持虚拟内存和/或存储器保护在ARM7TDMI没有大用处 未定义 (und)支持硬件协处理器的软件仿真未定义指令异常响应时进入此模式 这两种模式都不能由异常进入,而且它们使用完全相同的寄存器组。 系统模式是特权模式,不受用户模式的限制。操作系统在该模式下访问用户模式的寄存器就比较方便,而且操作系统的一些特权任务可

36、以使用这个模式访问一些受控的资源。 系统 (sys) 用户 (usr)第3章 目录q1.简介q的模块和内部框图q4.体系结构直接支持的数据类型q5.处理器状态q6.处理器模式q7.内部寄存器q8. 程序状态寄存器q9.异常q10.中断延迟q11.复位q12.存储器及存储器映射I/Oq13.寻址方式简介q指令简介q15.协处理器接口q16.调试接口简介q接口简介3.7 内部寄存器n简介简介 在在ARM7TDMIARM7TDMI处理器内部有处理器内部有3737个用户可见的寄存器。个用户可见的寄存器。 在不同的工作模式和处理器状态下,程序员可以访在不同的工作模式和处理器状态下,程序员可以访问的寄存器

37、也不尽相同。问的寄存器也不尽相同。寄存器寄存器类别类别寄存器在汇编寄存器在汇编中的名称中的名称各模式下实际访问的寄存器用户用户系统系统管理管理中止中止未定义未定义中断中断快中断快中断通用寄通用寄存器和存器和程序计程序计数器数器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_abt R13_undR13

38、_irqR13_fiqR14(LR)R14R14_svcR14_abt R14_undR14_irqR14_fiqR15(PC)R15状态寄状态寄存器存器CPSRCPSRSPSR无无SPSR_abt SPSR_abt SPSR_und SPSR_irq SPSR_fiqARMARM状态各模式下的寄存器状态各模式下的寄存器寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v

39、6)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_fiqARMARM状态各模式下的寄存器状态各模式下的寄存器SPSR_fiqSPSR_irqSPSR_undSPSR_abtSPSR_abtCPSRR15R

40、14_fiqR14_irqR14_undR14_abtR14_svcR14R13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8R7R6R5R4R3R2R1R0所有的所有的3737个寄存器,分个寄存器,分成两大类:成两大类:3131个通用个通用3232位寄存器;位寄存器;6 6个状态寄存器。个状态寄存器。寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v

41、1)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_abt SPSR_undSPSR_irqSPSR_fiq无CPSRR15R14R13R12R11R10R9

42、R8R7R6R5R4R3R2R1R0用户用户无CPSRR15R14R13R12R11R10R9R8R7R6R5R4R3R2R1R0系统系统SPSR_abtCPSRR15R14_svcR13_svcR12R11R10R9R8R7R6R5R4R3R2R1R0管理管理SPSR_abtCPSRR15R14_abtR13_abtR12R11R10R9R8R7R6R5R4R3R2R1R0中止中止SPSR_undCPSRR15R14_undR13_undR12R11R10R9R8R7R6R5R4R3R2R1R0未定义未定义SPSR_irqCPSRR15R14_irqR13_irqR12R11R10R9R8R

43、7R6R5R4R3R2R1R0中断中断SPSR_fiqCPSRR15R14_fiqR13_fiqR12_fiqR11_fiqR10_fiqR9_fiqR8_fiqR7R6R5R4R3R2R1R0快中断快中断ARMARM状态各模式下可以访问的寄存器状态各模式下可以访问的寄存器寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器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)R10R

44、10_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_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiq

45、R8R7R6R5R4R3R2R1R0 在汇编语言中寄存器R0R13为保存数据或地址值的通用寄存器。它们是完全通用的寄存器,不会被体系结构作为特殊用途,并且可用于任何使用通用寄存器的指令。寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器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_fiqR

46、13(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_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8R7R6R5R4R3R2R1R0R7R6R5R4R3R2R1R0 其中R0R7为未分

47、组的寄存器,也就是说对于任何处理器模式,这些寄存器都对应于相同的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)R

48、14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15状态寄存器CPSRCPSRSPSR无SPSR_abtSPSR_abt SPSR_undSPSR_irqSPSR_fiq一般的通用寄存器一般的通用寄存器R14_fiqR14_irqR14_undR14_abtR14_svcR14R13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8 寄存器R8R14为分组寄存器。它们所对应的物理寄存器取决于当前的处理器模式,几乎所有允许使用通用寄存器的指令都

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_irqR1

50、4_fiqR15(PC)R15状态寄存器CPSRCPSRSPSR无SPSR_abtSPSR_abt SPSR_undSPSR_irqSPSR_fiq一般的通用寄存器一般的通用寄存器R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8 寄存器R8R12有两个分组的物理寄存器。一个用于除FIQ模式之外的所有寄存器模式,另一个用于FIQ模式。这样在发生FIQ中断后,可以加速FIQ的处理速度。寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3

51、R4(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_abt SPSR_undSPSR_irqSPSR_fiq一般的通用寄存器一般的通用寄存器 寄存器R

52、13、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)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v

53、8)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堆栈指针寄存器堆栈指针寄存器R13R13(SPSP) 寄存器R13常作为堆栈指针(SP)。在ARM指令集当中,没有以特殊方式使用R13的指令或其它功能,只是习惯上都这样使用。但是在Thumb指令集中存在使用R13的指令。寄存

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

55、)R15状态寄存器CPSRCPSRSPSR无SPSR_abtSPSR_abt SPSR_undSPSR_irqSPSR_fiq链接寄存器链接寄存器R14R14(LRLR) R14为链接寄存器(LR),在结构上有两个特殊功能:在每种模式下,模式自身的R14版本用于保存子程序返回地址;当发生异常时,将R14对应的异常模式版本设置为异常返回地址(有些异常有一个小的固定偏移量)。Lable程序A程序BR143.7 内部寄存器nR14(LR)寄存器与子程序调用BL Lable地址A?MOV PC,LRR14(地址A)Lable?1.1.程序程序A A执行过程中调执行过程中调用程序用程序B B;操作流程操

56、作流程2.2.程序跳转至标号程序跳转至标号LableLable,执行程序,执行程序B B。同。同时硬件将时硬件将“BL Lable”BL Lable”指令的下一条指令所在指令的下一条指令所在地址存入地址存入R14R14(LRLR););3.3.程序程序B B执行最后,执行最后,R14R14寄存器的内容放入寄存器的内容放入PCPC,返回程序,返回程序A A;3.7 内部寄存器nR14寄存器与异常发生 异常发生时,程序要跳转至异常服务程序,对异常发生时,程序要跳转至异常服务程序,对返回地址的处理与子程序调用类似,都是由硬件完返回地址的处理与子程序调用类似,都是由硬件完成的。区别在于有些异常有一个小

57、常量的偏移。成的。区别在于有些异常有一个小常量的偏移。3.7 内部寄存器nR14寄存器注意要点当发生异常嵌套时,这些异常之间可能会发生冲突。当发生异常嵌套时,这些异常之间可能会发生冲突。例如:如果用户在用户模式下执行程序时发生了例如:如果用户在用户模式下执行程序时发生了IRQIRQ中断,用户模式寄存器不会被破坏。但是如果允许中断,用户模式寄存器不会被破坏。但是如果允许在在IRQIRQ模式下的中断处理程序重新使能模式下的中断处理程序重新使能IRQIRQ中断,并中断,并且发生了嵌套的且发生了嵌套的IRQIRQ中断时,外部中断处理程序保存中断时,外部中断处理程序保存在在R14_irqR14_irq中

58、的任何值都将被嵌套中断的返回地址所中的任何值都将被嵌套中断的返回地址所覆盖。覆盖。3.7 内部寄存器nR14寄存器注意要点R14R14_irq用户模式下的程序IRQ模式下的程序AareturnB.XA地址A地址A1.执行用户模式下的程序;2.发生IRQ中断,硬件将某个地址存入IRQ模式下的R14_irq寄存器,用户模式下的R14没有被破坏;3. IRQ服务程序A执行完毕,将R14_irq寄存器的内容减去某个常量后存入PC,返回之前被中断的程序;未被破坏R14_irq3.7 内部寄存器nR14寄存器注意要点R14R14_irq用户模式下的程序IRQ模式下的程序AaB.XA地址A地址A1.执行用户

59、模式下的程序;2.发生IRQ中断,硬件将某个地址存入IRQ模式下的R14_irq寄存器,用户模式下的R14没有被破坏;3. IRQ服务程序A执行完毕,将R14_irq寄存器的内容减去某个常量后存入PC,返回之前被中断的程序;未被破坏IRQ模式下的程序BareturnB.XA地址B地址B4. 如果在IRQ处理程序中打开IRQ中断,并且再次发生IRQ中断;5. 硬件将返回地址保存在R14_irq寄存器中,原来保存的返回地址将被覆盖,造成错误;R14_irq 被破坏6. 在程序B返回到程序A,然后在返回到用户模式下被中断的程序时,发生错误,将不能正确返回;returnreturn 解决办法是确保R1

60、4的对应版本在发生中断嵌套时不再保存任何有意义的值(将R14入栈),或者切换到其它处理器模式下。寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器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_fiqR

温馨提示

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

最新文档

评论

0/150

提交评论