嵌入式 uboot修改spi-flash分区示例
2013-12-15 20:56
495 查看
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
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
相关文章推荐
- c++中new和delete的使用方法
- [Linux-4] gdb调试带参数的程序
- Java高效计数器
- ios7横竖屏适配
- java.lang.NoClassDefFoundError: org/springframework/dao/support/DaoSupport
- 二进制(原码、反码、补码)
- C++ 让控制台运行到最后按下回车键才结束的3种方法
- VC12 编译Qt5.2
- 【C# -- OpenCV】Emgu CV 第一个实例
- 软件工程---软件需求分析
- 嵌入式 uboot、fs、kernel制作和烧录简记-hi3518c
- Java书籍推荐
- 工作的第二周
- 【技术】CSS表格中只显示一条边框
- NYOJ 11 奇偶数分离
- FairScheduler的任务调度机制——assignTasks(续)
- 虚基类, 纯虚函数
- 李开复:算法的力量
- SSH框架整合之Struts2和Spring整合
- C++封装MySql接口