第8章ARM系列单片机原理与应用_第1页
第8章ARM系列单片机原理与应用_第2页
第8章ARM系列单片机原理与应用_第3页
第8章ARM系列单片机原理与应用_第4页
第8章ARM系列单片机原理与应用_第5页
已阅读5页,还剩311页未读 继续免费阅读

下载本文档

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

文档简介

1、 8.1 ARM系列单片机概述 8.2 ARM处理器的编程模型 8.3 ARM系列单片机的硬件结构 8.4 ARM系列单片机指令系统及编程 8.5 ARM系列单片机集成开发环境 第8章 ARM系列单片机原理与应用 8.1 ARM系列单片机概述 ARMARM系列单片机实际上是对基于系列单片机实际上是对基于ARMARM处理器核而设计的一类单片机的处理器核而设计的一类单片机的泛称泛称, ,也常被称为也常被称为ARMARM系列微控制器。系列微控制器。ARMARM是是Advanced RISC Machines Advanced RISC Machines 的缩写,是英国一家知名微处理器设计公司的名称。

2、的缩写,是英国一家知名微处理器设计公司的名称。ARMARM公司既不生产公司既不生产芯片也不销售芯片,它只从事处理器技术研发和技术授权转让,将其芯片也不销售芯片,它只从事处理器技术研发和技术授权转让,将其自主研发的技术出售给合作伙伴公司,由他们去生产基于自主研发的技术出售给合作伙伴公司,由他们去生产基于ARMARM核的单片核的单片机芯片。至今,全世界包括机芯片。至今,全世界包括IntelIntel、PhilipsPhilips、AtmelAtmel、IBMIBM、TITI、ADAD、MotorolaMotorola、AlteraAltera、NetSiliconNetSilicon、OKIOKI

3、、SONYSONY、NECNEC等许多著名半导体等许多著名半导体公司在内的公司在内的100100多家公司,都与多家公司,都与ARMARM公司建立了合作伙伴关系,采用了公司建立了合作伙伴关系,采用了其其ARMARM核技术来生产微处理器或微控制器芯片。国内多家大公司也已经核技术来生产微处理器或微控制器芯片。国内多家大公司也已经购买购买ARMARM公司的芯核技术,用于通信专用芯片的设计。公司的芯核技术,用于通信专用芯片的设计。 8.1 ARM系列单片机概述 ARMARM处理器核的显著特点是速度高、功耗低、功能强、价格廉,具处理器核的显著特点是速度高、功耗低、功能强、价格廉,具有业界公认的世界领先、最

4、受欢迎的有业界公认的世界领先、最受欢迎的3232位嵌入式位嵌入式 RISC ( Reduced RISC ( Reduced Instruction Set Computer)Instruction Set Computer)处理器结构(通常称之为处理器结构(通常称之为ARMARM体系结构)。体系结构)。因此,因此,ARMARM核单片机在移动通信、可视电话、信息家电、掌上电脑、核单片机在移动通信、可视电话、信息家电、掌上电脑、TVTV机机顶盒、数码照相机、摄像机等控制及算法相对复杂、数据存储及处理量顶盒、数码照相机、摄像机等控制及算法相对复杂、数据存储及处理量较大、事务调度能力和实时性要求较高

5、的场合,获得了极为广泛的应用,较大、事务调度能力和实时性要求较高的场合,获得了极为广泛的应用,而且必将用得越来越广泛。目前在而且必将用得越来越广泛。目前在3232位单片机市场上,位单片机市场上,ARMARM实际上已扮演实际上已扮演着类似于着类似于8 8位单片机市场上位单片机市场上80518051的角色的角色。 8.1 ARM系列单片机概述 按照按照ARMARM结构设计的结构设计的ARMARM处理器核,经过多年的发展和优胜劣汰,处理器核,经过多年的发展和优胜劣汰,当前应用较多的主要有当前应用较多的主要有6 6个系列:个系列:ARM7ARM7、ARM9ARM9、ARM9EARM9E、ARM10EA

6、RM10E、SecurCoreSecurCore和最新的和最新的ARM11ARM11。其中在中国市场上比较流行的主要是。其中在中国市场上比较流行的主要是ARM7ARM7和和ARM9ARM9两个系列,两者功能、性能上虽然互有差异,但基本结构大同两个系列,两者功能、性能上虽然互有差异,但基本结构大同小异,且都是小异,且都是3232位嵌入式处理器,都同时支持位嵌入式处理器,都同时支持3232位的位的ARMARM指令集和指令集和1616位的位的ThumbThumb指令集,因此在应用编程上也大同小异。鉴于指令集,因此在应用编程上也大同小异。鉴于ARM7ARM7比比ARM9ARM9应用更广,基于应用更广,

7、基于ARM7ARM7处理器核设计生产芯片的公司更多,同时其性能处理器核设计生产芯片的公司更多,同时其性能价格比也更高,加之结合它进行教学既简单又典型,所以本章将主要价格比也更高,加之结合它进行教学既简单又典型,所以本章将主要以以ARM7ARM7处理器核为例,介绍处理器核为例,介绍ARMARM的编程结构和以它为核心构成的单片的编程结构和以它为核心构成的单片机的应用系统设计和调试方法。机的应用系统设计和调试方法。 8.1.1 ARM核的结构特性 ARM ARM 处理器核是基于精简指令集计算机处理器核是基于精简指令集计算机(RISC)(RISC)原理而设计的,原理而设计的,因此它在体系结构上具有极典

8、型的因此它在体系结构上具有极典型的RISCRISC特性,如:特性,如: 具有统一和固定长度的指令域,使指令集和指令译码大大简具有统一和固定长度的指令域,使指令集和指令译码大大简化;化; 具有一个大而统一的寄存器文件,大多数数据操作都在寄存具有一个大而统一的寄存器文件,大多数数据操作都在寄存器中完成,使指令执行速度更快;器中完成,使指令执行速度更快; 采用加载采用加载/ /存储结构,使数据处理时只对寄存器操作,而不直存储结构,使数据处理时只对寄存器操作,而不直接对存储器操作;接对存储器操作; 寻址方式简单而灵活,所有加载寻址方式简单而灵活,所有加载/ /存储的地址都只由寄存器的存储的地址都只由寄

9、存器的内容和指令域决定,执行效率高;内容和指令域决定,执行效率高; 8.1.1 ARM核的结构特性 每一条数据处理指令都对算术逻辑单元(每一条数据处理指令都对算术逻辑单元(ALUALU)和移位寄存器)和移位寄存器进行控制,以最大限度地提高进行控制,以最大限度地提高ALUALU和移存器的利用率;和移存器的利用率; 采用自动增采用自动增/ /减地址的寻址方式,有利于优化循环程序的执行;减地址的寻址方式,有利于优化循环程序的执行; 引入多寄存器加载引入多寄存器加载/ /存储指令,有利于实现数据吞吐量的最大存储指令,有利于实现数据吞吐量的最大化;化; 所有指令的条件执行有利于实现最快速的代码执行;所有

10、指令的条件执行有利于实现最快速的代码执行; 。 8.1.1 ARM核的结构特性 这些这些RISCRISC结构特性带来的结果,是使结构特性带来的结果,是使ARMARM核在高性能、低代码规核在高性能、低代码规模、低功耗和高集成度等方面获得了良好的平衡,实现了综合优化,模、低功耗和高集成度等方面获得了良好的平衡,实现了综合优化,从而使指令吞吐量和吞吐率明显增大,实时中断响应性能显著增强,从而使指令吞吐量和吞吐率明显增大,实时中断响应性能显著增强,总的性能价格比大大提高。总的性能价格比大大提高。 ARMARM的体系结构从提出至今,一直在不断改进、完善和发展,的体系结构从提出至今,一直在不断改进、完善和

11、发展,根据其所用指令集的不同,先后推出了根据其所用指令集的不同,先后推出了5 5种版本种版本v1v1v5v5。版本。版本v1v1、v2v2均只有均只有2626位的寻址空间,现在基本上已废弃不用。版本位的寻址空间,现在基本上已废弃不用。版本v3v3v5v5,将寻址空间扩展到了将寻址空间扩展到了3232位。位。 8.1.2 ARM7系列处理器核简介 ARM7ARM7系列处理器核包括系列处理器核包括ARM7TDMIARM7TDMI、ARM7TDMI-SARM7TDMI-S、ARM720TARM720T和和ARM7EJ-SARM7EJ-S。 ARM7TDMIARM7TDMI是从是从ARM6ARM6核发

12、展而来的第一款核发展而来的第一款ARM7ARM7核,它的后缀核,它的后缀“TDMI”TDMI”反映了它在反映了它在ARM6ARM6基础上所增加的功能:基础上所增加的功能: T T表示扩展了高密表示扩展了高密度度1616位的位的ThumbThumb指令集;指令集;D D表示支持在片调试,允许处理器响应调试表示支持在片调试,允许处理器响应调试请求暂停;请求暂停; M M表示具有增强型表示具有增强型6464位乘法指令,支持两个位乘法指令,支持两个3232位数相乘位数相乘而直接产生而直接产生6464位结果;位结果;I I表示内含表示内含EmberdedICEEmberdedICE观察点硬件,可提供观察

13、点硬件,可提供对设置片上断点和调试点的支持。对设置片上断点和调试点的支持。 8.1.2 ARM7系列处理器核简介 ARM7TDMI-SARM7TDMI-S是是ARM7TDMIARM7TDMI的可综合(的可综合(SynthesizableSynthesizable)版本(软)版本(软核)核), ,逻辑上与逻辑上与ARM7TDMIARM7TDMI基本相同,编程模型与基本相同,编程模型与ARM7TDMIARM7TDMI完全一样,完全一样,差别仅在于它的逻辑功能可由芯片生产厂商进行裁剪。所以,以后差别仅在于它的逻辑功能可由芯片生产厂商进行裁剪。所以,以后如无特殊说明,对这两者不予区分,统称为如无特殊说

14、明,对这两者不予区分,统称为ARM7TDMIARM7TDMI。 8.1.2 ARM7系列处理器核简介 ARM720TARM720T是带有高速缓存处理宏单元的高性能是带有高速缓存处理宏单元的高性能ARM7ARM7核,宏单元中核,宏单元中提供了提供了8KB8KB缓存、读缓冲和内存管理等功能,可支持缓存、读缓冲和内存管理等功能,可支持LinuxLinux、Symbiam Symbiam OSOS和和Windows CEWindows CE等操作系统。等操作系统。 ARM7EJ-SARM7EJ-S是扩充了是扩充了JazelleJazelle功能的可综合版本处理器核。该系列功能的可综合版本处理器核。该系

15、列处理器核都提供了处理器核都提供了ARM32ARM32位指令集和位指令集和Thumb16Thumb16位压缩指令集,提供了对位压缩指令集,提供了对EmbeddedICE JTAGEmbeddedICE JTAG软件调试方式的支持,很适合用于大规模、超大规软件调试方式的支持,很适合用于大规模、超大规模集成的模集成的SoCSoC设计中,并能很好地兼容设计中,并能很好地兼容8 8位位/16/16位器件,目前在位器件,目前在PDAPDA、移、移动电话等智能化多媒体无线设备领域和调制解调器、网卡等广域网、动电话等智能化多媒体无线设备领域和调制解调器、网卡等广域网、局域网接入设备中已获得广泛应用。局域网接

16、入设备中已获得广泛应用。 8.1.3 常用ARM系列单片机选型指南 如前所述,世界上基于如前所述,世界上基于ARMARM处理器核开发生产处理器核开发生产ARMARM单片机(包括微处理单片机(包括微处理器和微控制器芯片)的公司很多,因此各器和微控制器芯片)的公司很多,因此各ARMARM系列单片机的型号种类都很多,系列单片机的型号种类都很多,如如AtmelAtmel公司基于公司基于ARM7TDMIARM7TDMI核的芯片型号核的芯片型号AT91F40416AT91F40416,AT91FR40481AT91FR40481,AT91F40807AT91F40807,AT91F42800AT91F42

17、800,AT91F43300AT91F43300,AT91F55800AT91F55800,AT91F40807AT91F40807,AT91M40400AT91M40400,AT91M40800AT91M40800,AT91M63200AT91M63200,AT75C220AT75C220,AT75C310AT75C310;NetSiliconNetSilicon公司基于公司基于ARM720TDMIARM720TDMI核的核的NET+15NET+15,NET+40NET+40,NET+50NET+50;LinkupLinkup公公司基于司基于ARM720TARM720T核的核的L7200L7

18、200,L7205L7205,L7210L7210;AlteraAltera公司基于公司基于ARM922TARM922T核的核的EPXA1EPXA1,EPXA4EPXA4,EPXA10EPXA10;SamsungSamsung公司基于公司基于ARM720TDMIARM720TDMI核的核的S3C3400AS3C3400A,S3C3410AS3C3410A,S3C44A0AS3C44A0A,S3C34B0AS3C34B0A,S3C34510S3C34510;MotorolaMotorola公司基于公司基于ARM9207ARM9207核核的的DragonBallMXIDragonBallMXI;S

19、harpSharp公司基于公司基于ARM720TDMIARM720TDMI核的核的LH75400LH75400,基于,基于ARM720TARM720T核的核的LH79520LH79520,基于,基于ARM922TARM922T核的核的LH7A400LH7A400;等等。;等等。 8.1.3 常用ARM系列单片机选型指南 不同公司、不同型号的产品,功能性能各有千秋。这里仅以市场不同公司、不同型号的产品,功能性能各有千秋。这里仅以市场上较常见、应用也较广的,上较常见、应用也较广的,PhilipsPhilips公司基于公司基于ARM7TDMIARM7TDMIS S核生产的核生产的LPC2100LPC

20、2100和和LPC2200LPC2200两个系列的两个系列的3232位位ARMARM微控制器为例,给出它们中主微控制器为例,给出它们中主要型号的功能配置,如表要型号的功能配置,如表8.18.1所示。读者可以此作为选型指南,参照所示。读者可以此作为选型指南,参照其中的配置来决定自己的芯片选型。其中的配置来决定自己的芯片选型。 8.1.3 常用ARM系列单片机选型指南 8.1 Philips LPC8.1 Philips LPC系列系列3232位位ARMARM微控制器选型指南微控制器选型指南型号型号存储器存储器定时定时/计数器计数器模数转换模数转换CANWDT串行接口串行接口I/O通通道道数数CP

21、U电压电压 /VI/O 电压电压/V最高最高频率频率/MHz封装封装RAM/KBFlash/KBISPIAPTim. PWMRTCADC路路/位位DAC路路/位位UARTI2CSPIUSBLPC2100系列系列LPC210128YYYY-8/10-Y222-321.83.370LQFP48LPC2102416YYYY-8/10-Y222-321.83.370LQFP48LPC2103832YYYY-8/10-Y222-321.83.370LQFP48LPC210416128YYYYY-Y2YY-321.83.360LQFP48LPC210532128YYYYY-Y2YY-321.83.360L

22、QFP48LPC210664128YYYYY-Y2YY-321.83.360LQFP48LPC211416128YYYYY4/10-Y2Y2-461.83.360LQFP64LPC211916128YYYYY4/10-2Y2Y2-461.83.360LQFP64LPC212416256YYYYY4/10-Y2Y2-461.83.360LQFP64LPC212916256YYYYY4/10-2Y2Y2-461.83.360LQFP64LPC2131832YYYYY8/10-Y222-473.33.360LQFP64LPC21321664YYYYY8/101/10-Y222-473.33.360L

23、QFP64LPC213416128YYYYY8/10 x21/10-Y222-473.33.360LQFP64LPC213632256YYYYY8/10 x21/10-Y222-473.33.360LQFP64LPC213832512YYYYY8/10 x21/10-Y222-473.33.360LQFP64 8.1.3 常用ARM系列单片机选型指南 8.1 Philips LPC8.1 Philips LPC系列系列3232位位ARMARM微控制器选型指南微控制器选型指南型号型号存储器存储器定时定时/计数器计数器模数转换模数转换CANWDT串行接口串行接口I/O通通道道数数CPU电压电压 /

24、VI/O 电压电压/V最高最高频率频率/MHz封装封装RAM/KBFlash/KBISPIAPTim. PWMRTCADC路路/位位DAC路路/位位UARTI2CSPIUSBLPC2100系列系列LPC2141832YYYYY6/101/10-Y222Y453.33.360LQFP64LPC21421664YYYYY6/101/10-Y222Y453.33.360LQFP64LPC214416128YYYYY14/101/10-Y222Y453.33.360LQFP64LPC214632+8256YYYYY14/101/10-Y222Y453.33.360LQFP64LPC214832+851

25、2YYYYY14/101/10-Y222Y453.33.360LQFP64LPC219416256YYYYY4/101/10-Y222Y461.83.360LQFP64LPC2200系列系列LPC221016-YYY8/10-Y2Y2-761.83.360LQFP144LPC221216128YYYYY8/10-Y2Y2-1121.83.360LQFP144LPC221416256YYYYY8/10-Y2Y2-1121.83.360LQFP144LPC222064-YYY8/10-Y2Y2-761.83.375LQFP144LPC229016-YYY8/10-2Y2Y2-761.83.360L

26、QFP144LPC229216256YYYYY8/10-2Y2Y2-1121.83.360LQFP144LPC229416256YYYYY8/10-4Y2Y2-1121.83.360LQFP144 8.2 ARM处理器的编程模式 本节简介本节简介ARMARM处理器编程模型的一些基本概念,包括处理器工作处理器编程模型的一些基本概念,包括处理器工作状态与运行模式、数据类型与存储格式、寄存器组织、处理器异常等。状态与运行模式、数据类型与存储格式、寄存器组织、处理器异常等。通过对本节的学习,旨在使读者对通过对本节的学习,旨在使读者对ARMARM微处理器的基本工作原理和一微处理器的基本工作原理和一些与程

27、序设计相关的基本技术细节有个初步了解,为应用编程打下必些与程序设计相关的基本技术细节有个初步了解,为应用编程打下必要基础。要基础。 8.2.1 ARM的工作状态和运行模式 1. 1. 工作状态工作状态 从编程的角度看,从编程的角度看,ARMARM处理器的工作状态一般有两种:处理器的工作状态一般有两种: ARM ARM状态。此时处理器执行状态。此时处理器执行3232位的字对齐的位的字对齐的ARMARM指令。指令。 Thumb Thumb状态。此时处理器执行状态。此时处理器执行1616位的、半字对齐的位的、半字对齐的ThumbThumb指令。指令。 当当ARMARM处理器执行处理器执行3232位位

28、ARMARM指令集中的指令时,工作在指令集中的指令时,工作在ARMARM状态;执状态;执行行1616位位ThumbThumb指令集中的指令时,工作在指令集中的指令时,工作在ThumbThumb状态。通常在刚加电开始状态。通常在刚加电开始执行代码时,执行代码时,ARMARM处理器处于处理器处于ARMARM状态;然后,在程序的执行过程中,只状态;然后,在程序的执行过程中,只要满足一定条件(状态切换指令或异常处理),随时可在两种工作状态要满足一定条件(状态切换指令或异常处理),随时可在两种工作状态之间切换,并且这种切换并不影响处理器的工作模式和相应寄存器中的之间切换,并且这种切换并不影响处理器的工作

29、模式和相应寄存器中的内容。内容。 8.2.1 ARM的工作状态和运行模式 2. 2. 运行模式运行模式 ARMARM处理器支持处理器支持7 7种运行模式,分别为:种运行模式,分别为: 用户模式(用户模式(usrusr) ARM ARM处理器正常的程序执行模式。处理器正常的程序执行模式。 快速中断模式(快速中断模式(fiqfiq) 用于高速数据传输或通道处理。用于高速数据传输或通道处理。 外部中断模式(外部中断模式(irqirq) 用于通用的中断处理。用于通用的中断处理。 管理模式(管理模式(svcsvc) 操作系统使用的保护模式。操作系统使用的保护模式。 数据访问中止模式数据访问中止模式(ab

30、t) (abt) 当数据或指令预取终止时进入该当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护。模式,可用于虚拟存储及存储保护。 系统模式(系统模式(syssys) 运行具有特权的操作系统任务。运行具有特权的操作系统任务。 未定义指令模式(未定义指令模式(undund)当未定义的指令执行时进入该模当未定义的指令执行时进入该模式,可用于支持硬件协处理器的软件仿真。式,可用于支持硬件协处理器的软件仿真。 8.2.1 ARM的工作状态和运行模式 ARMARM处理器的运行模式可以通过软件改变,也可以通过外部中断或处理器的运行模式可以通过软件改变,也可以通过外部中断或异常处理改变。异常处理改变

31、。 大多数的应用程序运行在用户模式下,这时,对某些被保护的系大多数的应用程序运行在用户模式下,这时,对某些被保护的系统资源是不能访问的。统资源是不能访问的。 7 7种运行模式中,除用户模式以外,其余种运行模式中,除用户模式以外,其余6 6种模式统称为非用户模种模式统称为非用户模式,也叫特权模式(式,也叫特权模式(Privileged ModesPrivileged Modes);特权模式中,除去系统模式);特权模式中,除去系统模式以外的以外的5 5种又称为异常模式(种又称为异常模式(Exception ModesException Modes),常用于处理中断或异),常用于处理中断或异常,以及

32、需要访问受保护的系统资源等情况。常,以及需要访问受保护的系统资源等情况。 8.2.2 ARM的数据类型和存储器格式 1.1.数据类型数据类型 ARMARM处理器支持三种长度的数据类型:处理器支持三种长度的数据类型: 字(字(WordWord):长度为):长度为3232位的数据。位的数据。 半字(半字(Half-WordHalf-Word):长度为):长度为1616位的数据。位的数据。 字节(字节(ByteByte):长度为):长度为8 8位的数据。位的数据。 在在ARMARM体系结构中,半字数据必须对准于偶数地址,字数据必须体系结构中,半字数据必须对准于偶数地址,字数据必须对准于对准于4 4的

33、整数倍地址,字节数据则可对准于任一地址。的整数倍地址,字节数据则可对准于任一地址。 8.2.2 ARM的数据类型和存储器格式 2.2.存储器格式存储器格式 ARMARM处理器将存储器看作是一个从处理器将存储器看作是一个从0 0开始的线性递增的字节集合:开始的线性递增的字节集合:字节字节0 0到到3 3 保存第保存第1 1个字数据,字节个字数据,字节4 4 到到7 7 保存第保存第2 2个字数据,个字数据,依依此类推,每此类推,每4 4个字节保存一个字数据。个字节保存一个字数据。 字的存储格式有两种:一种是小端(字的存储格式有两种:一种是小端(Little-endianLittle-endian

34、)格式,即)格式,即字的最低字节(字节字的最低字节(字节0 0)保存在最低地址单元,最高字节(字节)保存在最低地址单元,最高字节(字节3 3)保)保存在最高地址单元。另一种是大端(存在最高地址单元。另一种是大端(Big-endianBig-endian)格式,即字的最低)格式,即字的最低字节保存在最高地址单元,最高字节保存在最低地址单元。从硬件连字节保存在最高地址单元,最高字节保存在最低地址单元。从硬件连接上看,前者将存储器系统的字节接上看,前者将存储器系统的字节0 0、字节、字节1 1、字节、字节2 2和字节和字节3 3分别连接分别连接到到3232位数据线的位数据线的D7D7D0D0、D15

35、D15D8D8、D23D23D16D16和和D31D31D24D24;后者则相;后者则相反,将存储器系统的字节反,将存储器系统的字节0 0、字节、字节1 1、字节、字节2 2和字节和字节3 3分别连接到数据线分别连接到数据线的的D31D31D24D24、D23D23D16D16、D15D15D8D8和和D7D7D0D0。 8.2.2 ARM的数据类型和存储器格式 一个具体的基于一个具体的基于ARMARM核的芯片,可能对这两种存储格式都支持,核的芯片,可能对这两种存储格式都支持,也可能只支持其中一种。如果芯片只支持其中一种(如大端格式),也可能只支持其中一种。如果芯片只支持其中一种(如大端格式)

36、,而实际连接的存储器系统却配置为相反的格式(如小端格式),则而实际连接的存储器系统却配置为相反的格式(如小端格式),则只有以字为单位的存储器访问能正确实现,其他长度的存储器访问只有以字为单位的存储器访问能正确实现,其他长度的存储器访问都将出现不可预知的结果。都将出现不可预知的结果。 ARMARM处理器核中共有处理器核中共有3737个个3232位寄存器,其中位寄存器,其中3131个为通用寄存器,个为通用寄存器,6 6个为程序状态寄存器。这些寄存器被安排成部分重叠的组,工作状个为程序状态寄存器。这些寄存器被安排成部分重叠的组,工作状态和运行模式不同,使用的寄存器组便不同。图态和运行模式不同,使用的

37、寄存器组便不同。图8.18.1所示的是所示的是ARMARM处处理器核的内部寄存器及其组织结构。理器核的内部寄存器及其组织结构。 8.2.3 内部寄存器组织 图图8.1 ARM状态的寄存器结构状态的寄存器结构 8.2.3 内部寄存器组织 1. ARM 1. ARM 状态寄存器组状态寄存器组 在在ARM ARM 状态下,通用寄存器状态下,通用寄存器r0r0r14r14,程序计数器,程序计数器PCPC(r15r15),),以及一个或两个状态寄存器以及一个或两个状态寄存器CPSRCPSR是任何时候均可访问的。不过要注是任何时候均可访问的。不过要注意,在某种特权模式中,只有与之相关的分组寄存器才可以被访

38、问。意,在某种特权模式中,只有与之相关的分组寄存器才可以被访问。图图8.18.1实际上反映的是各种模式下所能访问的寄存器情况。实际上反映的是各种模式下所能访问的寄存器情况。 (1 1)通用寄存器)通用寄存器r0r0r14r14 通用寄存器通用寄存器r0r0r14r14实际上又分为两类:未分组寄存器实际上又分为两类:未分组寄存器r0r0r7r7和和分组寄存器分组寄存器r8r8r14r14。 每个未分组寄存器,在任何运行模式下都指向同一每个未分组寄存器,在任何运行模式下都指向同一3232位物理寄存位物理寄存器,可用于任何使用通用寄存器的指令。正因为此,在中断或异常器,可用于任何使用通用寄存器的指令

39、。正因为此,在中断或异常处理进行模式切换时,容易造成对寄存器中数据的破坏,这点在程处理进行模式切换时,容易造成对寄存器中数据的破坏,这点在程序设计时要特别小心。序设计时要特别小心。 8.2.3 内部寄存器组织 对分组寄存器则不同,处理器每次访问它们所对应的物理寄对分组寄存器则不同,处理器每次访问它们所对应的物理寄存器,与当前的运行模式直接相关。其中存器,与当前的运行模式直接相关。其中r8r8r12r12,每个对应两个,每个对应两个物理寄存器,一个用于物理寄存器,一个用于FIQFIQ模式,叫模式,叫r8_fiqr8_fiqr12_fiqr12_fiq,另一个用,另一个用于其他于其他6 6种模式,

40、叫种模式,叫r8r8r12r12;r13r13和和r14r14分别对应分别对应6 6个物理寄存器,个物理寄存器,一个用于用户和系统两种模式,叫一个用于用户和系统两种模式,叫r13r13和和r14r14,另外,另外5 5个分别用于其个分别用于其他他5 5种运行模式之一,叫种运行模式之一,叫r13_modr13_mod和和r14_mod(r14_mod(其中其中modmod为为fiqfiq、irqirq、svcsvc、abtabt和和undund之一之一) )。详如图。详如图8.18.1中所示。中所示。 r13r13在在ARMARM指令中通常用作堆栈指针指令中通常用作堆栈指针SPSP。在用户应用程

41、序的初。在用户应用程序的初始化部分,一般都要将始化部分,一般都要将r13r13的物理寄存器指向其运行模式的栈空间。的物理寄存器指向其运行模式的栈空间。 8.2.3 内部寄存器组织 r14r14为子程序链接寄存器(为子程序链接寄存器(Subroutine Link RegisterSubroutine Link Register),简称链),简称链接寄存器(接寄存器(LRLR)。)。 当执行子程序调用指令(当执行子程序调用指令(BLBL)时,)时,r14 r14 用于存放子程序返回地址,用于存放子程序返回地址,即将程序计数器即将程序计数器PC(r15 )PC(r15 )的当前值拷贝给的当前值拷贝

42、给r14r14。子程序返回时再通过将。子程序返回时再通过将r14r14的内容送回给的内容送回给PCPC来实现。实现这种子程序调用通常有两种典型方法:来实现。实现这种子程序调用通常有两种典型方法: 执行下列两条指令之一:执行下列两条指令之一: MOV PC, LRMOV PC, LR BX LR BX LR 在子程序入口处使用以下指令将在子程序入口处使用以下指令将r14r14存入堆栈:存入堆栈: STMFD SP!, LRSTMFD SP!, LR 对应地,可用以下指令实现子程序返回:对应地,可用以下指令实现子程序返回: LDMFD SP!, PCLDMFD SP!, PC 8.2.3 内部寄存

43、器组织 与此类似,当出现异常时,相应异常模式的与此类似,当出现异常时,相应异常模式的r14r14也可被设置为也可被设置为异常返回地址,且异常返回用与子程序返回相似的方法实现,只是异常返回地址,且异常返回用与子程序返回相似的方法实现,只是使用的指令稍有不同。使用的指令稍有不同。 除了子程序调用和异常处理的情形外,其他时候均可将除了子程序调用和异常处理的情形外,其他时候均可将r14 r14 当成一个通用寄存器使用。当成一个通用寄存器使用。 8.2.3 内部寄存器组织 (2 2)程序计数器)程序计数器 r15r15 寄存器寄存器r15 r15 通常用作程序计数器通常用作程序计数器PCPC。在。在AR

44、M ARM 状态下,状态下,r15r15的位的位1:01:0为为0000,位,位31:231:2保存保存PC PC 值;在值;在Thumb Thumb 状态下,状态下,r15r15的位的位00为为0 0 ,位,位31:131:1保存保存PC PC 值。值。 当读程序计数器当读程序计数器r15r15时,由于时,由于ARMARM状态下的程序计数器状态下的程序计数器PCPC总是指向当总是指向当前指令的下两条指令的地址,所以读出的值总是读指令的地址加上前指令的下两条指令的地址,所以读出的值总是读指令的地址加上8 8字字节。而因节。而因ARMARM指令始终是字对准的,故读出结果值的位指令始终是字对准的,

45、故读出结果值的位1:01:0总为总为0000(对(对ThumbThumb指令,总是半字对准的,故位指令,总是半字对准的,故位00总为总为0 0)。读程序计数器主要是)。读程序计数器主要是为了对附近的指令和数据快速地进行与位置无关的寻址。为了对附近的指令和数据快速地进行与位置无关的寻址。 8.2.3 内部寄存器组织 当写程序计数器当写程序计数器r15r15时,指令中的写入值取决于时,指令中的写入值取决于ARMARM结构的版本:结构的版本:对对v3v3及以下版本,位及以下版本,位1:01:0值无所谓;对值无所谓;对v4v4及以上版本(及以上版本(ARM7TDMI(-S)ARM7TDMI(-S)基于

46、基于v4v4版),位版),位1:01:0值必须为值必须为0000。由于。由于ARMARM指令始终是字对准的,指指令始终是字对准的,指令的实际目标地址的位令的实际目标地址的位1:01:0总应为总应为0000,可见对,可见对v3v3及以下版本,指令的及以下版本,指令的实际目标地址将由写入的实际目标地址将由写入的r15r15值和值和0 xFFFFFFFCH0 xFFFFFFFCH相相“与与”得到,而对得到,而对v4v4及以上版本,指令实际目标地址的位及以上版本,指令实际目标地址的位1:01:0就是写入的就是写入的r15r15值。值。 8.2.3 内部寄存器组织 (3 3)程序状态寄存器)程序状态寄存

47、器PSRPSR ARM ARM体系结构包含一个当前程序状态寄存器体系结构包含一个当前程序状态寄存器CPSRCPSR和和5 5个保存程序状个保存程序状态寄存器态寄存器SPSRSPSR,供异常处理程序使用。,供异常处理程序使用。CPSRCPSR为六种处理器模式所共享,为六种处理器模式所共享,SPSRSPSR除用户和系统模式外其他除用户和系统模式外其他5 5种模式(统称为模式)各对应一个。种模式(统称为模式)各对应一个。程序状态寄存器的格式如图程序状态寄存器的格式如图8.28.2所示。其中所示。其中4 4位存放条件代码标志,位存放条件代码标志,3 3位控制中断的使能和禁止,位控制中断的使能和禁止,5

48、 5位设置处理器操作模式,其余位设置处理器操作模式,其余2020位未用,位未用,留待将来使用。留待将来使用。 8.2.3 内部寄存器组织图图8.28.2程序状态寄存器格式程序状态寄存器格式 8.2.3 内部寄存器组织 2. Thumb 2. Thumb 状态寄存器组状态寄存器组 ThumbThumb状态寄存器组是状态寄存器组是ARM ARM 状态寄存器组的子集,两者的映射关状态寄存器组的子集,两者的映射关系如图系如图8.38.3所示。其中所示。其中ThumbThumb状态下的状态下的r0r0r7r7、CPSRCPSR、SPSRSPSR分别与分别与ARMARM状态下的同名寄存器相同;状态下的同名

49、寄存器相同;ThumbThumb状态下的状态下的SPSP、LRLR、PCPC分别映射到分别映射到ARM ARM 状态的状态的r13r13、r14r14、r15(PC)r15(PC)。这些。这些ThumbThumb状态寄存器都是程序员可直接状态寄存器都是程序员可直接访问的;各寄存器与可访问的处理器模式间的对应关系,和访问的;各寄存器与可访问的处理器模式间的对应关系,和ARMARM状态状态下的同名或映射寄存器相同。下的同名或映射寄存器相同。 8.2.3 内部寄存器组织图图8.3 Thumb8.3 Thumb寄存器在寄存器在ARMARM状态寄存器上的映射状态寄存器上的映射 8.2.3 内部寄存器组织

50、 在在ThumbThumb状态下,状态下,r0r0r7 r7 为低寄存器,为低寄存器,r8r8r15r15为高寄存器,为高寄存器,高寄存器不是标准寄存器集的一部分,所以程序员对它们的访问高寄存器不是标准寄存器集的一部分,所以程序员对它们的访问受到限制,但可以将它们用于快速暂存,如:用受到限制,但可以将它们用于快速暂存,如:用MOVMOV指令的特殊指令的特殊变量可以在低寄存器变量可以在低寄存器r0r0r7r7和高寄存器和高寄存器r8r8r15r15之间交换数据;之间交换数据;用用CMP CMP 指令可以比较高寄存器和低寄存器的值;用指令可以比较高寄存器和低寄存器的值;用ADD ADD 指令可以指

51、令可以将高寄存器的值与低寄存器的值相加。将高寄存器的值与低寄存器的值相加。 8.2.4 异常中断及响应机理 1.1.异常中断及分类异常中断及分类 只要正常的程序流被暂时中止,例如响应一个来自外设的中断,只要正常的程序流被暂时中止,例如响应一个来自外设的中断,处理器就进入异常中断模式。在处理异常之前,处理器就进入异常中断模式。在处理异常之前,ARM7TDMI-S ARM7TDMI-S 内核保内核保存当前的处理器状态,这样当异常处理程序结束时可以恢复执行原存当前的处理器状态,这样当异常处理程序结束时可以恢复执行原来的程序。来的程序。 ARMARM体系结构支持的异常有体系结构支持的异常有6 6类。类

52、。ARMARM采用向量方式进入异常处采用向量方式进入异常处理程序,即系统中建有一个异常向量表,表中每类异常对应一个特理程序,即系统中建有一个异常向量表,表中每类异常对应一个特定的异常向量(即异常处理程序入口地址),当异常出现时,定的异常向量(即异常处理程序入口地址),当异常出现时,ARMARM强强制将程序计数器(制将程序计数器(PCPC)值置成该异常所对应的向量,从而转去执行)值置成该异常所对应的向量,从而转去执行异常处理程序。当同时发生两个或更多异常时,系统将按照固定的异常处理程序。当同时发生两个或更多异常时,系统将按照固定的优先级顺序来处理异常。表优先级顺序来处理异常。表8.28.2给出的

53、是给出的是6 6类异常及其对应的进入模类异常及其对应的进入模式、向量、优先级等信息。式、向量、优先级等信息。 8.2.4 异常中断及响应机理表表8.2 ARM8.2 ARM异常一览表异常一览表异常类型异常类型说说 明明进入时的模式进入时的模式向量(地址)向量(地址)优先级优先级复位复位 当系统加电、复位引脚有效或软复位时,产生当系统加电、复位引脚有效或软复位时,产生这种异常,这种异常,ARMARM立即停止执行当前指令,转而执行立即停止执行当前指令,转而执行复位程序。复位程序。管理模式管理模式0 x000000000 x000000001 1(最高)(最高)未定义指令未定义指令 当当ARMARM

54、处理器或协处理器遇到未定义的指令时,处理器或协处理器遇到未定义的指令时,产生这种异常。可用该异常机制通过仿真未定义的产生这种异常。可用该异常机制通过仿真未定义的协处理器指令来扩展协处理器指令来扩展ARMARM指令集。指令集。未定义未定义指令模式指令模式0 x000000040 x000000046 6(最低)(最低)软件中断软件中断 该异常由执行用户定义的软中断指令(该异常由执行用户定义的软中断指令(SWISWI)产生。可用该异常机制在用户模式下实现系统功能产生。可用该异常机制在用户模式下实现系统功能调用。调用。管理模式管理模式0 x000000080 x00000008指令预取指令预取中止中

55、止 当处理器预取指令的地址不存在,或该地址不当处理器预取指令的地址不存在,或该地址不允许当前指令访问,而该预取指令又被执行时,产允许当前指令访问,而该预取指令又被执行时,产生该异常。生该异常。数据访问中止模数据访问中止模式式0 x0000000C0 x0000000C5 5数据中止数据中止 当处理器数据访问指令的地址不存在,或该地当处理器数据访问指令的地址不存在,或该地址不允许当前指令访问时,产生该异常。址不允许当前指令访问时,产生该异常。数据访问中止模数据访问中止模式式0 x000000100 x000000102 2保留保留0 x000000140 x00000014IRQIRQ(外部中(

56、外部中断请求)断请求) 当处理器的外部中断请求引脚有效,且当处理器的外部中断请求引脚有效,且CPSRCPSR的的I I控制位为控制位为0 0时,产生该异常。系统中各外设均通过时,产生该异常。系统中各外设均通过它请求处理器服务。它请求处理器服务。IRQIRQ模式模式0 x000000180 x000000184 4FIQ(FIQ(快速中断快速中断请求请求) ) 当处理器的快速中断请求引脚有效,且当处理器的快速中断请求引脚有效,且CPSRCPSR的的F F控制位为控制位为0 0时,产生该异常。时,产生该异常。FIQFIQ模式模式0 x0000001C0 x0000001C3 3 8.2.4 异常中

57、断及响应机理 2.ARM2.ARM处理器对异常的响应机理处理器对异常的响应机理 ARMARM处理器对异常的响应包括进入和退出异常处理程序两方面。处理器对异常的响应包括进入和退出异常处理程序两方面。 异常进入(入口)异常进入(入口) 当异常出现时,当异常出现时,ARMARM处理器进入异常处理的过程如下:处理器进入异常处理的过程如下: 在相应的链接寄存器在相应的链接寄存器LRLR中保存下一条指令的地址,以便程序中保存下一条指令的地址,以便程序能从异常处理程序正确返回被中断程序。下一条指令的地址,对能从异常处理程序正确返回被中断程序。下一条指令的地址,对ARMARM状态和状态和ThumbThumb状

58、态有所不同:在状态有所不同:在ARMARM状态下,是当前状态下,是当前PCPC值加值加4 4或或8 8(具体(具体取决于异常类型);在取决于异常类型);在ThumbThumb状态下,是当前状态下,是当前PCPC值加偏移值后再加值加偏移值后再加4 4或或8 8(具体取决于异常类型)。(具体取决于异常类型)。 将将CPSRCPSR状态复制到相应的状态复制到相应的SPSRSPSR中。中。 8.2.4 异常中断及响应机理 根据异常类型,强制设置根据异常类型,强制设置CPSRCPSR的运行模式位。的运行模式位。 强制将相应的异常向量作为下一条指令地址装入强制将相应的异常向量作为下一条指令地址装入PCPC

59、。 置位中断禁止标志,以防止不受控制的异常嵌套。置位中断禁止标志,以防止不受控制的异常嵌套。 由于异常总是在由于异常总是在ARM ARM 状态下进行处理,所以若处理器处于状态下进行处理,所以若处理器处于Thumb Thumb 状态时发生了异常,在将异常向量装入状态时发生了异常,在将异常向量装入PC PC 时会自动切换到时会自动切换到ARM ARM 状态。状态。 8.2.4 异常中断及响应机理 异常退出(出口)异常退出(出口) 当异常处理结束时,退出异常、返回被中断程序的过程如下:当异常处理结束时,退出异常、返回被中断程序的过程如下: 将将LRLR中的值移入中的值移入PCPC。 将将SPSRSP

60、SR的值复制回的值复制回CPSRCPSR。注意,该动作会将。注意,该动作会将T T、I I和和F F位自动恢位自动恢复为异常发生前的值。复为异常发生前的值。 清除中断禁止标志,以开放异常中断。清除中断禁止标志,以开放异常中断。 可以认为,应用程序总是从复位异常处理程序开始执行的,因此可以认为,应用程序总是从复位异常处理程序开始执行的,因此复位异常处理程序不需要退出和返回。复位异常处理程序不需要退出和返回。 8.3 ARM系列单片机的硬件结构 各种各种ARMARM系列单片机的基本特性和硬件结构大同小异。本节以系列单片机的基本特性和硬件结构大同小异。本节以PhilipsPhilips公司的公司的L

温馨提示

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

评论

0/150

提交评论