1. 程式人生 > >嵌入式 uboot修改spi-flash分割槽示例

嵌入式 uboot修改spi-flash分割槽示例

0x000000000000-0x000000040000 : "boot"
0x000000040000-0x000000060000 : "env"
0x000000060000-0x000000080000 : "conf"
0x000000080000-0x000000380000 : "kernel"
0x000000380000-0x000000e80000 : "rootfs"

/*
0x000000000000-0x000000040000 : "boot"
0x000000040000-0x000000060000 : "env"
0x000000060000-0x000000080000 : "config"
0x000000080000-0x000000380000 : "kernel"
0x000000380000-0x000000e80000 : "rootfs


bootargs=mem=64M console=ttyAMA0,115200 root=/dev/mtdblock4 rootfstype=jffs2 mtdparts=hi_sfc:256k(boot)ro,128k(env),128k(config),3072k(kernel),11264k(rootfs)
bootcmd=sf probe 0;sf read 0x82000000 0x80000 0x300000;bootm 0x82000000
bootdelay=1
baudrate=115200
ethaddr=00:00:23:34:45:66
ipaddr=192.168.1.10
serverip=192.168.1.2
netmask=255.255.255.0
bootfile="uImage"
stdin=serial
stdout=serial
stderr=serial
verify=n
ver=U-Boot 2010.06 (Nov 01 2013 - 15:28:44)

Environment size: 459/262140 bytes


*/

setenv bootargs mem=64M console=ttyAMA0,115200 root=/dev/mtdblock4 rootfstype=jffs2 mtdparts=hi_sfc:256k(boot)ro,128k(env),128k(config),3072k(kernel),11264k(rootfs)


speed 1000
4、首先用初始化程式碼初始化記憶體(建議將log檔案裡面的命令拷貝出來一條條執行)
 J-Link>loadbin g:\3518\uboot_tools\3518a.log 0
 
####注意:3518a.log 是我由原來的3518a.log改寫的binary檔案,如果使用海思給的log檔案,把裡面的命令敲進去就行了
 

Loading binary file... [g:\3518\uboot_tools\3518a.log]
 Writing bin data into target memory @ 0x00000000.
 

5、設定pc指標
 
J-Link>setpc 0
 
6、執行
 
J-Link>go
 
7、載入uboot.bin
 J-Link>loadbin g:\3518\uboot_tools\3518a.bin 0x80800000
 Loading binary file... [g:\3518\uboot_tools\3518a.bin]
 
Writing bin data into target memory @ 0x80800000.
 
8、設定uboot執行地址
 J-Link>setpc 0xXXXX XXXX
 
9、執行
 
J-Link>go
 
這時,如果順利,在串列埠可以看到相應的uboot列印資訊。


uboot:
jload
 sf probe 0;sf erase 0x0 0x80000;sf write 0x82000000 0x0 0x40000
 
 setenv bootdelay 5
 saveenv
 
kernel:
 sf probe 0;mw.b 82000000 ff 300000;jload;sf erase 80000 300000;sf write 82000000 80000 300000
 setenv bootcmd sf probe 0\;sf read 0x82000000 0x80000 0x300000\;bootm 0x82000000
 
printenv

fs:
 sf probe 0 ;mw.b 82000000 ff B00000 ;jload;sf erase 380000 B00000 ;sf write 82000000 380000 B00000
 
 (380000~C7FFFF)
手動啟動檔案系統:
setenv bootargs mem=64M console=ttyAMA0,115200 root=/dev/mtdblock4 rootfstype=jffs2 mtdparts=hi_sfc:256k(boot)ro,128k(env),128k(config),3072k(kernel),11264k(rootfs)
sf probe 0;sf read 0x82000000 0x80000 0x300000;bootm 0x82000000