像我儿子一样永远保持好奇和梦想

[o][bz] Uboot 的实践 001

上一篇 / 下一篇  2013-06-06 09:52:47 / 个人分类:practic_linux

嵌入式系统,如果不研究UBOOT,那么可以说你不是一个嵌入式工程师,本文着重选取了工作中遇到的一些UBOOT相关的实际问题。包括网上搜集的一些东西
【】为hsy75注解

1 uboot 的启动分区设置:这是系统软件配置的基本,根据,系统硬件所含的各种存储设备的大小,已经系统各种应用占用空间的设置来设置不同的启动分区:
1.1 基础命令:
1.1.1 gcs学习:(这也许是自己定义的cmd,使用可以参考ref 1:)
- gcs     - GCS sub-system
- gcs info 拿到系统的存储器配置
 @ gcs info
GCS Flash Info--
BOOT Device:--SFC Flash.【boot device】
ALT Flash Device:--NAND Flash.【系统硬件提供两块物理设备】

aH m7P9y0
1.1.2 mtd 分区相关命令格式举例
set sfcparts "mtdparts=nx_sfc:1024k@0k(uldr),1024k@1m(u-boot),1024k@2m(settings),-(sfcextra)"
这是一个串行flash的分区设置命令:
说明如下:【】为注解
set【设置命令】 sfcparts【设置sfc串行flash】 "mtdparts【分区定义】=nx_sfc【设备名称】:1024k【uldr大小】@0k(uldr)【uldr起始地址】,1024k【uboot大小】@1m(u-boot)【uboot起始地址】,1024k@2m(settings),-(sfcextra)"
ET创芯网(EETOP)-电子设计威尼斯人网址、博客、超人气的电子工程师资料分享平台 HI$h%rprk4G&i5x
1.1.3 设备使用分类:

setenv ldrflsh 'sfc'ET创芯网(EETOP)-电子设计威尼斯人网址、博客、超人气的电子工程师资料分享平台3_*w R(M S

setenv knlflsh 'nand'

RNR.jeb${k0

setenv fssflsh 'nand'

_QR*Ho8OA0

ribm%]R0
1.2 实例
设置一个以串行flash为启动,用nandflash装载微码或者应用数据的例子

7q*a)~w{W:['Lj I0
1.2.1 MTD settings
gcs sel NAND 【系统自动选择启动设备】

+Jr9L$`vH$T_"y0
set sfcparts "mtdparts=nx_sfc:1024k@0k(uldr),1024k@1m(u-boot),1024k@2m(settings),-(sfcextra)" 【设置串行flash分区】
set nandparts "nx_2017:1024k@0k(unused1),1024k@1m(unused2),6m@2m(kernel),64m@8m(root),200m@72m(appfs),400m@272m(datac),1024k@672m(splash1),1024k@673m(splash2),-(extra)"【设置nand分区】
set mtdids "$sfcids,$nandids"
set mtdparts "$sfcparts;$nandparts"
ET创芯网(EETOP)-电子设计威尼斯人网址、博客、超人气的电子工程师资料分享平台OIa%pf$aiQ
1.2.2  mtd 这个分区通用命令是检查你分区分配适合合理的必用工具。
 @ mtd
device sfc0 <nx_sfc>, # parts = 4
 #: name                size            offset          mask_flags
 0: uldr                0x0000100000    0x0000000000    0 【系统硬件启动设置,这一般在uboot之前就应该装载】
 1: u-boot              0x0000100000    0x0000100000    0
 2: settings            0x0000100000    0x0000200000    0
 3: sfcextra            0x0000500000    0x0000300000    0
ET创芯网(EETOP)-电子设计威尼斯人网址、博客、超人气的电子工程师资料分享平台 _$Q^k7A2h0J
device nand0 <nx_2017>, # parts = 9
 #: name                size            offset          mask_flags
 0: unused1             0x0000100000    0x0000000000    0
 1: unused2             0x0000100000    0x0000100000    0
 2: kernel              0x0000600000    0x0000200000    0
 3: root                0x0004000000    0x0000800000    0
 4: appfs               0x000c800000    0x0004800000    0
 5: datac               0x0019000000    0x0011000000    0
 6: splash1             0x0000100000    0x002a000000    0
 7: splash2             0x0000100000    0x002a100000    0
 8: extra               0x0015e00000    0x002a200000    0
ET创芯网(EETOP)-电子设计威尼斯人网址、博客、超人气的电子工程师资料分享平台4]0B-W7H\5TN0B~"|
1.2.3 write to the sfc
@sfc erase u-boot
@tftp u-boot.bin
@sfc write u-boot
ET创芯网(EETOP)-电子设计威尼斯人网址、博客、超人气的电子工程师资料分享平台0awnT}{$~ uz
@sfc erase uldr
@tftp  uldr.bin
@tftp uldr.bin.uartboot_img
@sfc write uldr

ET创芯网(EETOP)-电子设计威尼斯人网址、博客、超人气的电子工程师资料分享平台el R"Fwf6Le;W5J
2 Uboot 的几种启动模式设置
2.1 flash 模式
ET创芯网(EETOP)-电子设计威尼斯人网址、博客、超人气的电子工程师资料分享平台L"g},|l} |Q c
2.2  NFS 模式 【假定已经建立tftp nfs samba模式】
setenv serverip 192.168.0.1
setenv ethaddr 00:06:37:03:15:01
setenv ipaddr 192.168.0.201
setenv ethport eth0
setenv gatewayip 192.168.0.1
setenv nfs_serverip "192.168.0.1"
@setenv rootfsargs "root=/dev/nfs rw nfsroot=${nfs_serverip}:/home/wine/nfs_serverfolder/rootfs_fd"
@setenv appfsargs "APPFS=${serverip}:/home/wine/nfs_serverfolder/apps_fd"
@setenv bootargs "noinitrd ip=${ipaddr}:${serverip}:192.168.0.1:255.255.255.0:${ethport} console=ttyS1,115200n8 ${mtdparts} ${rootfsargs} ${appfsargs}" 
@setenv bootcmd "tftp linuxkernel.bin; go 0x8000";setenv uboot_cmdline 1;save;

4O}8h)VK9B:W0
2.3 USB 模式
ET创芯网(EETOP)-电子设计威尼斯人网址、博客、超人气的电子工程师资料分享平台[Zg5}u4\
2.4 混合模式

K yvdy-M;DE Sy]+A0

ET创芯网(EETOP)-电子设计威尼斯人网址、博客、超人气的电子工程师资料分享平台%H9DR#r/t:V9f,B8Dv

Bl,DJK T-Q)k5S0

gy)M U4Y0

&IsU T)BY$t/X%v3e0

%@4VzG;W:u2Tc0
ET创芯网(EETOP)-电子设计威尼斯人网址、博客、超人气的电子工程师资料分享平台Y,Q1Wx:b[6B7i

dYpc'sB!iaA0
ET创芯网(EETOP)-电子设计威尼斯人网址、博客、超人气的电子工程师资料分享平台MuOA#bMuT

ref:
ET创芯网(EETOP)-电子设计威尼斯人网址、博客、超人气的电子工程师资料分享平台UT,gp0CF
ET创芯网(EETOP)-电子设计威尼斯人网址、博客、超人气的电子工程师资料分享平台6j8W4pLcV u
ET创芯网(EETOP)-电子设计威尼斯人网址、博客、超人气的电子工程师资料分享平台 m:z0C"l9s WX

TAG: 存储器 工程师 空间 嵌入式 系统软件

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

Open Toolbar
博聚网