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

本文详细介绍了如何修改U-Boot针对SPI闪存的分区设置,包括boot、env、conf、kernel和rootfs等分区。通过调整内存分配、设置启动参数,并使用J-Link进行固件加载和执行,最终实现对SPI闪存的定制配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值