嵌入式开发者社区

标题: 关于文件系统的烧写地址 [打印本页]

作者: hefeislb2000    时间: 2014-12-30 16:34
标题: 关于文件系统的烧写地址
在烧写文件系统到Nand Flash 上时,怎么确定要开始烧写的地址阿,只要在uImage后面就行了吗?  在uboot 环境变量里面是否需要设置文件系统的起始地址阿?
/ {+ g" P9 r2 |. s& p* k2 s  d% q

作者: 2532609929    时间: 2014-12-30 17:41
通过UBOOT参数区读取nand flash分区,读到ddr2的0xc0700000 ,然后运行,具体UBOOT参数请看如下。6 M2 `' T6 M% ^) u* J
) S( x9 J5 `( x0 b- C- c$ f8 q, @: _
如不希望使用 U-Boot 默认的启动顺序启动系统,可以根据实际需求设置特定方式启
8 ?( L, m5 \$ b( y! M6 k动参数,以下为部分启动方式举例:( F1 P7 N$ x5 K$ Z+ q
3.1 SD 卡方式启动
" f+ V) t/ |6 O, m% z' dU-Boot > setenv bootcmd 'mmc rescan 0;fatload mmc 0 0xc0700000 uImage; bootm
% q' i9 O6 V8 F$ Qc0700000'/ M/ I% _- G, A; K( ~; a: ?2 H6 s
U-Boot > setenv bootargs ${mem_args} eth=${ethaddr} 'console=ttyS2,115200n8# h: t3 e0 d' `% M! I, I
root=/dev/mmcblk0p2 rw rootfstype=ext3'- I4 J. O% i/ R( d$ {
U-Boot > saveenv9 k* A8 T+ j$ x$ {5 H
3.2 NAND FLASH 方式启动
% A, \1 X3 ~1 O1 E. W+ pU-Boot > setenv bootcmd 'nboot.e 0xc0700000 0 0x120000; bootm'
( e" F9 r% l5 b9 }. }0 h. D# G& zU-Boot > setenv bootargs ${mem_args} eth=${ethaddr} 'console=ttyS2,115200n8 ip=off' h7 E% ^" q( h* o$ `' m- M6 J
ubi.mtd=4,2048 root=ubi0_0 rootfstype=ubifs'0 g' U# ^" e! h0 r  x0 N4 `6 {0 ]
U-Boot > saveenv
; ?9 a5 m  ]  m"ip=off"表示不自动获取网路 IP,如需自动获取网络 IP,请将"ip=off"改为"ip=dhcp"。
9 y: N. b- t- Q. ~# Y( P但是,若设置了自动获取网络 IP,而此时实际并没有接入网络,系统会不断的检测网络
( X) _3 m! V% D. ]2 R是否接入而导致系统启动时间将较长。
+ @/ ]; k$ u1 p0 q9 c9 |- I0 m3.3 网络方式启动# |0 [$ @4 y6 [1 F! p& k
U-Boot > setenv serverip 192.168.1.1 62 //请根据实际情况修改服务器 IP: B& t4 r8 M  J% }) w5 K! K
U-Boot > setenv bootfile ${serverip}:uImage //请根据 tftp 实际情况修改内核镜像名字
9 t! E- C* O# ?U-Boot > setenv nfsrootfs '/home/tl/omapl138/rootfs' //请根据实际情况修改 NFS 文件+ L/ p8 H7 X5 Q9 k7 h
系统路径, m% n' }( Z/ _2 c
U-Boot > setenv bootcmd 'dhcp;bootm'8 l5 S' N# x0 e; p, r
U-Boot > setenv bootargs ${mem_args} eth=${ethaddr}
7 g' p( {3 P% r, @nfsroot=${serverip}{nfsrootfs} ,nolock rw 'console=ttyS2,115200n8 ip=dhcp root=/dev/nfs'
3 w# Q: A" G# o. y4 C! zU-Boot > saveenv
. F, b- |6 I* d销售邮箱: sales@tronlong.com 技术邮箱: support@tronlong.com DSP 论坛: www.51dsp.net
: q4 v9 B8 j4 X3 |4 c公司总机: 020-8998-6280 公司官网: www.tronlong.com 9/14
! o$ A# S7 h& D8 H) NDSP+ARM+FPGA
3 \1 t7 Q: q) A2 H三核主板方案领导者: N4 R9 z3 T' Q
虽然在以上方式中, uImage 和文件系统都是在保存同一种存储介质, 但从 U-Boot 的
$ p3 D! N- r# u) f启动参数可以看出, uImage 和文件系统的加载和启动是通过独立 U-Boot 命令设置的。也
3 ^. k6 S* [% C! K就是说可通过不同 U-Boot 命令的搭配,实现加载和启动存放在不同存储介质中的 uImage6 j% z& B8 z4 h
和文件系统。 以 uImage 在 NAND FLASH、文件系统在 SD 卡为例, U-Boot 设置命令如& m3 u( v- M; I2 b) D/ |; V
下:
  N8 ?- i5 _' R' k" u: A4 JU-Boot > setenv bootcmd 'nboot.e 0xc0700000 0 0x120000; bootm'8 j9 z8 `1 E) Y* |
U-Boot > setenv bootargs ${mem_args} eth=${ethaddr} ' console=ttyS2,115200n83 q% S) x8 g: J$ l1 i, l
root=/dev/mmcblk0p2 rw rootfstype=ext3'
# E* R5 A9 D$ q% j: |, |6 a7 |U-Boot > saveenv
& u# j4 d2 t0 O8 D: B
作者: hefeislb2000    时间: 2014-12-30 20:11
如果文件系统和内核都在Nand  Flash上呢, uboot命令是否也需要配置文件系统的地址阿?
6 B% Q, d! V. n+ r- k/ V8 F/ Y- \3 u" p. K) T6 b/ e! N
3 L( W0 J/ B) f( j

" h1 d1 C- U. |
作者: hefeislb2000    时间: 2014-12-30 20:14
hefeislb2000 发表于 2014-12-30 20:11
) _1 z; w$ h1 W) m0 T) E如果文件系统和内核都在Nand  Flash上呢, uboot命令是否也需要配置文件系统的地址阿?
1 B' m6 I/ h# q3 O
如果我修改了文件系统的烧写地址,是否要修改uboot代码阿 ?
' t: ]( k5 T: Q, |9 ^, Q6 [' m
作者: tenny    时间: 2014-12-31 10:36
U-Boot > setenv bootargs ${mem_args} eth=${ethaddr} ' console=ttyS2,115200n8; Q1 I/ j, S0 w+ D+ v+ W
) d  x7 D+ l2 Uroot=/dev/mmcblk0p2 rw rootfstype=ext3'
6 I1 j; h6 ]" W. W1 N
4 x+ m( M7 `# G* D6 r- B文件系统的能否正确挂载与文件系统的烧写地址无关,指定文件系统的所在的 mtd分区就可以了,mtd 分区在 nand flash 驱动里面进行配置! y" H! G; p  c' p) \& d: T

作者: hefeislb2000    时间: 2014-12-31 14:41
mtd分区在nand Flash驱动里面配置,是指在内核中通过make menuconfig 配置吗?
4 r$ T  A$ [! {6 p
作者: 2532609929    时间: 2014-12-31 18:43
内核源码固定的了,不建议修改这个。+ q6 v+ o5 S: m





欢迎光临 嵌入式开发者社区 (https://www.51ele.net/) Powered by Discuz! X3.4