嵌入式开发者社区
标题:
关于文件系统的烧写地址
[打印本页]
作者:
hefeislb2000
时间:
2014-12-30 16:34
标题:
关于文件系统的烧写地址
在烧写文件系统到Nand Flash 上时,怎么确定要开始烧写的地址阿,只要在uImage后面就行了吗? 在uboot 环境变量里面是否需要设置文件系统的起始地址阿?
6 P( f8 M- a) }% c( i: w
0 h. {5 ?9 ?7 @0 U8 ]
作者:
2532609929
时间:
2014-12-30 17:41
通过UBOOT参数区读取nand flash分区,读到ddr2的0xc0700000 ,然后运行,具体UBOOT参数请看如下。
1 ~# D9 j* L M
2 I& ]$ C9 d) k% A& V4 [/ h2 _. K! K
如不希望使用 U-Boot 默认的启动顺序启动系统,可以根据实际需求设置特定方式启
1 r& M- q6 Q/ q7 E
动参数,以下为部分启动方式举例:
; E* D8 \: _. W7 D& w% b3 X
3.1 SD 卡方式启动
4 f: _5 E, W8 a" ^5 U, e, u
U-Boot > setenv bootcmd 'mmc rescan 0;fatload mmc 0 0xc0700000 uImage; bootm
! X# V' ~; {. U, w- l" m( Y$ M
c0700000'
' c( U! D3 L: s0 ~
U-Boot > setenv bootargs ${mem_args} eth=${ethaddr} 'console=ttyS2,115200n8
3 o; s% |4 A# S( d
root=/dev/mmcblk0p2 rw rootfstype=ext3'
% `% C2 z* o2 E- L4 n! a
U-Boot > saveenv
h' k d/ w; }4 R; M, q) `( r
3.2 NAND FLASH 方式启动
6 v& \- ~$ s6 ~; R5 S" A
U-Boot > setenv bootcmd 'nboot.e 0xc0700000 0 0x120000; bootm'
; d. b' Y& n. f3 t* e: g- C8 v
U-Boot > setenv bootargs ${mem_args} eth=${ethaddr} 'console=ttyS2,115200n8 ip=off
2 _; N2 i* g# G3 X# w
ubi.mtd=4,2048 root=ubi0_0 rootfstype=ubifs'
/ ]" l E% p/ u" T& V1 ~
U-Boot > saveenv
% }. C3 A) i# L1 C( C' l$ [8 {
"ip=off"表示不自动获取网路 IP,如需自动获取网络 IP,请将"ip=off"改为"ip=dhcp"。
* ~; q/ r4 s, h& R0 D$ S# F. \! i
但是,若设置了自动获取网络 IP,而此时实际并没有接入网络,系统会不断的检测网络
( ^6 e ^* c, H: N3 F3 M# |+ i
是否接入而导致系统启动时间将较长。
$ o4 F6 ?7 I0 N' F2 u" `9 v6 h
3.3 网络方式启动
& V" d( r* {7 n: X
U-Boot > setenv serverip 192.168.1.1 62 //请根据实际情况修改服务器 IP
7 `2 P% _' t) Z2 p
U-Boot > setenv bootfile ${serverip}:uImage //请根据 tftp 实际情况修改内核镜像名字
; y7 j w+ n& w. f! n, r
U-Boot > setenv nfsrootfs '/home/tl/omapl138/rootfs' //请根据实际情况修改 NFS 文件
( I8 }: l! p, c) f& H- P2 U' O
系统路径
" z: w& r p/ s( _5 H7 A
U-Boot > setenv bootcmd 'dhcp;bootm'
' G. k$ q; p8 P$ i8 J/ Y
U-Boot > setenv bootargs ${mem_args} eth=${ethaddr}
+ N$ x( \- |9 M% k3 e- p4 P
nfsroot=${serverip}
{nfsrootfs} ,nolock rw 'console=ttyS2,115200n8 ip=dhcp root=/dev/nfs'
0 Z$ q9 V: y7 K! ~3 P: b; N$ f( g
U-Boot > saveenv
4 s3 u' B+ E. ]- }6 S1 [' ?
销售邮箱:
sales@tronlong.com
技术邮箱:
support@tronlong.com
DSP 论坛:
www.51dsp.net
- }8 f! L* w6 x5 b4 z' V! M+ ?
公司总机: 020-8998-6280 公司官网:
www.tronlong.com
9/14
" h6 G) J6 z1 t) {& d
DSP+ARM+FPGA
, k7 ^0 h4 g, b$ }
三核主板方案领导者
* I3 u' V* G8 W4 }! |7 `
虽然在以上方式中, uImage 和文件系统都是在保存同一种存储介质, 但从 U-Boot 的
, G% z ]' F @, G9 P) _: }2 n. a
启动参数可以看出, uImage 和文件系统的加载和启动是通过独立 U-Boot 命令设置的。也
9 j6 _9 O! z* V
就是说可通过不同 U-Boot 命令的搭配,实现加载和启动存放在不同存储介质中的 uImage
, Y$ i g1 x* Z0 C6 y; Q
和文件系统。 以 uImage 在 NAND FLASH、文件系统在 SD 卡为例, U-Boot 设置命令如
# T: ]1 X0 R2 Y1 x
下:
9 a( L0 [0 w6 [# l" e7 Q
U-Boot > setenv bootcmd 'nboot.e 0xc0700000 0 0x120000; bootm'
% N1 p4 c: }8 [9 r" G3 _" ?
U-Boot > setenv bootargs ${mem_args} eth=${ethaddr} ' console=ttyS2,115200n8
7 [5 c0 I1 n& K& t. r- c6 ?
root=/dev/mmcblk0p2 rw rootfstype=ext3'
" j: s3 M, Z9 i! o7 x+ D
U-Boot > saveenv
: G5 I0 C! V% ?; ]' B6 s3 l
作者:
hefeislb2000
时间:
2014-12-30 20:11
如果文件系统和内核都在Nand Flash上呢, uboot命令是否也需要配置文件系统的地址阿?
/ `8 w1 N0 B" w/ [+ T( a! t8 H- d6 ?* I d
3 @9 l' D2 i7 G( h! n) L
+ q' p8 Q, N- D# @8 R$ `3 U
) R/ G* B0 ]# v+ |
作者:
hefeislb2000
时间:
2014-12-30 20:14
hefeislb2000 发表于 2014-12-30 20:11
: x Z3 Q- }' L
如果文件系统和内核都在Nand Flash上呢, uboot命令是否也需要配置文件系统的地址阿?
) ?! V; j1 o# j" E8 t
如果我修改了文件系统的烧写地址,是否要修改uboot代码阿 ?
) I, ?* @2 P9 C# m" v, U9 z' j
作者:
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
9 L$ J @+ Z5 O3 T& e, P
root=/dev/mmcblk0p2
rw rootfstype=ext3'
* `( M# \9 ?$ b' r, l( S& W; @
3 w0 Q6 v( \3 s5 Q. _6 E
文件系统的能否正确挂载与文件系统的烧写地址无关,指定文件系统的所在的 mtd分区就可以了,mtd 分区在 nand flash 驱动里面进行配置
& @' d: E8 m' `: _6 K1 R) r9 n
作者:
hefeislb2000
时间:
2014-12-31 14:41
mtd分区在nand Flash驱动里面配置,是指在内核中通过make menuconfig 配置吗?
S% f) E+ E ~8 S* K2 p7 v
作者:
2532609929
时间:
2014-12-31 18:43
内核源码固定的了,不建议修改这个。
3 n% Z; g- Y) P5 [" f E# m
欢迎光临 嵌入式开发者社区 (https://www.51ele.net/)
Powered by Discuz! X3.4