嵌入式Linux 系统开发技术入门详解连载2- ARM处理器A

收藏本信息编号:178 发布时间:2009-07-19 截止日期: 地区:

嵌入式Linux 系统开发技术入门详解连载2-ARM处理器
 
描述了ARM 体系结构和ARM Linux 的发展,介绍了几种应用Linux 的典型ARM处理器和开发板。本章可以使读者了解嵌入式Linux 系统硬件平台的基础知识。
主要知识点:
l        ARM体系结构
l        典型的 ARM处理器
l        S3C2410开发板介绍
 
2.1 ARM 处理器简介
ARMAdvanced RISC Machines),既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。ARM处理器是一种低功耗高性能的32 RISC处理器,ARM处理器是一个综合体,ARM 公司自身并不制造微处理器,而是由ARM的合作伙伴来制造,作为SOCSystem On Chip)的典型应用,目前,基于ARM的处理器以其高速度、低功耗等诸多优异的性能而得到非常广泛的应用。
 
采用RISC架构的ARM微处理器一般具有如下特点。
· 体积小、低功耗、低成本、高性能。
· 支持 Thumb16 位)/ARM32 位)双指令集,能很好地兼容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.1 ARM寄存器使用方式
寄 存 器
使 用 方 式
程序计数器PC(r15)
所有运行状态都可以使用
通用寄存器r0~r7
所有运行状态都可以使用
通用寄存器r8~r12
除去快速中断以外的状态都可以使用
当前程序状态寄存器CPSR
所有运行状态都可以使用
保存程序状态寄存器SPSR
除去用户状态以外的6种运行状态,分别都有自己的SPSR
堆栈指针SP(r13)和链接寄存器lr(r14)
所有的运行状态都有自己的SP和lr

· 大多数数据操作都在寄存器中完成。
· 寻址方式灵活简单,执行效率高。
· 指令长度固定。
为了保证ARM处理器具有高性能的同时,进一步减少芯片的体积和功耗,ARM处理器采用了以下一些比较特别的技术。
· 所有的指令都可根据前面的执行结果决定是否被执行,从而提高指令的执行效率。
· 可用加载/存储指令批量传输数据,以提高数据的传输效率。
· 可在一条数据处理指令中同时完成逻辑处理和移位处理。
· 在循环处理中使用地址的自动增减来提高运行效率。
 

ARM微处理器有以下7种运行模式:

 
· 用户模式(usr):ARM处理器正常的程序执行状态。
· 快速中断模式(fiq):用于高速数据传输或通道处理。
· 外部中断模式(irq):用于通常的中断处理。
· 管理模式(svc):操作系统使用的保护模式。
·  数据访问终止模式(abt):当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护。
· 系统模式(sys):运行具有特权的操作系统任务。
· 未定义指令中止模式(und):当未定义的指令执行时进入该模式,可用于支持硬件协处理器的软件仿真。ARM 微处理器的运行模式可以通过软件改变,也可以通过外部中断或异常处理改变。大多数的应用程序运行在用户模式下,当处理器运行在用户模式下时,某些被保护的系统资源是不能被访问的。除用户模式以外,其余的所有6种模式称之为非用户模式,或特权模式(Privileged Modes);其中除去用户模式和系统模式以外的5 种又称为异常模式(ExceptionModes),常用于处理中断或异常,以及需要访问受保护的系统资源等情况。
 
 
 
 
2.1.1 ARM公司简介
 
1991 ARM公司(Advanced RISC Machine Limited)成立于英国剑桥,最早由ArconAppleVLSI合资成立,主要出售芯片设计技术的授权,在1985426 日,第一个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公司的授权,其中包括IntelIBMSamsungLG 半导体、NECSONYPHILIP 等公司,这也使得ARM 技术获得更多的第三方工具、制造、软件的支持,又使整个系统成本降低,使产品更容易进入市场并被消费者所接受,更具有竞争力。
 
2.1.2 ARM处理器体系结构
处理器的体系结构定义了指令集(ISA)和基于这一体系结构下处理器的程序员模型。
ARM 体系结构为嵌入系统发展商提供了很高的系统性能,同时保持了优异的功耗和面积效率,每一次ARM体系结构的重大修改,都会添加一些非常关键的技术。
目前,ARM 体系结构共定义了6 个版本,从版本1 到版本6ARM 体系的指令集功能不断扩大,不同系列的ARM 处理器,性能差别很大,应用范围和对象也不尽相同,但是,如果是相同的ARM体系结构,那么基于它们的应用软件是兼容的。
 
1V1结构(版本1
V1版本的ARM处理器并没有实现商品化,采用的地址空间是26位,寻址空间是64MB
在目前的版本中已不再使用这种结构。
2V2结构
V1 结构的ARM 处理器相比,V2 结构的ARM 处理器的指令结构要有所完善,比如增加了乘法指令并且支持协处理器指令,在该版本的处理器仍然是26 位的地址空间。
3V3结构
V3 结构开始,ARM 处理器的体系结构有了很大的改变,实现了32 位的地址空间,指令结构相对前面的两种结构也所完善。
4V4结构
V4 结构的ARM处理器增加了半字指令的读取和写入操作,增加了处理器系统模式,并且有了T 变种-V4T,在Thumb 状态下所支持的是16 位的Thumb 指令集。属于V4T(支持Thumb 指令)体系结构的处理器(核)有ARM7TDMIARM7TDMI-SARM7TDMI 可综合版本),ARM710TARM7TDMI 核的处理器),ARM720TARM7TDMI 核的处理器),ARM740TARM7TDMI核的处理器),ARM9TDMIARM910TARM9TDMI核的处理器),ARM920TARM9TDMI 核的处理器),ARM940TARM9TDMI 核的处理器),StrongARMIntel公司的产品)。
5V5结构
V5 结构的ARM处理器提升了ARMThumb 两种指令的交互工作能力,同时有了DSP指令-V5E 结构、Java 指令-V5J结构的支持。属于V5T(支持Thumb 指令)体系结构的处理器(核)有ARM10TDMIARM1020TARM10TDMI核处理器)。
属于V5TE(支持ThumbDSP 指令)体系结构的处理器(核)有ARM9EARM9E-SARM9E 可综合版本),ARM946ARM9E 核的处理器),ARM966ARM9E 核的处理器),ARM10EARM1020EARM10E 核处理器),ARM1022EARM10E 核的处理器),Xscale
Intel公司产品)。属于V5TEJ(支持ThumbDSP指令,Java指令)体系结构的处理器(核)有ARM9EJARM9EJ-SARM9EJ 可综合版本),ARM926EJARM9EJ 核的处理器),ARM10EJ
6V6结构
V6 结构是在2001 年发布的,在该版本中增加了媒体指令,属于V6 体系结构的处理器核有ARM112002 年发布)。V6 体系结构包含ARM 体系结构中所有的4 种特殊指令集:Thumb 指令(T)、DSP指令(E)、Java 指令(J)和Media 指令。
目前,基于ARM核结构的微处理器目前包括下面几个系列。
· ARM7 系列
ARM7 系列包括ARM7TDMIARM720TARM7TDMI-SARM7EJ,该系列中,使用最广泛的是基于ARM7TDMI核的ARM处理器,比如SamsungS3c4510BS3c44b0x 等,在这里后缀TDMI的含义如下。
T:表示支持Thumb 指令集。
D:表示支持片上调试(Debug)。
M:表示内嵌硬件乘法器(Multiplier)。
I :表示支持片上断点和调试点。
· ARM9 系列
ARM9 系列包括ARM920TARM922TARM940TARM9处理器采用了5 级流水线,指令执行效率较ARM7 有较大提高,而且带有MMU 功能,这也是与ARM7 的重要区别。同时,该系列的处理器支持指令Cache 和数据Cache,因而具有更高的数据处理能力,主要应用在无线设备、手持终端、数字照相机等。
· ARM9E 系列
ARM9E 系列包括ARM926EJ-SARM946E-SARM966E-SARM968E-S,该系列的处理器是综合类的处理器,它使用单一的处理器核提供了微控制器、DSPJava 应用,因而非常适应于同时使用DSP 和微控制器的场合。采用了5 级流水线,支持DSP 指令集、32 位的高速AMBA总线接口,带有MMU功能,最高主频可达300MIPS
· ARM10E 系列
ARM10E 系列包括ARM1020EARM1022EARM1026EJ-S,该系列的ARM处理器采用了新的体系结构,同ARM9 系列的相比有了很大的提高,采用了更高的6 级流水线结构,支持DSP指令,适合同时需要高速数字信号处理的场合,支持64位的高速AMBA总线接口、32 位的ARM 指令集和16 位的Thumb 指令集。主要应用于下一代的无线设备、数字消费品等。
· ARM11 系列
ARM11 系列包括ARM1136J(F)-SARM1156T2(F)-SARM1176JZ(F)-SAMR 公司在2003 年推出了ARM11 架构的核,基于ARM11 核结构的处理器具有更高的性能,尤其是在多媒体处理能力方面,采用了先进的0.13mm工艺,最高__________工作频率可达750MHz
· SecurCore系列
SecurCore系列包括SecurCore SC100SecurCore SC110SecurCore SC200SecurCoreSC22SecurCor 系列处理器专为安全需要而设计,提供了对于安全方案解决的支持,主要应用在比如电子商务、电子银行、网络认证等对安全性要求很高的场合。
· Inter Xscale
Xscale 处理器是Intel 公司基于ARMV5TE 体系结构的解决方案,是一款高性能、低功耗的32 RISC 处理器,有PXA25x 系列和PXA27x 系列,相比较早期的StrongARM 处理器,Xscale处理器是Intel 公司目前主推的ARM 处理器,主要应用在PDA和网络产品等
方面。
2.1.3 LinuxARM处理器
32 RISC 处理器领域,基于ARM 的结构体系在嵌入式系统中发挥了重要作用,ARM 处理器和嵌入式Linux 的结合也正变得越来越紧密,并在嵌入式领域得到了广阔的应用。早在1994 年,Linux 就可在ARM 架构上运行,但那时Linux 并没有在嵌入式系统中得到太多应用。目前,上述状况已经出现巨大变化,包括便携式消费类电子产品、网络、无线设备、汽车、医疗和存储产品在内,都可以看到ARM Linux 相结合的身影,linux 之所以能在嵌入式市场上取得如此辉煌的成就,与其自身的优秀特性是分不开的。
 
Linux 具有诸多内在优点,非常适合于嵌入式操作系统。
· Linux 的内核精简而高效,针对不同的实际需求,可将内核功能进行适当地剪裁,Linux内核可以小到100KB以下,减少了对硬件资源的消耗。
· Linux 诞生之日就与网络密不可分,它本身就是一款优秀的网络操作系统,Linux
有完善的网络性能,并且具有多种网络服务程序,而操作系统具备网络特性是很重要的。
· Linux的可移植性强,方便移植到许多硬件平台,其模块化的特点也便于开发人员进行删减和修改,同时,Linux 还具有一系列优秀的开发工具,嵌入式Linux 为开发者提供了一整套的工具链(Tool Chain),能够很方便地实现从操作系统内核到用户态应用软件各个级别的调试。
· Linux 源码开放,软件资源丰富,目前可以支持多种硬件平台,如X86ARMMIPS等,目前已经成功移植到数十种硬件平台之上,几乎包括所有流行的CPU架构,同时Linux下面有着非常完善的驱动资源,支持各种主流硬件设备,所有这些都促进了Linux 在嵌入式领域广泛的应用。不同特征的Linux 都是在某一个CPU架构体系上运行的,而ARM结构体系历经多年的发展产生出很多版本,Linux 对于已在ARM 规划蓝图中获定义的新特征也有相应的支持。
ARM 体系的处理器按照不同的目标应用分类有着不同的特点和发展方向,基于与操作系统结合的特点考虑,可以根据有无MMUMemory Management Unit)把CPU分成两类,即带MMU功能的处理器和不带MMU功能的处理器。
Linux 作为一种基于X86 平台发展过来的操作系统,是一种典型的应用操作系统,在硬件上需要MMU的支持,所以只有在包含MMUARM处理器上才能运行Linux,如典型的ARM720TARM920/922T ARM926EJ。另外一些常用的ARM 处理器,如ARM7TDMI系列,因为没有MMU,所以不支持标准的Linux。不带MMU的处理器由于特别适合于深度嵌入的特点(如快速实时响应、实地址编程等),在嵌入式系统中的应用非常广泛。为了适应这种需求,uClinux 应运而生。uClinux 是开放源码的嵌入式Linux 的一个经典之作,它设计的目标平台是那些没有内存管理单元(MMU)的微处理器芯片。为了满足嵌入式系统的需求,uClinux 还改写和裁减了大量Linux 内核代码,因此uClinux 内核远小于标准Linux 的内核,但仍然保持了Linux 操作系统的绝大部分特性,包括稳定强大的网络功能及出色的文件系统支持等。
目前,在2003 年末推出的新版本的Linux 内核2.6 版本加强了对无MMU处理器的的支持,Linux 2.6 内核扩展多嵌入式平台支持的一个主要途径就是把uCLinux 的大部分并入主流内核功能中,这无疑为Linux 在嵌入式领域的广泛应用加重了砝码,也使得ARM Linux的关系更加紧密。

发布人信息

[错误报告] [推荐] [收藏][打印] [关闭] [返回顶部]

当前共有0人发表了评论.

推荐信息

最新信息