嵌入式开发者社区

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

作者: hefeislb2000    时间: 2014-12-30 16:34
标题: 关于文件系统的烧写地址
在烧写文件系统到Nand Flash 上时,怎么确定要开始烧写的地址阿,只要在uImage后面就行了吗?  在uboot 环境变量里面是否需要设置文件系统的起始地址阿?
* c4 y  h$ X# r  U/ u
, x, S2 w4 u, p6 |% y% j2 e& R. L
作者: 2532609929    时间: 2014-12-30 17:41
通过UBOOT参数区读取nand flash分区,读到ddr2的0xc0700000 ,然后运行,具体UBOOT参数请看如下。+ w" v) ~+ A2 P( ]: w9 P

" \+ c, D/ ]- m2 w; M如不希望使用 U-Boot 默认的启动顺序启动系统,可以根据实际需求设置特定方式启& D# N8 k) d! D
动参数,以下为部分启动方式举例:
5 ]0 K/ @0 p7 N. _( `) C* C& J* f3.1 SD 卡方式启动
0 A1 @! p/ `3 e# J' r1 PU-Boot > setenv bootcmd 'mmc rescan 0;fatload mmc 0 0xc0700000 uImage; bootm
; t5 k3 k0 S/ \' v" {- w3 nc0700000'
) `4 t1 n5 L1 E) e4 ZU-Boot > setenv bootargs ${mem_args} eth=${ethaddr} 'console=ttyS2,115200n8# I% S  L+ Q# Z
root=/dev/mmcblk0p2 rw rootfstype=ext3'
/ M) m7 [- j1 L; J, _9 vU-Boot > saveenv
5 o$ [6 J0 W" u0 e0 R1 H1 v9 a: s3.2 NAND FLASH 方式启动
( C' _; z) }, D; f7 bU-Boot > setenv bootcmd 'nboot.e 0xc0700000 0 0x120000; bootm'$ b+ M6 [7 h/ L4 F$ m3 a, {
U-Boot > setenv bootargs ${mem_args} eth=${ethaddr} 'console=ttyS2,115200n8 ip=off
. y* ]: R/ C4 p2 h# F9 Uubi.mtd=4,2048 root=ubi0_0 rootfstype=ubifs'
' o/ i; U8 \0 jU-Boot > saveenv
/ f6 G/ W4 `8 j) Y1 U"ip=off"表示不自动获取网路 IP,如需自动获取网络 IP,请将"ip=off"改为"ip=dhcp"。+ l! u7 v: I4 w' r
但是,若设置了自动获取网络 IP,而此时实际并没有接入网络,系统会不断的检测网络$ |7 W* G! l2 Z# L+ M
是否接入而导致系统启动时间将较长。
  m: \& ~1 C2 I2 P! T2 {3.3 网络方式启动
" Q) I1 k0 K  h- d2 MU-Boot > setenv serverip 192.168.1.1 62 //请根据实际情况修改服务器 IP
  ]/ v  J; w" F& k$ ?/ TU-Boot > setenv bootfile ${serverip}:uImage //请根据 tftp 实际情况修改内核镜像名字3 t! c( s* U  O: f5 ~
U-Boot > setenv nfsrootfs '/home/tl/omapl138/rootfs' //请根据实际情况修改 NFS 文件
$ m: h# q3 f: r% a7 y8 P系统路径9 L5 M2 e9 @0 Q. R' r( C
U-Boot > setenv bootcmd 'dhcp;bootm'$ Q' F1 d& J4 d
U-Boot > setenv bootargs ${mem_args} eth=${ethaddr}" W2 |( n! Q7 p4 O; [7 T$ `
nfsroot=${serverip}{nfsrootfs} ,nolock rw 'console=ttyS2,115200n8 ip=dhcp root=/dev/nfs'+ C; y, v/ ^- ?! w5 x9 ~
U-Boot > saveenv
$ A2 v6 x; p1 L9 V, `6 s销售邮箱: sales@tronlong.com 技术邮箱: support@tronlong.com DSP 论坛: www.51dsp.net' L& _8 y) ]7 l, I
公司总机: 020-8998-6280 公司官网: www.tronlong.com 9/14+ Y5 _( p' h! U' p. B: Y- x2 t( O
DSP+ARM+FPGA
; V2 f1 h, }% ~9 j三核主板方案领导者  h* a. [, y. J/ v) [- E
虽然在以上方式中, uImage 和文件系统都是在保存同一种存储介质, 但从 U-Boot 的2 p* s& L- w" ]# J
启动参数可以看出, uImage 和文件系统的加载和启动是通过独立 U-Boot 命令设置的。也* d5 _% a0 g/ f, T, H; H$ q
就是说可通过不同 U-Boot 命令的搭配,实现加载和启动存放在不同存储介质中的 uImage5 G+ K- l6 X; p  }) G" |
和文件系统。 以 uImage 在 NAND FLASH、文件系统在 SD 卡为例, U-Boot 设置命令如
7 X; x! \, A$ {下:9 y/ C. |3 K8 s$ P$ ~7 R: l
U-Boot > setenv bootcmd 'nboot.e 0xc0700000 0 0x120000; bootm') L% j, U* m' a$ r0 V' J& ?1 A
U-Boot > setenv bootargs ${mem_args} eth=${ethaddr} ' console=ttyS2,115200n8
& M( U" `1 x* N; {8 zroot=/dev/mmcblk0p2 rw rootfstype=ext3'- }" l0 t3 p8 @8 [8 S
U-Boot > saveenv
3 k  R: Y. \) E9 g% \
作者: hefeislb2000    时间: 2014-12-30 20:11
如果文件系统和内核都在Nand  Flash上呢, uboot命令是否也需要配置文件系统的地址阿?
# g' ^. x8 Y  S8 [# E
$ n0 j2 _  f' J8 f: j! C0 l: {  K! I5 O7 m. a' t8 P  _3 P

+ _9 G$ b6 s2 N" q. Q: t( t& ^" k
作者: hefeislb2000    时间: 2014-12-30 20:14
hefeislb2000 发表于 2014-12-30 20:11) b, b; E! ]2 n! Z2 D7 c
如果文件系统和内核都在Nand  Flash上呢, uboot命令是否也需要配置文件系统的地址阿?
, r1 c* d- {9 T
如果我修改了文件系统的烧写地址,是否要修改uboot代码阿 ?$ ^; s' N& k6 e% M6 ^8 d( [

作者: tenny    时间: 2014-12-31 10:36
U-Boot > setenv bootargs ${mem_args} eth=${ethaddr} ' console=ttyS2,115200n8; Q1 I/ j, S0 w+ D+ v+ W1 _6 X* t) ^- {& V( R
root=/dev/mmcblk0p2 rw rootfstype=ext3'
- q& f( m- d$ }' _/ }6 }8 J) W( P3 C
文件系统的能否正确挂载与文件系统的烧写地址无关,指定文件系统的所在的 mtd分区就可以了,mtd 分区在 nand flash 驱动里面进行配置
1 O2 R0 u8 B! v
作者: hefeislb2000    时间: 2014-12-31 14:41
mtd分区在nand Flash驱动里面配置,是指在内核中通过make menuconfig 配置吗?
- G/ p# e3 m* E- F& I: K! o& @1 u
作者: 2532609929    时间: 2014-12-31 18:43
内核源码固定的了,不建议修改这个。" p( t( Q- d; t+ `* w# ]





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