嵌入式系统第2章_第1页
嵌入式系统第2章_第2页
嵌入式系统第2章_第3页
嵌入式系统第2章_第4页
嵌入式系统第2章_第5页
已阅读5页,还剩104页未读 继续免费阅读

下载本文档

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

文档简介

1、嵌入式系统原理及应用教程嵌入式系统原理及应用教程主讲内容主讲内容第第1章章 嵌入式系统概述嵌入式系统概述第第2章章 ARM微处理器概述与编程模型微处理器概述与编程模型第第3章章 ARM9指令系统指令系统第第4章章 嵌入式程序设计基础嵌入式程序设计基础第第5章章 嵌入式内部可编程模块嵌入式内部可编程模块第第6章章 嵌入式接口技术应用嵌入式接口技术应用第第7章章 软件开发环境软件开发环境第第2章章 ARM微处理器概述与编程模型微处理器概述与编程模型uARM微处理器概述微处理器概述 uARM微处理器结构微处理器结构 uARM微处理器的工作状态微处理器的工作状态 uARM体系结构的存储器格式体系结构的

2、存储器格式 u处理器模式处理器模式 u寄存器组织寄存器组织 u异常(异常(Exceptions) 2.1 ARM微处理器概述微处理器概述uARM公司简介公司简介 ARM是是Advanced RISC Machines的缩写,它的缩写,它是一家微处理器行业的知名企业,该企业设计是一家微处理器行业的知名企业,该企业设计了大量高性能、廉价、耗能低的了大量高性能、廉价、耗能低的RISC (精简指(精简指令集)处理器。令集)处理器。 公司的特点是只设计芯片,而不公司的特点是只设计芯片,而不生产。它将技术授权给世界上许多著名的半导生产。它将技术授权给世界上许多著名的半导体、软件和体、软件和OEM厂商,并提

3、供服务。厂商,并提供服务。2.1 ARM微处理器概述微处理器概述uARM公司简介公司简介将技术授权给其它芯片厂商形成各具特色的ARM芯片. . .2.1 ARM微处理器概述微处理器概述ARM(Advanced RISC Machines)有)有3种含义种含义u一个公司的名称一个公司的名称u一类微处理器的通称一类微处理器的通称u一种技术的名称一种技术的名称2.1.1 ARM微处理器的特点微处理器的特点采用采用RISC架构架构的的ARM微处理器一般具有如下微处理器一般具有如下特点:特点:u体积小、低功耗、低成本、高性能;体积小、低功耗、低成本、高性能;u支持支持Thumb(16位)位)/ARM(3

4、2位)双指令集,能位)双指令集,能很好的兼容很好的兼容8位位/16位器件;位器件;u大量使用寄存器,指令执行速度更快;大量使用寄存器,指令执行速度更快;u大多数数据操作都在寄存器中完成;大多数数据操作都在寄存器中完成;u寻址方式灵活简单,执行效率高;寻址方式灵活简单,执行效率高;u指令长度固定。指令长度固定。 2.1.2 ARM微处理器系列微处理器系列ARM处理器的产品系列非常广,包括处理器的产品系列非常广,包括ARM7、ARM9、ARM9E、ARM10E、ARM11和和SecurCore、Cortex等。以及其它厂商基于等。以及其它厂商基于ARM体系结构的处理体系结构的处理器,除了具有器,除

5、了具有ARM体系结构的共同特点以外,每一体系结构的共同特点以外,每一系列提供一套特定的性能来满足设计者对功耗、性能、系列提供一套特定的性能来满足设计者对功耗、性能、体积的需求。体积的需求。表表2-1总结了总结了ARM各系列处理器所包含的不同类各系列处理器所包含的不同类型。型。 2.1.2 ARM微处理器系列微处理器系列ARM系列包含类型ARM7系列系列ARM7EJ-SARM7TDMIARM7TDMI-SARM720TARM9/9E系列系列ARM920TARM922TARM926EJ-SARM940TARM946E-SARM966E-SARM968E-S向量浮点运算(向量浮点运算(Vector

6、Floating Point)VFP9-SVFP102.1.2 ARM微处理器系列微处理器系列ARM系列包含类型ARM10E系列系列ARM1020EARM1022EARM1026EJ-SARM11系列系列ARM1136J-SARM1136JF-SARM1156T2(F)-SARM1176JZ(F)-SARM11MPCoreSecurCore系列系列SC100SC110SC200SC210其他合作伙伴产品其他合作伙伴产品StrongARMXscaleCortex-M3MBX2.1.2 ARM微处理器系列微处理器系列uARM Cortex系列简介系列简介 基于基于ARMv7版本的版本的ARM Co

7、rtex系列产品由系列产品由A、R、M三个系列组成,具体分类延续了一直以来三个系列组成,具体分类延续了一直以来ARM面向具体应用设计面向具体应用设计CPU的思路。的思路。 ARM CortexA应用处理器应用处理器(Application Processor )系列)系列 R实时控制处理实时控制处理(Real Time Control )系列)系列M微控制器微控制器(Micro Controller )系列)系列2.1.2 ARM微处理器系列微处理器系列uCortexTM-M3处理器简介处理器简介 该处理器是首款基于该处理器是首款基于ARMv7-M架构的处理器,架构的处理器,采用了纯采用了纯T

8、humb2指令的执行方式,具有极高的运算指令的执行方式,具有极高的运算能力和中断相应能力。能力和中断相应能力。 Cortex-M3主要应用于汽车车身系统,工业控制主要应用于汽车车身系统,工业控制系统和无线网络等对功耗和成本敏感的嵌入式应用系统和无线网络等对功耗和成本敏感的嵌入式应用领域。目前最便宜的基于该内核的领域。目前最便宜的基于该内核的ARM单片机售价单片机售价为为1美元。美元。2.1.2 ARM微处理器系列微处理器系列uCortexTM-R4处理器简介处理器简介 该处理器是首款基于该处理器是首款基于ARMv7ARMv7架构的高级嵌入式处理架构的高级嵌入式处理器,其主要目标为产量巨大的高级

9、嵌入式应用系统,器,其主要目标为产量巨大的高级嵌入式应用系统,如硬盘,喷墨式打印机,以及汽车安全系统等等。如硬盘,喷墨式打印机,以及汽车安全系统等等。uCortexTM-R4F处理器简介处理器简介 该处理器在该处理器在CortexCortexTMTM-R4-R4处理器的基础上加入了代码处理器的基础上加入了代码错误校正错误校正(ECC)(ECC)技术,浮点运算单元技术,浮点运算单元(FPU)(FPU)以及以及DMADMA综合综合配置的能力,增强了处理器在存储器保护单元、缓存、配置的能力,增强了处理器在存储器保护单元、缓存、紧密耦合存储器、紧密耦合存储器、DMADMA访问以及调试方面的能力。访问以

10、及调试方面的能力。2.1.2 ARM微处理器系列微处理器系列uCortexTM-A8处理器简介处理器简介 该处理器是该处理器是ARMARM公司所开发的基于公司所开发的基于ARMv7ARMv7架架构的首款应用级处理器,其特色是运用了可增加构的首款应用级处理器,其特色是运用了可增加代码密度和加强性能的技术、可支持多媒体以及代码密度和加强性能的技术、可支持多媒体以及信号处理能力的信号处理能力的NEONNEONTMTM技术、以及能够支持技术、以及能够支持JavaJava和其他文字代码语言的提前和即时编译的和其他文字代码语言的提前和即时编译的JazelleJazelleRTCRTC技术。技术。 众多先进

11、的技术使其适用于家电以及电子行业等众多先进的技术使其适用于家电以及电子行业等各种高端的应用领域。各种高端的应用领域。2.1.2 ARM微处理器系列微处理器系列uARM7系列简介系列简介 该系列包括该系列包括ARM7TDMIARM7TDMI、ARM7TDMI-SARM7TDMI-S、带有高速缓存处理器宏单元的带有高速缓存处理器宏单元的ARM720TARM720T和扩和扩充了充了JazelleJazelle的的ARM7EJ-SARM7EJ-S。该系列处理器提供。该系列处理器提供Thumb 16Thumb 16位压缩指令集和位压缩指令集和EmbededICEEmbededICE软件调软件调试方式,适

12、用于更大规模的试方式,适用于更大规模的SoCSoC设计中。设计中。 ARM7系列广泛应用于多媒体和嵌入式设备,系列广泛应用于多媒体和嵌入式设备,包括包括Internet设备、网络和调制解调器设备,以及设备、网络和调制解调器设备,以及移动电话、移动电话、PDA等无线设备。等无线设备。2.1.2 ARM微处理器系列微处理器系列 该系列包括该系列包括ARM9TDMIARM9TDMI、ARM920TARM920T和带和带有高速缓存处理器宏单元的有高速缓存处理器宏单元的ARM940TARM940T。除了。除了兼容兼容ARM7ARM7系列,而且能够更加灵活的设计。系列,而且能够更加灵活的设计。 ARM9系

13、列主要应用于引擎管理、仪器仪表、系列主要应用于引擎管理、仪器仪表、安全系统和机顶盒等领域。安全系统和机顶盒等领域。uARM9系列简介系列简介2.1.2 ARM微处理器系列微处理器系列 该系列为含有该系列为含有DSPDSP指令集的综合处理器,包括指令集的综合处理器,包括ARM926EJ-SARM926EJ-S、带有高速缓存处理器宏单元的、带有高速缓存处理器宏单元的ARM966E-S/ARM946E-SARM966E-S/ARM946E-S。其内核在。其内核在ARM7ARM7处理处理器内核的基础上使用了器内核的基础上使用了JazelleJazelle增强技术,该技术增强技术,该技术支持一种新的支持

14、一种新的JavaJava操作状态,允许在硬件中执行操作状态,允许在硬件中执行JavaJava字节码。字节码。 ARM9E系列主要应用于下一代无线设备、数字系列主要应用于下一代无线设备、数字消费品、成像设备、工业控制、存储设备和网络设备消费品、成像设备、工业控制、存储设备和网络设备等领域。等领域。uARM9E系列简介系列简介2.1.2 ARM微处理器系列微处理器系列uARM10E系列简介系列简介 该系列包括该系列包括ARM1020EARM1020E和和ARM1020EARM1020E处理处理器核,其核心在于使用向量浮点(器核,其核心在于使用向量浮点(VFPVFP)单元)单元VFP10VFP10提

15、供高性能的浮点解决方案,从而极大提供高性能的浮点解决方案,从而极大提高了处理器的整型和浮点运算性能。提高了处理器的整型和浮点运算性能。 可以用于视频游戏机和高性能打印机等场合。可以用于视频游戏机和高性能打印机等场合。2.1.2 ARM微处理器系列微处理器系列uXscale简介简介 Intel XscaleIntel Xscale微控制器则提供全性能、高性微控制器则提供全性能、高性价比、低功耗的解决方案,支持价比、低功耗的解决方案,支持1616位位ThumbThumb指指令并集成数字信号处理(令并集成数字信号处理(DSPDSP)指令。)指令。 主要应用于手提式通讯和消费电子类设备。主要应用于手提

16、式通讯和消费电子类设备。2.2. ARM微处理器结构微处理器结构2.2.1 RISC体系结构体系结构1嵌入式嵌入式CISC微处理器微处理器 传统的传统的CISC(Complex Instruction Set Computer,复杂指令集计算机复杂指令集计算机)结构有其固有的缺)结构有其固有的缺点,即随着计算机技术的发展而不断引入新的复杂的点,即随着计算机技术的发展而不断引入新的复杂的指令集,为支持这些新增的指令,计算机的体系结构指令集,为支持这些新增的指令,计算机的体系结构会越来越复杂,然而,在会越来越复杂,然而,在CISC指令集的各种指令中,指令集的各种指令中,其使用频率却相差悬殊,大约有

17、其使用频率却相差悬殊,大约有20的指令会被反复的指令会被反复使用,占整个程序代码的使用,占整个程序代码的80。而余下的。而余下的80的指令的指令却不经常使用,在程序设计中只占却不经常使用,在程序设计中只占20,显然,这种,显然,这种结构是不太合理的。结构是不太合理的。u要了解要了解RISC技术就该从计算机的指令谈起,我们都知道计技术就该从计算机的指令谈起,我们都知道计算机的算机的工作就是取指令、执行指令工作就是取指令、执行指令,一条指令一般给出的,一条指令一般给出的是操作码和地址码,这是基本的结构,然而指令又涉及以是操作码和地址码,这是基本的结构,然而指令又涉及以下几个问题。下几个问题。首先指

18、令字长有多少位,是定字长还是变字首先指令字长有多少位,是定字长还是变字长;其次,操作码结构需几位,位数是定量还是浮动量;长;其次,操作码结构需几位,位数是定量还是浮动量;再次,地址的结构和寻址方式如何。再次,地址的结构和寻址方式如何。这种种因素使计算机这种种因素使计算机指令产生了指令产生了“简单指令简单指令”和和“复杂指令复杂指令”之分。之分。70年代以年代以前的计算机均用传统的前的计算机均用传统的CISC指令结构,即完全采用复杂指指令结构,即完全采用复杂指令来支持高级语言、应用程序和操作系统。这种令来支持高级语言、应用程序和操作系统。这种PC不但成不但成本高且效率较低,速度受限,后来人们发现

19、机器执行的指本高且效率较低,速度受限,后来人们发现机器执行的指令中令中85左右的都是简单指令,复杂指令甚少,因此开始左右的都是简单指令,复杂指令甚少,因此开始研制精简指令系统计算机研制精简指令系统计算机(RISC)。自从自从Intel的的Pentium问世问世以来以来(92年末年末),RISC技术更是得到了广泛的应用,并开始技术更是得到了广泛的应用,并开始渗透到小、中、大型机领域,可谓发展前景一片光明。渗透到小、中、大型机领域,可谓发展前景一片光明。2.2.1 RISC体系结构体系结构2. 嵌入式嵌入式RISC微处理器微处理器基于以上的不合理性,基于以上的不合理性,1979年美国加州大学伯克年

20、美国加州大学伯克利分校提出了利分校提出了RISC(Reduced Instruction Set Computer,精简指令集计算机精简指令集计算机)的概念,)的概念,RISC是精简指令集计算机,但是精简指令集计算机,但RISC并非只是简并非只是简单地去减少指令,而是把着眼点放在了如何使计算机单地去减少指令,而是把着眼点放在了如何使计算机的结构更加简单合理地提高运算速度上。的结构更加简单合理地提高运算速度上。RISC结构结构优先选取使用频最高的简单指令,抛弃复杂指令,固优先选取使用频最高的简单指令,抛弃复杂指令,固定指令长度,减少指令格式和寻址方式,以控制逻辑定指令长度,减少指令格式和寻址方式

21、,以控制逻辑为主,不用或少用微码控制等措施来达到上述目的。为主,不用或少用微码控制等措施来达到上述目的。 2.2.1 RISC体系结构体系结构uRISC体系结构应具有如下特点:体系结构应具有如下特点:u采用固定长度的指令格式,指令归整、简单、基本寻采用固定长度的指令格式,指令归整、简单、基本寻址方式有址方式有23种。种。u使用使用单周期指令单周期指令,便于,便于流水线操作流水线操作执行。执行。u大量使用寄存器,数据处理指令只对寄存器进行操作,大量使用寄存器,数据处理指令只对寄存器进行操作,只有加载只有加载/ 存储指令可以访问存储器,以提高指令的执存储指令可以访问存储器,以提高指令的执行效率。行

22、效率。u除此以外,除此以外,ARM体系结构还采用了一些特别的技术,体系结构还采用了一些特别的技术,在保证高性能的前提下尽量缩小芯片的面积,并降低在保证高性能的前提下尽量缩小芯片的面积,并降低功耗功耗.2.2.1 RISC体系结构体系结构uRISC体系结构应具有如下特点:体系结构应具有如下特点:u所有的指令都可根据前面的执行结果决定是否被执行,所有的指令都可根据前面的执行结果决定是否被执行,从而提高指令的执行效率。从而提高指令的执行效率。u可用加载可用加载/存储指令批量传输数据,以提高数据的传输存储指令批量传输数据,以提高数据的传输效率。效率。u可在一条数据处理指令中同时完成逻辑处理和移位处可在

23、一条数据处理指令中同时完成逻辑处理和移位处理。理。u在循环处理中使用地址的自动增减来提高运行效率。在循环处理中使用地址的自动增减来提高运行效率。2.2.1 RISC体系结构体系结构RISC和和CISC之间的主要区别之间的主要区别:指指 标标RISCCISC指令集指令集 一个周期执行一条指一个周期执行一条指令,通过简单指令的组令,通过简单指令的组合实理复杂操作;指令合实理复杂操作;指令长度固定。长度固定。 指令长度不固定,执指令长度不固定,执行需要多个周期。行需要多个周期。流水线流水线流水线每周期前进一步。流水线每周期前进一步。 指令的执行需要调用微指令的执行需要调用微代码的一个微程序。代码的一

24、个微程序。寄存器寄存器更多通用寄存器。更多通用寄存器。用于特定目的的专用寄存用于特定目的的专用寄存器。器。Load/Store结构结构 独立的独立的Load和和Store指指令完成数据在寄存器和令完成数据在寄存器和外部存储器之间的传输。外部存储器之间的传输。 处理器能够直接处理处理器能够直接处理存储器中的数据。存储器中的数据。2.2.2 ARM微处理器的寄存器结构微处理器的寄存器结构uARM处理器共有处理器共有37个个寄存器,被分为若干个组寄存器,被分为若干个组(BANK),这些寄存器包括:),这些寄存器包括:31个通用寄存器,个通用寄存器,包括程序计数器(包括程序计数器(PC指针),指针),

25、均为均为32位的寄存器。位的寄存器。6个状态寄存器,个状态寄存器,用以标识用以标识CPU的工作状态及程的工作状态及程序的运行状态,均为序的运行状态,均为32位,目前只使用了其中的位,目前只使用了其中的一部分。一部分。2.2.2 ARM微处理器的寄存器结构微处理器的寄存器结构nARM处理器又有处理器又有7种种不同的处理器模式,在每一种处不同的处理器模式,在每一种处理器模式下均有一组相应的寄存器与之对应。理器模式下均有一组相应的寄存器与之对应。n即在任意一种处理器模式下,可访问的寄存器包括即在任意一种处理器模式下,可访问的寄存器包括15个通用寄存器(个通用寄存器(R0R14)、)、12个状态寄存器

26、和程个状态寄存器和程序计数器。序计数器。n在所有的寄存器中,有些是在在所有的寄存器中,有些是在7种处理器模式下共用种处理器模式下共用的的同一个物理寄存器同一个物理寄存器,而有些寄存器则是在不同的处,而有些寄存器则是在不同的处理器模式下有不同的物理寄存器。理器模式下有不同的物理寄存器。2.2.3 ARM微处理器的指令结构微处理器的指令结构uARM微处理器在较新的体系结构中支持两种指令微处理器在较新的体系结构中支持两种指令集:集:ARM指令集和指令集和Thumb指令集。指令集。nARM指令为指令为32位的长度位的长度nThumb指令为指令为16位长度位长度uThumb指令集为指令集为ARM指令集的

27、功能子集,但与等指令集的功能子集,但与等价的价的ARM代码相比较,可节省代码相比较,可节省3040以上的以上的存储空间,同时具备存储空间,同时具备32位代码的所有优点。位代码的所有优点。2.2.4 ARM微处理器的应用选型微处理器的应用选型从应用的角度出发,对在选择从应用的角度出发,对在选择ARM微处理器时所应考虑的主微处理器时所应考虑的主要问题要问题 :nARM微处理器内核的选择微处理器内核的选择 从前面所介绍的内容可知,从前面所介绍的内容可知,ARM微处理器包含一系列的微处理器包含一系列的内核结构,以适应不同的应用领域,用户如果希望使用内核结构,以适应不同的应用领域,用户如果希望使用Win

28、CE或标准或标准Linux等操作系统以减少软件开发时间,就需要选择等操作系统以减少软件开发时间,就需要选择ARM720T以上带有以上带有MMU(Memory Management Unit)功能)功能的的ARM芯片,芯片,ARM720T、ARM920T、ARM922T、ARM946T、Strong-ARM都带有都带有MMU功能。功能。而而ARM7TDMI则没有则没有MMU,不支持,不支持Windows CE和标准和标准Linux,但目前有,但目前有uCLinux等不需要等不需要MMU支持的操作系统可运支持的操作系统可运行于行于ARM7TDMI硬件平台之上。事实上,硬件平台之上。事实上,uCLi

29、nux已经成功已经成功移植到多种不带移植到多种不带MMU的微处理器平台上,并在稳定性和其他的微处理器平台上,并在稳定性和其他方面都有上佳表现。方面都有上佳表现。 2.2.4 ARM微处理器的应用选型微处理器的应用选型n系统的工作频率系统的工作频率 系统的工作频率在很大程度上决定了系统的工作频率在很大程度上决定了ARM微处理器的处理微处理器的处理能力。能力。nARM7系列微处理器的典型处理速度为系列微处理器的典型处理速度为0.9MIPS/MHz,常,常见的见的ARM7芯片系统主时钟为芯片系统主时钟为20MHz-133MHz。nARM9系列微处理器的典型处理速度为系列微处理器的典型处理速度为1.1

30、MIPS/MHz,常,常见的见的ARM9的系统主时钟频率为的系统主时钟频率为100MHz-233MHz。 nARM10最高可以达到最高可以达到700MHz。不同芯片对时钟的处理不同,有的芯片只需要一个主时钟不同芯片对时钟的处理不同,有的芯片只需要一个主时钟频率,有的芯片内部时钟控制器可以分别为频率,有的芯片内部时钟控制器可以分别为ARM核和核和USB、UART、DSP、音频等功能部件提供不同频率的时钟。、音频等功能部件提供不同频率的时钟。 2.2.4 ARM微处理器的应用选型微处理器的应用选型u芯片内存储器的容量芯片内存储器的容量 大多数的大多数的ARM微处理器片内存储器的容量都不太大,微处理

31、器片内存储器的容量都不太大,需要用户在设计系统时外扩存储器需要用户在设计系统时外扩存储器.但也有部分芯片具有相对较大的片内存储空间,如但也有部分芯片具有相对较大的片内存储空间,如ATMEL的的AT91F40162就具有高达就具有高达2MB的片内程序存储空的片内程序存储空间,用户在设计时可考虑选用这种类型,以简化系统的设间,用户在设计时可考虑选用这种类型,以简化系统的设计。计。2.2.4 ARM微处理器的应用选型微处理器的应用选型u片内外围电路的选择片内外围电路的选择 几乎所有的几乎所有的ARM芯片均根据各自不同的应用领域,芯片均根据各自不同的应用领域,扩展了相关功能模块,并集成在芯片之中,称之

32、为扩展了相关功能模块,并集成在芯片之中,称之为片片内外围电路内外围电路.如如USB接口、接口、IIS接口、接口、LCD控制器、键盘接口、控制器、键盘接口、RTC、ADC和和DAC、DSP协处理器等,设计者应分协处理器等,设计者应分析系统的需求,尽可能采用片内外围电路完成所需的析系统的需求,尽可能采用片内外围电路完成所需的功能,这样既可简化系统的设计,同时提高系统的可功能,这样既可简化系统的设计,同时提高系统的可靠性。靠性。2.3 ARM微处理器的工作状态微处理器的工作状态uARM微处理器的工作状态一般有两种,并可在两种微处理器的工作状态一般有两种,并可在两种状态之间切换:状态之间切换:uARM

33、状态,此时处理器执行状态,此时处理器执行32位的字对齐的位的字对齐的ARM指令;指令;uThumb状态,此时处理器执行状态,此时处理器执行16位的、半字对齐位的、半字对齐的的Thumb指令。指令。uARM指令集和指令集和Thumb指令集均有指令集均有切换处理器状态切换处理器状态的指令的指令,并可在两种工作状态之间切换,但,并可在两种工作状态之间切换,但ARM微处理器在微处理器在开始执行代码时开始执行代码时,应该处于,应该处于ARM状态。状态。2.3 ARM微处理器的工作状态微处理器的工作状态u进入进入Thumb状态:当操作数寄存器的状态位(位状态:当操作数寄存器的状态位(位0)为为1时,可以采

34、用执行时,可以采用执行BX指令的方法,使微处理器从指令的方法,使微处理器从ARM状态切换到状态切换到Thumb状态。此外,当处理器处于状态。此外,当处理器处于Thumb状态时发生异常(如状态时发生异常(如IRQ、FIQ、Undef、Abort、SWI等),则异常处理返回时,自动切换到等),则异常处理返回时,自动切换到Thumb状态。状态。u进入进入ARM状态:当操作数寄存器的状态位为状态:当操作数寄存器的状态位为0时,执时,执行行BX指令时可以使微处理器从指令时可以使微处理器从Thumb状态切换到状态切换到ARM状态。此外,在处理器进行异常处理时,把状态。此外,在处理器进行异常处理时,把PC指

35、针放入异常模式链接寄存器中,并从异常向量地址指针放入异常模式链接寄存器中,并从异常向量地址开始执行程序,也可以使处理器切换到开始执行程序,也可以使处理器切换到ARM状态。状态。2.4 ARM处理器状态处理器状态u状态切换的一个例子状态切换的一个例子地址最低位为0,表示切换到ARM状态 使用使用BXBX指令将指令将ARMARM内核的操作状态在内核的操作状态在ARMARM状态和状态和ThumbThumb状态之间进行切换。状态之间进行切换。ARM指令集指令集Thumb指令集指令集CODE32LDRR0, =Lable+1BX R0CODE16Lable MOV R1, #12CODE16LDR R0

36、, =LableBX R0CODE32LableMOV R1, #10地址最低位为1,表示切换到Thumb状态跳转地址标号执行完BX指令,处理器切换到Thumb状态,开始执行Thumb指令程序代码程序代码指令集关系指令集关系 从ARM状态切换到Thumb状态的程序代码如下: 从Thumb状态切换到ARM状态的程序代码如下:执行完BX指令,处理器切换到ARM状态,开始执行ARM指令2.4 ARM体系结构的存储器格式体系结构的存储器格式uARM体系结构将存储器看作是从零地址开始的字节体系结构将存储器看作是从零地址开始的字节的的线性组合线性组合。u从零字节到三字节放置从零字节到三字节放置第一个存储的

37、字数据第一个存储的字数据.u从第四个字节到第七个字节放置第二个存储的字从第四个字节到第七个字节放置第二个存储的字数据,依次排列。数据,依次排列。u作为作为32位的微处理器,位的微处理器,ARM体系结构所支持的最大体系结构所支持的最大寻址空间为寻址空间为4GB(232字节)。字节)。uARM体系结构可以用两种方法存储字数据,称之为体系结构可以用两种方法存储字数据,称之为u大端格式大端格式u小端格式小端格式2.4 ARM体系结构的存储器格式体系结构的存储器格式u大端格式大端格式 在这种格式中,字数据的高字节存储在低地址中,在这种格式中,字数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中

38、,如图所示。而字数据的低字节则存放在高地址中,如图所示。31 2423 1615 87 0字地址84089101145670123低地址低地址高地址高地址2.4 ARM体系结构的存储器格式体系结构的存储器格式u小端格式小端格式 在这种格式中,字数据的高字节存储在低地址中,在这种格式中,字数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中,如图所示。而字数据的低字节则存放在高地址中,如图所示。低地址低地址高地址高地址31 2423 1615 87 0字地址840111098765432102.4.1 指令长度及数据类型指令长度及数据类型uARM微处理器的指令长度可以是微处理器的指令长度

39、可以是u32位(在位(在ARM状态下)状态下)u16位(在位(在Thumb状态下)状态下)uARM微处理器中支持微处理器中支持字节字节(8位)、位)、半字半字(16位)、位)、字字(32位)三种位)三种数据类型数据类型.u其中,字需要其中,字需要4字节对齐(地址的低两位为字节对齐(地址的低两位为0)、半字)、半字需要需要2字节对齐(地址的最低位为字节对齐(地址的最低位为0)。)。2.4.2 存储管理单元存储管理单元-MMU 在复杂的嵌入式系统设计时,越来越多的会选用在复杂的嵌入式系统设计时,越来越多的会选用带有存储管理单元(带有存储管理单元(MMU)的微处理器芯片。)的微处理器芯片。MMU完成

40、的主要功能有:完成的主要功能有:u将主存地址从虚拟存储空间映射到物理存储将主存地址从虚拟存储空间映射到物理存储空间。空间。u存储器访问权限控制。存储器访问权限控制。u设置虚拟存储空间的缓冲特性等。设置虚拟存储空间的缓冲特性等。2.4.2 存储管理单元存储管理单元-MMUu虚拟地址存储系统示意图虚拟地址存储系统示意图逻辑地址逻辑地址对换对换主存主存辅助存储器辅助存储器物理地址物理地址MMU微微处处理理器器2.4.2 存储管理单元存储管理单元-MMUARM920T微处理器核的微处理器核的MMU采用了采用了分页虚拟存分页虚拟存储管理方式储管理方式。它把虚拟存储空间分成一个个固定大小。它把虚拟存储空间

41、分成一个个固定大小的页,把物理主存储的空间也分成同样大小的一个个的页,把物理主存储的空间也分成同样大小的一个个页。页。通过查询存放在主存中的页表,来实现通过查询存放在主存中的页表,来实现虚拟地址虚拟地址到到物理地址物理地址的转换。但由于页表存储在主存储中,查的转换。但由于页表存储在主存储中,查询页表所花的代价很大,因此,通常又采用快表技术询页表所花的代价很大,因此,通常又采用快表技术(TLB translation lookaside buffer)来提高地址变)来提高地址变换效率。换效率。 2.4.2 存储管理单元存储管理单元-MMUTLB技术中,将当前需要访问的地址变换条目存技术中,将当前

42、需要访问的地址变换条目存储在一个储在一个容量较小容量较小(通常(通常816个字)、个字)、访问速度更快访问速度更快(与微处理器中通用寄存器速度相当)的存储器件中。(与微处理器中通用寄存器速度相当)的存储器件中。当微处理器访问主存时,先在当微处理器访问主存时,先在TLB中查找需要的地址中查找需要的地址变换条目,如果该条目不存在,再从存储在主存中的变换条目,如果该条目不存在,再从存储在主存中的页表中查询,并添加到页表中查询,并添加到TLB中。中。这样,当微处理器下一次又需要该地址变换条目这样,当微处理器下一次又需要该地址变换条目时,可以从时,可以从TLB中直接得到,从而提高了地址变换速中直接得到,

43、从而提高了地址变换速度。度。2.4.2 存储管理单元存储管理单元-MMU表表2-5是是ARM920T的写出其的写出其CP15中与中与MMU操作相关的寄存操作相关的寄存器。设计者编程控制这些寄存器,则可以相应地控制器。设计者编程控制这些寄存器,则可以相应地控制MMU操作。操作。寄寄 存存 器器作作 用用 寄存器寄存器C1中某些位中某些位用于配置用于配置MMU中的一些操作中的一些操作寄存器寄存器C2保存主存中页表的基地址保存主存中页表的基地址寄存器寄存器C3设置域(设置域(domain)的访问控制属性)的访问控制属性寄存器寄存器C4保留保留寄存器寄存器C5主存访问失效状态指示主存访问失效状态指示寄

44、存器寄存器C6主存访问失效时的地址主存访问失效时的地址寄存器寄存器C8控制与清除控制与清除TLB内容相关的操作内容相关的操作寄存器寄存器C10控制与锁定控制与锁定TLB内容相关的操作内容相关的操作2.4.2 存储管理单元存储管理单元-MMU1.禁止与使能禁止与使能MMUCP15的寄存器的寄存器C1的位的位0用于设置禁止用于设置禁止/使能使能MMU。C1的位的位0为为0时时,禁止禁止MMU;当;当C1的位的位0为为1时,使能时,使能MMU。下面指令实现了使能。下面指令实现了使能MMU。 MRC P15,0,R0,C1,0,0 ; C1的内容赋给的内容赋给R0 ORR R0,#0 x1 MCR P

45、15,0,R0,C1,0,0 ;R0的内容赋给的内容赋给C12.4.2 存储管理单元存储管理单元-MMU使能使能MMU时,其控制存储访问的过程是:时,其控制存储访问的过程是:首先在首先在TLB中查找虚拟地址,如果该虚拟地中查找虚拟地址,如果该虚拟地址对应的地址变换条目不在址对应的地址变换条目不在TLB中,则到页表中中,则到页表中查询对应的地址变换条目,并把查询到的结果添查询对应的地址变换条目,并把查询到的结果添加到加到TLB中。如果中。如果TLB已满,还需根据一定的淘已满,还需根据一定的淘汰算法进行替换。得到地址变换条目后,进行一汰算法进行替换。得到地址变换条目后,进行一下步骤的操作。下步骤的

46、操作。2.4.2 存储管理单元存储管理单元-MMU禁止禁止MMU时,所有的虚拟地址和物理地址是相时,所有的虚拟地址和物理地址是相等的,也不进行存储访问权限的控制。是否支持等的,也不进行存储访问权限的控制。是否支持cache和写缓存由具体芯片设计确定。和写缓存由具体芯片设计确定。在禁止在禁止/使能使能MMU时,应该注意以下几点。时,应该注意以下几点。u使能使能MMU之前,要在内存中建立之前,要在内存中建立0号页表,同时号页表,同时CP15中的各相关寄存器必须完成初始化中的各相关寄存器必须完成初始化.u如果设计的物理地址与虚拟地址空间不相等,在禁止如果设计的物理地址与虚拟地址空间不相等,在禁止/使

47、能使能MMU时,虚拟地址和物理地址的对应关系会改变,时,虚拟地址和物理地址的对应关系会改变,应清除应清除cache中当前地址变换条目。中当前地址变换条目。u完成禁止完成禁止/使能使能MMU代码的物理地址最好和虚拟地址代码的物理地址最好和虚拟地址相同。相同。 2.4.2 存储管理单元存储管理单元-MMU2.MMU中的地址变换过程中的地址变换过程虚拟存储空间到物理存储空间的映射是以内存块虚拟存储空间到物理存储空间的映射是以内存块为单位进行的。在页表或为单位进行的。在页表或TLB中,每个地址变换条目中,每个地址变换条目记录了一个虚拟存储空间的存储块的基地址与物理存记录了一个虚拟存储空间的存储块的基地

48、址与物理存储空间的一个存储块基地址的对应关系。储空间的一个存储块基地址的对应关系。ARM920T支持的存储块大小有一下几种:支持的存储块大小有一下几种:u段(段(section)是大小为)是大小为1MB的存储块。的存储块。u大页(大页(large pages)是大小为)是大小为64KB的存储块。的存储块。u小页(小页(small pages)是大小为)是大小为4KB的存储块。的存储块。u极小页(极小页(tiny pages)是大小为)是大小为1KB的存储块。的存储块。2.4.2 存储管理单元存储管理单元-MMU3.MMU中的存储访问权限控制中的存储访问权限控制在在MMU中,中,CP15的寄存器

49、的寄存器C1的的R、S控制位和页控制位和页表中地址转换条目中的访问权限控制位联合作用控制表中地址转换条目中的访问权限控制位联合作用控制存储访问权限。存储访问权限。具体规则如表具体规则如表2-6所示。所示。2.4.2 存储管理单元存储管理单元-MMU表表2-6 MMU中存储访问控制权限控制规则中存储访问控制权限控制规则APS R特权级时访问权限特权级时访问权限用户级时访问权限用户级时访问权限0b000 0没有访问权限没有访问权限没有访问权限没有访问权限0b001 0只读只读没有访问权限没有访问权限0b000 1只读只读只读只读0b001 1不可预知不可预知不可预知不可预知0b01 X X读读/写

50、写没有访问权限没有访问权限0b10 X X读读/写写只读只读0b11 X X读读/写写读读/写写2.4.2 存储管理单元存储管理单元-MMU4.MMU中的域中的域MMU中的域指的是一些段、大页或者小页的集中的域指的是一些段、大页或者小页的集合。合。ARM920T支持最大支持最大16个域,每个域的访问控制个域,每个域的访问控制特性由特性由CP15的寄存器的寄存器C3中的两位来控制。中的两位来控制。C3寄存器是寄存器是32位的,每两位控制一个域,其控制位的,每两位控制一个域,其控制编码如表编码如表2-7所示。所示。 2.4.2 存储管理单元存储管理单元-MMU表表2-7 MMU中域访问控制字段编码

51、及含义中域访问控制字段编码及含义控制位编码控制位编码访问类型访问类型含含 义义0b00没有访问权限没有访问权限这时访问该域将产生访问这时访问该域将产生访问失效失效0b01客户类型客户类型根据页表中地址变换条目根据页表中地址变换条目中的访问权限控制位决定中的访问权限控制位决定时否允许特定的存储访问时否允许特定的存储访问0b10保留保留使用该值会产生不可预知使用该值会产生不可预知的结果的结果0b11管理者权限管理者权限不考虑页表中地址变换条不考虑页表中地址变换条件目中的访问权限控制位,件目中的访问权限控制位,这种情况下不会产生访问这种情况下不会产生访问失效失效2.4.2 存储管理单元存储管理单元-

52、MMU5.快表操作快表操作从虚拟地址到物理地址的变换过程其实就是查询从虚拟地址到物理地址的变换过程其实就是查询页表的过程,由于页表存放在主存储器中,这个查询页表的过程,由于页表存放在主存储器中,这个查询代价很大。而程序在执行时其过程具有局部性,对页代价很大。而程序在执行时其过程具有局部性,对页表中各存储单元的访问并不是随机的,在一段时间内,表中各存储单元的访问并不是随机的,在一段时间内,只局限在少数几个单元中。只局限在少数几个单元中。因此,采用因此,采用TLB技术可以提高存储系统的整体性技术可以提高存储系统的整体性能。能。 2.4.2 存储管理单元存储管理单元-MMU6.存储访问失效存储访问失

53、效在在ARM920T中,中,MMU可以产生可以产生4种类型的存储种类型的存储访问失效,即地址对齐失效、地址变换失效、域控制访问失效,即地址对齐失效、地址变换失效、域控制失效和访问权限控制失效。当发生存储访问失效时,失效和访问权限控制失效。当发生存储访问失效时,存储系统可以中止存储系统可以中止3种存储访问,即种存储访问,即cache内容预取、内容预取、非缓冲的存储器访问操非缓冲的存储器访问操S作和页表访问。作和页表访问。2.4.2 存储管理单元存储管理单元-MMU有下面有下面两种机制两种机制可以检测存储访问失效,并进而可以检测存储访问失效,并进而中止微处理器的执行。中止微处理器的执行。(1)当)

54、当MMU检测到存储访问失效时,它可以向检测到存储访问失效时,它可以向微处理器报告该情况,并将存储访问失效的相关信息微处理器报告该情况,并将存储访问失效的相关信息保存到寄存器保存到寄存器C5和和C6中。这种机制成为中。这种机制成为MMU失效。失效。(2)存储系统也可以向微处理器报告存储访问)存储系统也可以向微处理器报告存储访问失效。这种机制称为外部存储访问中止(失效。这种机制称为外部存储访问中止(external abort)。)。 上述两种情况通称为上述两种情况通称为存储访问中止(存储访问中止(abort)。)。2.4.2 存储管理单元存储管理单元-MMUu如果存储访问发生在如果存储访问发生在

55、数据访问周期数据访问周期,微处理器将,微处理器将产生数据访问中止异常。产生数据访问中止异常。u如果存储访问发生在如果存储访问发生在指令预取周期指令预取周期,当该指令执,当该指令执行时,微处理器将产生指令预取异常。行时,微处理器将产生指令预取异常。MMU中与存储访问失效相关的寄存器有两个:中与存储访问失效相关的寄存器有两个:C5和和C6。C5为失效状态寄存器,为失效状态寄存器,C6为失效地址寄存器。为失效地址寄存器。2.5 处理器模式处理器模式ARM微处理器支持微处理器支持7种运行模式,分别为:种运行模式,分别为:u用户模式(用户模式(usr):): ARM处理器正常的程序执行状态。处理器正常的

56、程序执行状态。u快速中断模式(快速中断模式(fiq):):用于高速数据传输或通道处理。用于高速数据传输或通道处理。u外部中断模式(外部中断模式(irq):):用于通用的中断处理。用于通用的中断处理。u管理模式(管理模式(svc):):操作系统使用的保护模式。操作系统使用的保护模式。u数据访问终止模式数据访问终止模式(abt):当数据或指令预取终止时进当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护。入该模式,可用于虚拟存储及存储保护。u系统模式(系统模式(sys):):运行具有特权的操作系统任务。运行具有特权的操作系统任务。u未定义指令中止模式(未定义指令中止模式(und):):当未

57、定义的指令执行时当未定义的指令执行时进入该模式,可用于支持硬件协处理器的软件仿真。进入该模式,可用于支持硬件协处理器的软件仿真。u特权模式特权模式处理器模式处理器模式说明说明备注备注 用户用户 (usr)正常程序工作模式正常程序工作模式不能直接切换到其它模式不能直接切换到其它模式 系统系统 (sys)用于支持操作系统的特权用于支持操作系统的特权任务等任务等与用户模式类似,但具有可以直与用户模式类似,但具有可以直接切换到其它模式等特权接切换到其它模式等特权 快中断快中断 (fiq)支持高速数据传输及通道支持高速数据传输及通道处理处理FIQ异常响应时进入此模式异常响应时进入此模式 中断中断 (ir

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

59、上只允许(或者内外设在硬件设计上只允许(或者可选为只允许)特权模式下访问。可选为只允许)特权模式下访问。此外,特权模式可以自由的切换处此外,特权模式可以自由的切换处理器模式,而用户模式不能直接切理器模式,而用户模式不能直接切换到别的模式。换到别的模式。 未定义未定义 (und) 中止中止 (abt) 管理管理 (svc) 中断中断 (irq) 快中断快中断 (fiq) 系统系统 (sys)2.5 处理器模式处理器模式u异常模式异常模式处理器模式处理器模式说明说明备注备注 用户用户 (usr)正常程序工作模式正常程序工作模式不能直接切换到其它模式不能直接切换到其它模式 系统系统 (sys)用于支

60、持操作系统的特用于支持操作系统的特权任务等权任务等与用户模式类似,但具有可以与用户模式类似,但具有可以直接切换到其它模式等特权直接切换到其它模式等特权 快中断快中断 (fiq)支持高速数据传输及通支持高速数据传输及通道处理道处理FIQ异常响应时进入此模式异常响应时进入此模式 中断中断 (irq)用于通用中断处理用于通用中断处理IRQ异常响应时进入此模式异常响应时进入此模式 管理管理 (svc)操作系统保护代码操作系统保护代码系统复位和软件中断响应时进系统复位和软件中断响应时进入此模式入此模式 中止中止 (abt)用于支持虚拟内存和用于支持虚拟内存和/或或存储器保护存储器保护在在ARM7TDMI

温馨提示

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

评论

0/150

提交评论