|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
PC主机:Ubuntu 10.4 和redhat 9.0/ ^9 h/ P, I5 K2 p4 q7 \; `
- q& `; t+ L; ?3 X# B0 a8 ^
目标板:TQ2440开发板,linux内核2.6.30
5 o! ~8 A* [6 j+ ~( W9 q. Q3 N0 ~- L9 _% Y( E; v5 ?+ r5 L$ X
$ d/ }& q; ^8 @8 e7 o+ N- Z
本文将简单记录烧写内核镜像和yaffs文件系统的步骤。
8 _# M. e. |+ V7 k& H9 C7 `. Y' r( a
* s3 C1 {3 w+ z. T本文假设你已经编译好内核,yaffs2已经制作好,同时Uboot中已经支持yaffs2。" q: Y) f) @! ^
2 I: B9 J6 O. d) Y在开始烧写之前,PC平台必须开启TFTP服务。0 \5 h/ g, z3 v1 b; E
: e; y* \# W2 D4 ]& S* N& h3 }9 K
1. 烧写内核 s2 }# t- V% g0 o
. L7 l4 B7 i4 l
首先来看下我的分区表:3 [8 N8 ~) j. j* s0 _+ k
1 g. e( N m8 V) v/ [7 W/ {9 q0x000000000000-0x000000040000 : "Uboot"
! ^1 n5 O' R, ?& N' M. e7 l" x& E0x000000200000-0x000000500000 : "Kernel"+ S3 P2 w p, ^. B( f
0x000000500000-0x000010000000 : "filesystem"" E! d# Q* m6 [5 g7 p: L, _ Z
% M& U5 J7 O* E6 h3 n. n0 a2 N
nand大小为256MB。
- Q9 N# l& k( t* h ?: F" A
$ n; U+ B7 |( \其次我的SDRAM地址是:0x30000000-0x34000000(64M)
0 E: p( w. p1 W) _
# d# Y$ p: ^' Y! c: n1 f在Uboot中执行如下命令:8 {( {: |% o! t& _ T
3 }7 W2 h8 A3 {- Z
tftp 0x31000000 zImage30.bin //通过tftp,将PC中的zImage30.bin下载到SDRAM的0x31000000处
1 j: m$ @) z# f; P3 @1 o/ ]6 Q( Q4 {/ I4 h
nand erase 0x200000 0x300000 //擦除nand,起始地址为0x200000,大小0x300000(3MB)
# X! W* \2 s# w; E: ^& I
2 f% y7 J9 ~9 q! G* @, Mnand write 0x310000000 0x200000 0x300000 //写入nand,将0X31000000开始的0X300000字节数据写入nand的0X200000处。8 p3 s# C- r3 c# t) G8 {
1 y/ l% A& v7 N1 S& [' b7 D
' X6 q9 j& f( { j
7 ~# V% q* g5 r; H4 l% Y5 g2. 烧写yaffs2文件系统4 [. a5 ]8 m+ H1 _( d0 D3 C
9 c5 R- ]8 z6 ]9 ?( H, ]8 g. Q7 Y
tftp 0x31000000 yaffs2.bin
7 Z' m! b: T/ |/ Y% T8 @/ I
" u' a/ e1 N; M' Y会有如下输出:" H ^2 {- y$ D6 O s3 E2 C
0 P8 i# L4 k# |' o. q- V1 O6 A
+ T' {( b) N" k/ ~dm9000 i/o: 0x20000300, id: 0x90000a46
6 q! z& S G7 h0 uMAC: 0a:1b:2c:3d:4e:5f6 x, f7 b' ^! L3 y% _7 t& N# ~
TFTP from server 192.168.1.103; our IP address is 192.168.1.6. H3 l! L" J0 B: u5 F3 H
Filename 'yaffs2.bin'.
4 b1 U1 |8 }0 M- E1 X9 A( L9 kLoad address: 0x31000000: _& J5 i. [, T- r( R
Loading: T #################################################################% R; ^" |! S1 S8 c& Z
#################################################################: {/ u! }$ P4 A' ~7 x6 e
#################################################################
9 o& j# ^, Z+ L# } #################################################################2 |6 W2 E9 @- `% ]( X
#################################################################- |+ c+ |. |% f& R
#################################################################3 n* H; c% n3 l' g
#################################################################
: k/ g7 P$ [' \: n1 I #################################################################; H7 \- j- A a2 }! U
#################################################################
& n) d F& Z! h' g0 V+ I D6 W #################################################################4 C5 w; l( `! O' D* L1 o) V
#################################################################1 r/ {7 V$ o3 T6 C, Q# n: n4 c% a
#################################################################+ q ?- J( n3 R7 B* q3 P/ e. b
#######################################, A! ]* \4 V. H* o3 ?5 M
done
1 @1 H$ |, q6 |1 o ^Bytes transferred = 11956032 (b66f40 hex)1 |# D" n4 H7 j$ P. Z2 [! s5 I8 ]
3 M" d- H' f; y5 T
nand erase 0x500000 0x0FB00000 //擦除文件系统所在的整个分区,即filesystem分区
, L# D4 u* x$ S/ r; Vnand write.yaffs 0x31000000 0x500000 0xb66f40 //这里烧写的字节数,即b66f40,为上面提示的传输字节数
+ x' U0 a! J. a/ N1 q! H) w" N6 a& t3 {: ^9 d M
0 E. g) ?& K! a$ x$ e! {: F1 z0 P
|
|