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/ W
nand大小为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, d
tftp 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 s
0 e' ~9 J @& z4 ^* p7 B' w; c1 H
2. 烧写yaffs2文件系统
+ k5 d8 D7 c! {$ a: N$ O
4 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 B
MAC: 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 w
Filename 'yaffs2.bin'.
% \+ X# f8 Y' @3 g6 S$ T
Load address: 0x31000000
2 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% l
done
& C# ~) W7 C7 o
Bytes transferred = 11956032 (b66f40 hex)
2 E% R. M4 Z7 p6 @1 d- N
7 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 h
6 ^8 ^* ~1 j# e
, m6 S2 B& J. }7 y9 W1 ^% s
6 ]+ 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