嵌入式开发者社区

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

作者: hefeislb2000    时间: 2014-12-30 16:34
标题: 关于文件系统的烧写地址
在烧写文件系统到Nand Flash 上时,怎么确定要开始烧写的地址阿,只要在uImage后面就行了吗?  在uboot 环境变量里面是否需要设置文件系统的起始地址阿?, o% z- |/ H! h# c! y' i3 y2 H7 A

& i0 w* r9 O6 D4 e! q$ g9 L: s5 ?
作者: 2532609929    时间: 2014-12-30 17:41
通过UBOOT参数区读取nand flash分区,读到ddr2的0xc0700000 ,然后运行,具体UBOOT参数请看如下。
5 {7 F  p/ x3 h9 n5 h: a; J% r
! \* o$ ^/ I$ g, m& ?+ ~: _$ ?  E6 }* g3 U如不希望使用 U-Boot 默认的启动顺序启动系统,可以根据实际需求设置特定方式启9 A" D# B2 @. Y; w0 W6 P
动参数,以下为部分启动方式举例:
; d3 f- v9 ~2 ?# A* W3.1 SD 卡方式启动5 h' @5 y$ [, J% ?0 [' B) Q+ F$ I
U-Boot > setenv bootcmd 'mmc rescan 0;fatload mmc 0 0xc0700000 uImage; bootm
" O- t5 B4 }/ ^6 K3 xc0700000'
% ]  F7 X- ~7 g) Q1 [7 A$ qU-Boot > setenv bootargs ${mem_args} eth=${ethaddr} 'console=ttyS2,115200n8
' V8 E" m0 L8 [4 @root=/dev/mmcblk0p2 rw rootfstype=ext3'/ ?4 Z9 }  j+ v: ~$ ^% s
U-Boot > saveenv
/ V+ n) y4 v0 Q& q# l  B3.2 NAND FLASH 方式启动5 p) x6 I; w! P
U-Boot > setenv bootcmd 'nboot.e 0xc0700000 0 0x120000; bootm'
8 S6 j* Z' V$ d, ^$ H1 J! FU-Boot > setenv bootargs ${mem_args} eth=${ethaddr} 'console=ttyS2,115200n8 ip=off; t6 g& Y  r3 W5 l* G
ubi.mtd=4,2048 root=ubi0_0 rootfstype=ubifs'
! R- ^- j7 q  uU-Boot > saveenv
4 ]8 I2 C3 N5 y. k  ?: Z"ip=off"表示不自动获取网路 IP,如需自动获取网络 IP,请将"ip=off"改为"ip=dhcp"。
. i: d# `. P' k& Y& o: M8 g0 |' b6 g但是,若设置了自动获取网络 IP,而此时实际并没有接入网络,系统会不断的检测网络) _2 h+ O1 t8 L  I; ~% [* ^
是否接入而导致系统启动时间将较长。$ ^8 Q. Q* N& e* L* p
3.3 网络方式启动
6 p! ]" A6 K- x! `- z3 v( c2 \) xU-Boot > setenv serverip 192.168.1.1 62 //请根据实际情况修改服务器 IP
/ U5 h  j3 B- ~& ]/ f( u% L# EU-Boot > setenv bootfile ${serverip}:uImage //请根据 tftp 实际情况修改内核镜像名字( E/ p- v) g( G/ ]6 @* d
U-Boot > setenv nfsrootfs '/home/tl/omapl138/rootfs' //请根据实际情况修改 NFS 文件
1 M7 |$ E4 K  O( q系统路径
$ a- t; d9 x  R# l: T! Z) AU-Boot > setenv bootcmd 'dhcp;bootm'8 V& X3 I- v( s1 C
U-Boot > setenv bootargs ${mem_args} eth=${ethaddr}. ]8 Z% q5 D" A+ q
nfsroot=${serverip}{nfsrootfs} ,nolock rw 'console=ttyS2,115200n8 ip=dhcp root=/dev/nfs'
0 c; @( F1 @/ k: n  P8 lU-Boot > saveenv
0 x/ M9 ~- @% b% B( j# ]销售邮箱: sales@tronlong.com 技术邮箱: support@tronlong.com DSP 论坛: www.51dsp.net) |  W) u3 j5 g5 \! I! R
公司总机: 020-8998-6280 公司官网: www.tronlong.com 9/145 V  i% z, }  _, l/ q7 l2 c+ w
DSP+ARM+FPGA0 o% a# p" Y4 ?. B
三核主板方案领导者. S& H% ?, P( X; z+ t4 t
虽然在以上方式中, uImage 和文件系统都是在保存同一种存储介质, 但从 U-Boot 的" J+ {0 m& c; E5 p6 \) I! I
启动参数可以看出, uImage 和文件系统的加载和启动是通过独立 U-Boot 命令设置的。也: A+ ]; e) V2 n5 `3 I' _
就是说可通过不同 U-Boot 命令的搭配,实现加载和启动存放在不同存储介质中的 uImage
3 Z# ], \9 [& h0 c和文件系统。 以 uImage 在 NAND FLASH、文件系统在 SD 卡为例, U-Boot 设置命令如
" m5 E8 C4 F2 u. y, N下:
2 y7 \9 a0 v. ^: T  SU-Boot > setenv bootcmd 'nboot.e 0xc0700000 0 0x120000; bootm'1 ]( X4 _6 x* f7 q9 e9 u
U-Boot > setenv bootargs ${mem_args} eth=${ethaddr} ' console=ttyS2,115200n8
7 \) K5 u1 Y' M) X0 wroot=/dev/mmcblk0p2 rw rootfstype=ext3'
; \; `/ x: k$ f6 x! dU-Boot > saveenv
  Y" x. w, r; N  P+ J# L+ _
作者: hefeislb2000    时间: 2014-12-30 20:11
如果文件系统和内核都在Nand  Flash上呢, uboot命令是否也需要配置文件系统的地址阿?5 k9 w7 B5 M- n5 g4 Q; |
8 t1 P* [$ W2 w+ x1 s

1 o$ c0 O# e8 Z; g5 K
7 w, f# ]  W  U- b# N# X
作者: hefeislb2000    时间: 2014-12-30 20:14
hefeislb2000 发表于 2014-12-30 20:11
0 N$ _( V$ n6 ]$ U8 G% e# d7 g9 z如果文件系统和内核都在Nand  Flash上呢, uboot命令是否也需要配置文件系统的地址阿?
' G7 e6 V: o; i- ]
如果我修改了文件系统的烧写地址,是否要修改uboot代码阿 ?
4 d! d+ U7 x: c" y
作者: 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
+ i/ j: }0 q9 \: J- Y/ aroot=/dev/mmcblk0p2 rw rootfstype=ext3'4 O: s$ S8 p. A* W& v

  V4 n- ]( n$ w& b. {4 d5 v4 P, n文件系统的能否正确挂载与文件系统的烧写地址无关,指定文件系统的所在的 mtd分区就可以了,mtd 分区在 nand flash 驱动里面进行配置% p* R& K9 F# x. I" t

作者: hefeislb2000    时间: 2014-12-31 14:41
mtd分区在nand Flash驱动里面配置,是指在内核中通过make menuconfig 配置吗?
# k5 }( T/ m, T( f# E
作者: 2532609929    时间: 2014-12-31 18:43
内核源码固定的了,不建议修改这个。
" H$ @9 j/ F0 ?+ ?$ `  u! L




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