您的位置 首页 电路

根据ARM的嵌入式Linux移植实在体会(1)――基本概念

1.引言ARM是AdvancedRISCMachines(高级精简指令系统处理器)的缩写,是ARM公司提供的一种微处理器知识产权(IP)核。ARM的应用已遍及…

1.导言

ARM是Advanced RISC Machines(高档精简指令体系处理器)的缩写,是ARM公司供应的一种微处理器知识产权(IP)核。
ARM的运用已广泛工业操控、消费类电子产品、通讯体系、网络体系、无线体系等各类产品商场。根据ARM 技能的微处理器运用约占有了32位RISC 微处理器75%以上的商场份额。揭开你的手机、MP3、 PDA,嘿嘿,里边八成藏着一个根据ARM的微处理器!
ARM内核的数个系列(ARM7、ARM9、ARM9E、ARM10E、SecurCore、Xscale、StrongARM),各自满意不同运用领域的需求,无孔不入的进入嵌入式体系各个旮旯的运用。这是一个ARM的年代!
下面的图片显现了ARM的随处可见:

有人的当地就有江湖(《武林别传》),有嵌入式体系的当地就有ARM。
构建一个杂乱的嵌入式体系,仅有硬件是不行的,咱们还需求进行操作体系的移植。咱们一般在ARM渠道上构建Windows CE、Linux、Palm OS等操作体系,其间Linux具有敞开源代码的长处。
下图显现了根据ARM嵌入式体系中软件与硬件的联络:
日前,笔者作为某嵌入式ARM(硬件)/Linux(软件)体系的项目负责人,带领项目组成员进行了下述作业:
(1)根据ARM920T内核S3C2410A CPU的电路板规划;
(2)ARM处理下底层软件渠道建立:
a.Bootloader的移植;
b.嵌入式Linux操作体系内核的移植;
c.嵌入式Linux操作体系根文件体系的创立;
d.电路板上外设Linux驱动程序的编写。
本文将真实地再现本项目开发过程中作者的心得,以便与广大读者共勉。第一章将简略地介绍本ARM开发板的硬件规划,第二章剖析Bootloader的移植办法,第三章叙说嵌入式 Linux的移植及文件体系的构建办法,第四章解说外设的驱动程序规划,第五章给出一个已构建好的软硬件渠道上运用开发的实例。
假如您有杰出的嵌入式体系开发根底,您将十分简略体会本文解说地内容。即便是您从来没有嵌入式体系的开发阅历,本文也力求让您读起来不觉得生涩。您能够经过如下email与作者联络:21cnbao@21cn.com。
2.ARM体系结构
作为一种RISC体系结构的微处理器,ARM微处理器具有RISC体系结构的典型特征。还具有如下增强特色:
(l)在每条数据处理指令傍边,都操控算术逻辑单元(ALU)和移位器,以使ALU和移位器取得最大的使用率;
(2)主动递加和主动递减的寻址形式,以优化程序中的循环;
(3)一起Load和Store多条指令,以添加数据吞吐量;
(4)一切指令都条件履行,以增大履行吞吐量。
ARM体系结构的字长为32位,它们都支撑Byte(8位)、Halfword(16位)和Word(32位)3种数据类型。
ARM处理器支撑7种处理器形式,如下表:

大部分运用程序都在User形式下运转。当处理器处于User形式下时,履行的程序无法拜访一些被维护的体系资源,也不能改动形式,不然就会导致一次反常。对体系资源的运用由操作体系来操控。
User形式之外的其它几种形式也称为特权形式,它们能够彻底拜访体系资源,能够自由地改动形式。其间的FIQ、IRQ、supervisor、Abort和undefined 5种形式也被称为反常形式。在处理特定的反常时,体系进入这几种形式。这5种反常形式都有各自的额定的寄存器,用于避免在发生反常的时分与用户形式下的程序发生抵触。
还有一种形式是system形式,任何反常都不会导致进入这一形式,而且它运用的寄存器和User形式下根本相同。它是一种特权形式,用于有拜访体系资源恳求而又需求避免运用额定的寄存器的操作体系使命。
程序员可见的ARM寄存器共有37个:31个通用寄存器以及6个针对ARM处理器的不同作业形式所建立的专用状况寄存器,如下图:

ARM9选用5级流水线操作:指令预取、译码、履行、数据缓冲、写回。ARM9设置了16个字的数据缓冲和4个字的地址缓冲。这5级流水已被许多的RISC处理器所选用,被看作RISC结构的“经典”。
3.硬件规划
3.1 S3C2410A微操控器
电路板上的ARM微操控器S3C2410A选用了ARM920T核,它由ARM9TDMI、存储办理单元MMU和高速缓存三部分组成。其间,MMU能够办理虚拟内存,高速缓存由独立的16KB地址和16KB数据高速Cache组成。ARM920T有两个内部协处理器:CP14和CP15。CP14用于调试操控,CP15用于存储体系操控以及测验操控。
S3C2410A集成了很多的内部电路和外围接口:
Ø LCD操控器(支撑STN和TFT带有触摸屏的液晶显现屏)
Ø SDRAM操控器
Ø 3个通道的UART
Ø 4个通道的DMA
Ø 4个具有PWM功用的计时器和一个内部时钟
Ø 8通道的10位ADC
Ø 触摸屏接口
Ø I2C总线接口
Ø 12S总线接口
Ø 两个USB主机接口
Ø 一个USB设备接口
Ø 两个SPI接口
Ø SD接口
Ø MMC卡接口
S3C2410A集成了一个具有日历功用的RTC和具有PLL(MPLL和UPLL)的芯片时钟发生器。MPLL发生主时钟,能够使处理器作业频率最高到达203MHz。这个作业频率能够使处理器轻松运转WinCE、Linux等操作体系以及进行较为杂乱的信息处理。UPLL则发生完结USB模块的时钟。
下图显现了S3C2410A的集成资源和外围接口:

咱们需求对上图中的AHB总线和APB总线的概念进行一番解说。ARM核开发的意图,是使其作为杂乱片上体系的一个处理单元来运用的,所以还有必要供应一个ARM与其它片上宏单元通讯的接口。为了削减不用要的规划资源的糟蹋,ARM公司界说了AMBA(Advanced Microcontroller Bus Architecture)总线规范,它是一组针对根据ARM核的、片上体系之间通讯而规划的、规范的、敞开协议。
在AMBA总线规范中,界说了3种总线:
(l)AHB—Advanced High Performace Bus,用于高功用体系模块的衔接,支撑突发形式数据传输和业务切割;
(2)ASB—Advanced System Bus,也用于高功用体系模块的衔接,支撑突发形式数据传输,这是较老的体系总线格局,后因由AHB总线代替;
(3)APB—Advanced PeriPheral Bus,用于较低功用外设的简略衔接,一般是接在AHB或ASB体系总线上的第二级总线。
典型的AMBA总线体系如下图:
650) this.width=650;” onclick=window.open(“http://blog.51cto.com/viewpic.php?refimg=” + this.src) alt=”” src=”http://dev.yesky.com/imagelist/06/32/69udv233i8pd.jpg” />
S3C2410A将体系的存储空间分红8个bank,每个bank的巨细是128M字节,共1G字节。Bank0到bank5的开端地址是固定的,用于ROM或SRAM。bank6和bank7可用于ROM、SRAM或SDRAM。一切内存块的拜访周期都可编程,外部Wait也能扩展拜访周期。下图给出了S3C2410A的内存安排:
650) this.width=650;” onclick=window.open(“http://blog.51cto.com/viewpic.php?refimg=” + this.src) alt=”” src=”http://dev.yesky.com/imagelist/06/32/g5l8t1g2z6tes.jpg” />
下图给出了S3C2410A的数据总线、地址总线和片选电路:
650) this.width=650;” onclick=window.open(“http://blog.51cto.com/viewpic.php?refimg=” + this.src) alt=”” src=”http://dev.yesky.com/imagelist/06/32/3849z191nff5s.jpg” />
SDRAM操控信号、集成USB接口电路:
650) this.width=650;” onclick=window.open(“http://blog.51cto.com/viewpic.php?refimg=” + this.src) alt=”” src=”http://dev.yesky.com/imagelist/06/32/5qhw81in5n35s.jpg” />
内核与存储单元供电电路(S3C2410A关于片内的各个部件选用了独立的电源供应,内核选用1.8V供电,存储单元选用3.3V独立供电):
650) this.width=650;” onclick=window.open(“http://blog.51cto.com/viewpic.php?refimg=” + this.src) alt=”” src=”http://dev.yesky.com/imagelist/06/32/286a6i39817vs.jpg” />
JTAG规范经过鸿沟扫描技能供应了对电路板上每一元件的功用、互联及相互间影响进行测验的办法,极大当地便了体系电路的调试。
测验接入端口TAP的管脚界说如下:
Ø TCK:专用的逻辑测验时钟,时钟上升沿按串行方法对测验指令、数据及操控信号进行移位操作,下降沿用于对输出信号移位操作;
Ø TMS:测验形式挑选,在TCK上升沿有用的逻辑测验操控信号;
Ø TDI:测验数据输入,用于接纳测验数据与测验指令;
Ø TDO:测验数据输出,用于测验数据的输出。
S3C2410A调试用JTAG接口电路:
650) this.width=650;” onclick=window.open(“http://blog.51cto.com/viewpic.php?refimg=” + this.src) alt=”” src=”http://dev.yesky.com/imagelist/06/32/4pq5i0220olm.jpg” />
3.2 SDRAM存储器
SDRAM被用来寄存操作体系(从FLASH解压缩拷入)以及寄存各类动态数据,选用SAMSUNG公司的K4S561632,它是4Mxl6bitx4bank的同步DRAM,容量为32MB。用2片K4S561632完结位扩展,使数据总线宽度到达32bit,总容量到达64MB,将其地址空间映射在S3C2410A的bank6。
SDRAM 一切的输入和输出都与体系时钟CL K上升沿同步,由输入信号RA S、CA S、WE组合发生SDRAM 操控指令,其根本的操控指令如下:
650) this.width=650;” onclick=window.open(“http://blog.51cto.com/viewpic.php?refimg=” + this.src) alt=”” src=”http://dev.yesky.com/imagelist/06/32/8tnz2jm9zr77.jpg” />
SDRAM 在具体操作之前首要有必要经过MRS指令设置形式寄存器,以便确认SDRAM 的列地址推迟、突发类型、突发长度等作业形式;再经过ACT指令激活对应地址的组,一起输入行地址;然后经过RD 或WR 指令输入列地址,将相应数据读出或写入对应的地址;操作完结后用PCH 指令或BT 指令间断读或写操作。在没有操作的时分,每隔一段时间有必要用ARF指令改写数据,避免数据丢掉。
下图给出了SDRAM的衔接电路:
650) this.width=650;” onclick=window.open(“http://blog.51cto.com/viewpic.php?refimg=” + this.src) alt=”” src=”http://dev.yesky.com/imagelist/06/32/1i6eu87v4s10s.jpg” />
3.3 FLASH存储器
NOR和NAND是现在商场上两种首要的非易失闪存技能。
NOR的特色是芯片内履行(XIP,Execute In Place),即运用程序可直接在Flash闪存内运转,不用把代码读到体系RAM中。NOR的传输功率很高,在1~4MB的小容量时具有很高的本钱效益,可是很低的写入和擦除速度大大影响了它的功用。
NAND结构能供应极高的单元密度,能够到达高存储密度,而且写入和擦除的速度也很快。运用NAND的困难在于Flash的办理和需求特别的体系接口,S3C2410A内嵌了NAND FLASH操控器。
S3C2410A支撑从GCS0上的NOR FLASH发动(16位或32位)或从NAND FLASH发动,需求经过OM0和OM1上电时的上下拉来设置:
650) this.width=650;” onclick=window.open(“http://blog.51cto.com/viewpic.php?refimg=” + this.src) alt=”” src=”http://dev.yesky.com/imagelist/06/32/ssk71un6t4l1.jpg” />
在体系中别离选用了一片NOR FLASH(28F640)和NAND FLASH(K9S1208),电路如下图:
650) this.width=650;” onclick=window.open(“http://blog.51cto.com/viewpic.php?refimg=” + this.src) alt=”” src=”http://dev.yesky.com/imagelist/06/32/7ix3rbe188p5s.jpg” />
3.4串口
S3C2410内部集成了UART操控器,完结了并串转化。外部还需供应CMOS/TTL电平与RS232之间的转化:
650) this.width=650;” onclick=window.open(“http://blog.51cto.com/viewpic.php?refimg=” + this.src) alt=”” src=”http://dev.yesky.com/imagelist/06/32/skbuv4xq1f4o.jpg” />
3.5以太网
以太网操控芯片选用CIRRUS LOG%&&&&&%公司出产的CS8900A,其杰出特色是运用灵敏,其物理层接口、数据传输形式和作业形式等都能根据需求而动态调整,经过内部寄存器的设置来习惯不同的运用环境。它契合IEEE803.3以太网规范,带有传送、接纳低通滤波的10Base-T衔接端口,支撑10Base2,10Base5和10Base-F的AUI接口,并能主动生成报头,主动进行CRC查验,在抵触后主动重发。
CS8900A支撑的传输形式有I/O和Memory形式。当CS8900A有硬件复位或软件复位时,它将默许成为8位作业形式。因而,要使CS8900A作业于16位形式,体系有必要在拜访之前供应给总线高位使能管脚(/SBHE)一个由高到低、再由低到高改变的电平。
650) this.width=650;” onclick=window.open(“http://blog.51cto.com/viewpic.php?refimg=” + this.src) alt=”” src=”http://dev.yesky.com/imagelist/06/32/2323iwdi4v89s.jpg” />
3.6 USB接口
USB 体系由USB 主机(USB Host)、USB集线器(USB Hub)和USB设备(USB Device)组成。USB 和主机体系的接口称作主机操控器(Host Controller),它是由硬件和软件结合完结的。根集线器是综合于主机体系内部的,用以供应USB的衔接点。USB的设备包含集线器(Hub)和功用器材(Function)。
S3C2410A集成了USB host和USB device,外部衔接电路如下图:
650) this.width=650;” onclick=window.open(“http://blog.51cto.com/viewpic.php?refimg=” + this.src) alt=”” src=”http://dev.yesky.com/imagelist/06/32/t9143dw950y6.jpg” />
3.7电源
LDO(Low Dropout)归于DC/DC变换器中的降压变换器,它具有低本钱、低噪声、低功耗等杰出长处,别的它所需求的外围器材也很少,一般只要 1~2 个旁路电容
在电路板上咱们别离用两个LDO来完结5V向3.3V(存储接口电平)和1.8V(ARM内核电平)的转化。
650) this.width=650;” onclick=window.open(“http://blog.51cto.com/viewpic.php?refimg=” + this.src) alt=”” src=”http://dev.yesky.com/imagelist/06/32/110hhvh95i1e.jpg” />
up监控电路选用MAX708芯片,供应上电、掉电以及降压情况下的复位输出及低电平有用的人工复位输出:
650) this.width=650;” onclick=window.open(“http://blog.51cto.com/viewpic.php?refimg=” + this.src) alt=”” src=”http://dev.yesky.com/imagelist/06/32/82ptl9b9g07r.jpg” />
3.8其它
SN74LVTH62245A供应总线驱动和缓冲才能:
650) this.width=650;” onclick=window.open(“http://blog.51cto.com/viewpic.php?refimg=” + this.src) alt=”” src=”http://dev.yesky.com/imagelist/06/32/7i9pfpcx6et6s.jpg” />
S3C2410A集成LCD液晶显现器操控电路,外部引出接口:
650) this.width=650;” onclick=window.open(“http://blog.51cto.com/viewpic.php?refimg=” + this.src) alt=”” src=”http://dev.yesky.com/imagelist/06/32/8t32s961ih5u.jpg” />
触摸屏有电阻式、电容式等,其本质是一种将手指在屏幕上的触点方位转化为电信号的传感器。手指触到屏幕,引起触点方位电阻或%&&&&&%的改变,再经过检测这一电性改变,然后取得手指的坐标方位。经过S3C2410A集成的AD功用,完结电信号向屏幕坐标的转化,触摸屏接口如下:
650) this.width=650;” onclick=window.open(“http://blog.51cto.com/viewpic.php?refimg=” + this.src) alt=”” src=”http://dev.yesky.com/imagelist/06/32/e31e03427b9ms.jpg” />
键盘则直接使用CPU的可编程I/O口,若衔接 mxn键盘,则需求m+n个可编程I/O口,由软件完结键盘扫描,辨认按键:
650) this.width=650;” onclick=window.open(“http://blog.51cto.com/viewpic.php?refimg=” + this.src) alt=”” src=”http://dev.yesky.com/imagelist/06/32/lvoqhd8o5n8b.jpg” />
3.9全体架构
下图出现了ARM处理器及外围电路的全体规划结构:
650) this.width=650;” onclick=window.open(“http://blog.51cto.com/viewpic.php?refimg=” + this.src) alt=”” src=”http://dev.yesky.com/imagelist/06/32/t2658jh1iu8n.gif” />
4.小结
本章解说了根据S3C2410A ARM处理器电路板硬件规划的根本组成,为后续各章供应了总体性的准备作业。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/dianlu/277015.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部