这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » [转帖]基于ARM的嵌入式Linux移植真实体验(1)――基本概念

共5条 1/1 1 跳转至

[转帖]基于ARM的嵌入式Linux移植真实体验(1)――基本概念

菜鸟
2006-12-03 23:35:46     打赏

1.引言

ARMAdvanced RISC Machines(高级精简指令系统处理器)的缩写,是ARM公司提供的一种微处理器知识产权(IP)核。

ARM的应用已遍及工业控制、消费类电子产品、通信系统、网络系统、无线系统等各类产品市场。基于ARM 技术的微处理器应用约占据了32RISC 微处理器75%以上的市场份额。揭开你的手机、MP3 PDA,嘿嘿,里面多半藏着一个基于ARM的微处理器!

ARM内核的数个系列(ARM7ARM9ARM9EARM10ESecurCoreXscaleStrongARM),各自满足不同应用领域的需求,无孔不入的渗入嵌入式系统各个角落的应用。这是一个ARM的时代!

有人的地方就有江湖(《武林外传》),有嵌入式系统的地方就有ARM

构建一个复杂的嵌入式系统,仅有硬件是不够的,我们还需要进行操作系统的移植。我们通常在ARM平台上构建Windows CELinuxPalm OS等操作系统,其中Linux具有开放源代码的优点。

日前,笔者作为某嵌入式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)同时LoadStore多条指令,以增加数据吞吐量;

(4)所有指令都条件执行,以增大执行吞吐量。

ARM体系结构的字长为32位,它们都支持Byte(8)Halfword(16)Word(32)3种数据类型。

ARM处理器支持7种处理器模式

USER 普通程序执行的模式

FRQ 用于告诉数据传输或者通道处理

IRQ 用于通用中断处理

SUPERVISOR操作系统的保护模式

ABORT 用于实现虚拟或者存储保护

UNDEFINED支持软件模式或者硬件协议处理

SYSTEM运行特权操作系统任务

[align=right][color=#000066][此贴子已经被作者于2006-12-3 15:42:02编辑过][/color][/align]




关键词: 转帖     基于     嵌入式     Linux     移植     真实     体验         

菜鸟
2006-12-03 23:43:00     打赏
2楼
大部分应用程序都在User模式下运行。当处理器处于User模式下时,执行的程序无法访问一些被保护的系统资源,也不能改变模式,否则就会导致一次异常。对系统资源的使用由操作系统来控制。

User模式之外的其它几种模式也称为特权模式,它们可以完全访问系统资源,可以自由地改变模式。其中的FIQIRQsupervisorAbortundefined 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有两个内部协处理器:CP14CP15CP14用于调试控制,CP15用于存储系统控制以及测试控制。

S3C2410A集成了大量的内部电路和外围接口:

Ø LCD控制器(支持STNTFT带有触摸屏的液晶显示屏)

Ø SDRAM控制器

Ø 3个通道的UART

Ø 4个通道的DMA

Ø 4个具有PWM功能的计时器和一个内部时钟

Ø 8通道的10ADC

Ø 触摸屏接口

Ø I2C总线接口

Ø 12S总线接口

Ø 两个USB主机接口

Ø 一个USB设备接口

Ø 两个SPI接口

Ø SD接口

Ø MMC卡接口

S3C2410A集成了一个具有日历功能的RTC和具有PLL(MPLLUPLL)的芯片时钟发生器。MPLL产生主时钟,能够使处理器工作频率最高达到203MHz。这个工作频率能够使处理器轻松运行WinCELinux等操作系统以及进行较为复杂的信息处理。UPLL则产生实现USB模块的时钟


菜鸟
2006-12-03 23:44:00     打赏
3楼

我们需要对上图中的AHB总线和APB总线的概念进行一番解释。ARM核开发的目的,是使其作为复杂片上系统的一个处理单元来应用的,所以还必须提供一个ARM与其它片上宏单元通信的接口。为了减少不必要的设计资源的浪费,ARM公司定义了AMBA(Advanced Microcontroller Bus Architecture)总线规范,它是一组针对基于ARM核的、片上系统之间通信而设计的、标准的、开放协议。

AMBA总线规范中,定义了3种总线:

(l)AHBAdvanced High Performace Bus,用于高性能系统模块的连接,支持突发模式数据传输和事务分割;

(2)ASBAdvanced System Bus,也用于高性能系统模块的连接,支持突发模式数据传输,这是较老的系统总线格式,后来由AHB总线替代;

(3)APBAdvanced PeriPheral Bus,用于较低性能外设的简单连接,一般是接在AHBASB系统总线上的第二级总线S3C2410A将系统的存储空间分成8bank,每个bank的大小是128M字节,共1G字节。Bank0bank5的开始地址是固定的,用于ROMSRAMbank6bank7可用于ROMSRAMSDRAM。所有内存块的访问周期都可编程,外部Wait也能扩展访问周期

JTAG标准通过边界扫描技术提供了对电路板上每一元件的功能、互联及相互间影响进行测试的方法,极大地方便了系统电路的调试。

测试接入端口TAP的管脚定义如下:

Ø TCK:专用的逻辑测试时钟,时钟上升沿按串行方式对测试指令、数据及控制信号进行移位操作,下降沿用于对输出信号移位操作;

Ø TMS:测试模式选择,在TCK上升沿有效的逻辑测试控制信号;

Ø TDI:测试数据输入,用于接收测试数据与测试指令;

Ø TDO:测试数据输出,用于测试数据的输出


菜鸟
2006-12-03 23:47:00     打赏
4楼

3.2 SDRAM存储器

SDRAM被用来存放操作系统(从FLASH解压缩拷入)以及存放各类动态数据,采用SAMSUNG公司的K4S561632,它是4Mxl6bitx4bank的同步DRAM,容量为32MB。用2K4S561632实现位扩展,使数据总线宽度达到32bit,总容量达到64MB,将其地址空间映射在S3C2410Abank6

SDRAM 所有的输入和输出都与系统时钟CL K上升沿同步,由输入信号RA SCA SWE组合产生SDRAM 控制命令SDRAM 在具体操作之前首先必须通过MRS命令设置模式寄存器,以便确定SDRAM 的列地址延迟、突发类型、突发长度等工作模式;再通过ACT命令激活对应地址的组,同时输入行地址;然后通过RD WR 命令输入列地址,将相应数据读出或写入对应的地址;操作完成后用PCH 命令或BT 命令中止读或写操作。在没有操作的时候,每隔一段时间必须用ARF命令刷新数据,防止数据丢失

3.3 FLASH存储器

NORNAND是现在市场上两种主要的非易失闪存技术。

NOR的特点是芯片内执行(XIPExecute In Place),即应用程序可直接在Flash闪存内运行,不必把代码读到系统RAM中。NOR的传输效率很高,在1~4MB的小容量时具有很高的成本效益,但是很低的写入和擦除速度大大影响了它的性能。

NAND结构能提供极高的单元密度,可以达到高存储密度,并且写入和擦除的速度也很快。应用NAND的困难在于Flash的管理和需要特殊的系统接口,S3C2410A内嵌了NAND FLASH控制器。

S3C2410A支持从GCS0上的NOR FLASH启动(16位或32位)或从NAND FLASH启动,需要通过OM0OM1上电时的上下拉来设置

在系统中分别采用了一片NOR FLASH(28F640)NAND FLASH(K9S1208)

3.4串口

S3C2410内部集成了UART控制器,实现了并串转换。外部还需提供CMOS/TTL电平与RS232之间的转换:

3.5以太网

以太网控制芯片采用CIRRUS LOGIC公司生产的CS8900A,其突出特点是使用灵活,其物理层接口、数据传输模式和工作模式等都能根据需要而动态调整,通过内部寄存器的设置来适应不同的应用环境。它符合IEEE803.3以太网标准,带有传送、接收低通滤波的10Base-T连接端口,支持10Base210Base510Base-FAUI接口,并能自动生成报头,自动进行CRC检验,在冲突后自动重发。

CS8900A支持的传输模式有I/OMemory模式。当CS8900A有硬件复位或软件复位时,它将默认成为8位工作模式。因此,要使CS8900A工作于16位模式,系统必须在访问之前提供给总线高位使能管脚(/SBHE)一个由高到低、再由低到高变化的电平

3.6 USB接口

USB 系统由USB 主机(USB Host)、USB集线器(USB Hub)和USB设备(USB Device)组成。USB 和主机系统的接口称作主机控制器(Host Controller),它是由硬件和软件结合实现的。根集线器是综合于主机系统内部的,用以提供USB的连接点。USB的设备包括集线器(Hub)和功能器件(Function)。

S3C2410A集成了USB hostUSB device,触摸屏有电阻式、电容式等,其本质是一种将手指在屏幕上的触点位置转化为电信号的传感器。手指触到屏幕,引起触点位置电阻或电容的变化,再通过检测这一电性变化,从而获得手指的坐标位置。通过S3C2410A集成的AD功能,完成电信号向屏幕坐标的转化键盘则直接利用CPU的可编程I/O口,若连接 mxn键盘,则需要m+n个可编程I/O口,由软件实现键盘扫描,识别按键小结

本章讲解了基于S3C2410A ARM处理器电路板硬件设计的基本组成,为后续各章提供了总体性的准备工作。



Trackback: http://tb.donews.net/TrackBack.aspx?PostId=997190


菜鸟
2009-08-13 23:37:35     打赏
5楼

顶!    ============================================================== 
在论坛看了很多ARM相关资料,学了不少知识,最近想动手试试做个东西,MP4太复杂,想想还是使用

STM32做一个MP3播放器,请各位高手给点意见呀: 
http://www.armjishu.com/bbs/viewtopic.php?id=1631&flag=102
  欢迎大家给出评价与建议!


共5条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]