华清远见——嵌入式培训专家系统开发班培训教材“黑色经典”系列之《嵌入式Linux系统开发技术详解——基于ARM》第2章ARM处理器本章目标本章描述了ARM体系结构和ARMLinux的发展,介绍了几种应用Linux的典型ARM处理器和开发板。本章可以使读者了解嵌入式Linux系统硬件平台的基础知识。ARM体系结构典型的ARM处理器S3C2410开发板介绍华清远见——嵌入式培训专家(AdvancedRISCMachines),既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。ARM处理器是一种低功耗高性能的32位RISC处理器,ARM处理器是一个综合体,ARM公司自身并不制造微处理器,而是由ARM的合作伙伴来制造,作为SOC(SystemOnChip)的典型应用,目前,基于ARM的处理器以其高速度、低功耗等诸多优异的性能而得到非常广泛的应用。采用RISC架构的ARM微处理器一般具有如下特点。•体积小、低功耗、低成本、高性能。•支持Thumb(16位)/ARM(32位)双指令集,能很好地兼容8位/16位器件。ARM微处理器支持2种指令集:ARM指令集和Thumb指令集。其中,ARM指令为32位的长度,Thumb指令为16位长度。Thumb指令集为ARM指令集的功能子集,但与等价的ARM代码相比较,可节省30%~40%以上的存储空间,同时具备32位代码的所有优点。•大量使用寄存器,指令执行速度更快。ARM处理器共有37个寄存器,被分为若干个组(BANK),如下。—31个通用寄存器,包括程序计数器(PC指针),均为32位的寄存器。—6个状态寄存器,用以标识CPU的工作状态及程序的运行状态,均为32位。概括地讲,ARM体系结构中各寄存器的使用方式可以归纳如表2.1所示。表2.1ARM寄存器使用方式寄存器使用方式程序计数器PC(r15)所有运行状态都可以使用通用寄存器r0~r7所有运行状态都可以使用通用寄存器r8~r12除去快速中断以外的状态都可以使用当前程序状态寄存器CPSR所有运行状态都可以使用保存程序状态寄存器SPSR除去用户状态以外的6种运行状态,分别都有自己的SPSR堆栈指针SP(r13)和链接寄存器lr(r14)所有的运行状态都有自己的SP和lr•大多数数据操作都在寄存器中完成。•寻址方式灵活简单,执行效率高。•指令长度固定。为了保证ARM处理器具有高性能的同时,进一步减少芯片的体积和功耗,ARM处理器采用了以下一些比较特别的技术。•所有的指令都可根据前面的执行结果决定是否被执行,从而提高指令的执行效率。《嵌入式Linux系统开发技术详解——基于ARM》——第2章、ARM处理器华清远见嵌入式Linux系统开发班培训教材•可用加载/存储指令批量传输数据,以提高数据的传输效率。•可在一条数据处理指令中同时完成逻辑处理和移位处理。•在循环处理中使用地址的自动增减来提高运行效率。ARM微处理器有以下7种运行模式。•用户模式(usr):ARM处理器正常的程序执行状态。•快速中断模式(fiq):用于高速数据传输或通道处理。•外部中断模式(irq):用于通常的中断处理。•管理模式(svc):操作系统使用的保护模式。•数据访问终止模式(abt):当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护。•系统模式(sys):运行具有特权的操作系统任务。•未定义指令中止模式(und):当未定义的指令执行时进入该模式,可用于支持硬件协处理器的软件仿真。ARM微处理器的运行模式可以通过软件改变,也可以通过外部中断或异常处理改变。大多数的应用程序运行在用户模式下,当处理器运行在用户模式下时,某些被保护的系统资源是不能被访问的。除用户模式以外,其余的所有6种模式称之为非用户模式,或特权模式(PrivilegedModes);其中除去用户模式和系统模式以外的5种又称为异常模式(ExceptionModes),常用于处理中断或异常,以及需要访问受保护的系统资源等情况。2.1.1ARM公司简介1991年ARM公司(AdvancedRISCMachineLimited)成立于英国剑桥,最早由Arcon、Apple和VLSI合资成立,主要出售芯片设计技术的授权,在1985年4月26日,第一个ARM原型在英国剑桥的Acorn计算机有限公司诞生(在美国VLSI公司制造)。目前,ARM架构处理器已在高性能、低功耗、低成本的嵌入式应用领域中占据了领先地位。ARM公司最初只有12人,经过十多年的发展,ARM公司已拥有近千名员工,在许多国家都设立了分公司,包括ARM公司在中国上海的分公司。目前,采用ARM技术知识产权(IP)核的微处理器,即我们通常所说的ARM微处理器,已遍及工业控制、消费类电子产品、通信系统、网络系统、无线系统等各类产品市场,基于ARM技术的微处理器应用约占据了32位RISC微处理器80%以上的市场份额,其中,在手机市场,ARM占有绝对的垄断地位。可以说,ARM技术正在逐步渗入到人们生活中的各个方面,而且随着32位CPU价格的不断下降和开发环境的不断成熟,ARM技术会应用得越来越广泛。ARM公司是专门从事基于RISC技术芯片设计开发的公司,作为嵌入式RISC处理器的知识产权IP供应商,公司本身并不直接从事芯片生产,而是靠转让设计许可由合作公司生产各具特色的芯片,世界各大半导体生产商从ARM公司购买其设计的ARM微处理器核,根据各自不同的应用领域,加入适当的外围电路,从而形成自己的ARM微处理器芯片进入市场,利用这种合伙关系,ARM很快成为许多全球性RISC标准的缔造者。目前,全世界有几十家大的半导体公司都使用ARM公司的授权,其中包括Intel、IBM、Samsung、LG半导体、NEC、SONY、PHILIP等公司,这也使得ARM技术获得更多的第三方工具、制造、软件的支持,又使整个系统成本降低,使产品更容易进入市场并被消费者所接受,更具有竞争力。华清远见——嵌入式培训专家处理器体系结构处理器的体系结构定义了指令集(ISA)和基于这一体系结构下处理器的程序员模型。ARM体系结构为嵌入系统发展商提供了很高的系统性能,同时保持了优异的功耗和面积效率,每一次ARM体系结构的重大修改,都会添加一些非常关键的技术。目前,ARM体系结构共定义了6个版本,从版本1到版本6,ARM体系的指令集功能不断扩大,不同系列的ARM处理器,性能差别很大,应用范围和对象也不尽相同,但是,如果是相同的ARM体系结构,那么基于它们的应用软件是兼容的。1.V1结构(版本1)V1版本的ARM处理器并没有实现商品化,采用的地址空间是26位,寻址空间是64MB,在目前的版本中已不再使用这种结构。2.V2结构与V1结构的ARM处理器相比,V2结构的ARM处理器的指令结构要有所完善,比如增加了乘法指令并且支持协处理器指令,在该版本的处理器仍然是26位的地址空间。3.V3结构从V3结构开始,ARM处理器的体系结构有了很大的改变,实现了32位的地址空间,指令结构相对前面的两种结构也所完善。4.V4结构V4结构的ARM处理器增加了半字指令的读取和写入操作,增加了处理器系统模式,并且有了T变种-V4T,在Thumb状态下所支持的是16位的Thumb指令集。属于V4T(支持Thumb指令)体系结构的处理器(核)有ARM7TDMI,ARM7TDMI-S(ARM7TDMI可综合版本),ARM710T(ARM7TDMI核的处理器),ARM720T(ARM7TDMI核的处理器),ARM740T(ARM7TDMI核的处理器),ARM9TDMI,ARM910T(ARM9TDMI核的处理器),ARM920T(ARM9TDMI核的处理器),ARM940T(ARM9TDMI核的处理器),StrongARM(Intel公司的产品)。5.V5结构V5结构的ARM处理器提升了ARM和Thumb两种指令的交互工作能力,同时有了DSP指令-V5E结构、Java指令-V5J结构的支持。属于V5T(支持Thumb指令)体系结构的处理器(核)有ARM10TDMI,ARM1020T(ARM10TDMI核处理器)。属于V5TE(支持Thumb,DSP指令)体系结构的处理器(核)有ARM9E,ARM9E-S(ARM9E可综合版本),ARM946(ARM9E核的处理器),ARM966(ARM9E核的处理器),ARM10E,ARM1020E(ARM10E核处理器),ARM1022E(ARM10E核的处理器),Xscale(Intel公司产品)。《嵌入式Linux系统开发技术详解——基于ARM》——第2章、ARM处理器华清远见嵌入式Linux系统开发班培训教材属于V5TEJ(支持Thumb,DSP指令,Java指令)体系结构的处理器(核)有ARM9EJ,ARM9EJ-S(ARM9EJ可综合版本),ARM926EJ(ARM9EJ核的处理器),ARM10EJ。6.V6结构V6结构是在2001年发布的,在该版本中增加了媒体指令,属于V6体系结构的处理器核有ARM11(2002年发布)。V6体系结构包含ARM体系结构中所有的4种特殊指令集:Thumb指令(T)、DSP指令(E)、Java指令(J)和Media指令。目前,基于ARM核结构的微处理器目前包括下面几个系列。•ARM7系列ARM7系列包括ARM7TDMI、ARM720T、ARM7TDMI-S、ARM7EJ,该系列中,使用最广泛的是基于ARM7TDMI核的ARM处理器,比如Samsung的S3c4510B、S3c44b0x等,在这里后缀TDMI的含义如下。T:表示支持Thumb指令集。D:表示支持片上调试(Debug)。M:表示内嵌硬件乘法器(Multiplier)。I:表示支持片上断点和调试点。•ARM9系列ARM9系列包括ARM920T、ARM922T和ARM940T。ARM9处理器采用了5级流水线,指令执行效率较ARM7有较大提高,而且带有MMU功能,这也是与ARM7的重要区别。同时,该系列的处理器支持指令Cache和数据Cache,因而具有更高的数据处理能力,主要应用在无线设备、手持终端、数字照相机等。•ARM9E系列ARM9E系列包括ARM926EJ-S、ARM946E-S、ARM966E-S、ARM968E-S,该系列的处理器是综合类的处理器,它使用单一的处理器核提供了微控制器、DSP、Java应用,因而非常适应于同时使用DSP和微控制器的场合。采用了5级流水线,支持DSP指令集、32位的高速AMBA总线接口,带有MMU功能,最高主频可达300MIPS。•ARM10E系列ARM10E系列包括ARM1020E、ARM1022E、ARM1026EJ-S,该系列的ARM处理器采用了新的体系结构,同ARM9系列的相比有了很大的提高,采用了更高的6级流水线结构,支持DSP指令,适合同时需要高速数字信号处理的场合,支持64位的高速AMBA总线接口、32位的ARM指令集和16位的Thumb指令集。主要应用于下一代的无线设备、数字消费品等。•ARM11系列ARM11系列包括ARM1136J(F)-S,ARM1156T2(F)-S,ARM1176JZ(F)-S,AMR公司在2003年推出了ARM11架构的核,基于ARM11核结构的处理器具有更高的性能,尤其是在多媒体处理能力方面,采用了先进的0.13μm工艺,最高工作频率可达750MHz。•SecurCore系列SecurCore系列包括SecurCoreSC100、SecurCoreSC110、SecurCoreSC200和SecurCoreSC22,SecurCor系列处理器专为