Uboot在阳初S3C2410上的移植方法

更新时间:2023-07-22 00:26:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

Uboot在阳初S3C2410上的移植方法

20 0 8年第 1期 l

仪表技术

3 2

U ot阳初 S 2 bo在 3 4的移植方法 C 1 O上朱祯祥,平安,曙光穆戴

(海理工大学光学与电子信息工程学院,海 2 0 9 )上上 003摘要:u o t个开源的面向多个目标平台且功能强大的 b ola e。首先介绍 b 0la e b0是 ot dr o ot d r以及 u o t的基本架构, 0 b0然后给出了详细的移植 u ot阳初 sc 4 0的方法。 bo到 32 1 关键词:b 0la e;b 0; 3 2 1 o t d r u ot S C 4 0 0

中图分类号:T 3 P9

文献标识码:B

文章编号:10 2 9 (o 8 l一 0 3一 3 o 6— 3 4 2 0 ) 1 O 2 O

P0 tng O r i fUbO tf r Ya g hu S 41 O 0 n c 3 C2 0ZHU h n xa g, M U Pi g a Z e—in n - n,DAIS - u n hu g a g

( 0lg fOpia a dE e t ncIfr t n E gn eig C l e0 t l n lcr i n0mai n ie rn,Unv ri fS a g a 0 ce c n e h oo y h n h i 0 0 3,Chn ) e c o 0 ies yo h n h ifrS in ea dT c n lg,S a g a 0 9 2 iaA b t a t Ub o so e k n fo e s u c d, u t l— s d a d sr n o to de s Th a e n f b o la e sr c: 0 ti n i d o p n—o r e m li e u e n to g b ol a r . p e b s me to o to d r a d u o ti n r d c d i h s p p r n b o si to u e n t i a e . Th n t e ald po t g p 0 e s o b o 0 n c u s 2 0 i h wn. e he d tie ri r c s fu o tfr Ya g h 3c 41 ss o n K e r s:b 0l a e;u o; S y wO d o t0 d r bo t 3C2 0 41

件的工具。l B ola e o t d r简介 o

22 u o t动过程 . bo启

对于计算机系统来说,开机上电到系统启动需从要一个引导过程,在嵌入式系统上,这个引导过程

通过引导程序 b o od r完成,作用类似于 P otae来 l其 C上的B1 0S。

开发板上电后,行 u B o的第一条指令,后执 . ot然顺序执行 u B o启动函数, . ot函数调用顺序如图 l所示。整个启动过程由 s r s和 b ad c程序完成。 tf a. 0r.

常见的 bol dr动方式有如下几种: 1网络 ot a e启 o ()

启动; 2磁盘启动; 3 Fah启动。其中,多数嵌 () ( ) ls大入式开发板上都采用 f s启动方式。 1h a 目前在嵌入式系统中主流的 b o od r ot ae主要有 v— 1 i v和 u ot本文采用 u ot i b o, b 0。 2 U 0t b o源码结构及启动过程21 U ot码结构 . bo源

图 1 UB o — o t启动函数调用顺序

u ot一个执行的程序是/ p/ r 9 0/t ts b0第 cu am 2 ts r。,a .该程序首先复位启动子程序,置 c u为 s c 2模设 P V3式,后调用 cu i一 r然 p _n ci t函数,着执行 rl a接 eo t c e函

B ad目标板相关文件,要包含 S R M、 ah 0r 主 D A n s驱动;

c m n独立于处理器体系结构的通用代码, o mo如内存大小探测与故障检测;C u与处理器相关的文件; p

数重定位 u o t R M, b o到 A初始化堆栈空间,后跳转到最一

s a兀 t

am 0t ) r b 0(。其中 rl a e ct o e函数把 u 0t f s bo从 1 h asr tt a—

拷贝到 R M中, A其关键代码如下:a rr d o,一一

D i r通用设备驱动, n s动; re v如 ah驱Ic d u ot n l e b o的头文件,含与目标板相关的配 u包

/ r代码当前位置/o是 B s/r A E/l是 u ot放在 R b 0存 AM中的代码区地址,

l rr d l, TExT

置文件,移植中经常需要修改;Lh i—

为 O 3 F OH x 3 o 00 o

am与 AR处理器体系结构相关的文件; r M

c pm,r m 1b q sa x e tc—

/比较是否相等//相等则跳过重定位代码,行初始化堆栈/执

stp e u

T os用于创建 u ot—

E 0 D和 BN镜像文 0l b o sR c R I一

sa tn

am ot ) r b o(函数在/i— r/ or . 1 am b ad c程序中 h

收稿日期:2 0 0 o 8— 7

作者简介:朱祯祥 (9 5 )男,士研究生,要从事嵌入式控制系统的研究。 18一,硕主

Uboot在阳初S3C2410上的移植方法

2 4

仪表技术

20 0 8年第 1期 1

定义, c语言函数完成系统初始化工作,入主循该进环,处理用户输入的命令。3 u 0 t移植方法 b0的

u 0t代码是开源的,们可以从 ht:/ . b o源我 t/ u p

b o sucfr . e下载到 u ot代码。本文使用 ot o re g n£ . 0e/ bo源的版本是 u ot ..。u 0t .. b o—11 6 b o一11 6支持 s K 4 O MD 2 l

开发板,阳初 sc4 0开发板很类似,以以和 32 1所S D 2l M K 4 0为基础进行移植。p c平台采用 rd a eht 90, .2交叉编译工具是 ar l u—c .。 li xg c 2 r—n T 3移植 u ot bo的基本步骤如下: ( )在顶层 Mae 1 1 k矗e中为开发板添加新的配置选项,与开发板无关的配置选项删除。将在 S D 21 M K 4 0配置选项下面添加如下两行:y2 c 4l c g: un n 0 on co g一

图 2 C p— U y me函数执行过程Na n n—

r. _ (函数在{ s. eul ) d l 1 h c中定义, a流程图如raj1u s n de‘ b fu s e n t一d ri i ) ed ( n i e h r u, n dl gs a d, t z g d n 0 n se

图 3所示。n n—e 0 l ) a n ra _l函数声明如下: (i t na n加~

@ . mk 0¥(: en g=)a la 2 t 2 l u L s c 4 0/ cn g@一o n m9 O 4 O N L 3 2 x 1 r

( )在/ 0r 2 bad下新建文件夹 y2 l,/ or/ c4 0从 b ad

S K 4 0中复制如下文件到 y20: MD 2 l c1/ 0 r/ M DK2 l/ 0 ng m k b ad S 4 O cn . / o r/S DK2 O n s c b ad M 41/ a h / o r/S DK2 O s k 41 c b ad M 41/ md

2 O / o r/S D K 41/ a e e b ad M 2 O M k l/ 0 r/ M DK2 lwlv 1 i i. b ad S 4 O/ o e e n t S l一

/ 0 r/ M DK2 l u h o .d b ad S 4 0/ - o t 1 s

将 s d2 1. m k 4 0 c改名为 y2 1 .。在 Ma e l c4 0 c k fe的 iC B S中增加 y2 l . O J c4 0 c的编译输出文件 y2 l .。 c4 0 oCOB S:=v 2 O 0 fa h 0 s k 4 O J c 41 ls . md 2 l 0

在 ic d/ s n l e∞n g中复制 s d 2 l . u m k 4 0 h为 y2 1 . c4 0h。图 3 a 0 r a一 ()数执行过程 n一e u儿函

( ) N n— ah启动移植。Fah芯片分为 nf 3 an n s ls o—

其中, s r s中, b f应的实参是 T,值为一在 tt a. u对{其 )T ExT BAsE, t兀 sa—

ns ah和 n n— ah n r 1s以直接被 c u读写, a n n s,0_ ah可』 P但是其价格较高,ao f s nn—l h不能直接被 c u读写,子 a P板上电后自动将前 4 K数据读到 00处,以一些最基本 x所

ad对应的实参是 r,值为 O o dr l其 x,

s e对应的实参是 r, i z 2其值为 O 2 0 0 18。 x0 0 ( 2 K)注意, a廿 n s N n一 ah的分块大小为 5 2 y,制 1K Bt复 e数据的时候以分块为单位。

的初始化工作我们必须在前 4 K程序中完成。 在 s d2 1 m k4 0的 s r s中,e ct(函数将 nr tt a. rl a ) o e o—ns ah的数据复制到 R M, nn—ls A而 a Q f h的启动方式和 an0r—

( )N n一 ah驱动移植。在 u ot .., 4 a( ns 1 b o一116中 已自带了 n n— ah的驱动,程序已定义了 c G— an ns若 FNAND—

ns ah不一样,因此需要重新修改 s r s进行代码 tt a.将 cp_o p函数注释掉,加如下代码: o ylo I增# fe i fCONF G S 2 O NAND BO0T d I 3C 41——

L G C宏,系统调用 nn _eay c里的 E AY则 ao l c. gl

重定位。

n n1i t )故在 y2 l . a( n

(, _ i c4 0 h中定义该宏:EGACY # e n G N AND L d 6 e CF—

在 y2 l . c 4 0 h中,消 C N 一 O取 O F C MMA D (里 N S )对 C G C— A D的注释。 F— MD N N

b o y lc p—

m e

#n i e df

/ C0NF C S 241 NAND BO0T{/ I 3C O———

在 n n _eay c中添加所需的命令接口,加的 a 0 l c. g添代码主要来自于 u—B 0 O T中其他的板子 ( or/ p/ bad m l v m 9。然后在 y2 l . c a) c 4 0 h中添加这些命令接口的宏定义。以 N— i B为例, y2 l . F wa R t在 c4 0 h中添加如下宏定义:# e e NAND d n W AI RE T ADY( a d nn ) NF W at iRB()

co y p—

me函数复位 n n一 ah芯片,定位代码 a0 n s重

并检验前 4 K代码的正确性,流程图如图 2所示。其 其中, a0 n s N n一 ah的前 4 K数据自动读到 0 0所以程序 x,只需检查从 0 0开始的 4 x K数据和从 0 3 F 0 0 x 3 8 0 0开始

的4 K数据是否一致。

Uboot在阳初S3C2410上的移植方法

20 o 8年第 l期 l这样,一个命令便添加完成。

仪表技术 e v pr; n— t)

. 5. 2

在 icu e l u/ t/ a d is h中,力阳初 n ld/i x m d n n— d . n增Ⅱ

5 )在 y2 1 . c4 0 h中添加环境变量的地址及大小:# e n F E d n e C G NV I I NA S N ND————

sc4 0的 N n 1s 32 l a dFah芯片型号,如下结构体赋值对进行修改:sai t c a dⅡa h d v n n n s tt s兀ltn n c s e a d an一—

l O 1 0 0}T tI i fE vr n n S co/ x 00/ oa Sz 0 n i0 me t e tr e

# e e C G ENV S Z d n F IE—

# en G E V d ecF N———

O FE F sT

0 2 00}在 nn一 ah 0 2 0 0 x0 0/ a订n s的 x0 0处/

is]={ d[

{ s ms“ 9 1 0 u c N D MF— AMs N O 7,2 0,” a u g K F 2 8 O”, AN— R s u

G, x 6 6, 4 O 4 o O}, x o 0,,{ NULL.}

至此,个移植过程完毕。整个过程用到的内存整地址空间分配如表 1所示。表 1O O O OO O OO O 0 x O 0 O O— x O O 4 O O3 F0 0 0 3 F O0 x 3 O O O~ x 3 O 8 O0 3 8 O O一0x 4 O 0 O x 3F O 0 3O 0 O Na ( n】一

( )使用 sve v使得环境变量保存在 N N 5 aen A D F A H中不丢失。因为定义了 c G— A D— E A Ls F N N LG—

SR M前4 D A K堆栈 3 K 2 ns ah复制到 R AM的前 l 8 2K一

c因此主要修改 sve v中对 n n Y, aen a d的读写函数为Ox E 0 O 0 4 0 O O

Na口 n

n n _e ay的读写函数,改 cmm n e v n n . ao l c g修 o o/ n— a d c如下:

ns a h控制器基地址

在终端里依次执行 mae y2 1一 o f, a e k c4 0 cni m k, gsve v即可得到正确的引导信息。 ae n,4结束语 ——

1在程序开始处添加函数声明及数组定义: )i tn n lg n a d a y—

eae s t a d c i rs ( t n— hp mc n

n n,s e f,s e t a d i—t s i— z o z

l it la ) e n en; n, ce t m tu tn n x e sr c a d c i n n hp a d

dv e

d s cFG ec

M Ax

NAND

DE—

Vc; IE]n n i f tn n i f cF a d n0 a d nn G M Ax NA ND—一————

u ot移植是嵌入式软件开发的重要的一环, bo的D Vc; E IEj

本文提出了基于 sc4 0的 u ot植方法,阳初 32 1 bo移在s c4 0开发板上成功移植,有一定的通用性,对 32 1具且

2 )将 i nn— r e&n n—n0 0,c G E V一 f ad ea ( a d if[] F— N ( s0FF sET, CFG ENV——

Sz ) IE)替换成 i( a d lgc—— f n n—eay e

于使用相近开发板进行 b o od r植的读者来说具 ot ae移 l有较高的参考价值。参考文献:[]孙

纪坤,小全 .入式 Lnx系统开发技术详解——基于 1张嵌 iuA M[ .京:民邮电出版社,0 6 R M]北人 20 . []李亚峰,文盛 . R嵌入式 Ln x系统开发从入门到精 2欧 AM i u通[ .京: M]北清华大学出版社,o 7 20. []孙天泽,文菊,海峰 .人式设计及 Ln x动开发指 3袁张嵌 i驱 u南——基于 A M R 9处理器[ .京:子工业出版社, M]北电2 05. 0

rs ( a d e— e c+0,C G—E ae n n—d v d s F NV一0F S F ET,CF G—ENV—

SZ 0)) I E,;

3将 rt ad wi ( ad if[] F ) e=nn~ re&nn— no 0,c G— tENV一

0 FE F S T,& oa,(— h r ) n— t)替换成 tt l u ca e v pr;——

r t= n n l g c r n n— e— e c+0,0 0 x 2, e a d e a y w( a d d v d s x0l 0 0CFG ENV OF ET,CFG ENV FS———

SZ I E,&tt1 u c a oa,(— h r

水) n— t) e vpr;

4 )将 rt a d ra ( n n—n0 0,c G E V e=n n—ed& a d if[] F— N—

O F E& oa,(— hr ) n— t)替换成 rt F S T, tt l u ca e v pr; e=——

n n lg c a d eay一

r ( ad dv d s 0, x 10 0, F— w n n— e— ec+ 0 0 x 2 C G l—

[]王敏敏 .—0 TF R阳初 2 1 23 z . o7 4 uB 0 0 4 0v -[]2 0 .

ENV 0FFS ET, CF G

ENV

SZ I E,&ttl u c a 0a,(— h r木)

(许雪军编发 )

(上接第 2 2页 ) GR P s模块与控制器间是通过串行口进行通信的,通信的协议是 A T命令集。5总结

( )语音通话自动报警。 3 参考文献:[]陈乾宗 .P G基本系统编码分析与实现[ .江大学, 1 JE D]浙2 04. 0

本论文主要任务包括总体设计、理图设计、片原芯选型、熟悉并掌握了硬件的设计和调试方法,以及如何在嵌入式 Ln x台下进行嵌入式系统软件的开发全 iu平

[

]文志成 . P s网络技术[ .子工业出版社,0 5 2 GR M]电 20 . []于俭明,向阳,汉 . iu 3陈方 Ln x程序设计权威指南[ .械 M]机工业出版社, 0 1 20 .

过程,设计的无线传输部分和嵌入式系统软件。 论文系统设计的难点和创新点包括:( )基于 s P邮件服务器的邮件传输; 1 MT

[ 4]Jrm eta陈向群,译 .入式系统 we ee y B nhm,等嵌 b服务一T P I en M]机械工业出版社,0 4 c/PL a[ . 20 .

[]Kes . MT ev eE t s n, e okMaae n s 5 l i J s Psri xe i sN t r ngmet— nn c no w A sc tsz . F 16, c,95 0i e[] R c 89 I .19 . a n

( )短信息触发, 2实现远程自动短消息控制;

(郁菁编发 )

本文来源:https://www.bwwdw.com/article/uxcm.html

Top