TA的每日心情 | 怒 2019-11-20 15:22 |
|---|
签到天数: 2 天 [LV.1]初来乍到
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
+ B F" t, X( l: e+ h/ B3 [1 o一.u-boot移植准备工作
6 Z" e8 W$ p( U' I+ F& F" E; o b
1.1 移植环境介绍
0 S: Q4 q- R) g. p% d2 h
0 D2 C; M2 h8 e* X+ B. L8 @: b5 EU-boot版本:u-boot 2010-6
, p9 O, w0 E8 o. H0 L" O; w/ e( o, P. l5 A2 {
Linux平台:虚拟机下fedora 13
/ ?; I7 a( g7 C
) a; J! @4 c7 i# y" D交叉编译工具:gcc-4.4.3* q6 O v) B6 `* f' m0 N) V
4 r: [$ L6 j0 E! x6 [9 mARM开发板:mini2440(CPU:S3C2440 ,SDRAM:64M,Nor Flash:2M,Nand Flash:256M,网卡:DM9000EP)$ y. a8 l# g8 l3 q0 v$ I, M
% V' _ j k7 j5 ^; Y9 s4 A
1.2 删减u-boot文件3 g. S) [8 |) u9 k9 x7 p
3 t8 [0 ^7 f. u/ ?删除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文件以外的所有头文件。& g- ?. M! W% D; @2 L3 |# D
+ u0 d# p* ?/ Y) y, ~/ e % s. L' o( l* b3 ]/ G* P
6 _ I- X9 ^' |6 G1.3 修改顶层Makefile文件
) v+ E3 R7 {1 I4 r. C) k9 N _
! O/ K+ V( d3 h% @; A+ X) @( a+ x# set default to nothing for native builds
7 l; G: ^" {9 X2 E4 ?# w
, u1 s- c) L& G0 f4 y% R: Sifeq ($(HOSTARCH),$(ARCH))
4 {1 Z9 q" z; _) ^4 Y/ A0 h* Q) q- t* ^
#CROSS_COMPILE ?=# `, E) e3 d: r9 O5 X2 A; i
# S4 |3 b B; V% m6 b' j+ _, |#=========指定交叉编译工具========$ M+ Z& C0 }3 r6 [( h
b3 P% F1 i5 ~
CROSS_COMPILE ?= arm-linux-gcc 8 X h1 o9 `! S
5 g4 g: y1 ^! x+ X, g! o' [Endif; c4 g) z" N% f- \: |2 ^
# C+ H; ]3 b/ |8 {1 E , i [0 G7 X( R
" P. R: ]. ^/ |3 o+ h0 K
smdk2410_config : unconfig
: C F6 T+ ?: X
5 C% W, r: D" Y( d9 o- o) d @$(MKCONFIG) $(@:_config=) arm arm920t smdk2410 samsung s3c24x07 n. d' j* X% O" H/ o; K
# U; }5 J6 D# ~. c# K$ m0 }#仿照smdk2410,配置自己的开发板
3 e5 n' Q1 q6 J( [6 X1 t& {, ]0 i: Y0 @" f
mini2440_config : unconfig5 B4 j, D; Q6 V2 \6 u8 m
; H5 }$ W" u% y0 k' ?) e: M @$(MKCONFIG) $(@:_config=) arm arm920t mini2440 s3c24x0# p" A$ s+ Z- Q8 G$ |- ?/ D+ |
0 u" [8 @( t. h/ u0 j" \8 R
( a; ]+ U2 u+ S" x A. p+ J
4 s% D- n9 o8 T! s开发板配置选项中各项的含义如下:
, g6 k" t# {. f( \' J4 ]% v
. g. _+ j% S Aarm
8 \, P5 b( l( t9 |8 O' k$ g1 e$ w8 M, \6 h
CPU 的类型(CPU)
) e, }# T" k' N0 N) J; \" D/ p# c: Y* \) G0 N4 z
arm920t D8 j* x) l9 V8 o; j v
% [8 ]) h; ~6 [其对应于cpu/arm920t 子目录9 g% J. v8 p! X
! _, {, Q0 N& O4 t3 Lzcrarm' m3 g+ @9 e# F4 a, J
V4 ^% O: i' _开发者/或经销商(vender),对应于board/zcrarm目录
% J% E2 P5 ~9 V$ S& R1 o# T9 c7 o4 H9 K. j: x; @
mini2440
7 |! [; U% b' t3 F+ Q: }) _
6 d+ R: D2 i0 b! X1 @) t开发板的型号(BOARD),对应于board/ zcrarm /mini2440 目录
/ s: X9 V& g0 T% B# y. q$ a5 w! ]! a: D5 a
s3c24x0; H; }6 |1 ]# x3 {7 f$ _" x9 V" c
6 g" |" A- Y9 O
片上系统(SOC)定义5 F# s5 _ x9 l" g+ [
7 X# I# n: U- b0 D& K% k
! d0 |3 V2 t/ I X( w9 Q, u: z) U s& i$ m" b+ J# y. p" j
1.4 在/board 中建立mini2440 目录和文件0 m1 M' ]5 O$ }( B0 T8 u, J
! t5 e. J/ X0 |$ ]5 q/ v
#cd board) F; ]2 U- f0 K9 w7 W3 @! M
7 b0 T6 ~2 |9 d2 D* j
#mkdir -p mini2440
* _% W, o L; A$ C( f# w/ Q* ?' A# N$ ~* A$ {/ h% G
#cp -aRF samsung/smdk2410/* samsung/mini2440/
7 W5 J) z' T2 j5 ^% `, v+ W1 `* ^9 y# w: h2 ~
#cd mini2440/
8 Q. N4 g# y) k$ f" {( o2 e' Q' ]% r3 T% W
#mv smdk2410.c mini2440.c: R6 r, D& R$ U7 G1 q- {
9 y& o8 X! C. _' m9 _3 g6 G
+ R5 t9 \& A3 I+ G: l" l
- a1 e/ G4 a2 E& r; s1.5 修改mini2440 目录下的Makefile文件
. G+ Q; ~9 V9 }' l2 u2 x" H
0 A7 G$ e8 A& D$ TLIB = $(obj)lib$(BOARD).a
2 I1 {" e# G! ` n4 |! q( Q8 u- R2 e7 u6 o/ [* x! ~& }
#COBJS := sbc2410x.o flash.o8 E8 | j( L: b
! ]- A: |6 q( U! E. BCOBJS := mini2440.o flash.o+ L- o1 s& y! p- |& V% Y
5 N) f, r/ ?& u3 k3 ]SOBJS := lowlevel_init.o
, F- r, L s; M5 }, _$ l# P' i, h; H! T4 G, H3 P& b) v; c
SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c)
6 x4 n) e. G2 h' S0 _
4 |! I7 r" X! H2 a" @' G
0 h6 q" n8 S8 U" i& h* O
, w& W- k6 f% H1.6 在include/configs/中建立开发板配置文件
+ t/ |$ {% w: j5 R
+ ~5 l2 u, A" T8 q#cp include/configs/smdk2410.h include/configs/mini2440.h$ L$ ?4 T! i( f: B9 e" y3 O8 o
- m k4 l5 t- U8 Q( Z$ X! h
, l8 }8 |3 @3 Z# b% c. A' r! h, E9 y" P/ U3 i. [' w: r. y
1.7 测试编译环境(此问题在以前移植u-boot时出现)( r& g9 _( o( t% ]7 f% Q' |
+ U8 o0 |5 f3 _0 }7 c( d1 K2 G
至此,最基本的配置已经完成。" m8 ]# r/ q; Y, K
5 u! X+ ]+ b9 a, i7 t u
[root@angel u-boot-2009.11]# make mini2440_config7 B1 o) U" f! b: ]
/ k% k& Y8 ~' YConfiguring for mini2440 board...
( a9 I: B$ E. c! z: e5 L
; p- M* N, B8 P& ?, b# Jln: 创建符号链接 “asm”: 不支持的操作
4 V. q5 x8 W' |- x9 L5 c9 o, r
' M2 F' F3 ]! b; u) wmake: *** [mini2440_config] 错误 1' I+ C5 ^6 i. H5 |
& J7 B( G! V# K6 e2 m/ @ x出现错误了,会是什么原因呢?测试一下U-boot本身附带的配置:
0 x; X! f" F5 _ R! S
: \! o+ a* l) F- ?! J0 o' ?[root@angel u-boot-2009.11]# make smdk2410_config$ y5 n- O$ g" J. G
' l1 h. R+ C) Z' B. [Configuring for smdk2410 board...
# T4 s# O( G+ z9 f. X. r! i! V0 |; a& w" q
ln: 创建符号链接 “asm”: 不支持的操作5 x9 [& Q6 u7 x% u' H n2 q, o7 ^: X8 t
, A/ i9 O+ m- x% V# mmake: *** [smdk2410_config] 错误 1+ g" a3 ^: R/ T! d% F5 p- |( O. Z
3 z; h2 c0 q$ Q8 s% h$ Y依然是这个错误,于是猜测错误原因不是在自己的配置上,上网查了下,发现错误原因是:在Windows分区使用此命令,Windows分区不支持linux上的链接。
# s: Y3 s: ~3 l& j6 c) C: e, J# O G
恍然大悟啊,自己把U-boot解压在虚拟机的共享文件夹下了,修改文件夹路径,编译……OK.
* I2 J9 m0 i/ w& H. r6 ?; h! K9 I# N9 v
/ }& F w/ B3 D# z& E今天先写这么多,待会继续整理........ |
|