单片机原理与应用系统设计 第08章 ARM系列单片机原理与应用.ppt

上传人:s****8 文档编号:67142727 上传时间:2022-12-23 格式:PPT 页数:316 大小:3.27MB
返回 下载 相关 举报
单片机原理与应用系统设计 第08章 ARM系列单片机原理与应用.ppt_第1页
第1页 / 共316页
单片机原理与应用系统设计 第08章 ARM系列单片机原理与应用.ppt_第2页
第2页 / 共316页
点击查看更多>>
资源描述

《单片机原理与应用系统设计 第08章 ARM系列单片机原理与应用.ppt》由会员分享,可在线阅读,更多相关《单片机原理与应用系统设计 第08章 ARM系列单片机原理与应用.ppt(316页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

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、S

3、ONYSONY、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、ARM10EARM10E、Se

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

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

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

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

10、.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核发展而来的第一款核发展而来的第一款ARM7ARM7核,它的后

12、缀核,它的后缀“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完全一样,差别完全一样,差别仅在于它的逻辑功能可由芯片生产厂商进行裁剪。所以,以后如无仅在于它的逻辑功能可由芯片生产厂商进行裁剪。所以,以后如无特殊说明,对这两者不予区分,统称为特殊说明,对这两者不予区分,统称为ARM7TDMIARM7TDMI。8.1.

14、2 ARM7系列处理器核简介 ARM720TARM720T是带有高速缓存处理宏单元的高性能是带有高速缓存处理宏单元的高性能ARM7ARM7核,宏单元中提核,宏单元中提供了供了8KB8KB缓存、读缓冲和内存管理等功能,可支持缓存、读缓冲和内存管理等功能,可支持LinuxLinux、Symbiam OSSymbiam OS和和Windows CEWindows CE等操作系统。等操作系统。ARM7EJ-SARM7EJ-S是扩充了是扩充了JazelleJazelle功能的可综合版本处理器核。该系列处功能的可综合版本处理器核。该系列处理器核都提供了理器核都提供了ARM32ARM32位指令集和位指令集和

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

16、所所述述,世世界界上上基基于于ARMARM处处理理器器核核开开发发生生产产ARMARM单单片片机机(包包括括微微处处理理器器和和微微控控制制器器芯芯片片)的的公公司司很很多多,因因此此各各ARMARM系系列列单单片片机机的的型型号号种种类类都都很很多多,如如 AtmelAtmel公公 司司 基基 于于 ARM7TDMIARM7TDMI核核 的的 芯芯 片片 型型 号号 AT91F40416AT91F40416,AT91FR40481AT91FR40481,AT91F40807AT91F40807,AT91F42800AT91F42800,AT91F43300AT91F43300,AT91F55

17、800AT91F55800,AT91F40807AT91F40807,AT91M40400AT91M40400,AT91M40800AT91M40800,AT91M63200AT91M63200,AT75C220AT75C220,AT75C310AT75C310;NetSiliconNetSilicon公公 司司 基基 于于 ARM720TDMIARM720TDMI核核 的的 NET+15NET+15,NET+40NET+40,NET+50NET+50;LinkupLinkup公公 司司 基基 于于ARM720TARM720T核核的的L7200L7200,L7205L7205,L7210L72

18、10;AlteraAltera公公司司基基于于ARM922TARM922T核核的的EPXA1EPXA1,EPXA4EPXA4,EPXA10EPXA10;SamsungSamsung公公司司基基于于ARM720TDMIARM720TDMI核核的的S3C3400AS3C3400A,S3C3410AS3C3410A,S3C44A0AS3C44A0A,S3C34B0AS3C34B0A,S3C34510S3C34510;MotorolaMotorola公公 司司 基基 于于 ARM9207ARM9207核核 的的DragonBallMXIDragonBallMXI;SharpSharp公公司司基基于于A

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

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

21、lash/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.360LQFP48LPC210664128YYYYY-Y2YY-321.83.360LQFP

22、48LPC211416128YYYYY4/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.360LQFP64LPC213416128YYYYY8/10 x21/10-Y222-473

23、.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电压/VI/O 电压/V最高最高频率率/MHz封装封装RAM/KBFlash/KBISPIAPTim.PW

24、MRTCADC路路/位位DAC路路/位位UARTI2CSPIUSBLPC2100系列系列LPC2141832YYYYY6/101/10-Y222Y453.33.360LQFP64LPC21421664YYYYY6/101/10-Y222Y453.33.360LQFP64LPC214416128YYYYY14/101/10-Y222Y453.33.360LQFP64LPC214632+8256YYYYY14/101/10-Y222Y453.33.360LQFP64LPC214832+8512YYYYY14/101/10-Y222Y453.33.360LQFP64LPC219416256YYYYY

25、4/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.360LQFP144LPC229216256YYYYY8/10-2Y2Y2-1121.83.360LQFP144LP

26、C229416256YYYYY8/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位位ARMARM指令集中的指令时,工作在指令集中的指令时,工作在ARMARM状态;执状态;执行行1616位位ThumbThu

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

29、处理器支持7 7种运行模式,分别为:种运行模式,分别为:用户模式(用户模式(usrusr)ARM ARM处理器正常的程序执行模式。处理器正常的程序执行模式。快速中断模式(快速中断模式(fiqfiq)用于高速数据传输或通道处理。用于高速数据传输或通道处理。外部中断模式(外部中断模式(irqirq)用于通用的中断处理。用于通用的中断处理。管理模式(管理模式(svcsvc)操作系统使用的保护模式。操作系统使用的保护模式。数据访问中止模式数据访问中止模式(abt)(abt)当数据或指令预取终止时进入该当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护。模式,可用于虚拟存储及存储保护。系统模式(

30、系统模式(syssys)运行具有特权的操作系统任务。运行具有特权的操作系统任务。未定义指令模式(未定义指令模式(undund)当未定义的指令执行时进入该模式,当未定义的指令执行时进入该模式,可用于支持硬件协处理器的软件仿真。可用于支持硬件协处理器的软件仿真。8.2.1 ARM的工作状态和运行模式 ARMARM处理器的运行模式可以通过软件改变,也可以通过外部中断或处理器的运行模式可以通过软件改变,也可以通过外部中断或异常处理改变。异常处理改变。大多数的应用程序运行在用户模式下,这时,对某些被保护的系统大多数的应用程序运行在用户模式下,这时,对某些被保护的系统资源是不能访问的。资源是不能访问的。7

31、 7种运行模式中,除用户模式以外,其余种运行模式中,除用户模式以外,其余6 6种模式统称为非用户模式,种模式统称为非用户模式,也叫特权模式(也叫特权模式(Privileged ModesPrivileged Modes);特权模式中,除去系统模式以外);特权模式中,除去系统模式以外的的5 5种又称为异常模式(种又称为异常模式(Exception ModesException Modes),常用于处理中断或异常,),常用于处理中断或异常,以及需要访问受保护的系统资源等情况。以及需要访问受保护的系统资源等情况。8.2.2 ARM的数据类型和存储器格式 1.1.数据类型数据类型 ARMARM处理器支

32、持三种长度的数据类型:处理器支持三种长度的数据类型:字(字(WordWord):长度为):长度为3232位的数据。位的数据。半字(半字(Half-WordHalf-Word):长度为):长度为1616位的数据。位的数据。字节(字节(ByteByte):长度为):长度为8 8位的数据。位的数据。在在ARMARM体系结构中,半字数据必须对准于偶数地址,字数据必须体系结构中,半字数据必须对准于偶数地址,字数据必须对准于对准于4 4的整数倍地址,字节数据则可对准于任一地址。的整数倍地址,字节数据则可对准于任一地址。8.2.2 ARM的数据类型和存储器格式 2.2.存储器格式存储器格式 ARMARM处理

33、器将存储器看作是一个从处理器将存储器看作是一个从0 0开始的线性递增的字节集合:开始的线性递增的字节集合:字节字节0 0到到3 3 保存第保存第1 1个字数据,字节个字数据,字节4 4 到到7 7 保存第保存第2 2个字数据,个字数据,依依此类推,每此类推,每4 4个字节保存一个字数据。个字节保存一个字数据。字的存储格式有两种:一种是小端(字的存储格式有两种:一种是小端(Little-endianLittle-endian)格式,即)格式,即字的最低字节(字节字的最低字节(字节0 0)保存在最低地址单元,最高字节(字节)保存在最低地址单元,最高字节(字节3 3)保)保存在最高地址单元。另一种是

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

35、和字节和字节3 3分别连接到数据线分别连接到数据线的的D31D31D24D24、D23D23D16D16、D15D15D8D8和和D7D7D0D0。8.2.2 ARM的数据类型和存储器格式 一一个个具具体体的的基基于于ARMARM核核的的芯芯片片,可可能能对对这这两两种种存存储储格格式式都都支支持持,也也可可能能只只支支持持其其中中一一种种。如如果果芯芯片片只只支支持持其其中中一一种种(如如大大端端格格式式),而而实实际际连连接接的的存存储储器器系系统统却却配配置置为为相相反反的的格格式式(如如小小端端格格式式),则则只只有有以以字字为为单单位位的的存存储储器器访访问问能能正正确确实实现现,其

36、其他他长长度度的的存存储储器器访访问问都都将将出现不可预知的结果。出现不可预知的结果。ARMARM处处理理器器核核中中共共有有3737个个3232位位寄寄存存器器,其其中中3131个个为为通通用用寄寄存存器器,6 6个个为为程程序序状状态态寄寄存存器器。这这些些寄寄存存器器被被安安排排成成部部分分重重叠叠的的组组,工工作作状状态态和和运运行行模模式式不不同同,使使用用的的寄寄存存器器组组便便不不同同。图图8.18.1所所示示的的是是ARMARM处处理理器核的内部寄存器及其组织结构。器核的内部寄存器及其组织结构。8.2.3 内部寄存器组织 图图8.1 ARM状态的寄存器结构状态的寄存器结构 8.

37、2.3 内部寄存器组织 1.ARM 1.ARM 状态寄存器组状态寄存器组 在在ARM ARM 状态下,通用寄存器状态下,通用寄存器r0r0r14r14,程序计数器,程序计数器PCPC(r15r15),),以及一个或两个状态寄存器以及一个或两个状态寄存器CPSRCPSR是任何时候均可访问的。不过要注意,是任何时候均可访问的。不过要注意,在某种特权模式中,只有与之相关的分组寄存器才可以被访问。图在某种特权模式中,只有与之相关的分组寄存器才可以被访问。图8.18.1实际上反映的是各种模式下所能访问的寄存器情况。实际上反映的是各种模式下所能访问的寄存器情况。(1 1)通用寄存器)通用寄存器r0r0r1

38、4r14 通用寄存器通用寄存器r0r0r14r14实际上又分为两类:未分组寄存器实际上又分为两类:未分组寄存器r0r0r7r7和和分组寄存器分组寄存器r8r8r14r14。每个未分组寄存器,在任何运行模式下都指向同一每个未分组寄存器,在任何运行模式下都指向同一3232位物理寄存位物理寄存器,可用于任何使用通用寄存器的指令。正因为此,在中断或异常处器,可用于任何使用通用寄存器的指令。正因为此,在中断或异常处理进行模式切换时,容易造成对寄存器中数据的破坏,这点在程序设理进行模式切换时,容易造成对寄存器中数据的破坏,这点在程序设计时要特别小心。计时要特别小心。8.2.3 内部寄存器组织 对分组寄存器

39、则不同,处理器每次访问它们所对应的物理寄存对分组寄存器则不同,处理器每次访问它们所对应的物理寄存器,与当前的运行模式直接相关。其中器,与当前的运行模式直接相关。其中r8r8r12r12,每个对应两个物,每个对应两个物理寄存器,一个用于理寄存器,一个用于FIQFIQ模式,叫模式,叫r8_fiqr8_fiqr12_fiqr12_fiq,另一个用于其,另一个用于其他他6 6种模式,叫种模式,叫r8r8r12r12;r13r13和和r14r14分别对应分别对应6 6个物理寄存器,一个个物理寄存器,一个用于用户和系统两种模式,叫用于用户和系统两种模式,叫r13r13和和r14r14,另外,另外5 5个分

40、别用于其他个分别用于其他5 5种种运行模式之一,叫运行模式之一,叫r13_modr13_mod和和r14_mod(r14_mod(其中其中modmod为为fiqfiq、irqirq、svcsvc、abtabt和和undund之一之一)。详如图。详如图8.18.1中所示。中所示。r13r13在在ARMARM指令中通常用作堆栈指针指令中通常用作堆栈指针SPSP。在用户应用程序的初始。在用户应用程序的初始化部分,一般都要将化部分,一般都要将r13r13的物理寄存器指向其运行模式的栈空间。的物理寄存器指向其运行模式的栈空间。8.2.3 内部寄存器组织 r14r14为子程序链接寄存器(为子程序链接寄存器

41、(Subroutine Link RegisterSubroutine Link Register),简称链接),简称链接寄存器(寄存器(LRLR)。)。当执行子程序调用指令(当执行子程序调用指令(BLBL)时,)时,r14 r14 用于存放子程序返回地址,用于存放子程序返回地址,即将程序计数器即将程序计数器PC(r15)PC(r15)的当前值拷贝给的当前值拷贝给r14r14。子程序返回时再通过将。子程序返回时再通过将r14r14的内容送回给的内容送回给PCPC来实现。实现这种子程序调用通常有两种典型方法:来实现。实现这种子程序调用通常有两种典型方法:执行下列两条指令之一:执行下列两条指令之一

42、:MOV PC,LRMOV PC,LR BX LR BX LR 在子程序入口处使用以下指令将在子程序入口处使用以下指令将r14r14存入堆栈:存入堆栈:STMFD SP!,LRSTMFD SP!,LR 对应地,可用以下指令实现子程序返回:对应地,可用以下指令实现子程序返回:LDMFD SP!,PCLDMFD SP!,PC 8.2.3 内部寄存器组织 与此类似,当出现异常时,相应异常模式的与此类似,当出现异常时,相应异常模式的r14r14也可被设置为也可被设置为异常返回地址,且异常返回用与子程序返回相似的方法实现,只是异常返回地址,且异常返回用与子程序返回相似的方法实现,只是使用的指令稍有不同。

43、使用的指令稍有不同。除了子程序调用和异常处理的情形外,其他时候均可将除了子程序调用和异常处理的情形外,其他时候均可将r14 r14 当当成一个通用寄存器使用。成一个通用寄存器使用。8.2.3 内部寄存器组织 (2 2)程序计数器)程序计数器 r15r15 寄存器寄存器r15 r15 通常用作程序计数器通常用作程序计数器PCPC。在。在ARM ARM 状态下,状态下,r15r15的位的位1:01:0为为0000,位,位31:231:2保存保存PC PC 值;在值;在Thumb Thumb 状态下,状态下,r15r15的位的位00为为0 0,位,位31:131:1保存保存PC PC 值。值。当读程

44、序计数器当读程序计数器r15r15时,由于时,由于ARMARM状态下的程序计数器状态下的程序计数器PCPC总是指向当总是指向当前指令的下两条指令的地址,所以读出的值总是读指令的地址加上前指令的下两条指令的地址,所以读出的值总是读指令的地址加上8 8字节。字节。而因而因ARMARM指令始终是字对准的,故读出结果值的位指令始终是字对准的,故读出结果值的位1:01:0总为总为0000(对(对ThumbThumb指令,总是半字对准的,故位指令,总是半字对准的,故位00总为总为0 0)。读程序计数器主要是为了对)。读程序计数器主要是为了对附近的指令和数据快速地进行与位置无关的寻址。附近的指令和数据快速地

45、进行与位置无关的寻址。8.2.3 内部寄存器组织 当写程序计数器当写程序计数器r15r15时,指令中的写入值取决于时,指令中的写入值取决于ARMARM结构的版本:结构的版本:对对v3v3及以下版本,位及以下版本,位1:01:0值无所谓;对值无所谓;对v4v4及以上版本(及以上版本(ARM7TDMI(-S)ARM7TDMI(-S)基于基于v4v4版),位版),位1:01:0值必须为值必须为0000。由于。由于ARMARM指令始终是字对准的,指指令始终是字对准的,指令的实际目标地址的位令的实际目标地址的位1:01:0总应为总应为0000,可见对,可见对v3v3及以下版本,指令的及以下版本,指令的实

46、际目标地址将由写入的实际目标地址将由写入的r15r15值和值和0 xFFFFFFFCH0 xFFFFFFFCH相相“与与”得到,而对得到,而对v4v4及以上版本,指令实际目标地址的位及以上版本,指令实际目标地址的位1:01:0就是写入的就是写入的r15r15值。值。8.2.3 内部寄存器组织 (3 3)程序状态寄存器)程序状态寄存器PSRPSR ARM ARM体系结构包含一个当前程序状态寄存器体系结构包含一个当前程序状态寄存器CPSRCPSR和和5 5个保存程序状个保存程序状态寄存器态寄存器SPSRSPSR,供异常处理程序使用。,供异常处理程序使用。CPSRCPSR为六种处理器模式所共享,为六

47、种处理器模式所共享,SPSRSPSR除用户和系统模式外其他除用户和系统模式外其他5 5种模式(统称为模式)各对应一个。程种模式(统称为模式)各对应一个。程序状态寄存器的格式如图序状态寄存器的格式如图8.28.2所示。其中所示。其中4 4位存放条件代码标志,位存放条件代码标志,3 3位控位控制中断的使能和禁止,制中断的使能和禁止,5 5位设置处理器操作模式,其余位设置处理器操作模式,其余2020位未用,留待位未用,留待将来使用。将来使用。8.2.3 内部寄存器组织图图8.28.2程序状态寄存器格式程序状态寄存器格式 8.2.3 内部寄存器组织 2.Thumb 2.Thumb 状态寄存器组状态寄存

48、器组 ThumbThumb状态寄存器组是状态寄存器组是ARM ARM 状态寄存器组的子集,两者的映射关系状态寄存器组的子集,两者的映射关系如图如图8.38.3所示。其中所示。其中ThumbThumb状态下的状态下的r0r0r7r7、CPSRCPSR、SPSRSPSR分别与分别与ARMARM状态状态下的同名寄存器相同;下的同名寄存器相同;ThumbThumb状态下的状态下的SPSP、LRLR、PCPC分别映射到分别映射到ARM ARM 状态状态的的r13r13、r14r14、r15(PC)r15(PC)。这些。这些ThumbThumb状态寄存器都是程序员可直接访问状态寄存器都是程序员可直接访问的

49、;各寄存器与可访问的处理器模式间的对应关系,和的;各寄存器与可访问的处理器模式间的对应关系,和ARMARM状态下的同状态下的同名或映射寄存器相同。名或映射寄存器相同。8.2.3 内部寄存器组织图图8.3 Thumb8.3 Thumb寄存器在寄存器在ARMARM状态寄存器上的映射状态寄存器上的映射 8.2.3 内部寄存器组织 在在ThumbThumb状状态态下下,r0r0r7 r7 为为低低寄寄存存器器,r8r8r15r15为为高高寄寄存存器器,高高寄寄存存器器不不是是标标准准寄寄存存器器集集的的一一部部分分,所所以以程程序序员员对对它它们们的的访访问问受受到到限限制制,但但可可以以将将它它们们

50、用用于于快快速速暂暂存存,如如:用用MOVMOV指指令令的的特特殊殊变变量量可可以以在在低低寄寄存存器器r0r0r7r7和和高高寄寄存存器器r8r8r15r15之之间间交交换换数数据据;用用CMP CMP 指指令令可可以以比比较较高高寄寄存存器器和和低低寄寄存存器器的的值值;用用ADD ADD 指指令令可可以以将将高寄存器的值与低寄存器的值相加。高寄存器的值与低寄存器的值相加。8.2.4 异常中断及响应机理 1.1.异常中断及分类异常中断及分类 只要正常的程序流被暂时中止,例如响应一个来自外设的中断,只要正常的程序流被暂时中止,例如响应一个来自外设的中断,处理器就进入异常中断模式。在处理异常之

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com