EDA365电子论坛网

标题: u-boot-2010-06在mini2440上的移植 [打印本页]

作者: mutougeda    时间: 2020-9-21 11:15
标题: u-boot-2010-06在mini2440上的移植
  L; U$ }& C$ {  w% j9 I6 g
一.u-boot移植准备工作. ~/ ^" }! b- e, d  _" i7 I

8 I5 b4 s) `% ]1.1 移植环境介绍' D; p' n0 o+ V% _% {
* |* I1 y$ ~+ ], X2 z0 K
U-boot版本:u-boot 2010-6
1 h; m5 k7 L1 `+ e! ?) d9 Z
# s( s9 `/ H0 n+ W1 `' I8 gLinux平台:虚拟机下fedora 13
+ B: {1 g  f: [4 h3 T) F% j$ K0 O( ~) Q9 N% Q# U% e: w2 b' y
交叉编译工具:gcc-4.4.3+ ~" L' [* E$ S3 P, X/ I9 M, U4 T

& _: p- [( l  _% q! Earm开发板:mini2440(CPU:S3C2440 ,SDRAM:64M,Nor Flash:2M,Nand Flash:256M,网卡:DM9000EP)
% c& p# F4 \/ y5 R4 @
/ W7 z5 y" [9 y/ c& z8 z1.2 删减u-boot文件0 M5 j$ N& R) T/ Z

$ H) m$ y+ r2 I+ w8 T3 N+ O删除arch目录下除arm目录以外的所有目录,arm/cpu目录下除arm920tmulu以外的所有目录,arch/arm/cpu/arm920t录下除s3c24x0目录以外的所有目录(该目录下的文件不要删),arch/arm/include/asm目录下除arch‐s3c24x0目录以外的所有arch‐xxxx目录(该目录下的文件不要删) 删除board目录下除samsung目录以外的所有目录,board/samsung目录下除smdk2410目录以外的所有目录 删除include/configs目录下除smdk2410.h文件以外的所有头文件。+ J3 U3 J" E! H6 `  _
2 [9 y2 j7 B" A' \3 T$ C% x9 c

! s: U8 ~- \8 Q+ q& N$ i: H! B  L0 \8 ~6 w
1.3 修改顶层Makefile文件
( K4 w: z4 ^9 X! l# N; B2 f. a- v5 H2 q& J/ i: `
# set default to nothing for native builds
. w8 q3 ^% y8 r/ z5 U3 I
0 t2 ]0 I& t7 H! _. Xifeq ($(HOSTARCH),$(ARCH))  Z& E4 ]6 p6 K% O

. p1 T# q0 R1 J( r/ m#CROSS_COMPILE ?=
% B$ n0 s, V! ]: z2 c" z5 u* M- R& [* }1 u7 D# D8 F6 O2 S% Y- V
#=========指定交叉编译工具========% ~8 y, i9 S  k/ b
8 f  N( \0 Y' e& Z4 w
CROSS_COMPILE ?= arm-linux-gcc
; l% T9 C( S9 j0 L  v* T. Q! ?" x. v. c; _+ p  R9 S
Endif$ z" y+ v6 p' F! m$ ?3 r

% l2 E) V) B6 f& J1 c# W
8 T" o; x8 C7 L
1 O/ g6 p0 j+ H3 N- lsmdk2410_config   :      unconfig; A5 e$ t8 G' I3 @$ c: @

! K" T% ^% _$ p  Z5 [; Q$ F       @$(MKCONFIG) $(@:_config=) arm arm920t smdk2410 samsung s3c24x0* q# T: O+ g5 B& g" a4 e, s

8 R2 Z. W2 I( C  h3 ^, Z9 f' N4 R#仿照smdk2410,配置自己的开发板. d% z6 A( M8 R5 c2 E; f
( Z" [4 i; _2 f6 p, N
mini2440_config   :      unconfig% i" D7 o0 t' A: X
" d' P; I/ O2 Y' B* ^# X
       @$(MKCONFIG) $(@:_config=) arm arm920t mini2440 s3c24x0
0 q" o2 m$ ]6 m) v* k: k" A( i
6 a+ o+ }* {6 \- u  \- K: h, \, N; h8 A " ]/ @6 ^8 g0 ]; x

" M/ }7 z* Z/ n7 w, ?开发板配置选项中各项的含义如下:
9 ^; [6 l, i( d+ X: H$ W6 p" F$ c
; @, T4 n% f8 w/ C6 _arm
* \8 O1 a. @  m) {- E
! \) ?7 h9 R- |9 hCPU 的类型(CPU)6 Y$ L0 b% L) N% n+ \9 F% W# ^
) z( S' `$ j+ h! k
arm920t
5 T0 Z* P0 a  V# M, N
$ v$ A7 S4 v2 @4 p其对应于cpu/arm920t 子目录
0 Q) {% B, D3 A3 {" p' i4 w1 g3 B% H% U! U6 S3 R
zcrarm0 q# J6 t& e; a4 U% d
+ J3 Z* C; a# O
开发者/或经销商(vender),对应于board/zcrarm目录5 o( l& k6 c& ~( b, `+ `  h- T; Y$ ?
7 B- _8 S: V" l$ E
mini2440
. u) S8 [& q* p4 c* ^
1 t: ^- `5 ]6 v开发板的型号(BOARD),对应于board/ zcrarm /mini2440 目录( N1 n/ E6 d) m0 R, k
$ o" w, h1 ^$ G6 P' y! P
s3c24x0
5 h- _1 X+ Z) J& N! k5 p3 c/ O  r1 t' u
片上系统(SOC)定义3 w" `2 E2 R, Q3 j* R! a! H: n% }
& n7 b" R1 p# G3 f& h
( W; `3 |6 r* r
! m5 b. ?6 x$ e5 R" Z
1.4 在/board 中建立mini2440 目录和文件
7 q$ J( W# T7 X4 E5 \9 B8 J: k) f* N* L
#cd board
2 N* b7 d! t6 G- g8 p; p, Z8 x4 h$ j" M9 ?9 _
#mkdir -p mini2440
) B( w4 U, `7 s1 ?
  E" t4 ^! R+ ?#cp -arf  samsung/smdk2410/* samsung/mini2440/
+ T; S7 w0 P. W2 y9 _
. j0 G  C) U% \/ z/ a8 W' P) E- X$ [#cd mini2440/9 D! e5 f# g- m3 F  \+ R

8 A/ F  Y; a& a  r: ~; a#mv smdk2410.c mini2440.c2 M% ^2 G+ a, R+ A$ G( g# u" J
5 F0 V& U+ F  M5 l2 c. k. S  ]
. f( [3 q' @1 g
/ Y+ X$ z7 Z+ _# J( X' D
1.5 修改mini2440 目录下的Makefile文件
6 D/ }+ V4 l9 l4 s( u9 J/ w+ ^- z0 ^7 N% A; @" u2 Z  u
LIB = $(obj)lib$(BOARD).a: J5 ?6 h1 t" z- m  N, R0 Q! p

! c9 d: }4 y9 {5 S7 f& J#COBJS := sbc2410x.o flash.o
+ z7 [. j' C# u  ~0 p6 R2 W
  E. I; T5 U) u7 ECOBJS := mini2440.o flash.o
" y2 M- L* g  @
5 ]3 S9 n; z$ x4 CSOBJS := lowlevel_init.o
2 l6 Z( z- c4 E+ r; p- |+ A8 e: X) B5 Z7 d
SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c)3 `8 N! V& X2 \2 k

" y" [  E* l- l. Z7 b
7 E. Z  G$ o2 W/ s: }! P) ]# ]+ b. r* j$ I8 \
1.6 在include/configs/中建立开发板配置文件
; D  L: D6 O) T0 q2 v  K: R" ^6 s6 v/ \+ Y8 y$ x
#cp include/configs/smdk2410.h include/configs/mini2440.h# v' f( Q7 k' A

' Q9 ^! B: b/ D! V3 J/ l: _
+ H9 S$ B9 h8 M7 Y9 W2 W3 v6 v& x( e( N
1.7 测试编译环境(此问题在以前移植u-boot时出现)
/ X( `( q* r7 t0 |$ C1 }& U5 J  R) ~
至此,最基本的配置已经完成。" j* {, E  b  r: G" _! \

1 i, M' ?" q5 n[root@angel u-boot-2009.11]# make mini2440_config/ J4 T  _9 C/ I; D
8 L# |) j, `' ?% M
Configuring for mini2440 board...0 o+ Q7 E  |0 [9 S0 Y+ k

' u8 N0 }9 V# N; u, Iln: 创建符号链接 “asm”: 不支持的操作
5 x3 P# p7 r* ]6 B
4 D+ f1 q0 H: m6 emake: *** [mini2440_config] 错误 10 G" k* `! L( n
) N3 t. u0 L  V2 Z& R% E
出现错误了,会是什么原因呢?测试一下U-boot本身附带的配置:; k& d& W9 x0 }( h, t8 }8 B0 {

) g# R- _2 n% p  m/ H  U+ U- ]% X[root@angel u-boot-2009.11]# make smdk2410_config5 I5 r( n5 O8 k, ^  J+ D" X  D: W$ B
) q/ T4 {' v2 v; q: r7 Z
Configuring for smdk2410 board...' L/ E6 S5 n5 D4 O# _
3 S5 h! C1 I4 F# h/ g
ln: 创建符号链接 “asm”: 不支持的操作3 N+ }& |. V! Z/ Q

7 n$ y1 [$ H% f6 I4 r3 Y1 r9 W( b2 Emake: *** [smdk2410_config] 错误 1
7 b, h" e4 b* `5 S( y7 t+ `( V3 Z" I: Z  F4 [- o) R0 [
依然是这个错误,于是猜测错误原因不是在自己的配置上,上网查了下,发现错误原因是:在Windows分区使用此命令,Windows分区不支持linux上的链接。
0 L0 p* r6 C9 g: j6 I, \5 V5 P) m8 W# \
恍然大悟啊,自己把U-boot解压在虚拟机的共享文件夹下了,修改文件夹路径,编译……OK.
. F1 \8 _  M3 c
1 ?2 e& Q' L) k" s, O4 d
6 b. I# M3 w9 L3 B# o今天先写这么多,待会继续整理........
作者: yin123    时间: 2020-9-21 13:19
u-boot-2010-06在mini2440上的移植




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2