嵌入式开发者社区

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

作者: hefeislb2000    时间: 2014-12-30 16:34
标题: 关于文件系统的烧写地址
在烧写文件系统到Nand Flash 上时,怎么确定要开始烧写的地址阿,只要在uImage后面就行了吗?  在uboot 环境变量里面是否需要设置文件系统的起始地址阿?9 Q2 N) U9 O0 o# w9 g! h0 l

  e/ n; n' P( l- s+ V% I) X
作者: 2532609929    时间: 2014-12-30 17:41
通过UBOOT参数区读取nand flash分区,读到ddr2的0xc0700000 ,然后运行,具体UBOOT参数请看如下。6 z: D! ^/ j: ?; M9 Q: p7 F
6 r  @  s1 |5 U/ D& G' u
如不希望使用 U-Boot 默认的启动顺序启动系统,可以根据实际需求设置特定方式启* T$ L4 _: R  h2 L; n
动参数,以下为部分启动方式举例:
5 D1 O( V( F$ n  z# c" k: Q4 S9 o* s3.1 SD 卡方式启动
1 Q& Y* m* m, M4 Z1 dU-Boot > setenv bootcmd 'mmc rescan 0;fatload mmc 0 0xc0700000 uImage; bootm
8 v7 h6 V) I; hc0700000'
# s. _5 X% X# H4 o' BU-Boot > setenv bootargs ${mem_args} eth=${ethaddr} 'console=ttyS2,115200n8
9 f2 c' `4 m$ r: Xroot=/dev/mmcblk0p2 rw rootfstype=ext3'
% |3 b0 S  L3 f/ [6 B) X% {U-Boot > saveenv  K- ?& B7 p6 L, Y. K8 R' E' B' E' P
3.2 NAND FLASH 方式启动
  A( g  p# H' u9 y0 b2 GU-Boot > setenv bootcmd 'nboot.e 0xc0700000 0 0x120000; bootm'
# D% a% f0 X. Y% _8 y* l4 m8 EU-Boot > setenv bootargs ${mem_args} eth=${ethaddr} 'console=ttyS2,115200n8 ip=off
- }( N% j) ~6 r, }: w5 I9 k0 q) F, l/ U. Fubi.mtd=4,2048 root=ubi0_0 rootfstype=ubifs'% e& ~. n- M$ g% t* J0 s" f; n2 l
U-Boot > saveenv0 u1 `; @: `; c. G  l  j
"ip=off"表示不自动获取网路 IP,如需自动获取网络 IP,请将"ip=off"改为"ip=dhcp"。
) e& l& f, T9 W  J5 Z但是,若设置了自动获取网络 IP,而此时实际并没有接入网络,系统会不断的检测网络
" [5 o/ H' `3 ?$ a  R9 V6 c: M是否接入而导致系统启动时间将较长。
! j; O+ J7 l  z4 j3 N1 B2 w3.3 网络方式启动
0 V$ Y$ O2 n8 s" `- TU-Boot > setenv serverip 192.168.1.1 62 //请根据实际情况修改服务器 IP; ?+ J5 x/ ]! f
U-Boot > setenv bootfile ${serverip}:uImage //请根据 tftp 实际情况修改内核镜像名字
4 B1 X! p2 p* O. y* `0 s' aU-Boot > setenv nfsrootfs '/home/tl/omapl138/rootfs' //请根据实际情况修改 NFS 文件) M" P+ J' c. \4 N/ W: ]' k' p
系统路径) f" {. @! R2 D1 e: C2 ~
U-Boot > setenv bootcmd 'dhcp;bootm'
$ ~- T/ v' X. Y# }U-Boot > setenv bootargs ${mem_args} eth=${ethaddr}: {; V  N3 v6 J' m  C
nfsroot=${serverip}{nfsrootfs} ,nolock rw 'console=ttyS2,115200n8 ip=dhcp root=/dev/nfs'
4 V2 E2 o) c, ~) ]) ^; ?8 RU-Boot > saveenv8 z  A  T6 _* C$ Q( h& X0 {; ?1 f
销售邮箱: sales@tronlong.com 技术邮箱: support@tronlong.com DSP 论坛: www.51dsp.net
3 h* y" H4 \/ ?5 f8 Y+ m" P4 d7 i公司总机: 020-8998-6280 公司官网: www.tronlong.com 9/14
1 D! \! B) c4 i! E5 Q0 ~8 |DSP+ARM+FPGA7 j7 k$ Y# ?2 Q6 g+ C* }3 N1 X
三核主板方案领导者$ `2 B/ q4 p4 @3 g7 h9 n+ I: ]8 o: ~
虽然在以上方式中, uImage 和文件系统都是在保存同一种存储介质, 但从 U-Boot 的
. P* y) o) U1 e  i' E2 ^启动参数可以看出, uImage 和文件系统的加载和启动是通过独立 U-Boot 命令设置的。也
$ S. Z: N. E+ J* M就是说可通过不同 U-Boot 命令的搭配,实现加载和启动存放在不同存储介质中的 uImage
9 y* i! l/ f* o- Z* q和文件系统。 以 uImage 在 NAND FLASH、文件系统在 SD 卡为例, U-Boot 设置命令如
4 r7 O' z% u" d! ]6 E0 k! l下:" g. D3 w6 `( g2 G5 D3 E9 c
U-Boot > setenv bootcmd 'nboot.e 0xc0700000 0 0x120000; bootm'
( E9 n: i5 w; r+ D4 T# tU-Boot > setenv bootargs ${mem_args} eth=${ethaddr} ' console=ttyS2,115200n87 G1 ]) R1 c% X' L
root=/dev/mmcblk0p2 rw rootfstype=ext3'
, g5 C7 u& x) ?; v, L0 A" V1 A! TU-Boot > saveenv
. t, e3 V+ a% z* o8 e* A/ Y# F
作者: hefeislb2000    时间: 2014-12-30 20:11
如果文件系统和内核都在Nand  Flash上呢, uboot命令是否也需要配置文件系统的地址阿?
2 g; `' \: |4 s
  N; D0 B6 C. _1 H3 o" O
6 G2 w  L: N% |' X+ S+ ~& c" ~( f, ~4 r7 I. u# n

作者: hefeislb2000    时间: 2014-12-30 20:14
hefeislb2000 发表于 2014-12-30 20:11* V9 f; U) l7 y( M4 T
如果文件系统和内核都在Nand  Flash上呢, uboot命令是否也需要配置文件系统的地址阿?

. `# V6 J$ R$ ^1 W. G3 B5 w. T( s6 i如果我修改了文件系统的烧写地址,是否要修改uboot代码阿 ?
  n, M- F' j" V; m$ M5 ~7 g
作者: 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
$ t9 e+ {: m" O6 Croot=/dev/mmcblk0p2 rw rootfstype=ext3'& `& H' V0 s! J- k, L, D

+ I1 T, X! z% s5 V# l文件系统的能否正确挂载与文件系统的烧写地址无关,指定文件系统的所在的 mtd分区就可以了,mtd 分区在 nand flash 驱动里面进行配置7 X3 C6 [: l' ^  |

作者: hefeislb2000    时间: 2014-12-31 14:41
mtd分区在nand Flash驱动里面配置,是指在内核中通过make menuconfig 配置吗?
  R: @: L) j( l4 H; N0 |8 A
作者: 2532609929    时间: 2014-12-31 18:43
内核源码固定的了,不建议修改这个。
# }$ r0 t+ A! H5 O5 T4 G




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