本文主要介绍如何在EMMC/MLC 板子上MBoot下制作烧录用的bin,以及相关命令和工具的使用方法的介绍。由于FAT文件系统的4G文件大小限制,总容量大于4G的EMMC bin或有单个分区size大于4G的MLC平台制作稍微复杂点。

一、EMMC bin制作方法

1. 总容量小于4G EMMC步骤

1)  插上U盘(格式化为FAT32格式,容量应不小于EMMC总容量)后,如果不确定插

哪个usb port,可以先用

#usb start [port number]

命令确认,比如确认是否插在port 1, 输入

#usb start 1

如果打印发现设备,则当年确用port 1。

2)  使用emmcbin命令将EMMC中数据复制到U盘文件中。

#emmcbin [port number]

比如上面使用port 1, 输入

#emmcbin 1

等待进度条完成并提示dump完成后,会在U盘下生成一个名为emmc.bin, 大小跟EMMC容量一致的文件(emmc容量可通过mmc size命令查询)。

2.  总容量大于4G EMMC步骤

1) 插上U盘(格式化为FAT32格式,容量应不小于EMMC总容量)后,如果不确定插

哪个usb port,可以先用

#usb start [port number]

命令确认,比如确认是否插在port 1, 输入

#usb start 1

如果打印发现设备则当年确用port 1。

2) 使用mmc dd命令将EMMC数据复制到U盘中。

#mmc dd mmc2usb [port number]

比如上面使用port 1, 输入

#mmc dd mmc2usb 1

等待复制完成(提示100%)后,记住dump下来的总大小(block数),其实也就是EMMC总容量,会在打印的最后一行给出来:

Dump Block: XXX

3)  在PC上使用winhex将u盘中刚dump的数据复制到文件中。选择Tools->Disk tools->Clone disk。

Souce选U盘,Destination选择新创建目标文件目录。Start sector填0,即从U盘开始处读数据,注意这里的Number of sectors to copy需要填2)中“Dump Block:”后跟的大小,然后点OK等待制作完成。

二、MLC bin制作方法

1.  单个分区均size小于4G 的MLC步骤

1) 插上U盘(格式化为FAT32格式,容量应不小于MLC总容量)后,如果不确定插

哪个usb port,可以先用

#usb start [port number]

命令确认,比如确认是否插在port 1, 输入

#usb start 1

如果打印发现设备则确认使用port 1。

2) 使用nandbinall命令将MLC中数据复制到U盘文件中。

#nandbinall [port number][with spare?1:0]

[with spare?1:0]表示是否需要连nand的spare区域数据也一起dump,制作烧写bin时这个参数都置1。

比如使用port 0, 则输入

#nandbin 0 1

等待进度条完成并提示dump完成后,会在U盘下生成数个xxx.bin的文件, 一个分区对应一个文件。

2.  有单个分区size大于4G 的MLC步骤

1) U盘的准备和usb的识别同上。

2) nand dd nand2usb [usb port num]

比如使用usb port 1,则在mboot中输入

#nand dd nand2usb 1

等待复制完成(提示100%)后,记住dump下来的总大小(block数),会在打印的最后一行给出来;

3) 使用winhex读数据的方法同前面emmc部分的描述。

3. 制作MLC烧录bin及贴片的注意事项

1) 烧录器能识别出烧录文件中的空page(main和spare区域都是0xff的page)并跳过不做烧录。如不能满足(可请烧录器厂家修改软件),禁止使用先烧录后贴片的方案,而只能使用先贴片,后USB升级的方式;

2) 如“1)”可以满足,则要调整分区,将UBI中read only属性的分区拿出来单独放到一个ubiro分区中,ubi分区放在最后,里面只包含rw属性的分区;

3) 烧录时,除ubi分区以外的其余分区要做按给定的烧写文件进行烧写;ubi分区则要能识别empty page并跳过不做烧写;

4) dump烧写文件前,板子不能强行断电,只能通过命令行输入命令做reset或power down,防止板子数据损坏;

5) 客户必须谨慎的满足 MLC vendor 对 reflow 的温度规格. (举例:Micron 25nm 套用 TSB 的温度曲线,会造成损坏)

三、相关命令使用方法介绍

1.  emmcbin

该命令的作用是通过FAT文件系统把emmc中数据dump到U盘中。命令参数格式如下:

#emmcbin [usbportnum] [binname] [offset/partitionname] [dumpsize]

第一个参数(usbportnum)是usb port口,默认0;第二个参数(binname)是设U盘中文件名,默认emmc.bin;第三个参数(offset/partitionname)是选择emmc dump的起始位置,可以是实际offset(byte),也可以是分区名,默认0;第四个参数(dumpsize)是dump的大小,默认从起始位置往emmc末尾数的大小。

比如使用usb 1口,dump 整个userdata(2G)的数据:

#emmcbin 1 userdata.bin userdata 80000000

2.  mmc dd

该命令的作用是将emmc中数据不通过文件系统dump到U盘中,因为写的是裸数据,会破坏U盘中的文件系统数据,使用前需要对U盘中文件作备份,该命令也可以把U盘中裸数据回写到emmc中。参数格式如下:

#mmc dd mmc2usb/usb2mmc [pornum]

第二个参数如果是mmc2usb,那么就是把emmc中裸数据写到usb中,如果是usb2mmc就是把usb中裸数据写到emmc中, 注意这里的emmc和usb交换数据是不经过文件系统直接写裸数据的,这是跟emmcbin命令不同的地方,没有默认值,必须填。第三个参数是usb port口,默认0。

比如使用usb 1口,dump emmc数据到U盘:

#mmc dd mmc2usb 1

3.  nandbin

该命令的作用是通过FAT文件系统把MLC中数据dump到U盘中。 参数格式如下:

#nandbin usbport withsparedata?1:0

第一个参数(usbport)为usb port number, 默认0;第二个参数(withsparedata)如果是1的话MLC main区域数据连同spare区域数据一起dump到U盘文件中,如果是0的话只dump main区域数据,默认0。dump整个nand区域时会生成一个单一的nand.bin文件。

比如使用usb1口,只dump main区域数据

#nandbin 1

4. nandbinall

该命令也是dump整个nand数据,但一个分区对应一个image,所以dump的结果会是多个独立的image。具体使用方法前面已述。

5. bininfo

提供各个分区位置和大小的详细信息,供设置烧录器时使用。

四、相关工具使用方法介绍

Winhex下载地址及教程:

http://www.x-ways.net/winhex/

发表评论

您的电子邮箱地址不会被公开。