|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
PC主机:Ubuntu 10.4 和redhat 9.0
6 T% V/ m7 N' p$ L5 l1 W$ y3 J: b& f/ X4 T9 |
目标板:TQ2440开发板,linux内核2.6.300 r; ^8 L" _6 I4 U1 s: Z+ ?8 D- j! y
* I, A8 D* Z9 }" e( I5 l8 J
; R' p' p g1 k3 W6 K j本文将简单记录烧写内核镜像和yaffs文件系统的步骤。
! v7 Q( Y% i: K. H4 d2 ?; o# `, c6 t) `
本文假设你已经编译好内核,yaffs2已经制作好,同时Uboot中已经支持yaffs2。
2 C8 Y3 l+ a8 o) t/ p$ c9 K x
8 K3 N) ~* D% X8 \9 y; f. d: i在开始烧写之前,PC平台必须开启TFTP服务。
( L1 b. W! F$ Q6 K. L+ b6 C) b7 v& C& b+ w2 ?) J; G
1. 烧写内核
9 ^: s* s9 ?1 T# R" {8 w6 [, h
首先来看下我的分区表:4 M% i5 M2 g" ]9 M
/ {* I( U- h! D2 d1 b4 l- A. b0x000000000000-0x000000040000 : "Uboot"# ~/ e! {" n N( j8 o* o
0x000000200000-0x000000500000 : "Kernel"0 E; V) H, r- V, U( ~2 O. o- W
0x000000500000-0x000010000000 : "filesystem"3 H8 T7 p- ?+ y [6 c
, b% f0 m o z' l! N
nand大小为256MB。" v2 S/ p2 d. i+ M& S
, l1 m7 k ]% L其次我的SDRAM地址是:0x30000000-0x34000000(64M), r. Q/ J4 } e8 t
/ H+ U! J8 N, [6 z在Uboot中执行如下命令:2 Y+ E% r2 I" j. @7 B9 l
. h7 c X$ w9 p* \tftp 0x31000000 zImage30.bin //通过tftp,将PC中的zImage30.bin下载到SDRAM的0x31000000处$ `* h' |5 h& [& x6 A9 r. J: Y7 C
3 a; a2 o: R' K% ~- q
nand erase 0x200000 0x300000 //擦除nand,起始地址为0x200000,大小0x300000(3MB)
/ e8 B6 @5 {; [( Z& {& w# o1 l' c) O7 H. {3 p, ]9 }" A
nand write 0x310000000 0x200000 0x300000 //写入nand,将0X31000000开始的0X300000字节数据写入nand的0X200000处。
+ k: t) J6 M. s& y
" q: v& L) n4 M3 ]/ v6 i, b' L! M- ?2 I) p! K4 ^1 Y. \% _% e' r, z8 X
0 w/ {! ^0 Q% f% M8 G2. 烧写yaffs2文件系统
) C1 m4 Z" C% h' \0 M
* W3 ?. N9 c. j3 a. Wtftp 0x31000000 yaffs2.bin4 |. ~" _9 `8 I+ z
1 l& G# M4 ?5 m会有如下输出:
: r) R) [( s- ^: u/ K; M7 P2 T3 Y9 T3 ]- b3 b* v; N2 m
0 \3 f- u! q; v
dm9000 i/o: 0x20000300, id: 0x90000a46
* f3 R+ q/ b* Z1 L9 _# t: \MAC: 0a:1b:2c:3d:4e:5f4 Z$ M2 d" \) V/ @+ c
TFTP from server 192.168.1.103; our IP address is 192.168.1.6
( n: H% N: N1 X( \0 b8 e9 bFilename 'yaffs2.bin'.
4 J ~# l2 F7 P# rLoad address: 0x310000002 m+ d$ T- R2 m6 }7 P
Loading: T #################################################################
, O1 O6 V, B* i7 y& I #################################################################
' |! a; y% @: @ #################################################################6 A* N c) `6 Z1 d/ p
#################################################################
) k: r/ u0 }; P$ J9 J7 u7 _. ^ #################################################################9 Q5 o: C2 v7 ~! v2 F8 V, X' ?+ s
#################################################################
. q/ [, P9 q1 ] E& m+ @/ o #################################################################; a5 {2 b$ h* |( q
#################################################################
) S7 V, V8 `- R# `5 ] F: H! q6 y #################################################################) c2 Z( ~# g4 R8 H2 N# i% }
#################################################################
% D+ F4 L7 ?5 N. v #################################################################) L* @% L; \1 n$ z' O, G
#################################################################. q' f/ A# t& y# f: N% d. d5 b
#######################################
2 a4 W/ ~" E3 x. `3 X( Hdone9 f; O8 o. M0 z, Z8 k0 G o2 F: E! t
Bytes transferred = 11956032 (b66f40 hex)
) h% d8 Z% `5 O& f# x4 B8 `2 C
6 f1 E4 U" c/ S! N9 `( anand erase 0x500000 0x0FB00000 //擦除文件系统所在的整个分区,即filesystem分区
+ ~1 `" g& j5 N9 u5 F4 ^nand write.yaffs 0x31000000 0x500000 0xb66f40 //这里烧写的字节数,即b66f40,为上面提示的传输字节数. L% F1 |& }- q5 y
4 C! j! f" W' j+ A) }. P. {3 ~3 ^$ f5 S- |: f2 p! k
/ G$ c9 V1 U I3 ~5 g/ c# W* H5 ~
|
|