EDA365电子论坛网

标题: Uboot烧写内核镜像和yaffs2文件系统 [打印本页]

作者: piday123    时间: 2020-6-17 17:23
标题: Uboot烧写内核镜像和yaffs2文件系统
PC主机:Ubuntu 10.4 和redhat 9.0
& T# _* v& a/ L0 b
. L) ^$ E( S! I# |- R目标板:TQ2440开发板,linux内核2.6.30
8 E4 i- D" ]+ W- O0 C% k1 b+ [  m0 r" ]9 H( Q: M# f
0 a; S9 H. z7 f7 y( Z$ I# i
本文将简单记录烧写内核镜像和yaffs文件系统的步骤。  l$ e* d6 F( N+ ^/ \9 S' o/ w* ^
4 ?  d, `0 b# G5 \; M" j- A
本文假设你已经编译好内核,yaffs2已经制作好,同时Uboot中已经支持yaffs2。
4 \! ~4 f3 S) d# W. Y* l) _; v6 |9 `1 w& q/ d9 e4 P
在开始烧写之前,PC平台必须开启TFTP服务。' Q; ^7 u% z% [
; ]4 `) n  w! {1 W/ x& }) U
1.  烧写内核
0 ?) V7 z) B5 A( K# {
+ {  s+ o4 ~' o首先来看下我的分区表:6 v+ Z6 Q& i4 d  Z3 a

5 k- O2 v9 c7 E2 u: {0x000000000000-0x000000040000 : "Uboot"- J+ i9 ~* V. \4 R/ n
0x000000200000-0x000000500000 : "Kernel"' T) U; [5 n! S- `: ?  ?( u
0x000000500000-0x000010000000 : "filesystem"8 w! r9 R3 b# z5 K; K

( X. {, |/ k1 @1 s. z* X/ Wnand大小为256MB。) {% ~% u6 j) Z) l" J

2 c0 \% u! H1 P其次我的SDRAM地址是:0x30000000-0x34000000(64M)
! t+ k6 c( Z/ q8 Y' [( @0 \7 ~: L; }$ f& r# f" |) r
在Uboot中执行如下命令:
0 a& o  ~- K1 M) H0 y3 [
; m% |& W7 B0 H6 y+ o, dtftp 0x31000000 zImage30.bin        //通过tftp,将PC中的zImage30.bin下载到SDRAM的0x31000000处0 m% X8 L0 ?6 U+ c; U* d
3 B. G- z$ R* a2 _. q  S
nand erase 0x200000 0x300000       //擦除nand,起始地址为0x200000,大小0x300000(3MB)' p& f& n5 \- |

# X0 A8 [# w0 ?1 f: M& o0 ?nand write 0x310000000 0x200000 0x300000  //写入nand,将0X31000000开始的0X300000字节数据写入nand的0X200000处。5 z! m. H# @, A$ w- S

) s' d. T% ?: c
( |3 e6 k$ k' j' v0 B5 I- W4 s0 e' ~9 J  @& z4 ^* p7 B' w; c1 H
2. 烧写yaffs2文件系统
+ k5 d8 D7 c! {$ a: N$ O4 g  g) K! n! p6 L5 g
tftp 0x31000000 yaffs2.bin+ E' a- W4 y+ M3 C7 t

" \/ S$ a7 Q& A$ a会有如下输出:
5 J  O' U) c/ d, k4 L
! k, ]3 d" `5 [5 |3 |' R% r2 p  ^3 D7 T3 z+ _. U+ o( N3 S- n
dm9000 i/o: 0x20000300, id: 0x90000a46
! w6 E8 o5 Q" F3 BMAC: 0a:1b:2c:3d:4e:5f& [# H; g5 u" p/ M- g+ d2 {
TFTP from server 192.168.1.103; our IP address is 192.168.1.6
9 g1 B( P) ~% D7 wFilename 'yaffs2.bin'.
% \+ X# f8 Y' @3 g6 S$ TLoad address: 0x310000002 U+ Q2 P" O: `0 n
Loading: T #################################################################
* _/ R- t; B6 x7 z! M: P$ |         #################################################################
( N+ l* F2 C; T         #################################################################2 _& q* L& ^" t- u1 e3 T
         #################################################################
6 l4 G4 x  h: {( o- N         #################################################################
, E& b( D0 j8 _5 V6 ]         #################################################################/ W# B! J1 T6 p$ w
         #################################################################
! y6 I7 V- p% j* ~4 ^         #################################################################
( J2 v3 V( u; }         #################################################################
& t3 _5 J# E* g$ Q) G, X1 C         #################################################################
6 o! m4 ?- a- x; G& O4 m1 u         #################################################################
, l8 |0 b) ]# W1 P# |  U& w         #################################################################
: h9 ]  E0 Y* s3 U, y  E/ u  B         #######################################
4 {% t$ M! H" z% ldone& C# ~) W7 C7 o
Bytes transferred = 11956032 (b66f40 hex)
2 E% R. M4 Z7 p6 @1 d- N7 C  |1 l1 g: u  T, F, n
nand erase 0x500000 0x0FB00000   //擦除文件系统所在的整个分区,即filesystem分区2 A! R, t7 b$ l! y# g1 }3 @  Y
nand write.yaffs 0x31000000 0x500000  0xb66f40 //这里烧写的字节数,即b66f40,为上面提示的传输字节数
9 L. ^1 R3 _5 Q1 W# ~! k( O2 h6 ^8 ^* ~1 j# e

, m6 S2 B& J. }7 y9 W1 ^% s6 ]+ n' X4 ~1 a) V+ z2 i, J2 L

作者: xiaogegepcb    时间: 2020-6-17 18:46
Uboot烧写内核镜像和yaffs2文件系统




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2