linux dd flash,用dd命令生成bin文件,而不用拆flash读取文件

对于linux系统,善用dd命令,可以做到直接生成bin文件,而不用生产拆flash。

1) 读flash,保存成bin文件:

~ $ cat /proc/mtd

dev: size erasesize name

mtd0: 00260000 00020000 "U-Boot"

mtd1: 00020000 00020000 "U-Boot Env"

mtd2: 00300000 00020000 "U-Boot Logo"

mtd3: 00440000 00020000 "Kernel"

mtd4: 0c820000 00020000 "File System"

mtd5: 02e20000 00020000 "Reserved"

~ $ dd if=/dev/mtd0 of=/tmp/uboot.bin

4864+0 records in

4864+0 records out

2490368 bytes (2.4MB) copied, 0.509397 seconds, 4.7MB/s

这样就把uboot存下来了。

2)  读多个分区,保存成一个bin文件

(dd if=/dev/mtd0; dd if=/dev/mtd1; dd if=/dev/mtd2; dd if=/dev/mtd3; dd if=/dev/mtd4; dd if=/dev/mtd5) >/test/4230_flash.bin

顺序保存mtd0-mtd5,这个会有点大,建议mount nfs,写到nfs上去。

当然如果mtd不连续,这个方法就不好用了,只能直接生成。

3)直接生成bin文件

dd if=uboot.bin of=$RELEASE_DIR/9550A_flash.bin seek=UBOOT_START bs=1k

dd if=uImage of=$RELEASE_DIR/9550A_flash.bin seek=KERNEL_START bs=1k

dd if=rootfs.ext2 of=$RELEASE_DIR/9550A_flash.bin seek=FS_START bs=1k

将uboot、kernel和文件系统打包成bin。UBOOT_START 等指的是相应的内容在生成的bin文件中的起始偏移(也即在flash中的偏移),注意seek的单位是block(bs)。

要注意的是,这种方法对不连续的区域,是置为全0的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值