|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
PC主机:Ubuntu 10.4 和redhat 9.0. |2 o4 |( h+ G* c: Q
/ R/ g. R! {$ x5 l; J
目标板:TQ2440开发板,linux内核2.6.30( A' p' n% X2 v
$ z" }" A! k7 }; {; y# @
% O* m+ k5 y9 n3 F' H
本文将简单记录烧写内核镜像和yaffs文件系统的步骤。* e. m' B* g6 i- j
j( m0 D: c; [9 s本文假设你已经编译好内核,yaffs2已经制作好,同时Uboot中已经支持yaffs2。
/ }) M$ Z* ?, m& f( B9 g9 |8 V9 A/ G
在开始烧写之前,PC平台必须开启TFTP服务。! b( m4 k' _8 P' H
" }, q+ I. j3 h) k
1. 烧写内核' W5 P4 \; r% r! M$ t
! K ^6 ~" B# ?9 O3 H- b9 M首先来看下我的分区表: G9 e, ? Z# Y; O+ r% N& O
0 Y8 G$ W D& G
0x000000000000-0x000000040000 : "Uboot"
+ V2 M' _% w8 Z' U- B) V0x000000200000-0x000000500000 : "Kernel"
+ s' i* m; {8 c0x000000500000-0x000010000000 : "filesystem"1 K" L4 z9 V/ M" E
4 a/ [1 M# o3 U& D
nand大小为256MB。
3 r# u/ M l/ Z! T% S! B+ @# `! `9 w( U- R: j
其次我的SDRAM地址是:0x30000000-0x34000000(64M)# P5 m2 O) a" X& y
+ D8 {' L$ W5 c T, \在Uboot中执行如下命令:) P% h$ y$ \0 |! t( Y6 e% J, K- n
1 @/ e g s5 ~: G" U/ m4 M4 p
tftp 0x31000000 zImage30.bin //通过tftp,将PC中的zImage30.bin下载到SDRAM的0x31000000处8 |1 _$ p6 M6 R4 O- B- g; H) W# q
! U* r$ G. h" ^- @' K$ Ynand erase 0x200000 0x300000 //擦除nand,起始地址为0x200000,大小0x300000(3MB)0 l- M5 f. q1 e+ `& d1 W/ Q7 n
+ c0 `0 i3 e: F& ]4 N" t7 S. f' M4 Tnand write 0x310000000 0x200000 0x300000 //写入nand,将0X31000000开始的0X300000字节数据写入nand的0X200000处。
9 `% U8 }+ t1 w. j
$ N1 x1 k9 P, m# X$ q% O: r
! ~! D/ v; k, \% y/ F% A4 w, ^: X+ k! }. Z
2. 烧写yaffs2文件系统. e" Q. ?+ z, R+ ~1 C
1 U8 k' e0 x4 g
tftp 0x31000000 yaffs2.bin
# H3 M+ Y! ^& T: E# L' Y; u& y9 x1 k J) |2 q! O
会有如下输出:. [; J7 T# f" O& P9 S3 E
2 X. v( X4 h$ p& x* z( o# C
. ~* p2 F# ^ i( T zdm9000 i/o: 0x20000300, id: 0x90000a46
# T7 O# [" ?- Q# ?MAC: 0a:1b:2c:3d:4e:5f/ A/ k! n8 |' w
TFTP from server 192.168.1.103; our IP address is 192.168.1.63 T& N' |1 M# e" i: W; O, j
Filename 'yaffs2.bin'.( R& v* S5 C+ g9 w
Load address: 0x31000000# j2 R" i$ R5 }3 P+ K
Loading: T #################################################################
7 e; Q5 \; d) W* O #################################################################
. F( g9 o/ c% _+ E #################################################################
0 h7 T0 |1 g, B" M; S #################################################################
% V/ Q, U& h, e: J0 y) [7 W #################################################################4 z7 D0 c$ C- l+ ?! M# T1 z7 F
#################################################################
- s+ d0 P0 Q& G: h* _% h #################################################################
" l; @* U e( @0 Z) S3 B, M: m& i #################################################################
# s, v: _! p) g6 y: T #################################################################
$ c2 P' F: r( q! ?+ G0 k- o' p% ^+ a #################################################################
9 E3 \4 Q3 B$ n #################################################################
3 e& J) p0 _( a0 C( J ################################################################# m4 K0 V* f* |8 X4 w
####################################### G3 Y6 f% [. y$ f
done
' S& w3 z9 L5 T8 s9 XBytes transferred = 11956032 (b66f40 hex)3 P9 O& |2 p- z
4 v2 ~) d+ u7 H$ K0 l) e; Ynand erase 0x500000 0x0FB00000 //擦除文件系统所在的整个分区,即filesystem分区1 d+ M8 `' U! U: ~
nand write.yaffs 0x31000000 0x500000 0xb66f40 //这里烧写的字节数,即b66f40,为上面提示的传输字节数5 D# {3 K1 b7 T* G% Z! H
, w9 t# l& F3 b2 x1 e0 q" @1 p8 K
8 Q7 z0 g n6 L+ U' ]
0 P0 e% X" Y1 g+ t* e9 S |
|