Chinaunix首页 | 论坛 | 博客
  • 博客访问: 884317
  • 博文数量: 286
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1841
  • 用 户 组: 普通用户
  • 注册时间: 2015-05-09 16:26
文章分类

全部博文(286)

文章存档

2016年(38)

2015年(248)

我的朋友

分类: IT业界

2015-05-19 21:57:42

GPIO

General Purpose Input Output (通用输入/输出)简称为GPIO,或总线扩展器,利用工业标准I2CSMBusSPI接口简化了I/O口的扩展。当微控制器或芯片组没有足够的I/O端口,或当系统需要采用远端或控制时,GPIO产品能够提供额外的控制和监视功能。

分类:硬件/嵌入开发开发/核心开发

每个GPIO端口可通过分别配置成输入或输出。MaximGPIO产品线包括8端口至28端口的GPIO,提供。提供微型3mm x 3mm QFN封装。

 

DRAM

DRAM(Dynamic Random Access Memory),即动态,最为常见的DRAM 只能将数据保持很短的时间。为了保持数据,DRAM使用存储,所以必须隔一段时间刷新(refresh)一次,如果没有被刷新,存储的信息就会丢失。 (关机就会丢失数据)

DRAM根据技术癿更新又分好几代,而使用上较广泛癿有所谓癿SDRAMDDR SDRAM两种。 这两种内存癿差别除了在亍脚位不工作电压上癿丌同乊外,DDR是所谓癿双倍数据传送速度(Double Data Rate), 他可以在一次工作周期中迚行两次数据癿传送,感觉上就好像是CPU癿倍频啦! 所以传输频率方面比SDRAM还要好。新一代癿PC大多使用DDR内存了。

 

SDRAM

SDRAM:Synchronous Dynamic Random Access Memory,同步,同步是指 Memory工作需要同步时钟,内部的命令的发送与数据的传输都以它为基准;动态是指需要不断的刷新来保证数据不丢失;随机是指数据不是线性依次存储,而是自由指定地址进行数据读写。

SRAM

(静态随机存取存储器)

SRAM(Static Random Access Memory),即静态随机存取存储器。它是一种具有静止存取功能的,不需要刷新电路即能保存它内部存储的数据。

SRAM不需要刷新电路即能保存它内部存储的数据。而DRAM(Dynamic Random Access Memory)每隔一段时间,要刷新充电一次,否则内部的数据即会消失,因此SRAM具有较高的性能,较低的功耗,但是SRAM也有它的缺点,即它的集成度较低,相同的DRAM可以设计为较小的体积,但是SRAM却需要很大的体积。同样面积的硅片可以做出更大容量的DRAM,因此SRAM显得更贵。

 

Flash(存储芯片之一)

flash是的一种,通过特定的程序可以修改里面的数据。FLASH在电子以及半导体领域内往往表示Flash Memory的意思,即平时所说的“闪存”,全名叫Flash EEPROM Memory。

Flash存储器又称闪存,它结合了ROMRAM的长处,不仅具备电子可擦除可编程(EEPROM)的性能,还可以快速读取数据(NVRAM的优势),使数据不会因为断电而丢失。U盘和MP3里用的就是这种存储器。在过去的20年里,一直使用ROM(EPROM)作为它们的存储设备,然而近年来Flash全面代替了ROM(EPROM)在嵌入式系统中的地位,用作存储Bootloader以及操作系统或者程序代码,或者直接当硬盘使用(U盘)。

目前Flash主要有两种NORFlash和NANDFlash。NORFlash的读取和我们常见的SDRAM的读取是一样,用户可以直接运行装载在NORFLASH里面的代码,这样可以减少SRAM的容量从而节约了成本。NANDFlash没有采取内存的随机读取技术,它的读取是以一次读取一块的形式来进行的,通常是一次读取512个字节,采用这种技术的Flash比较廉价。用户不能直接运行NANDFlash上的代码,因此好多使用NANDFlash的开发板除了使用NANDFlash以外,还加上了一块小的NORFlash来运行启动代码。

一般小容量的用NORFlash,因为其读取速度快,多用来存储操作系统等重要信息,而大容量的用NANDFLASH,最常见的NANDFLASH应用是嵌入式系统采用的DOC(Disk On Chip)和我们通常用的“闪盘”,可以在线擦除。目前市面上的FLASH主要来自Intel,AMD,Fujitsu和Mxic,而生产NANDFlash的主要厂家有Samsung,Toshiba,Micron和Hynix。

 

EEPROM

EEPROM (Electrically Erasable Programmable ),--一种掉电后数据不丢失的。 EEPROM 可以在电脑上或专用设备上擦除已有信息,重新。一般用在

EEPROM(带电可擦写可编程)是用户可更改的只读存储器

的作用来擦除和重编程(重写)。不像EPROM芯片,EEPROM不需从中取出即可修改。在一个EEPROM中,当在使用的时候可频繁地反复编程,因此EEPROM的寿命是一个很重要的设计考虑参数。EEPROM是一种特殊形式的,其应用通常是个人电脑中的来擦写和重编程。

EEPROM,一般用于(Plug & Play)。

常用在接口卡中,用来存放硬件设置数据。

也常用在防止非法拷贝的"硬件锁"上面。

 

I2C总线

I2C(Inter-Integrated Circuit)总线是由公司开发的两线式串行总线,用于连接及其外围设备。是微电子通信控制领域广泛采用的一种总线标准。它是同步通信的一种特殊形式,具有接口线少,控制方式简单,器件封装形式小,通信速率较高等优点。I2C 总线支持任何 生产过程(CMOS、双极性)。通过串行数据(SDA)线和串行时钟 (SCL)线在连接到总线的器件间传递信息。每个器件都有一个唯一的地址识别(无论是——MCU、 驱动器、存储器或键盘接口),而且都可以作为一个发送器或接收器(由器件的功能决定)。LCD 驱动器只能作为接收器,而存储器则既可以接收又可以发送数据。除了和接收器外,器件在执行数据传输时也可以被看作是主机或从机(见表1)。主机是初始化总线的数据传输并产生允许传输的时钟信号 的器件。此时,任何被寻址的器件都被认为是从机。

中文名

I2C总线

外文名

Inter-Integrated Circuit

    

公司

    

两线式串行总线

目录

1

2

3

4

5

6

7

8

1特征

1、只要求两条总线线路:一条串行数据线SDA,一条串行时钟线SCL;

2、每个连接到总线的器件都可以通过唯一的地址和一直存在的简单的主机/从机关系软件设定地址,主机可以作为主机发送器或主机接收器;

I2C 总线术语的定义I2C 总线术语的定义

3、它是一个真正的多主机总线,如果两个或更多主机同时初始化,数据传输可以通过冲突检测和仲裁防止数据被破坏;

4、串行的8 位双向数据传输位速率在标准模式下可达100kbit/s,快速模式下可达400kbit/s,高速模式下可达3.4Mbit/s;

5、连接到相同总线的IC 数量只受到总线的最大电容400pF 限制。

2术语

发送器:发送数据到总线的器件;

接收器:从总线接收数据的器件;

主机:启动数据传送并产生时钟信号的设备;

从机:被主机寻址的器件;

多主机:同时有多于一个主机尝试控制总线但不破坏传输;

主模式:用I2CNDAT支持自动字节计数的模式;位I2CRM,I2CSTT,I2CSTP控制数据的接收和发送;

从模式:发送和接收操作都是由I2C模块自动控制的;

仲裁:是一个在有多个主机同时尝试控制总线但只允许其中一个控制总线并使传输不被破坏

的过程;

同步:两个或多个器件同步时钟信号的过程 。

3位传输

由于连接到I2C 总线的器件有不同种类的工艺(),逻辑0(低)和逻辑1(高)的电平不是固定的,它由电源VCC的相关电平决定,每传输一个数据位就产生一个时钟脉冲。

数据有效

在传输数据的时候,SDA线必须在时钟的高电平周期保持稳定,S

I2C位传输数据有效性I2C位传输数据有效性

DA的高或低电平状态只有在SCL 线的时钟信号是低电平时才能改变 。

起始停止

SCL 线是高电平时,SDA 线从高电平向低电平切换,这个情况表示起始条件;

SCL 线是高电平时,SDA 线由低电平向高电平切换,这个情况表示停止条件。

起始和停止条件一般由主机产生,总线在起始条件后被认为处于忙的状态

起始和停止条件

,在停止条件的某段时间后总线被认为再次处于空闲状态。

如果产生重复起始条件而不产生停止条件,总线会一直处于忙的状态,此时的起始条件(S)和重复起始条件(Sr) 在功能上是一样的。

4数据传输

字节格式

发送到SDA 线上的每个字节必须为8 位,每次传输可以发送的字节数量不受限制。每个字节后必须跟一个响应位。首先传输的是数据的最高位(MSB),如果从机要完成一些其他功能后(例如一个内部中断服务程序)才能接收或发送下一个完整的数据字节,可以使时钟线SCL 保持低电平,迫使主机进入等待状态,当从机准备好接收下一个数据字节并释放时钟线SCL 后数据传输继续。

应答响应

数据传输必须带响应,相关的响应时钟脉冲由主机产生。在响应的时钟脉冲期间发送器释放SDA 线(高)。

在响应的时钟脉冲期间,接收器必须将SDA 线拉低,使它在这个时钟脉冲的高电平期间保持稳定的低电平。

通常被寻址的接收器在接收到的每个字节后,除了用C 地址开头的数

I2C总线数据传输和应答

据,必须产生一个响应。当从机不能响应从机地址时(例如它正在执行一些实时函数不能接收或发送),从机必须使数据线保持高电平,主机然后产生一个停止条件终止传输或者产生重复起始条件开始新的传输。

如果从机接收器响应了从机地址,但是在传输了一段时间后不能接收更多数据字节,主机必须再一次终止传输。这个情况用从机在第一个字节后没有产生响应来表示。从机使数据线保持高电平,主机产生一个停止或重复起始条件。

如果传输中有主机接收器,它必须通过在从机发出的最后一个字节时产生一个响应,向从机发送器通知数据结束。从机发送器必须释放数据线,允许主机产生一个停止或重复起始条件。

时钟同步

所有主机在SCL线上产生它们自己的时钟来传输I2C总线上的报文。数据只在时钟的高电平周期有效,因此需要一个确定的时钟进行逐位仲裁。

时钟同步通过线与连接I2C 接口到SCL 线来执行。这就是说SCL 线的高到低切换会使器件开始数它们的低电平周期,而且一旦器件的时钟变低电平,它会使SCL 线保持这种状态直到到达时钟的高电平。但是如果另一个时钟仍处于低电平周期,这个时钟的低到高切换不会改变SCL 线的状态。因此SCL 线被有最长低电平周期的器件保持低电平。此时低电平周期短的器件会进入高电平的等待状态。

当所有有关的器件数完了它们的低电平周期后,时钟线被释放并变成高电平。之后,器件时钟和SCL线的状态没有差别,而且所有器件会开始数它们的高电平周期。首先完成高电平周期的器件会再次将SCL线拉低。

这样产生的同步SCL 时钟的低电平周期由低电平时钟周期最长的器件决定,而高电平周期由高电平时钟周期最短的器件决定。

5寻址方式

7位

第一个字节的头7 位组成了从机地址,最低位(LSB)是第8 位,它决定了传输的

普通的和带重复开始条件的7位地址格式

方向。第一个字节的最低位是“0”,表示主机会写信息到被选中的从机;“1”表示主机会向从机读信息,当发送了一个地址后,系统中的每个器件都在起始条件后将头7 位与它自己的地址比较,如果一样,器件会判定它被主机寻址,至于是从机接收器还是从机发送器,都由R/W 位决定的。

10位

10位寻址和7 位寻址兼容,而且可以结合使用。

10位寻址采用了保留的1111XXX 作为起始条件(S)或重复起始条件(Sr )后第一个字节的头7 位。

10 位寻址不会影响已有的7 位寻址,有7 位和10 位地址的器件可以连接

I2C总线10位地址格式

到相同的I2C 总线。它们都能用于标准模式(F/S)和高速模式(Hs)系统。

保留地址位1111XXX 有8 个组合,但是只有4 个组合11110XX 用于10 位寻址,剩下的4个组合11111XX 保留给后续增强的I2C 总线。

10 位从机地址是由在起始条件(S) 或重复起始条件(Sr )后的头两个字节组成。

第一个字节的头7 位是11110XX 的组合,其中最后两位(XX) 是10 位地址的两个最高位(MSB)。

第一个字节的第8 位是R/W 位,决定了传输的方向,第一个字节的最低位是“0”表示主机将写信息到选中的从机,“1 ”表示主机将向从机读信息。

如果R/W 位是“0 ”,则第二个字节是10 位从机地址剩下的8 位;如果R/W 位是“1” 则下一个字节是从机发送给主机的数据。

6快速模式

快速模式器件可以在400kbit/s 下接收和发送。最小要求是:它们可以和400kbit/s 传输同步,可以延长SCL 信号的低电平周期来减慢传输。快速模式器件都向下兼容,可以和标准模式器件在0~100kbit/s 的I2C 总线系统通讯。但是,由于标准模式器件不向上兼容,所以不能在快速模式I2C 系统中工作。快速模式I2C 总线规范与标准模式相比有以下特征:

1、最大位速率增加到400kbit/s;

2、调整了串行数据() 和串行时钟( )信号的时序;

3、快速模式器件的输入有抑制毛刺的功能,SDA 和SCL输入有

4、快速模式器件的输出缓冲器对SDA 和SCL 信号的下降沿有斜率控制功能;

5、如果快速模式器件的电源电压被关断,SDA 和SCL 的I/O 管脚必须悬空,不能阻塞总线;

6、连接到总线的外部上拉器件必须调整以适应快速模式I2C 总线更短的最大允许上升时间。对于负载最大是200pF 的总线,每条总线的上拉器件可以是一个电阻,对于负载在200pF~400pF 之间的总线,上拉器件可以是一个电流源(最大值3mA )或者是一个开关电路。

7高速模式

高速模式(Hs 模式)器件对I2C 总线的传输速度有巨大的突破。Hs 模式器件可以在高达3.4Mbit/s 的位速率下传输信息,而且保持完全向下兼容快速模式或标准模式(F/S 模式)器件,它们可以在一个速度混合的总线系统中双向通讯。

Hs 模式传输除了不执行仲裁和时钟同步外,与F/S 模式系统有相同的串行总线协议和数据格式。

高速模式下I2C 总线规范如下:

1、Hs 模式主机器件有一个SDAH 信号的开漏输出缓冲器和一个在SCLH 输出的开漏极下拉和电流源上拉电路。这个电流源电路缩短了SCLH 信号的上升时间,任何时候在Hs 模式,只有一个主机的电流源有效;

2、在多主机系统的Hs 模式中,不执行仲裁和时钟同步,以加速位处理能力。仲裁过程一般在前面用F/S 模式传输主机码后结束;

3、Hs 模式主机器件以高电平和低电平是1:2 的比率产生一个串行时钟信号。解除了建立和保持时间的时序要求;

4、可以选择Hs 模式器件有内建的电桥。在Hs 模式传输中,Hs 模式器件的高速数据(SDAH)和高速串行时钟(SCLH )线通过这个电桥与F/S 模式器件的SDA 和SCL 线分隔开来。减轻了SDAH 和SCLH 线的电容负载,使上升和下降时间更快;

5、Hs 模式从机器件与F/S 从机器件的唯一差别是它们工作的速度。Hs 模式从机在SCLH 和SDAH输出有开漏输出的缓冲器。SCLH 管脚可选的下拉晶体管可以用于拉长SCLH 信号的低电平,但只允许在Hs 模式传输的响应位后进行;

6、Hs 模式器件的输出可以抑制毛刺,而且SDAH 和SCLH 输出有一个施密特触发器;

7、Hs 模式器件的输出缓冲器对SDAH 和SCLH 信号的下降沿有斜率控制功能。

8常用念法

I?C(Inter-Integrated Circuit)是内部整合电路的称呼,是一种串行通讯总线,使用多主从架构,由飞利浦公司在1980年代为了让主板、嵌入式系统或手机用以连接低速周边装置而发展。I?C(读作"I-squared-C" ),还有可选的拼写方式是I2C(读作I-two-C)以及IIC(读作I-I-C),在中国则多以"I方C"称之。

 

 

 

BootLoader

在嵌入式操作系统中,BootLoader是在内核运行之前运行。可以初始化硬件设备、建立内存空间映射图,从而将系统的软硬件环境带到一个合适状态,以便为最终调用准备好正确的环境。在中,通常并没有像BIOS那样的程序(注,有的嵌入式CPU也会内嵌一段短小的启动程序),因此整个系统的加载启动任务就完全由BootLoader来完成。在一个基于ARM7TDMI core的中,系统在上电或复位时通常都从地址0x00000000处开始执行,而在这个地址处安排的通常就是系统的BootLoader程序。

中文名

启动装载

外文名

BootLoader

    

系统启动前引导程序

操作模式

启动模式、交互模式

目录

1

2

3

4

? 

? 

? 

? 

? 

? 

? 

? 

1背景介绍

Bootloader是嵌入式系统在加电后执行的第一段代码,在它完成CPU和相关硬件的初始化之后,再将操作系统映像或固化的嵌入式应用程序装在到内存中然后跳转到操作系统所在的空间,启动操作系统运行。[1] 

对于嵌入式系统,Bootloader是基于特定硬件平台来实现的。因此,几乎不可能为所有的嵌入式系统建立一个通用的Bootloader,不同的处理器架构都有不同的Bootloader。Bootloader不但依赖于CPU的体系结构,而且依赖于嵌入式系统板级设备的配置。对于2块不同的嵌入式板而言,即使它们使用同一种处理器,要想让运行在一块板子上的Bootloader程序也能运行在另一块板子上,一般也都需要修改Bootloader的源程序。

反过来,大部分Bootloader仍然具有很多共性,某些Bootloader也能够支持多种体系结构的嵌入式系统。例如,U-Boot就同时支持PowerPC、ARM、MIPS和X86等体系结构,支持的板子有上百种。通常,它们都能够自动从存储介质上启动,都能够引导操作系统启动,并且大部分都可以支持串口和以太网接口。

在专用的板子运行GNU/Linux系统已经变得越来越流行。一个Linux系统从的角度看通常可以分为四个层次:

1、 引导加载程序。包括固化在(firmware)中的boot代码(可选),和BootLoader两大部分。

2、。特定于板子的定制内核以及内核的启动参数。

3、 文件系统。包括和建立于设备之上文件系统。通常用ramdisk来作为rootfs。

4、 用户。特定于用户的。有时在用户层之间可能还会包括一个。常用的GUI有:MicroWindows和MiniGUI等。

通常,BootLoader是严重地依赖于硬件而实现的,特别是在世界。因此,在世界里建立一个通用的BootLoader几乎是不可能的。尽管如此,我们仍然可以对bootloader归纳出一些通用的概念来,以指导用户特定的BootLoader设计与实现。

2操作模式

1.自启动模式:在这种模式下,bootloader从目标机上的某个固态存储设备上将操作系统加载到RAM中运行,整个过程并没有用户的介入。

2.交互模式:在这种模式下,目标机上的bootloader将通过串口或网络等通行手段从开发主机(Host)上下载内核映像等到RAM中。可以被bootloader写到目标机上的固态存储媒质中,或者直接进入系统的引导。也可以通过串口接收用户的命令。

3启动过程

Bootloader启动大多数都分为两个阶段。第一阶段主要包含依赖于CPU的体系结构硬件初始化的代码,通常都用汇编语言来实现。这个阶段的任务有:

基本的硬件设备初始化(屏蔽所有的中断、关闭处理器内部指令/数据Cache等)。

为第二阶段准备RAM空间。

如果是从某个固态存储媒质中,则复制Bootloader的第二阶段代码到RAM。

设置堆栈。

在第一阶段中为什么要关闭Cache?通常使用Cache以及写缓冲是为了提高系统性能,但由于Cache的使用可能改变访问主存的数量、类型和时间,因此Bootloader通常是不需要的。

跳转到第二阶段的C程序入口点。

第二阶段通常用C语言完成,以便实现更复杂的功能,也使程序有更好的可读性和可移植性。这个阶段的任务有:

初始化本阶段要使用到的硬件设备。

检测系统内存映射。

将内核映像和根文件系统映像从Flash读到RAM。

为内核设置启动参数。

调用内核。

4常见的Bootloader

Redboot

Redboot是Redhat公司随eCos发布的一个BOOT方案,是一个开源项目。

当前的最新版本是Redboot-2.0.1,Redhat公司将会继续支持该项目。

支持的处理器构架有ARM,MIPS,MN10300,PowerPC, Renesas SHx,v850,x86等,是一个完善的Boot Loader。

是在ECOS的基础上剥离出来的,继承了ECOS的简洁、轻巧、可灵活配置、稳定可靠等品质优点。它可以使用X-modem或Y-modem协议经由串口下载,也可以经由以太网口通过BOOTP/DHCP服务获得IP参数,使用TFTP方式下载程序,常用于调试支持和(Flash下载更新和网络启动)。可以通过串口和以太网口与GDB进行通信,调试,甚至能中断被GDB运行的应用程序。为管理FLASH映像,映像下载,Redboot配置以及其他如串口、口提供了一个交互式命令行接口,自动启动后,REDBOOT用来从TFTP服务器或者从Flash下载加载系统的引导保存在Flash上。当前支持的移植版特性有:

- 支持ECOS,引导

- 在线读写Flash

- 支持kermit,S-record下载代码

- 监控(minitor)命令集:读写I/O,内存,寄存器、 内存、外设测试功能等

是标准的调试和引导解决方案,支持几乎所有的处理器构架以及大量的外围硬件接口,并且还在不断地完善过程中。

ARMboot

ARMboot是一个ARM平台的开源项目,它特别基于PPCBoot,一个为PowerPC平台上的系统提供类似功能的姊妹项目。鉴于对PPCBoot的严重依赖性,已经与PPCBoot项目合并,新的项目为

ARMboot发布的最后版本为ARMboot-1.1.0,2002年ARMboot终止了维护。

ARMboot支持的处理器构架有StrongARM ,ARM720T ,PXA250 等,是为基于ARM或者StrongARM CPU的所设计的。

ARMboot的目标是成为通用的、容易使用和移植的引导程序,非常轻便地运用于新的平台上。ARMboot是GPL下的ARM项目中唯一支持Flash闪存,BOOTP、DHCP、TFTP网络下载,PCMCLA寻线机等多种类型来引导系统的。特性为:

-支持多种类型的FLASH;

-允许经由BOOTP、DHCP、TFTP从

-支持下载S-record或者binary文件;

-允许内存的显示及修改;

-支持文件系统等。

Armboot对S3C44B0板的移植相对简单,在经过删减完整代码中的一部分后,仅仅需要完成初始化、串口收发数据、启动计数器和FLASH操作等步骤,就可以下载引导uClinux完成板上系统的加载。总得来说,ARMboot介于大、小型Boot Loader之间,相对轻便,基本功能完备,缺点是缺乏后续支持。

U-Boot

U-Boot是由开源项目PPCBoot发展起来的,ARMboot并入了PPCBoot,和其他一些arch的Loader合称U-Boot。2002年12月17日第一个版本U-Boot-0.2.0发布,同时PPCBoot和ARMboot停止维护。

U-Boot自发布以后已更新6次,最新版本为U-Boot-1.1.1,U-Boot的支持是持续性的。

U-Boot支持的处理器构架包括PowerPC (MPC5xx,MPC8xx,MPC82xx,MPC7xx,MPC74xx,4xx), ARM (ARM7,ARM9,StrongARM,Xscale),MIPS (4Kc,5Kc),x86等等, U-Boot(Universal Bootloader)从名字就可以看出,它是在GPL下资源代码最完整的一个通用Boot Loader。

U-Boot提供两种操作模式:启动加载(Boot loading)模式和下载(Downloading)模式,并具有大型Boot Loader的全部功能。主要特性为:

-SCC/FEC支持

-BOOTP/TFTP引导

-IP,MAC预置功能

-在线读写FLASH,DOC, IDE,IIC,EEROM,RTC

-支持kermit,S-record下载代码

-识别二进制、ELF32、pImage格式的Image,对Linux引导有特别的支持

-监控(minitor)命令集:读写I/O,内存,寄存器、内存、外设测试功能等

-语言支持(类似BASH

-支持WatchDog,LCD logo,状态指示功能等

U-Boot的功能是如此之强大,涵盖了绝大部分处理器构架,提供大量外设驱动,支持多个文件系统,附带调试、、引导等工具,特别支持Linux,为板级移植做了大量的工作。U-Boot1.1.1版本特别包含了对SA1100和44B0芯片的移植,所以44B0移植主要是针对Board 的移植,包括FLASH、内存配置以及串口等等。U-Boot的完整功能性和后续不断的支持,使系统的升级维护变得十分方便。

Blob

Blob(Boot Loader Object)是由Jan-Derk Bakker and Erik Mouw发布的,是专门为StrongARM 构架下的LART设计的Boot Loader。

Blob的最后版本是blob-2.0.5。

Blob支持SA1100的LART主板,但用户也可以自行修改移植。

Blob也提供两种工作模式,在启动时处于正常的启动加载模式,但是它会延时 10 秒等待终端用户按下而将 Blob 切换到下载模式。如果在 10 秒内没有用户按键,则 Blob 继续启动 Linux。其基本功能为:

初始化硬件(CPU速度,,中断,RS232串口)

-引导Linux内核并提供ramdisk

- 给LART下载一个或者ramdisk

-给FLASH片更新内核或者ramdisk

-测定存储配置并通知内核

-给提供一个命令行

Blob功能比较齐全,代码较少,比较适合做修改移植,用来引导Liunx,目前大部分S3C44B0板都用Blob修改移植后来加载uClinux。

Bios-lt

Bios-lt是专门支持三星(Samsung)公司ARM构架处理器S3C4510B的Loader,可以设置CPU/ROM/SDRAM/EXTIO,管理并烧写FLASH,装载引导uClinux内核。这是国内工程师申请GNU通用公共许可发布的。

Bios-lt的最新版本是Bios-lt-0.74,另外还提供了S3C4510B的一些外围驱动。

Bootldr

Bootldr是(Compaq)公司发布的,类似于compaq iPAQ Pocket PC,支持SA1100芯片。它被推荐用来引导Llinux,支持串口Y-modem协议以及jffs文件系统。

Bootldr的最后版本为Bootldr-2.19。

vivi

vivi是韩国mizi 公司开发的bootloader, 适用于ARM9处理器。Vivi有两种工作模式:启动加载模式和下载模式。启动加载模式可以在一段时间后(这个时间可更改)自行启动,这是vivi的默认模式。在下载模式下,vivi为用户提供一个命令行接口,通过接口可以使用vivi提供的一些命令,如下:

命令

功能

Load 把二进制文件载入Flash或RAM

Part 操作MTD分区信息。显示、增加、删除、复位、保存MTD分区

Param 设置参数

Boot 启动系统

Flash 管理Flash,如删除Flash的数据

vivi代码分析 vivi的代码包括arch,init,lib,drivers和include等几个目录,共200多条文件。

Vivi主要包括下面几个目录:

arch:此目录包括了所有vivi支持的的子目录,例如s3c2410目录。

drivers:其中包括了引导需要的设备的驱动程序(MTD和串口)。

MTD目录下分map、nand和nor三个目录。

init:这个目录只有main.c和version.c两个文件。和普通的C程序一样,vivi将从开始执行。

lib:一些平台公共的接口代码,比如time.c里的udelay()和mdelay()。

include:头文件的公共目录,其中的s3c2410.h定义了这块处理器的一些寄存器。Platform/smdk2410.h定义了与相关的资源配置参数,我们往往只需要修改这个文件就可以配置的参数,如、引导参数、映射等。

DSPBootLoader

一般[2] 的DSP都采用常见的BootLoader程序工作方式来实现用户程序的上电自举:

1.处理器通信口(主端口)HPI方式

--通过DSP芯片与PC机或DSP芯片与其它DSP芯片之间的主机通信端口实现上电自举;

2.8位或16位并行EPROM方式

--通过DSP内核的DMA通道实现上电自举;

3.8位或16位并行I/O方式

--通过DSP芯片的片外并行I/O接口实现上电自举;

4.8位或16位串行口方式

--通过DSP芯片的串行端口实现上电自举。

在以上四种工作方式中,最常用的是16位并行EPROM方式。即在DSP芯片上电或复位时,通过DMA通道将存储在核外EPROM中的程序以16位形式存储到核内的程序空间中。

各种方式的BootLoader程序都有其固定格式的Boot表,用来实现用户程序的上电自举。16位并行EPROM方式的Boot表如表所示:

项1:存放BootLoader

程序工作方式控制字,用于DS芯片上电或复位时确认该Boot表是否为16位并行EPROM工作方式的Boot表。该表项内容为10AAH,表示DSP内核认为该Boot表是16位并行EPROM工作方式的BootLoader程序的Boot表;否则DSP内核认为该Boot表不是16位并行EPROM的方式的Boot表;


Boot表

项2:

存放DSP特殊寄存器SWWSR在上电或复位时被赋予的初始化数值;

项3:

存放DSP特殊寄存器BSCR在上电或复位时被赋予的初始化数值;

项4:

存放用户程序将要被存放在DSP核内程序空间的页地址;

项5:

存放用户程序将要被存放到DSP核内程序空间的页内偏移地址;

项6:

开始依次存放用户程序第m段代码的长度N。用户程序第m段代码将要被存放到DSP核内程序空间的页地址,用户程序第m段代码将要被存放到DSP核内程序空间的页内偏移地址,用户程序第m段代码的第1个字,第2个字,……,第N个字;Boot表的最后表项存放Boot表结束字0000H,表示Boot表到此结束。因此DSP内核要实现BootLoader程序,在上电复位后首先要申请到片外数据、地址总线的控制权,然后再根据Boot表完成用户程序上电自举过程。

多核DSP的BootLoader程序的实现

在实现多核DSP上电自举时,每一个子核都需要申请片外总线的控制权。对于单核DSP

而言,只有一个DSP内核,对应一个BootLoader程序,DSP核可以永远拥有片外总线的控制权。但对于多核DSP而言,由于只有一套片外总线,所以片外总线的控制权不允许也不可能永远被其中的某一个DSP子核所拥有。因此,多核DSP需要片外总线仲裁机制,以避免片外总线冲突。DSP核的BootLoader程序总是在DSP核上电或复位时启动,且一启动

BootLoader程序,对应的DSP核就要申请核外的总线控制权。因此为了避免多核DSP的各个DSP子核启动BootLoader程序时引起的片外总线冲突,可通过控制每个DSP子核的复位过程,使每个DSP子核在不同的时间内启动自身的BootLoader程序来解决片外总线冲突的问题。

 

 

U-Boot

U-Boot,全称 Universal Boot Loader,是遵循GPL条款的项目。从FADSROM、8xxROM、PPCBOOT逐步发展演化而来。其源码目录、编译形式与很相似,事实上,不少U-Boot源码就是根据相应的Linux内核进行简化而形成的,尤其是一些设备的驱动程序,这从U-Boot源码的注释中能体现这一点。

中文名

U-Boot

    

Universal Boot Loader

    

项目

    

遵循GPL条款

目录

1

2

3

4

5

1简介

U-Boot不仅仅支持Linux系统的引导,它还支持NetBS

%3D220/sign=5363105d9258d109c0e3aeb0e158ccd0/a5c27d1ed21b0ef495e2eb7dddc451da81cb3e8e.jpg

D, VxWorks, QNX, RTEMS, ARTOS, LynxOS, android嵌入式。其目前要支持的目标是OpenBSD, NetBSD, FreeBSD,4.4BSD, Linux, SVR4, Esix, Solaris, Irix, SCO, Dell, NCR, VxWorks, LynxOS, pSOS, QNX, RTEMS, ARTOS, android。这是U-Boot中Universal的一层含义,另外一层含义则是U-Boot除了支持PowerPC系列的处理器外,还能支持MIPS、 x86、ARM、NIOS、XScale等诸多常用系列的处理器。这两个特点正是U-Boot项目的开发目标,即支持尽可能多的。就目前来看,U-Boot对PowerPC系列处理器支持最为丰富,对Linux的支持最完善。其它系列的处理器和基本是在2002年11 月PPCBOOT改名为U-Boot后逐步扩充的。从PPCBOOT向U-Boot的顺利过渡,很大程度上归功于U-Boot的维护人德国DENX软件工程中心Wolfgang Denk[以下简称W.D]本人精湛专业水平和持着不懈的努力。当前,U-Boot项目正在他的领军之下,众多有志于BOOT LOADER移植工作的人员正如火如荼地将各个不同系列的移植工作不断展开和深入,以支持更多的的装载与引导[1] 。

选择U-Boot的理由

① 

② 支持多种内核,如Linux、NetBSD, VxWorks, QNX, RTEMS, ARTOS, LynxOS, android;

③ 支持多个处理器系列,如PowerPC、ARM、x86、MIPS、XScale;

④ 较高的可靠性和稳定性;

⑤ 高度灵活的功能设置,适合U-Boot调试、不同引导要求、产品发布等;

⑥ 丰富的源码,如串口、、SDRAM、FLASH、LCD、NVRAM、EEPROM、RTC、键盘等;

⑦ 较为丰富的开发调试文档与强大的支持;

2目录结构

* board 相关文件,主要包含SDRAM、FLASH驱动;

* common 独立于处理器体系结构的通用代码,如内存大小探测与故障检测;

* cpu 与处理器相关的文件。如mpc8xx子目录下含串口、网口、LCD驱动及中断初始化等文件;

* driver 通用,如CFI FLASH驱动(目前对INTEL FLASH支持较好)

* doc U-Boot的说明文档;

* examples可在U-Boot下运行的示例程序;如hello_world.c,timer.c;

* include U-Boot头文件;尤其configs子目录下与相关的配置头文件是移植过程中经常要修改的文件;

* lib_xxx 处理器体系相关的文件,如lib_ppc, lib_arm目录分别包含与PowerPC、ARM体系结构相关的文件;

* net 与网络功能相关的,如bootp,nfs,tftp;

* post 。尚有待于进一步完善;

* rtc RTC

* tools 用于创建U-Boot S-RECORD和BIN的工具;

3主要功能

U-Boot可支持的主要功能列表:

*系统引导支持NFS挂载、RAMDISK(压缩或非压缩)形式的;支持NFS挂载、从FLASH中引导压缩或非压缩系统

* 基本辅助功能强大的功能;可灵活设置、传递多个关键参数给操作系统,适合系统在不同开发阶段的调试要求与产品发布,尤以Linux支持最为强劲;支持环境参数多种存储方式,如FLASH、NVRAM、EEPROM;

* CRC32校验可校验FLASH中、RAMDISK是否完好;

串口、SDRAM、FLASH、、LCD、NVRAM、EEPROM、键盘、USB、PCMCIA、PCI、RTC等驱动支持;

功能SDRAM、FLASH大小自动检测;SDRAM故障检测;CPU型号;

* 特殊功能XIP引导;

4工作模式

U-Boot的工作模式有启动加载模式和下载模式。启动加载模式是Bootloader的正常工作模式,产品发布时,Bootloader必须工作在这种模式下,Bootloader将从FLASH中加载到SDRAM中运行,整个过程是自动的。下载模式就是Bootloader通过某些通信手段将映像或映像等从PC机中下载到的FLASH中。用户可以利用Bootloader提供的一些命令接口来完成自己想要的操作。

5启动流程

大多数BootLoader都分为stage1和stage2两大部分,U-boot也不例外。依赖于cpu体系结构的代码(如设备初始化代码等)通常都放在stage1且可以用汇编语言来实现,而stage2则通常用C语言来实现,这样可以实现复杂的功能,而且有更好的可读性和移植性。

1、 stage1(start.s代码结构)

U-boot的stage1代码通常放在start.s文件中,它用汇编语言写成,其主要代码部分如下:

(1) 定义入口。由于一个可执行的image必须有一个,并且只能有一个全局入口,通常这个入口放在rom(Flash)的0x0地址,因此,必须通知以使其知道这个入口,该工作可通过修改连接器脚本来完成。

(2)设置异常向量(exception vector)。

(3)设置CPU的速度、及中断

(4)初始化内存控制器 。

(5)将rom中的程序复制到ram中。

(6)初始化 。

(7)转到ram中执行,该工作可使用指令ldrpc来完成。

2、 stage2(C语言代码部分)

lib_arm/board.c中的start 是C语言开始的函数,也是整个启动代码中C语言的,同时还是整个u-boot(armboot)的主函数,该函数主要完成如下操作:

(1)调用一系列的初始化函数。

(2)初始化flash设备。

(3)初始化系统内存分配函数。

(4)如果目标系统拥有nand设备,则初始化nand设备。

(5)如果目标系统有显示设备,则初始化该类设备。

(6)初始化相关网络设备,填写ip,c地址等。

(7)进入命令循环(即整个boot的工作循环),接受用户从串口输入的命令,然后进行相应的工作。

 

 

 

RGMII

中文名

精简吉比特介质独立接口

外文名

Reduced Gigabit Media Independent Interface

特    点

1000M网络接口,4线传输数据

1简介

RGMII(Reduced Gigabit Media Independent Interface)是Reduced GMII(吉比特介质独立接口)。RGMII均采用4位,工作时钟125MHz,并且在上升沿和下降沿同时传输数据,因此传输速率可达1000Mbps。同时兼容MII所规定的10/100 Mbps工作方式,支持:10M/100M/1000Mb/s ,其对应clk 信号分别为:2.5MHz/25MHz/125MHz。RGMII数据结构符合IEEE标准,接口定义见IEEE 802.3-2000。

采用RGMII的目的是降低电路成本,使实现这种接口的器件的数从25个减少到14个。

2通信原理

一般用于MAC和PHY之间的通信。

发送器:

◎ GTX_CLK——吉比特TX..信号的(125MHz)

◎ TXD[3..0]——被发送数据

◎ TX_CTL——发送控制

注:在千兆速率下,向PHY提供GTX_CLK信号,TXD、TXEN、TXER信号与此同步。否则,在10/100M速率下,PHY提供 TXCLK,其它信号与此信号同步。其为25MHz(100M网络)或2.5MHz(10M网络)。

接收器:

◎ RX_CLK——接收(从收到的数据中提取,因此与GTXCLK无关联)

◎ RXD[3..0]——接收数据

◎ RX_CTL——接收控制

◎ COL——(仅用于半双工状态)

◎ CRS——

管理配置(控制和状态信息):

◎ MDC——配置接口时钟

◎ MDIO——配置接口I/O

RGMII接口相对于GMII接口,在TXD和RXD上总共减少8根数据线。

 


PMU:

便携式应用的电源管理方案

 

TFBGA:

本词条缺少概述、信息栏、名片图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧!

TFBGA:Thin Fine-Pitch Ball Grid Array.是一种球形光栅阵列封装形式.

TFBGA封装流程简介:

Pre-Assembly/Assembly封装前道部

Receive Lot/接收晶圆 从前道晶圆厂接收晶圆,目前IFZS主要的晶圆尺寸有300mm(12inches)和200(8inches)

Dicing/晶圆切割 没经过研磨的晶圆盘被切割成单独的芯片(未完全从晶圆盘分离)

Laminating/正面贴膜 在芯片研磨前对芯片的正面装贴UV膜来防止打磨对芯片表面的损伤

Grinding mounting and peeling/研磨 贴膜 去膜 把较厚的芯片研膜成较薄同时使芯片间完全分离; 然后把芯片装贴在一环

膜上去掉上面贴的UV膜

Die Bond/晶片键合 在对基板进行印刷和处理后, 把晶片粘贴到基板上

Wire Bond/金线键合 在对芯片和基板间的胶粘剂处理以使其有更好的粘结性能后,用高纯金线把芯片的接口和基板的接口键

End of Line/封装后道部

Plasma Cleaning/等离子清洗 清洗芯片和基板以使其在塑封时和树脂间有更好的粘结力

Molding/塑封 用热固性树脂对元件进行封装以保护内部的芯片和金线

Post Mold Cure/塑封后处理 对元件在一定的高温下进行处理,使封装树脂完全交联,从而有更好的保护性能

Sold Ball Attach/焊接球 先在球垫上添加焊剂,然后把球放在有焊剂的球垫上,再在烘箱里回流焊接使焊球焊接在基板上

Singulation/切割成形 把基板切割成单独的元件

Burn In/烧合部

Loading/上料 把元件放到并联的测试板上

Burn In/烧合 在一定温度下检测元件有无早期的缺陷

Unloading/下料 把元件从并联的测试板上卸下

TEST/测试部

Low Temp Test/低温测试 在特定的低温和高温下测试元件功能上和参数上的性能

High Temp Test/高温测试

Mark/Scan/Park/标识/扫描/包装部

Mark/Scan/Pack/标识/扫描/包装 先通过烘烤除去封装件里面的水气, 然后检测焊球的大小, 激光标识以及包装在包装带里.

 

 

Pcm :

 pulse code moudulation 脉冲编码调制

 

DMA:

(直接内存访问(Direct Memory Access)

直接内存存取(DMA)是数字信号处理器(DSP)中用于快速数据交换的重要技术,它具有独立于CPU的后台批量数据传输能力,能够满足实时图像处理中高速数据传输要求.以TI公司的TMS320C6201 DSP芯片为例,介绍了DMA控制器的特点.结合实例,给出DMA在图像数据实时传输中的一种具体控制和实现方法.实验结果表明,通过灵活地控制DMA,不仅能够提高图像数据的传输效率,而且能够充分地发挥DSP的高速性能。

 

SPI:

SPI是串行外设接口(Serial Peripheral Interface)的缩写。SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便

 

I2S:

I2S(Inter—IC Sound)总线, 又称 集成电路内置音频总线,是飞利浦公司为数字音频设备之间的音频数据传输而制定的一种,该总线专责于音频设备之间的数据传输,广泛应用于各种。它采用了沿独立的导线传输时钟与数据信号的设计,通过将数据和分离,避免了因时差诱发的失真,为用户节省了购买抵抗音频抖动的专业设备的费用。

 

PHY:

PHY指,OSI的最底层。 一般指与外部信号接口的芯片。 PHY芯片 。小小的不起眼但又无处不在的网卡。如果在5年前,或许网卡与您无关,但在如今这网络的时代,无论是上网冲浪还是联网玩游戏,都离不开网卡,更何况,就算您,多数主板上也会为您集成一块板载网卡。所以,对于想迈入网络之门的读者而言,先认识网卡,会让您在进行各种网络应用时更得心应手。

 

PDMA
可编程直接存储器

 

FIFO存储器:

FIFO( First In First Out)简单说就是指先进先出。由于的飞速发展,新一代FIFO芯片容量越来越大,体积越来越小,价格越来越便宜。作为一种新型大规模集成电路,FIFO芯片以其灵活、方便、高效的特性,逐渐在高速、高速数据处理、高速数据传输以及多机处理系统中得到越来越广泛的应用。

FIFO是系统的缓冲环节,如果没有FIFO存储器,整个系统就不可能正常工作,它主要有几方面的功能:

1)对连续的进行缓存,防止在进机和存储操作时丢失数据;

2)数据集中起来进行进机和存储,可避免频繁的总线操作,减轻CPU的负担;

3)允许系统进行DMA操作,提高数据的传输速度。这是至关重要的一点,如果不采用DMA操作,数据传输将达不到传输要求,而且大大增加CPU的负担,无法同时完成数据的存储工作。

 

Ethernet:

以太网

 

MAC:

Media Access Control,介质访问控制

它定义了数据帧怎样在介质上进行传输。在共享同一个带宽的链路中,对连接介质的访问是“先来先服务”的。物理寻址在此处被定义,逻辑拓扑(信号通过物理拓扑的路径)也在此处被定义。线路控制、出错通知(不纠正)、帧的传递顺序和可选择的流量控制也在这一子层实现

该协议位于七层协议中,数据链路层分为上层LLC(),和下层的MAC(介质访问控制),MAC主要负责控制与连接物理层的物理介质。在发送数据的时候,MAC协议可以事先判断是否可以发送数据,如果可以发送将给数据加上一些控制信息,最终将数据以及控制信息以规定的格式发送到物理层;在接收数据的时候,MAC协议首先判断输入的信息并是否发生传输错误,如果没有错误,则去掉控制信息发送至LLC(逻辑链路控制)层。

IEEE 802标准规定MAC地址字段可采用6字节(48位)或2字节(16位)这两种中的一种。

 

 


阅读(1344) | 评论(0) | 转发(0) |
0

上一篇:认识ipk文件

下一篇:linux gcc编译过程

给主人留下些什么吧!~~