arm开发指南外文翻译.docx
- 文档编号:10897921
- 上传时间:2023-05-28
- 格式:DOCX
- 页数:15
- 大小:183.18KB
arm开发指南外文翻译.docx
《arm开发指南外文翻译.docx》由会员分享,可在线阅读,更多相关《arm开发指南外文翻译.docx(15页珍藏版)》请在冰点文库上搜索。
arm开发指南外文翻译
河北科技大学理工学院
毕业设计外文资料翻译
专业:
电子信息工程
姓名:
刘丹丹
学号:
10L0751173
外文出处:
(用外文写)
literature/an/wp-aghrdw.pdf
附件:
1.外文资料翻译译文;2.外文原文。
指导教师评语:
签名:
2014年3月8日
ARM系统开发人员指南
设计和优化
系统软件
第一章
ARM处理器核心是许多成功的32位嵌入式系统的重要组成部分。
你可能拥有一个自己,甚至可能不会意识到这一点!
ARM内核被广泛应用于手机,手持组织者,和许多其他的日常便携式消费类设备。
ARM公司的设计师们在1985年走过了很长的路从第一ARM1原型机。
到2001年底超过十亿的ARM处理器已被运往世界各地。
ARM公司的成功立足于一个简单而强大的原创设计,现在他们通过不断的技术创新来提高自己。
事实上,ARM内核不是一个单一的核心,但整个设计分享相似的设计原理和通用指令集。
例如,ARM公司最成功的核心之一是ARM7TDMI。
它可提供高达120Dhrystone的MIPS1,居所周知以其高代码密度和低功耗,因此非常适合移动嵌入式设备。
在这第一章中,我们将讨论如何使RISC(精简指令集计算机)的设计理念适应ARM以能够营造出一个灵活的嵌入式处理器。
我们现在介绍一个例子嵌入式设备并讨论围绕ARM处理器的典型的硬件和软件技术。
1.1RISC设计理念
ARM内核采用的是RISC架构。
RISC是一种设计理念,旨在提供即在单个周期且在一个较高的时钟速度运行简单但功能强大的指令。
该RISC理念集中于通过硬件降低执行指令的复杂性,因为它更方便地提供了更大的灵活性和智能的软件而不是硬件。
因此,在RISC设计编译器上有更高的要求。
与此相反,传统的复杂指令集计算机(CISC)更多地依赖于硬件指令的功能,并因此CISC指令是比较复杂的。
图1.1说明了这些重大不同。
该RISC的理念有四个主要的设计规则来实现:
1、说明-RISC处理器具有指令类的数量减少。
这些类提供一种可在一个周期内的每个执行简单的操作。
编译器或程序员通过结合几个简单的指令合成复杂的操作(例如,除法运算)。
每个指令是一个固定长度的允许管道中的当前指令在译码之前获取未来指令。
与此相反,在CISC处理器的指令经常是可变大小的和采取许多周期来执行。
2、指令流水线,该处理被分解成可以并行通过管道来执行更小的单元。
理想情况下,管道垫款在每个周期的最大吞吐量一步。
指令可以被解码在一个流水线级。
没有必要为一个指令是由一个小程序称为微码作为上执行CISC处理器。
3、寄存器-寄存器RISC上有一个大的通用寄存器组。
任何寄存器都可以包含数据或地址。
寄存器作为所有数据的高速本地存储器存储。
相比之下,CISC处理器有专用寄存器为特定目的。
图1.1CISC与RISC。
CISC强调硬件的复杂性。
4、加载存储架构-该处理器上运行保存在寄存器中的数据。
独立的负载和存储指令寄存器组和外部存储器之间传输数据。
内存访问是昂贵的,所以分离存储器访问从数据处理提供了一个优势,因为你可以使用的寄存器组列出多次的数据项,而不需要多个内存访问。
与此相反,具有CISC设计的数据处理操作,可以在存储器上直接作用。
这些设计规则允许RISC处理器更简单,因此核心可以操作在更高的时钟频率。
与此相反,传统的CISC处理器更复杂且工作在较低的时钟频率。
过去二十年的中,然而,RISC和CISC之间的界限已经模糊,因为CISC处理器已实施更多RISC的概念。
1.2ARM的设计理念
许多的物理特性有驱动ARM处理器的设计。
首先,便携式嵌入系统需要某种形式的电池电量。
ARM处理器已被专门设计较小,以降低功耗并延长电池的运行必需的应用,如移动电话和个人数字助理(掌上电脑)。
高代码密度是另一个重要的要求,因为嵌入式系统的内存有限,还由于成本或物理尺寸的限制。
高代码密度是有用的应用程序,具有有限的板载内存,如手机和海量存储设备。
此外,嵌入式系统对价格敏感,使用慢速和低成本的记忆体设备。
对于大批量应用,如数码相机,每一分钱都有在设计中予以考虑。
使用低成本的存储设备的能产生实质性的节约。
另一个重要的要求是,以减少管芯由嵌入式处理器占用的面积。
为一个单芯片解决方案,较小的所使用的嵌入式处理器,用于专门的外围设备更多的可用空间区域。
由于较少的分立芯片的设计和制造所需要的最终产品,这反过来又降低了设计和制造的费用。
ARM已经将硬件调试技术的处理器,使软件工程师可以查看处理器正在执行的代码发生了什么。
有了更大的可视性,软件工程师可以速度更快的解决问题,它是直接的影响到市场的时间,降低整体开发成本。
ARM内核是因为其主要的制约因素不是纯粹的RISC架构应用程序的嵌入式系统。
从某种意义上说,ARM内核的优势在于它不远离RISC概念。
在今天电脑系统的关键不是原始的处理器速度,但总有效率的系统性能和功耗。
1.2.1指令集的嵌入式系统
ARM指令集不同于在几个方面,使单纯的RISC定义ARM指令集,适合于嵌入式应用:
■可变周期执行某些指令,不是每个ARM指令执行时在一个周期内。
例如,加载-存储-多个指令而变化的数执行周期取决于寄存器被转移的数目。
该传输可以发生在连续的内存地址,从而提高性能,因为连续的内存访问往往比随机访问速度更快。
在开始和结束功能,多寄存器传送是常见的操作,因此代码密度也得到改善。
■直插式桶形移位导致更复杂的指令,内嵌式桶形移位之前它是由一个指令预处理的输入寄存器中的一个硬件组件。
这些扩大了许多指令的能力,提高核心性能和代码密度。
我们在第2,3和4章会更详细地讲解此功能。
■Thumb16位指令集-ARM增强处理器核心通过添加第二16位被称为Thumb指令集,它允许ARM内核来执行任何16-或32-bit指令。
16位指令提高代码密度约30%以上的32位固定长度指令。
■条件指令-在特定条件下得到满足时指令能够执行。
此功能通过降低分支机构的性能和代码密度说明。
■增强型指令-增强的数字信号处理器(DSP)指示为添加到标准的ARM指令集,支持快速16×16位乘法器的操作和饱和度。
这些指令允许在一个更快的执行ARM处理器某些情况下,以取代一个处理器加上一个DSP的传统组合。
这些额外的功能所做的ARM处理器最常用使用32位嵌入式处理器内核。
许多世界各地的顶级半导体公司的生产的产品都是基于ARM处理器。
1.3嵌入式系统硬件
嵌入式系统可以控制许多不同的设备,从小型传感器运用一条生产线,到在美国航空航天局的太空探测器所使用的实时控制系统。
所有这些装置使用的软件和硬件组件的组合。
每个组件是选择了效率,如果适用的话,目的是为未来的扩展而扩展。
图1.2基于ARM的嵌入式设备,微控制器的一个实例。
图1.2显示了基于ARM内核一个典型的嵌入式设备。
每个方块代表一个特性或功能。
连接盒的线是承载数据的总线。
我们可以分离装置分为四个主要硬件组件:
■ARM处理器控制的嵌入式设备。
可适应所需的工作特性不同版本的ARM处理器。
ARM处理器包括一个芯(执行引擎,用于处理的指令和操纵数据),再加上周边元件与总线接口。
这些组件可以包括内存管理和缓存。
■控制器坐标系统的重要功能块。
两种常见的控制器是中断和内存控制器。
■外围设备提供的所有输入-输出能力外部的芯片,并负责嵌入式设备的独特性。
■总线不同部分之间的设备进行通信。
1.3.1ARM的总线技术
嵌入式系统使用不同的总线技术,而不是那些专用86PCs。
最常见的PC总线技术,外围组件互连(PCI)总线,这样的设备如视频卡和硬盘控制器连接到x86处理器总线。
这种类型的技术是外部或芯片外(即,总线被设计为机械地和电连接至外部的芯片的设备),并内置于个人电脑的主板。
与此相反,嵌入式设备使用一个片上总线是内部的芯片,并且允许不同的外围设备与ARM内核进行互连。
有两种不同类别的连接到总线的设备。
ARM处理器核心是一个总线主逻辑能够启动,通过同一总线与另一个设备的数据传输的设备。
外设往往只能够响应总线从设备,逻辑设备从总线主设备传送请求。
总线有两个架构层面。
第一是覆盖电物理层特性和总线宽度(16,32或64位)。
在第二级处理协议支配的处理器和外围设备之间的通信的逻辑规则。
ARM主要是一个设计公司。
它很少实现了电气特性的总线,但它通常指定总线协议。
1.3.2AMBA总线协议
高级微控制器总线架构(AMBA)于1996年推出,并已被广泛采用的用于ARM处理器的片上总线结构。
推出了第一款AMBA总线是ARM系统总线(ASB)和ARM外设总线(APB)。
更高版本的ARM引入了另一个总线设计,全称为ARM的高性能总线(AHB)。
采用AMBA,外设设计者可以重用在多个项目相同的设计。
因为有大量与AMBA接口开发的外设,硬件设计人员和测试验证的外围设备用于在设备中的使用具有广泛选择。
对于每个不同的处理器体系结构,外设可以简单地用螺栓固定到芯片上的总线而无需重新设计的接口。
这个插件和播放界面,硬件开发人员提高可用性并缩短上市时间。
AHB提供了更高的数据吞吐量超过ASB,因为它是基于集中式复用总线方式,而不是ASB双向总线设计。
这种变化使得AHB总线工作在更高的时钟速度运行,是首款基于ARM总线宽度支持64位和128位。
ARM公司日前推出了两款变化AHB总线上:
多层AHB和AHB-精简版。
相较于原来的AHB,它允许一个总线主机是活跃在总线上的任何时候,多层AHB总线允许多个有源总线主人。
AHB-精简版是AHB总线的一个子集,它仅限于一个单一的总线主控。
该总线是为设计,不要求标准的AHB总线的全功能开发。
AHB和多层AHB支持相同的协议,主机和从机,但有不同的互连。
在多层AHB新的互连使良好的系统有多个处理器。
他们允许操作发生在并行和允许更高吞吐率。
在图1.2中所示的示例性器件具有三个总线:
一个AHB总线为高性能的外围设备,一个APB总线的较慢的外围设备,以及第三总线,用于外设的,专有的此装置。
这种外部总线需要一个专门的桥梁与AHB总线连接。
1.3.3内存
嵌入式系统必须有某种形式的存储器来存储和执行的代码。
你要比较价格,性能,以及在特定的存储特性,如层次结构,宽度和类型算出决定时的功耗。
如果内存有运行速度的两倍,以维持所需的带宽,那么内存的功率要求可能会更高。
1.3.3.1阶层
所有的计算机系统都安排在某种形式的层次结构的存储器。
图1.2示出了一个支持外部的片外存储器的装置。
内部的处理器有一个高速缓存(在图1.2中画出)的一个选项,以提高存储器的性能。
图1.3显示了内存的权衡:
最快的内存高速缓存的物理位置接近ARM处理器核心和最慢的辅助存储器设置渐行渐远。
通常越接近存储器是与处理器核心,更花费和较小的容量。
高速缓存被置于主存和核心之间。
它被用于加速数据处理器和主存储器之间传送。
缓存提供了性能,但随着可预见的执行时间损失的整体增加。
虽然缓存增加了该系统的总体性能,它不利于实时系统响应。
需要注意的是许多小型嵌入式系统不需要高速缓存的性能优势。
图1.3存储权衡
主存储器是大约有256KB到256MB(或更大),这取决于的应用,并且通常存储在单独的芯片。
加载和存储指令访问主内存中,除非该值已被存储在缓存中以便快速访问。
辅助存储器是内存的最大和最慢的形式。
硬盘驱动器和CD-ROM驱动器是二级存储的例子。
这些天来辅助存储器可能会有所不同从600MB到60GB。
1.3.3.2宽度
存储宽度是在每个访问,通常内存返回的比特数8,16,32或64位。
存储器宽度对整体性能和成本率的直接影响。
如果您在使用32位ARM指令和16位宽度的存储器未缓存系统芯片,那么处理器将要在每个指令两个内存读取。
每次提取需要两个16位的负载。
这显然会降低系统性能的影响,但好处是,16位存储器是较便宜的。
与此相反,如果核心执行16位Thumb指令,它会取得更好的性能与16-bit内存。
更高的性能是核心制造的结果只有一个取到内存中加载的指令。
因此,使用Thumb指令具有16位宽的存储器设备提供了改进的性能和降低成本。
使用不同的表1.1总结了在ARM处理器上的理论周期时间内存宽度设备。
从内存表1.1Fetching说明
1.3.3.3类型
有许多不同类型的存储器。
在本节中,我们描述了一些比较在基于ARM的嵌入式系统中流行的存储设备。
只读存储器(ROM)是最灵活的所有类型的内存,因为它包含一个这是永久的设置在生产时间和不能重新编程的图像。
ROM是在需要任何更新或修正大容量装置中使用。
许多设备也使用一个ROM来保存启动代码。
闪存ROM可以写入以及读,但它是写慢,所以你不应该使用它用于保存动态数据。
它的主要用途是用于固定设备的固件或存放需要被保存后关闭电源长期数据。
FlashROM的擦除和写入是完全由软件控制,无需额外的硬件迂曲,因此降低了制造成本。
闪存ROM已经成为最流行的只读存储器类型和目前被用作质量或辅助存储替代。
动态随机存取存储器(DRAM)是最常用的RAM器件。
它拥有每兆字节与其他类型的RAM相比,成本最低。
DRAM是动态的,它需要有它的存储单元刷新,并赋予了新的电子电荷,每隔数毫秒,所以你需要建立一个DRAM控制器使用内存之前。
静态随机存取存储器(SRAM)是比传统DRAM快,但需要更多的硅片面积。
SRAM是静态的RAM不需要清除。
该为SRAM的访问时间比等效的DRAM相当短,因为SRAM不需要停顿之间的数据访问。
由于其成本较高,所以大多用于较小的高速工作,例如快速存储器和高速缓存。
同步动态随机存取存储器(SDRAM)是许多子类之一DRAM的。
它可以运行在更高的时钟速度比常规内存。
SDRAM因为它是在时钟本身与过程或总线进行同步。
在内部,数据是从存储单元,流水线牵强,终于带出了总线上一阵。
旧式DRAM是异步的,所以不爆尽可能有效地SDRAM。
1.3.4外设
嵌入式系统与外界交互需要某种形式的外围设备。
外围设备连接到其它设备或传感器是片执行对芯片的输入和输出功能。
每个外围设备通常执行一个单一的功能,并可以驻留在芯片上。
外围设备的范围从简单的串行通信设备到更复杂的802.11无线设备。
所有的ARM外设都是存储器映射,编程接口是一组内存寻址寄存器。
这些寄存器的地址是从一个特定的偏移外设基地址。
控制器是实现更高水平的功能的专用外设于嵌入式系统。
两个重要类型的控制器是内存控制器和中断控制器。
1.3.4.1Memory控制器
存储器控制器连接不同类型的存储器,以在处理器总线。
在上电时的存储器控制器被配置以硬件,以允许某些存储器设备被激活。
这些存储器设备允许执行初始化代码。
某些存储设备必须通过软件设置,例如,使用的DRAM的时候,你首先要设置内存时序和刷新率可以访问之前。
1.3.4.2Interrupt控制器
当一个外设或设备需要注意,它会引发一个中断处理器。
中断控制器提供了一个可编程的执政政策,允许软件确定哪些外围设备或设备可以通过中断处理器在任何特定时间设置在中断控制器的寄存器的相应位。
有两种类型的中断控制器可用于ARM处理器:
标准中断控制器和向量中断控制器(VIC)。
标准的中断控制器发送一个中断信号到处理器内核时外部设备请求服务。
它可以被编程以忽略或掩盖单个设备或一组设备。
中断处理程序确定哪个设备需要维修通过读取设备寄存器的位图中的中断控制器。
该VIC比标准的中断控制器更强大,因为它的优先级中断和简化其设备引起的中断的决心。
后一个相关联的优先级,并与每一个中断处理程序的地址,VIC则只有一个断言中断信号到核心如果新中断的优先级比当前更高执行中断处理程序。
根据其类型,VIC则要么调用标准中断异常处理程序,它可以加载处理程序的地址从维也纳国际中心的设备,或者导致核心直接跳转到处理程序的设备。
1.4嵌入式系统软件
嵌入式系统需要软件来驱动它。
图1.4显示了四个典型的软件控制嵌入式设备所需的组件。
在每个软件组件堆栈使用更高的抽象级别的代码从硬件设备分开。
初始化代码是在电路板上执行的第一代码,并且是特定于特定目标或目标组。
它设定了将控制权交给操作系统之前董事会的最低部分。
该操作系统提供了一个基础设施来控制应用程序和管理硬件系统资源。
许多嵌入式系统中并不需要一个完整的操作系统,而只是一个简单的任务调度程序,要么是事件或轮询驱动。
图1.4软件抽象层上执行的硬件
该设备驱动程序,如图1.4所示的第三个组成部分。
它们提供一致的软件接口,硬件设备上的外围设备。
最后,应用程序执行所需的设备的任务之一。
例如,手机可能有一个日记中的应用。
有可能执行相同的装置中,由操作系统控制的多个应用程序。
软件组件可以从ROM或RAM中运行。
被固定在ROM代码设备(例如,初始化代码)被称为固件。
1.4.1初始化(引导)代码
初始化代码(或引导代码)主罚处理器从复位状态的状态下,操作系统可以运行。
它通常配置在存储器控制器和处理器的高速缓存和初始化一些设备。
在简单系统中的操作系统可能会通过一个简单的调度程序或调试监控器所取代。
初始化代码处理一些行政工作交给控制之前,在一个操作系统映像。
我们可以将这些不同的任务分为三个阶段:
最初的硬件配置,诊断和引导。
最初的硬件配置包括设置目标平台,因此它可以启动的图像。
虽然目标平台本身出现在一个标准配置,这配置通常需要修改,以满足所引导的要求图像。
例如,存储系统通常需要内存映射的重组,如例1.1。
诊断通常是嵌入在初始化代码。
诊断代码测试系统通过行使硬件目标,检查目标是否处于正常工作状态。
这也追寻标准体系相关的问题。
这种类型的测试是重要的制造业,因为它发生后的软件产品是完整的。
主要目的诊断代码是故障识别和隔离。
包括引导加载图像,并移交控制权交给该图像。
引导过程本身可以如果系统必须引导不同的操作系统或者是复杂的不同版本的相同操作系统。
引导图像是最后阶段,但首先你必须加载图像。
加载图像包括从复制整个程序,包括代码和数据到内存中,只复制包含volatile变量到RAM中的数据区域的任何内容。
一旦启动后,系统将控制移交通过修改程序计数器指向到图像的开始。
有时,为了降低图像的大小,图像被压缩。
该图像被解压缩当它被加载或控制权交给它。
图1.5显示前和重组后的内存。
这是常见的基于ARM的嵌入式系统,以提供用于存储器重映射,因为它允许系统从ROM在上电时开始初始化代码。
初始化代码,然后重新定义或重新映射内存映射放置在RAM的地址为0x00000000-迈出的重要一步,因为这样的异常向量表可以在RAM中,因此可以重新编程。
我们将在第2.4节详细讨论向量表。
图1.5内存重映射
1.4.2操作系统
初始化过程准备硬件操作系统取控制。
操作系统组织的系统资源:
外设,内存和处理时间。
与操作系统控制这些资源,它们可以是有效地利用由操作系统环境中运行不同的应用程序。
ARM处理器支持超过50个操作系统。
我们可以把操作系统分为两大类:
实时操作系统(RTOS)和平台运营系统。
实时操作系统提供有保证的响应时间的事件。
不同的操作系统有不同量超过系统的响应时间控制。
硬实时应用需要保证响应在所有的工作。
相比之下,软实时应用要求具有良好的响应时间,但性能会下降更优雅,如果响应时间超支。
运行RTOS的系统一般不具备二次存储。
平台操作系统需要内存管理单元来管理大型,非实时应用中,往往有二级存储。
Linux操作系统是一个平台的操作系统的一个典型例子。
这两类操作系统不是相互排斥的:
有一些使用ARM内核与内存管理单元,并有实时操作系统特点。
ARM公司日前开发出了一套处理器核心,专门针对每个类别。
1.4.3应用
操作系统调度应用代码专门用来处理特定的任务。
应用程序实现处理任务;操作系统控制的环境。
嵌入式系统可以有一个活动的应用程序或同时运行多个应用程序。
ARM处理器被发现在众多的细分市场,包括网络,自动动机,移动和消费电子设备,大容量存储和成像。
在每个区段的ARM处理器可以在多个应用程序被发现。
例如,ARM处理器在像家庭网络应用发现网关,DSL调制解调器的高速互联网通信,以及802.11无线通信。
移动设备分部是因为移动电话的最大应用领域ARM处理器。
ARM处理器还发现,在大容量存储设备,如那些成本敏感和高容量硬盘驱动器和成像产品,如喷墨打印机的应用程序。
相比之下,ARM处理器是不是在需要的尖端应用中高性能。
因为这些应用程序往往是小批量,成本高,ARM公司已经决定不再专注于设计这些类型的应用程序。
1.5小结
纯RISC是针对高性能,但ARM采用的是修改后的RISC设计理念,也针对优秀的代码密度和低功耗。
嵌入式系统包括由高速缓存,存储器和外围设备所包围的处理器核心。
该系统是由管理应用任务的操作系统软件控制。
在RISC设计理念的关键点是通过降低来提高性能,该指令的复杂性,要通过使用管道加速指令的处理,以提供大的寄存器集到靠近核心存储数据,并使用一个加载存储架构。
ARM的设计理念也包含了一些非RISC的理念:
■它允许对某些指令可变周期执行,以节省功耗,面积和代码大小。
■它增加了一个桶式移位器,以扩大某些指令的能力。
■它采用了Thumb16位指令集以提高代码密度。
■它提高了有条件执行指令代码密度和性能。
■它包括增强的指令来执行数字信号处理类型的功能。
嵌入式系统包括以下硬件组件:
ARM处理器被嵌入到芯片。
程序员通过内存映射寄存器访问外设。
有外围的一种特殊类型称为控制器,该控制器的嵌入式系统用于配置更高级别的功能,如存储器和中断。
基于AMBA的片上总线用于与处理器和外围设备连接到一起。
嵌入式系统还包含以下软件组件:
初始化代码配置硬件到已知状态。
配置完成后,操作系统可以加载和执行。
操作系统提供了通用的编程环境使用的硬件资源和基础设施。
设备驱动程序提供了一个标准接口的外设。
应用程序执行一个嵌入式系统的任务和具体职责。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- arm 开发 指南 外文 翻译
![提示](https://static.bingdoc.com/images/bang_tan.gif)