|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
PC主机:Ubuntu 10.4 和redhat 9.0; w# J/ q) K- r; [# K4 K/ Q6 |6 X
( O2 D3 Q* v" g7 F) H9 L: r
目标板:TQ2440开发板,linux内核2.6.30
+ r0 }) H3 Y( j3 k
/ ^" K3 T) ]' ]; k+ D! S! m2 d& e' `) k4 z3 d+ ?, i. |
本文将简单记录烧写内核镜像和yaffs文件系统的步骤。0 l/ U+ N' M8 e. i2 E. _! p( `
1 g' M" F& d. a# L8 D; p0 F本文假设你已经编译好内核,yaffs2已经制作好,同时Uboot中已经支持yaffs2。2 z+ h1 v" Q9 c% B- C
3 O# {# I5 Z- n3 o
在开始烧写之前,PC平台必须开启TFTP服务。
" }2 D& S$ E5 W. n7 v! M1 a( X7 u, _
1. 烧写内核* g) L9 |. a- D% i
1 d4 b0 L% J) `1 J" V首先来看下我的分区表:" M+ q# m6 C* p# _2 P0 E
: I; f4 b/ E3 ] y# C
0x000000000000-0x000000040000 : "Uboot"1 l. K% a0 A4 C7 A v7 c: j
0x000000200000-0x000000500000 : "Kernel"
, @7 p1 d o, c8 c& D7 @$ B0x000000500000-0x000010000000 : "filesystem"
$ K" k" _! N" V( @
0 F. g% ~" Y; j, [) Gnand大小为256MB。# p! y% C% I& l9 N/ N' a8 j: J- q
0 o4 {% o( G/ [8 y5 f其次我的SDRAM地址是:0x30000000-0x34000000(64M)* O; M; K$ |8 |4 h/ K
! Y j# h, e( K/ ^0 L; Q5 k7 d) m7 ]- g在Uboot中执行如下命令:+ T5 z) G) k6 r8 p- [) C( B
& B+ D, S# d3 J4 L% r/ b8 ~2 S
tftp 0x31000000 zImage30.bin //通过tftp,将PC中的zImage30.bin下载到SDRAM的0x31000000处$ F% |! p' k) K) a O5 g
0 G* @/ S7 N) G% d; `: f% @nand erase 0x200000 0x300000 //擦除nand,起始地址为0x200000,大小0x300000(3MB)! l& u* u% [; x
, @. d* Y+ h( P" m% W! f! p
nand write 0x310000000 0x200000 0x300000 //写入nand,将0X31000000开始的0X300000字节数据写入nand的0X200000处。- ~/ N5 |/ F$ p. D
) }2 b. n" i5 p/ W$ _, z' S0 w7 d/ X
9 z! Z* N& d4 f: m5 D' |' Q2 {# C3 M7 h# K* Z
2. 烧写yaffs2文件系统
. H- R" d8 C; M% c3 n
& O/ g; P. i, t" ?/ \tftp 0x31000000 yaffs2.bin2 O( a' H* w1 Y5 [( b! G U0 m, K! S( ?
7 B/ ~6 E. j& J9 m9 U. q8 K会有如下输出:
* b ~0 S& r. \, e4 g' ~9 x, A& o+ V, i
, M" y+ Z# |' C8 G
dm9000 i/o: 0x20000300, id: 0x90000a46
8 A; J! P: `! }# H2 G* QMAC: 0a:1b:2c:3d:4e:5f
5 _6 S. S+ R) {2 O3 H5 _TFTP from server 192.168.1.103; our IP address is 192.168.1.6) d4 i5 ^6 ]$ E6 A$ |9 S3 M. L7 g
Filename 'yaffs2.bin'.4 ]! Y$ _" f [; I2 W- U
Load address: 0x31000000# I+ X4 v1 I" y3 ^) s4 y
Loading: T #################################################################9 e. r ?: P3 C+ _, v
#################################################################% w/ u* |; C5 i/ j. Z8 J
#################################################################1 P" P: E$ V; g! j( {$ L
#################################################################
& }) I* F, C( E. l6 W& y) G #################################################################" ?& t" s# W9 g; J
#################################################################$ X. E5 L0 V# c
#################################################################/ y, t0 I$ k8 H% d* q+ m
#################################################################
0 l- H$ g# ^+ [/ b/ t. y #################################################################- k) ~' O& R& Z; L
#################################################################: R u& `+ Q( H' s0 \4 ~) \5 s, m% h
#################################################################
3 }" ]) c+ O& A" u0 n #################################################################% Z. q, q4 Y; x* \: b3 ^- J
#######################################9 b, E- E. F; \8 T/ _
done
/ `; i- m" H _( M: P; N* \, \Bytes transferred = 11956032 (b66f40 hex)8 V9 c, e! D: C
+ ]$ N- N6 u0 A6 n3 l
nand erase 0x500000 0x0FB00000 //擦除文件系统所在的整个分区,即filesystem分区% s w6 V3 ?* ]# p, Q
nand write.yaffs 0x31000000 0x500000 0xb66f40 //这里烧写的字节数,即b66f40,为上面提示的传输字节数5 C% ~% O% ], g* g2 s1 m$ @
5 H9 b) _* P: T% ?) K
- X5 @& X0 w' B8 R* y3 Q
- @& ?- Z h' c! }
|
|