嵌入式开发者社区

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

作者: hefeislb2000    时间: 2014-12-30 16:34
标题: 关于文件系统的烧写地址
在烧写文件系统到Nand Flash 上时,怎么确定要开始烧写的地址阿,只要在uImage后面就行了吗?  在uboot 环境变量里面是否需要设置文件系统的起始地址阿?
, ]0 l7 t7 o4 Z7 t2 f( u
/ }# R0 U3 C1 y8 a
作者: 2532609929    时间: 2014-12-30 17:41
通过UBOOT参数区读取nand flash分区,读到ddr2的0xc0700000 ,然后运行,具体UBOOT参数请看如下。
. J& ?0 @3 K  \: s7 R' W! F/ \6 h: P) \3 H- g  t
如不希望使用 U-Boot 默认的启动顺序启动系统,可以根据实际需求设置特定方式启
: p6 @) |) ?% b/ ]5 f  Y动参数,以下为部分启动方式举例:$ B0 b4 U, `, r' k; [( q8 Q# O
3.1 SD 卡方式启动- }1 ]( x$ ?0 N- r; f. D
U-Boot > setenv bootcmd 'mmc rescan 0;fatload mmc 0 0xc0700000 uImage; bootm
2 W& ^) K- v- _" ~7 g% e: Ac0700000'# g8 C% t2 l6 _1 y
U-Boot > setenv bootargs ${mem_args} eth=${ethaddr} 'console=ttyS2,115200n8$ z7 u( }. r, ]3 E3 U
root=/dev/mmcblk0p2 rw rootfstype=ext3'
  d5 Q4 I" \. \2 M9 U- F8 S# mU-Boot > saveenv
; q( w5 s2 h3 B; c1 Z; ]# E' @, x( o3.2 NAND FLASH 方式启动% Z2 P! N: U1 C  l1 N; |
U-Boot > setenv bootcmd 'nboot.e 0xc0700000 0 0x120000; bootm'' H, @$ }' q7 z6 {7 b2 E* ?/ u6 u
U-Boot > setenv bootargs ${mem_args} eth=${ethaddr} 'console=ttyS2,115200n8 ip=off
: X, N& ]2 N  g; S# U* d- eubi.mtd=4,2048 root=ubi0_0 rootfstype=ubifs'
* T: N8 B' u- e' _$ j% x5 V4 \0 iU-Boot > saveenv
- _3 U8 ~$ U  K- y) _"ip=off"表示不自动获取网路 IP,如需自动获取网络 IP,请将"ip=off"改为"ip=dhcp"。# Y0 j8 j" x4 I6 P. Q
但是,若设置了自动获取网络 IP,而此时实际并没有接入网络,系统会不断的检测网络/ J9 R* H% P" T/ ?8 _  h
是否接入而导致系统启动时间将较长。9 c( k7 q5 V; a. n  U
3.3 网络方式启动
; O9 y9 E8 h7 W6 B/ N+ eU-Boot > setenv serverip 192.168.1.1 62 //请根据实际情况修改服务器 IP/ M+ @- x8 Y1 A7 ?( [
U-Boot > setenv bootfile ${serverip}:uImage //请根据 tftp 实际情况修改内核镜像名字% x% Q- b2 n0 W* |1 M* T) m7 `
U-Boot > setenv nfsrootfs '/home/tl/omapl138/rootfs' //请根据实际情况修改 NFS 文件5 b5 {: w5 e9 b! q; v; Z1 k" F
系统路径
0 \" G! E, h6 m7 o7 T/ X7 {9 kU-Boot > setenv bootcmd 'dhcp;bootm'
8 G; M1 ]' b5 iU-Boot > setenv bootargs ${mem_args} eth=${ethaddr}4 m* c: C6 P& ?
nfsroot=${serverip}{nfsrootfs} ,nolock rw 'console=ttyS2,115200n8 ip=dhcp root=/dev/nfs'
3 B, ~1 P+ y7 w8 YU-Boot > saveenv
7 e; z& C' L( S销售邮箱: sales@tronlong.com 技术邮箱: support@tronlong.com DSP 论坛: www.51dsp.net7 _; p  S. P" {, k
公司总机: 020-8998-6280 公司官网: www.tronlong.com 9/141 ^  B7 S* j& l1 I; `+ m
DSP+ARM+FPGA2 I0 U* M- D% D" R4 o
三核主板方案领导者* H) Y! f* U! X  o6 B* K+ H& ^
虽然在以上方式中, uImage 和文件系统都是在保存同一种存储介质, 但从 U-Boot 的: F; b1 E+ R$ P# x( G( n- r: X
启动参数可以看出, uImage 和文件系统的加载和启动是通过独立 U-Boot 命令设置的。也( T- Q, @$ v( b/ J
就是说可通过不同 U-Boot 命令的搭配,实现加载和启动存放在不同存储介质中的 uImage
; A$ Z' Q# l6 w. F  J1 c和文件系统。 以 uImage 在 NAND FLASH、文件系统在 SD 卡为例, U-Boot 设置命令如+ b  i: q# H0 w  g, g# M
下:
7 |0 O6 E/ ~# M# ^$ Q$ A3 hU-Boot > setenv bootcmd 'nboot.e 0xc0700000 0 0x120000; bootm'. V+ ]6 b1 Q$ N/ V
U-Boot > setenv bootargs ${mem_args} eth=${ethaddr} ' console=ttyS2,115200n8* v8 R. {  X$ v2 y/ R
root=/dev/mmcblk0p2 rw rootfstype=ext3'
4 ?; q9 V7 G8 v3 p$ ?U-Boot > saveenv3 D7 t  g" |, D$ J: q% A; b

作者: hefeislb2000    时间: 2014-12-30 20:11
如果文件系统和内核都在Nand  Flash上呢, uboot命令是否也需要配置文件系统的地址阿?
9 Y5 b+ o' U5 j
5 H: E7 I! J3 K9 H
9 y- X7 ~8 Z* Y  }% D
& h1 w, l& q, Z
作者: hefeislb2000    时间: 2014-12-30 20:14
hefeislb2000 发表于 2014-12-30 20:11
! p6 A  u( e  N如果文件系统和内核都在Nand  Flash上呢, uboot命令是否也需要配置文件系统的地址阿?

4 b- i% m0 s/ j+ F* b* r如果我修改了文件系统的烧写地址,是否要修改uboot代码阿 ?
) @/ P$ x4 _9 I& D, f' 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+ W
' c4 Q" m7 Y" e( G" Zroot=/dev/mmcblk0p2 rw rootfstype=ext3'
4 Z8 S, ^0 p% _7 H) J  V: E7 X- L% K" q. P
文件系统的能否正确挂载与文件系统的烧写地址无关,指定文件系统的所在的 mtd分区就可以了,mtd 分区在 nand flash 驱动里面进行配置! D! u& a" v, s, b  H+ b

作者: hefeislb2000    时间: 2014-12-31 14:41
mtd分区在nand Flash驱动里面配置,是指在内核中通过make menuconfig 配置吗?8 O$ S4 b7 o; l4 J% {5 `4 z

作者: 2532609929    时间: 2014-12-31 18:43
内核源码固定的了,不建议修改这个。
6 A9 @1 {( ?7 m$ \  U7 h3 K; w" f




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