《嵌入式 Linux C 语言应用程序设计(修订版)》——1.3 ARM处理器平台介绍

本节书摘来异步社区《嵌入式 Linux C 语言应用程序设计(修订版)》一书中的第1章,第1.3节,作者:华清远见嵌入式培训中心,孙琼,更多章节内容可以访问云栖社区“异步社区”公众号查看

1.3 ARM处理器平台介绍

嵌入式 Linux C 语言应用程序设计(修订版)

1.3.1 ARM处理器简介

ARM(Advanced RISC Machines),既可以认为是一个公司的名字,也可以认为是一类微处理器的通称,还可以认为是一种技术的名字。

1991年ARM公司成立于英国剑桥(公司原貌如图1.5所示),主要出售芯片设计技术的授权。目前,采用ARM技术知识产权(IP)核的微处理器,即人们通常所说的ARM微处理器,已经遍及工业控制、消费类电子产品、通信系统、网络系统、无线系统等各类产品市场,基于ARM技术的微处理器应用约占据了32位RISC微处理器75%以上的市场份额,ARM技术正在逐步渗入到人们生活的各个方面。

ARM公司是专门从事基于RISC技术的芯片设计开发公司,作为知识产权供应商,ARM公司不直接从事芯片生产,而是转让设计许可,由合作公司生产各具特色的芯片。世界各大半导体生产商从ARM公司购买其设计的ARM微处理器核,根据各自不同的应用领域,加入适当的外围电路,形成自己的ARM微处理器芯片进入市场。

目前,全世界有几十家大的半导体公司都使用ARM公司的授权,这样既使得ARM技术获得更多的第三方工具、制造、软件的支持,又使整个系统成本降低,使产品更容易进入市场,被消费者所接受,更具有竞争力。

图1.6列出了采用ARM微处理器的部分公司名称。

目前,ARM微处理器及技术的应用已经深入到以下各个领域。

工业控制领域:作为32位的RISC架构,基于ARM核的微控制器芯片已经占据了高端微控制器市场的大部分市场份额,正在逐渐向低端微控制器应用领域扩展,ARM微控制器的低功耗、高性价比向传统的8位/16位微控制器提出了挑战。
无线通讯领域:目前已有超过85%的无线通讯设备采用了ARM技术,ARM以其高性能和低成本,在该领域的地位日益巩固。

a27cbd253c467544db2e7b54643fff9c62c3b6b9

网络应用:随着宽带技术的推广,采用ARM技术的ADSL芯片正逐步获得竞争优势。此外,ARM在语音及视频处理上进行了优化,并获得广泛支持,这也对DSP的应用领域提出了挑战。
消费类电子产品:ARM技术在目前流行的数字音频播放器、数字机顶盒和游戏机中得到广泛应用。
成像和安全产品:现在流行的数码相机和打印机绝大部分都采用ARM技术,手机中的32位SIM智能卡也采用了ARM技术。
ARM的成功,一方面得益于它独特的公司运作模式,另一方面,当然来自于ARM处理器自身的优良性能,ARM处理器有如下特点。

体积小、低功耗、低成本、高性能。
支持Thumb(16位)/ARM(32位)双指令集,能很好地兼容8位/16位器件。
大量使用寄存器,指令执行速度更快。
大多数数据操作都在寄存器中完成。
寻址方式灵活、简单,执行效率高。
指令长度固定。
1.3.2 ARM处理器系列
ARM微处理器目前包括下面几个系列,图1.7所示为ARM各系列的发展历程。

ARM7系列。
ARM9系列。
ARM9E系列。
ARM10E系列。
SecurCore系列。
Intel的Xscale系列。
Intel的StrongARM系列。

baa3ddc514828b2d629a52034a5b7d35a6e2ef7a

其中,ARM7、ARM9、ARM9E和ARM10为4个通用处理器系列,每一个系列提供一套相对独特的性能来满足不同应用领域的需求。SecurCore系列专门为对安全性要求较高的应用而设计。下面详细介绍各种处理器的特点及其应用领域。

1.ARM7微处理器系列
ARM7系列微处理器为低功耗的32位RISC处理器,最适合用于对价格和功耗要求较高的消费类应用,ARM7微处理器系列具有如下特点。

具有嵌入式ICE-RT逻辑,调试、开发方便。
极低的功耗,适合对功耗要求较高的应用,如便携式产品。
能够提供0.9 MIPS/MHz的3级流水线结构。
代码密度高并兼容16位的Thumb指令集。
对操作系统的支持广泛,包括Windows CE、Linux、Palm OS等。
指令系统与ARM9系列、ARM9E系列和ARM10E系列兼容,便于用户的产品升级换代。
主频最高可达130MIPS,高速的运算处理能力能胜任绝大多数的复杂应用。
ARM7系列微处理器的主要应用领域为:工业控制、Internet设备、网络和调制解调器设备、移动电话等多种多媒体和嵌入式应用。

ARM7系列微处理器包括如下几种类型的核:ARM7TDMI、ARM7TDMI-S、ARM720T、ARM7EJ。其中,ARM7TMDI是目前使用最广泛的32位嵌入式RISC处理器,属低端ARM处理器核。

0115小知识 这里的TDMI的基本含义如下。

T:支持16为压缩指令集Thumb。

D:支持片上Debug。

M:内嵌硬件乘法器(Multiplier)。

I:嵌入式ICE,支持片上断点和调试点。
2.ARM9及ARM9E微处理器系列
ARM9是本书所采用的微处理器,ARM9处理器包括ARM920T、ARM922T和ARM940T,主要应用于手持设备、视频电话、PDA、机顶盒、家用网关等产品中。与ARM7处理器相比,ARM9处理器有以下特点。

(1)5级流水线

ARM7处理器采用取指、译码、执行的3级流水线设计,而ARM9则采用取指、译码、执行、缓冲、回写的5级流水线设计。使用5级流水线机制,每一个时钟周期内可以同时执行5条指令,这样就大大提高了处理性能。在同样的加工工艺下,ARM9处理器的时钟频率是ARM7的1.8~2.2倍。

5级流水线的具体内容如下。

取指:从存储器中取出指令并将其放入指令流水线。
译码:对取出的指令进行译码。
执行:把一个操作数移位,产生ALU的结果。
缓冲:如果需要则访问数据存储器,否则ALU的结果只是简单地缓冲一个时钟周期,以便所有的指令具有相同的流水线流程。
回写:将指令产生的结果回写到寄存器堆,包括从存储器取出的数据。
(2)采用哈佛结构

根据计算机的存储器结构及其总线连接形式,计算机系统可以分为冯·诺依曼结构和哈佛结构。

冯·诺依曼结构具有共用的数据存储空间和程序存储空间,它们共享存储器总线,这也是以往设计时常用的方式。

哈佛结构则具有分离的数据和程序空间以及分离的访问总线。哈佛结构在指令执行时,取指和取数可以并行,因此具有更高的执行效率。

ARM9采用的就是哈佛结构,而ARM7采用的则是冯·诺依曼结构。图1.8和图1.9分别为冯·诺依曼结构和哈佛结构的数据存储方式。

8d71d8d648d535ded917e0a311c8b12be7dc4eff

在RISC架构的处理器中大约有30%的指令是Load-Store指令,而采用哈佛结构将大大提升这两个指令的执行速度,提高系统效率。

(3)引入高速缓存和写缓存

一般来说处理器的处理速度远远高于存储器的访问速度,而当存储器访问成为系统性能的瓶颈时,处理器再快也无法发挥作用。

在这里,高速缓存(Cache)和写缓存(Write Buffer)可以很好地解决这个问题,它们存储了最近常用的代码和数据,以供CPU快速存储。

(4)支持MMU

MMU是存储器管理单元的缩写,是用来管理虚拟内存系统的器件。

MMU通常是CPU的一部分,本身有少量存储空间存放从虚拟地址到物理地址的匹配表。所有数据请求都送往MMU,由MMU决定数据是在RAM内还是在大容量存储器设备内。如果数据不在存储空间内,MMU将产生页面错误中断。

MMU的主要功能如下。

将虚地址转换成物理地址。
控制存储器存取允许,MMU关掉时,虚地址直接输出到物理地址总线。
每当程序存取一块内存时,它会把相应的虚拟地址(virtual address)传送给MMU,MMU会在PMM中查找这块内存的实际位置,也就是物理地址(physical address),物理地址可以在内存中或磁盘上的任何位置。

如果程序要存取的位置在磁盘上,就必须把包含该地址的页从磁盘上读到内存中,并且必须更新PMM以反映这个变化(这被称为pagefault,即页错)。

只有拥有了MMU才能真正实现内存保护。

例如,当A进程的程序试图直接访问属于B进程的虚拟地址中的数据时,MMU会产生一个异常(Exception)来阻止A的越界操作。这样,通过内存保护,一个进程的失败并不会影响其他进程的运行,从而增强了系统的稳定性,如图1.10所示。ARM9也正是因为拥有MMU,才比ARM7有了更强的稳定性和可靠性。

137c8528e3f3220150a43d83f85e9fdd74c329df

3.ARM10E微处理器系列
ARM10E系列微处理器具有高性能、低功耗的特点,由于采用了新的体系结构,与同等的ARM9器件相比较,在同样的时钟频率下,性能提高了近50%,同时,ARM10E系列微处理器采用了两种先进的节能方式,使其功耗极低。

ARM10E系列微处理器的主要特点如下。

支持DSP指令集,适合于需要高速数字信号处理的场合。
6级流水线,指令执行效率更高。
支持32位ARM指令集和16位Thumb指令集。
支持32位的高速AMBA总线接口。
支持VFP10浮点处理协处理器。
全性能的MMU,支持Windows CE、Linux、Palm OS等多种主流嵌入式操作系统。
支持数据Cache和指令Cache,具有更高的指令处理和数据处理能力。
主频最高可达400MIPS。
内嵌并行读/写操作部件。
ARM10E系列微处理器主要应用于下一代无线设备、数字消费品、成像设备、工业控制、通信和信息系统等领域。

ARM10E系列微处理器包含ARM1020E、ARM1022E和ARM1026EJ-S,适用于不同的应用场合。

4.SecurCore微处理器系列
SecurCore系列微处理器专为安全需求而设计,提供了完善的32位RISC技术的安全解决方案,因此,SecurCore系列微处理器除了具有ARM体系结构的低功耗、高性能的特点外,还具有其独特的优势,即提供了安全解决方案的支持。

SecurCore系列微处理器除了具有ARM体系结构主要特点外,还在系统安全方面具有如下的特点。

带有灵活的保护单元,以确保操作系统和应用数据的安全。
采用软内核技术,防止外部对其进行扫描探测。
可集成用户自己的安全特性和其他协处理器。
SecurCore系列微处理器主要应用于一些对安全性要求较高的应用产品及应用系统,如电子商务、电子政务、电子银行业务、网络和认证系统等领域。

SecurCore系列微处理器包含SecurCore SC100、SecurCore SC110、SecurCore SC200和SecurCore SC210,适用于不同的应用场合。

5.StrongARM微处理器系列
Intel StrongARM SA-1100处理器是采用ARM体系结构高度集成的32位RISC微处理器。Intel StrongARM处理器是便携式通讯产品和消费类电子产品的理想选择,已成功应用于多家公司的掌上电脑系列产品。

6.Xscale微处理器系列
Xscale 处理器是基于ARMv5TE体系结构的解决方案,是一款全性能、高性价比、低功耗的处理器。它支持16位的Thumb指令和DSP指令集,已使用在数字移动电话、个人数字助理和网络产品等场合。

1.3.3 ARM体系结构简介

1.ARM微处理器工作状态
ARM微处理器的工作状态一般有两种,可以在两种状态之间切换。

第一种为ARM状态,此时处理器执行32位的字对齐的ARM指令。
第二种为Thumb状态,此时处理器执行16位的半字对齐的Thumb指令。
当ARM微处理器执行32位的ARM指令集时,工作在ARM状态;当ARM微处理器执行16位的Thumb指令集时,工作在Thumb状态。

在程序的执行过程中,微处理器可以随时在两种工作状态之间进行切换,并且,处理器工作状态的转变并不影响处理器的工作模式和相应寄存器中的内容。

2.ARM体系结构的存储格式
ARM体系结构将存储器看作是从0地址开始的字节的线性组合。从0字节到3字节放置第一个存储的字数据,从第4个字节到第7个字节放置第二个存储的字数据,依次排列。作为32位的微处理器,ARM体系结构所支持的最大寻址空间为4GB(232字节)。

ARM体系结构可以用两种方法存储字数据,称之为大端格式和小端格式,具体说明如下。

大端格式:在这种格式中,字数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中。
小端格式:与大端存储格式相反,在小端存储格式中,低地址中存放的是字数据的低字节,高地址存放的是字数据的高字节。
3.ARM处理器模式
ARM微处理器支持以下7种运行模式。

用户模式(usr):ARM处理器正常的程序执行状态。
快速中断模式(fiq):用于高速数据传输或通道处理。
外部中断模式(irq):用于通用的中断处理。
管理模式(svc):操作系统使用的保护模式。
数据访问终止模式(abt):当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护。
系统模式(sys):运行具有特权的操作系统任务。
ARM微处理器的运行模式可以通过软件改变,也可以通过外部中断或异常处理改变。

大多数的应用程序运行在用户模式下,当处理器运行在用户模式下时,某些被保护的系统资源是不能被访问的。

除用户模式以外,其余的6种模式为非用户模式或特权模式(Privileged Modes)。其中除去用户模式和系统模式以外的5种又称为异常模式(Exception Modes),常用于处理中断或异常,以及需要访问受保护的系统资源等情况。

1.3.4 S3C2410处理器简介

本书所采用的处理器是三星公司的S3C2410X。S3C2410X是使用ARM920T核、采用0.18m工艺CMOS标准宏单元和存储编译器开发而成的。

由于采用了由ARM公司设计的16/32位ARM920T RISC处理器,S3C2410X实现了MMU和独立的16KB指令和16KB数据哈佛结构的缓存,每个缓存均为8个字长度的流水线。它的低功耗、精简而出色的全静态设计特别适用于对成本和功耗敏感的领域。

S3C2410X提供全面的、通用的片上外设,大大降低系统的成本,下面列举了S3C2410X的主要片上功能。

1.8V ARM920T内核供电,1.8V/2.5V/3.3V存储器供电。
16KB指令和16KB数据缓存的MMU内存管理单元。
外部存储器控制(SDRAM控制和芯片选择逻辑)。
提供LCD控制器(最大支持4K色的STN或256K色TFT的LCD),并带有1个通道的LCD专用DMA控制器。
提供4通道DMA,具有外部请求引脚。
提供3通道UART(支持IrDA1.0、16字节发送FIFO及16字节接收FIFO)、2通道SPI接口。
提供1个通道多主I2C总线控制器和1通道IIS总线控制器。
兼容SD主机接口1.0版及MMC卡协议2.11版。
提供两个主机接口的USB口、1个设备USB口(1.1版本)。
4通道PWM定时器、1通道内部计时器。
提供看门狗定时器。
提供117个通用I/O口、4通道外部中断源。
提供电源控制不同模式:正常、慢速、空闲及电源关闭模式。
提供带触摸屏接口的8通道10位ADC。
提供带日历功能的实时时钟控制器(RTC)。
具有PLL的片上时钟发生器。
图1.11所示为S3C2410X系统结构图。

下面依次对S3C2410X的系统管理器、NAND Flash引导装载器、缓冲存储器、时钟和电源管理及中断控制进行讲解,其中所有模式的选择都是通过相关寄存器的特定值的设定来实现的,因此,当读者需要对此进行修改时,请参阅三星公司提供S3C2410X用户手册。

1.系统管理器
S3C2410X系统管理器有以下功能。

支持小/大端模式。
寻址空间:每个bank有128MB。
支持可编程的每个bank 8/16/32位数据总线宽度。
bank0~bank6都采用固定的bank起始寻址。
bank7具有可编程的bank起始地址和大小。
8个存储器bank(6个适用于ROM、SRAM,另两个适用于ROM、SRAM和同步)。
所有的bank都具有可编程的操作周期。
支持外部等待信号延长总线。
2.Flash引导装载器
S3C2410X NAND Flash存储器启动特性如下所示。

支持从NAND Flash存储器启动。
采用4KB内部缓冲器进行启动引导。
支持启动之后NAND存储器仍然作为外部存储器使用。

553c1218d1f8cfaab337565d0752e185bf6bee94

同时,S3C2410X也支持从外部nGCS0片选的NOR Flash启动,如在优龙的开发板上将JP1跳线去掉就可从NOR Flash启动(默认从NAND Flash启动)。在这两种启动模式下,各片选的存储空间分配是不同的,如图1.12所示。

49520085fc2e69bbbb8a33cccce6aa648875b966

3.Cache存储器
S3C2410X Cache存储器特性如下所示。

64项全相连模式,采用I-Cache(16KB)和D-Cache(16KB)。
每行8字长度,其中每行带有一个有效位和dirty位。
伪随机数或轮转循环替换算法。
采用写穿式(write-throught)和写回式(write-back)cache操作来更新主存储器。
写缓冲器可以保存16个字的数据和4个地址。
4.时钟和电源管理
S3C2410X采用独特的时钟管理模式。

采用片上MPLL和UPLL,其中UPLL产生操作USB主机/设备的时钟,而MPLL产生最大266MHZ(在2.0V内核电压下)的时钟。
通过软件可以有选择性地为每个功能模块提供时钟。
S3C2410X的电源模式分为正常、慢速、空闲和掉电模式。

正常模式:正常运行模式。
慢速模式:不加PLL的低时钟频率模式。
空闲模式:只停止CPU的时钟。
掉电模式:所有外设和内核的电源都切断了。
另外,S3C2410X对片内的各个部件采用独立的供电方式。

1.8V的内核供电。
3.3V的存储器独立供电(通常对SDRAM采用3.3V,对移动SDRAM采用1.8/2.5V)。
3.3V的VDDQ。
3.3V的I/O独立供电。
在嵌入式系统中电源管理非常关键,它直接涉及功耗等各方面的系统性能,而S3C2410X的电源管理中独立的供电方式和多种模式可以有效地处理系统的不同状态,从而达到最优的配置。

5.中断控制
S3C2410的中断处理器有如下特点。

55个中断源(1个看门狗定时器、5个定时器、9个UARTs、24个外部中断、4个DMA、2个RTC、2个ADC、1个I2C、2个SPI、1个SDI、2个USB、1个LCD和1个电池故障)。
电平/边沿触发模式的外部中断源。
可编程的边沿/电平触发极性。
支持为紧急中断请求提供快速中断服务。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值