|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
HiBurn 工具使用指南
|
||
文档版本 |
08 |
|
发布日期 |
2015-08-18 |
|
|
||
版权所有 © 深圳市海思半导体有限公司2015。保留一切权利。 非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传播。
商标声明
本文档提及的其他所有商标或注册商标,由各自的所有人拥有。
注意 您购买的产品、服务或特性等应受海思公司商业合同和条款的约束,本文档中描述的全部或部分产品、服务或特性可能不在您的购买或使用范围之内。除非合同另有约定,海思公司对本文档内容不做任何明示或默示的声明或保证。 由于产品版本升级或其他原因,本文档内容会不定期进行更新。除非另有约定,本文档仅作为使用指导,本文档中的所有陈述、信息和建议不构成任何明示或暗示的担保。 |
|
|
深圳市海思半导体有限公司 |
|
地址: |
深圳市龙岗区坂田华为基地华为总部 邮编:518129 |
网址: |
|
客户服务邮箱: |
前 言
概述
本文档主要介绍HiBurn烧写工具的使用方法,适用于一键烧写所有程序镜像到单板flash上的场景、单板已有boot可按地址烧写其他程序镜像到单板flash上的场景,以及在空板上只烧写boot到单板flash上的场景。
产品版本
与本文档相对应的产品版本如下。
产品名称 |
产品版本 |
Hi3798M |
V1XX |
Hi3796M |
V1XX |
Hi3798C |
V1XX |
Hi3798C |
V2XX |
Hi3796C |
V1XX |
Hi3716C |
V1XX |
Hi3716M |
V1XX |
Hi3716C |
V2XX |
Hi3719C |
V1XX |
Hi3718C |
V1XX |
Hi3719M |
V1XX |
Hi3718M |
V1XX |
Hi3716M |
V4XX |
Hi3716M |
V31X |
Hi3716M |
V32X |
Hi3798C |
V1XX |
Hi3712 |
V1XX |
Hi3110E |
V2XX |
Hi3110E |
V4XX |
Hi3110E |
V5XX |
Hi3110E |
V3XX(CA) |
Hi3716C |
V11X(CA) |
Hi3716M |
V2XX(CA) |
Hi3716M |
V3XX(CA) |
Hi3716C |
V2XX(CA) |
Hi3719M |
V100(CA) |
Hi3521 |
V1XX |
Hi3531 |
V1XX |
Hi3520D |
V1XX |
Hi3535 |
V1XX |
Hi3536 |
V1XX |
Hi3521A |
V1XX |
Hi3751 |
V8XX |
Hi3751 |
V6XX |
Hi3751L |
V5XX |
Hi3751 |
V5XX |
Hi3251 |
V1XX |
Hi3751 |
V3XX |
读者对象
本文档(本指南)主要适用于以下工程师:
l 技术支持工程师
l 硬件开发工程师
作者信息
章节号 |
章节名称 |
作者信息 |
全文 |
全文 |
F00107764 |
修订记录
修订记录累积了每次文档更新的说明,最新版本的文档包含以前所有文档版本的更新内容。
修订日期 |
版本 |
修订说明 |
2014-01-15 |
00B01 |
第1次临时版本发布。 |
2014-05-23 |
01 |
修改第8章FAQ。 |
2014-06-16 |
02 |
新增第6章高安镜像烧写与第8章合并镜像。 |
2014-08-25 |
03 |
增加支持Hi3716MV310芯片的说明。 |
2014-10-31 |
04 |
新增支持Hi3796M V100芯片。 |
2014-11-06 |
V5.0 |
新增Hi3751系列芯片。 |
2014-12-31 |
V6.0 |
新增Hi3536、Hi3521A系列芯片。 |
2015-03-09 |
05 |
新增10.19章节。 |
2015-04-30 |
06 |
新增10.20章节。 |
2015-05-25 |
07 |
新增Hi3751A V500系列芯片。 |
2015-08-18 |
08 |
修改第1、2章节。 |
2015-12-25 |
09 |
修改HiM5芯片名为Hi3251 |
目 录
9.4.3 设置自动更新bootargs中mtdparts/blkdevparts分区参数
10.1 HiBurn烧写中出现TFTP超时提示时的解决办法
10.3 HiBurn烧写Fastboot分区时,工具出现报错“Failed to send start frame”的解决办法
10.4 HiBurn烧写Fastboot分区时,控制台只打印了一段“#########”后停止打印,且工具出现报错“Failed to send head frame”的解决办法
10.5 HiBurn烧写Fastboot分区时,工具出现报错“Failed to send data frame”的解决办法
10.6 HiBurn烧写Fastboot分区时,工具出现报错“Failed to execute command”的解决办法
10.10 串口找不到或tftp启动失败或报tftp端口被占用的原因?
10.11 烧写Nand时控制台打印pure data length和len_incl_bad分别是什么含义?
10.13 烧写Emmc时,若出现“Time out while receiving command execute result!”报错,该怎么办?
10.14 大文件烧写时或Emmc烧写勾选创建分区表烧写时,需要保证什么?
10.16 Emmc烧片器制作时,如何修改无效数据的填充值为0x00或0xFF?
10.17 单板DDR Training失败的情况下工具会有什么打印?
10.18 反馈HiBurn使用过程中出现问题时需要提供什么?
插图目录
图10-5 提示内置TFTP启动失败,端口被外置tftpd32工具占用
图10-7 “Failed to send start frame”报错信息
图10-9 “Failed to send head frame”报错信息
图10-11 “Failed to send data frame”报错信息
图10-12 “Failed to execute command”报错信息
图10-18 控制台打印当前分区的稀疏镜像解析数后长度超过了分区长度
HiBurn工具主要是用于镜像烧写、镜像上载与烧片器镜像制作的多功能工具。
HiBurn工具三大主要功能的应用场景如下:
l 镜像烧写:应用于将镜像通过串口和网口烧写到对应Flash地址上;
l 镜像上载:应用于将Flash地址上数据通过DDR导出到PC上的文件中;
l 烧片器镜像制作:应用于将分区表中的镜像按照烧片器工具要求的格式打包成对应的镜像文件以供烧片器量产烧写。
uboot烧写原理:HiBurn工具在开始烧写后,首选与bootrom进行交互,工具DDR参数传送到传到bootrom,即为uboot下载阶段5%处,然后初始化DDR,再把uboot传输到DDR中,uboot下载阶段100%处表示传输完毕,再从DDR启动uboot,uboot启动完成后,工具开始与uboot进行交互,发送烧写命令,将DDR中的uboot烧写到Flash对应地址中。
其他镜像分区烧写原理:其他镜像分区,如kernel,rootfs等分区,工具默认采用网口传输的方式,客户可选择裸烧和非裸烧两种方式进行烧写,裸烧即为在按分区烧写或按Emmc烧写中勾选uboot进行烧写,此时uboot会被烧写到Flash中,非裸烧即为不勾选uboot,仅勾选其他分区进行烧写,此时需要保证当前单板上已经存在uboot,烧写时工具会启动uboot,与其交互,通过向uboot发送TFTP命令与Write命令,完成烧写。
对不同的单板,HiBurn工具在功能与器件上的支持有所差异。具体支持情况如表1-1所示。
芯片型号 |
Flash类型 |
文件系统 |
高级功能 |
||||||
Spi |
Nand |
eMMC |
Yaffs |
SquashFS |
UBI |
ext3/4 |
CA |
Bad Check |
|
Hi3521 Hi3531 Hi3520D Hi3535 |
● |
● |
○ |
● |
○ |
○ |
○ |
○ |
○ |
Hi3712 |
● |
● |
○ |
● |
○ |
● |
○ |
○ |
○ |
Hi3110EV200 Hi3110EV400 |
● |
○ |
○ |
○ |
● |
● |
○ |
○ |
○ |
Hi3798M Hi3798C Hi3796C Hi3716C Hi3716H Hi3798C Hi3751V Hi3716MV100 Hi3716MV200 Hi3716MV300 Hi3716MV310 Hi3716MV320 Hi3716MV400 Hi3716CV200 Hi3718CV100 Hi3719CV100 Hi3719MV100 Hi3719MV100_A |
● |
● |
● |
● |
○ |
● |
● |
○ |
● |
Hi3110EV300(CA) |
● |
○ |
○ |
● |
○ |
● |
○ |
● |
○ |
Hi3716CV110(CA) Hi3716MV200(CA) Hi3716MV300(CA) Hi3716CV200(CA) Hi3719MV100(CA) Hi3719CV100(CA) |
● |
● |
● |
● |
○ |
● |
● |
● |
○ |
S40V100 |
● |
● |
○ |
○ |
● |
○ |
○ |
○ |
○ |
注:●表示支持;○表示不支持。
HiBurn工具烧写的环境准备如下:
步骤 1 PC与单板之间连接好串口、网线,且因工具烧写需要涉及到与bootrom交互,故单板硬件上bootrom_sel需要设置为1,从bootrom启动。
步骤 2 把位于SDK发布包中的HiTool-XXX-X.X.X.zip(路径:$SDK_DIR/ tools/windows/HiTool),拷贝到PC上(PC要求安装Win7、XP操作系统)的某个本地硬盘。
请预先安装的jre1.6(jre-6u1-windows-i586-p),否则HiTool可能无法运行。链接如下:http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase6-419409.html
查看当前PC安装的JRE版本号,可以通过在开始->运行->键入cmd中输入java –version查看当前已安装的JRE版本号,若当前版本为1.6.0_xx即可,若当前版本号高于1.6,则请参考10.20 。
步骤 3 解压HiTool-XXX-X.X.X.zip,双击工具目录下的HiTool.exe,打开HiTool工具,如图1-1所示。
图1-1 从HiTool工具目录打开HiTool工具
步骤 4 选择单板对应的芯片型号,以Hi3518EV200为例,如图1-2所示。
步骤 5 在欢迎页中选择HiBurn工具,如图1-3所示。
步骤 6 参数配置,选择连接单板所用的串口,选择PC端使用的网络IP地址,配置好单板的MAC地址、IP地址、子网掩码以及网关,配置如图1-4所示。
所选择的PC的服务器IP必须和单板的网络配置在同一个网段内,否则无法通过网口烧写除fastboot以外的其他镜像(fastboot镜像是通过串口烧写的)。
单板环境准备:
连接好单板的串口、网线,有部分单板需要连接自举跳线帽,如图1-5、图1-6所示。其余单板跳过此环节,如Hi3521,Hi3531,Hi3520D,Hi3535。
图1-5 Hi3716M单板自举跳线帽
图1-6 Hi3716C/Hi3716H单板自举跳线帽
----结束
适用于所有的单板,不管单板上有没有boot都适用,可实现按分区烧写单板镜像。
具体烧写步骤如下:
步骤 1 打开HiBurn后,切换到“按分区烧写”页签,如图2-1所示。
图2-1 HiBurn按分区烧写
l 软件第一次打开时,软件会自动生成默认参数,当这些参数配置信息更改时,软件会自动记录更改后的最新值,在软件正常退出时,自动保存配置参数,下次启动时,使用最新配置参数,如软件遇到非法退出等非正常退出,软件的配置参数可能不会被正确保存,即最近一次的参数修改失效。
l 点击保存按钮,可以将当前板端的网络配置保存起来,点击加载按钮,可从以保存的结果中选择一组配置作为当前配置。
l 切换“默认采用XML所在路径”的勾选状态,若勾选,则优先在XML路径下查找该分区文件。若不勾选,则优先采用绝对路径查找该文件,若找不到,再尝试以在XML所在目录下查找该文件。
步骤 2 配置单板分区信息,点击浏览按钮,可选择已设置好的分区表信息,载入工具中,如图2-2所示。
l 分区信息只用于烧写,并不决定单板真正的分区划分,单板真实的分区划分还是由单板的bootargs决定,请将此处的分区信息与单板bootargs指定的分区信息对应,否则可能会出错。
l hiburn支持分区路径不一致,支持远程烧写。
l 如果需要将所有分区的文件打包成一个镜像烧写(对于nandflash,由于其本身特性特殊,如果文件系统分区是可读写的文件系统,则不能一起打包),则打包的文件必须要加载到fastboot分区进行烧写,并且镜像中需要包含fastboot,才可以正常烧写。因烧写fastboot分区是采用串口方式烧写,烧写速度较慢,故不推荐使用此种方法进行烧写。
修改分区信息可以直接修改xml格式的分区信息文件,也可以在工具中修改,用鼠标点击需修改分区的所在列,即可修改,如图2-3所示。
单击按钮,可以增加一行分区。可以在这一行修改分区名,选择flash类型以及是否需要文件系统以及文件系统的类型,还可以修改分区的起始大小和分区大小。
分区的起始大小和分区大小都是以KB或MB为单位,而且必须是flash块大小的整数倍,否则可能会出错。
l
单击按钮,可选择或改变该分区的烧写文件。
l
单击按钮,可删除该分区信息。
这里fastboot分区无法被删除,而且fastboot分区名不能被修改,因为如果fastboot分区被删除或fastboot分区名被修改则无法实现一键烧写。
l
单击按钮,选择所有要烧写的分区,进行一键烧写所有分区,再次单击按钮
,则取消所有要烧写的分区,也可以点击复选框
,选择相应的分区进行烧写。
l
单击保存按钮,可以将编辑好的分区表保存为文件。
单板分区信息在第一次打开工具时可能没有xml格式的分区信息文件,此时可以在工具界面中直接填写或修改来创建单板分区信息,创建完成后,在关闭HiTool工具时,弹出如图2-4对话框,会提醒是否保存分区信息,点击“确定”,在弹出的对话框中选择要保存分区信息的路径,输入要保存的文件名,就会保存为xml格式的分区信息,点击“取消”,则关闭工具且不保存分区信息。
创建完成后在切换透视图时,弹出如图2-5话框,“确定”,在弹出的对话框中选择要保存分区信息的路径,输入要保存的文件名,就会保存为xml 格式的分区信息,点击“取消”,则切换视图且不保存分区信息。注意保存分区信息的文件名后缀必须为.xml格式,否则下次载入分区信息时可能会出错而无法正确载入分区信息。信息另存为如图2-6所示。
图2-4 关闭Hitool工具时提醒是否保存分区信息界面
选中当前最后一行,点击新建得到新的最后一行,然后在该行长度一栏中输入“-”,再加入该行的分区名、文件系统以及文件的引用路径,在之后的烧写中即可计算出该行的长度,该长度为整个器件的剩余长度。如图2-7所示。
若用户在新建分区行时,未选中当前的最后一个分区,则新建的分区可能不是新的最后一个分区,则无法使用“-”来代表剩余长度。
步骤 3 准备单板环境。连接单板的串口和网口,如果单板处于通电状态,给单板下电,并确认单板自举跳线是否已短接;(跳线位置请参考本文档“1.5 环境准备”)。
步骤 4 烧写单板,点击烧写按钮,如图2-8所示。
步骤 5 给单板上电,进入烧写过程,等待烧写完成。烧写过程如图2-9所示。
烧写过程的信息会在如上的控制台中显示。如果发现烧写出错,请再次检查单板:
l 串口选择是否正确。
l IP地址是否正确,是否被占用。
l 是否有短接单板上的自举跳线。
步骤 6 烧写完成,连接终端工具,重启单板。
----结束
HiBurn提供了制作Nand烧片器镜像的功能。配置好分区列表后,点击制作Nand烧片器镜像按钮,会弹出Nand烧片器镜像制作界面。如图2-10所示。
图2-10 制作Nand烧片器镜像界面
选择对话框中的各项数据以后(其中Randomization功能对8K及以上Page Size的器件开放),点击“制作”按钮,即可生成Nand烧片器的镜像。
l 填入或选择的各项参数,必须与单板启动信息(可以使用超级终端类软件捕捉单板的启动信息并查看)中对应项的数值一致。
l 若用户不勾选某个分区,或者不为勾选的分区指定烧写文件,则无法制作该分区的镜像文件。
l 若为非yaffs分区制作镜像,则分区表中的文件系统一项不能指定为yaffs;为yaffs分区制作镜像时,文件系统必须指定为yaffs。否则,会导致做出的镜像不正确。
HiBurn提供了制作HiPro镜像的功能。
此功能不支持的芯片型号有:Hi3521,Hi3531,Hi3520D,Hi3535等。
配置好分区列表后,点击制作HiPro按钮,再选择需要制作的镜像类型,现在有两种hipro镜像供用户选择,分别是制作HiPro-Serial和HiPro-Usb工具所需要的镜像,如图2-11所示。
图2-11 选择HiPro镜像类型
选择镜像类型后在弹出的保存对话框中设置好文件路径,就可以制作HiPro镜像了。如图2-12所示。
图2-12 制作HiPro镜像过程
若用户不勾选某个分区,或者不为勾选的分区指定烧写文件,则无法制作该分区镜像文件。
按分区烧写提供了携带子分区信息即分区的分区名、文件系统以及文件的引用路径和起始地址以及分区长度跳转到按地址烧写界面,并采用该分区的信息直接录入到按地址烧写信息栏中,方便用户使用。
在按分区烧写界面中选中分区表中的一行,点击跳转按钮,即可跳转到按地址烧写界面中。如图2-13与图2-14所示。
在跳转前,用户必须选中需要跳转到按地址烧写页面的分区行,跳转按钮才会显示。
单板已有boot。
具体烧写步骤如下:
步骤 1 切换到“按地址烧写”页签,如图3-1所示。
步骤 2 配置单板烧写信息,选择要烧写的 flash类型,设置烧写起始地址和长度,选择要烧写的文件,如图3-2所示界面。
步骤 3 准备单板环境。连接单板的串口和网口,如果单板处于通电状态,给单板下电,并确单板自举跳线是否已短接;(跳线位置请参考本文档“1.5 环境准备”)
步骤 4 单击烧写按钮,如图3-3所示。
按地址烧写时,用户无需选择文件类型,只要选择自己想要烧写的文件即可。由于yaffs文件(带OOB数据)和其他类型文件(不带OOB数据)的格式不同,工具会根据选定的文件在后台自动区分文件类型(工具中区分为yaffs类型和None类型),然后根据不同的类型来执行相应的烧写,给单板上电,进入烧写过程,等待烧写完成,按地址烧写只有第一次点击烧写按钮时需要重新给单板上电,后续再烧写镜像时不需要重新给单板上电了。
步骤 5 给单板上电,进入烧写过程,等待烧写完成。烧写过程如图3-4所示。
烧写过程的信息会在如上的“控制台”中打印输出。如果发现烧写出错,请再次检查单板:
l 串口选择是否正确
l IP地址设置是否正确,是否被占用
l 是否有短接单板上的自举跳线
Erase操作和Burn操作类似,这里不再赘述。
步骤 6 烧写完成,连接终端工具,重启单板。
----结束
烧写和上载是两个逆反操作,烧写功能是将镜像文件烧录到单板上,而上载功能则是按照用户设置的起始地址和长度将这段区域的内容上载至PC。上载的具体步骤完全可以参考烧写步骤。这里列出两个和烧写步骤中不一样的地方,重复的地方不在累述。
步骤 1 同3.2 步骤 1。
步骤 2 同3.2 步骤 2。
步骤 3 配置单板上载信息,选择要上载的flash类型,设置存储设备中待上载的起始地址及长度,并且设置上载后的保存文件。如图3-5所示。
步骤 4 同3.2 步骤 3。
步骤 5 单击“上载”,如果待上载区域的镜像fastboot,kernel,ubifs等请选择Data whithout OOB,如果镜像是yaffs,请选择Data with OOB。如图3-6所示。
按地址上载时,用户需要明确指定要上载的数据类型。这一步操作是在用户点击“上载”按钮后的弹出对话框中完成的。如果用户在这一步选择错误,会导致上载后的数据跟原始的文件无法吻合。yaffs文件系统部分上载时,长度应该为pagesize + oobsize的倍数。
----结束
擦除功能是从指定地址开始将指定长度的内容从板端擦除。擦除的步骤同烧写步骤类似,这里列出两个和烧写步骤中不一样的地方,重复的地方不在累述。
步骤 1 同3.2 步骤 1。
步骤 2 同3.2 步骤 2。
步骤 3 配置单板擦除信息,选择要擦除的flash类型,设置存储设备中待擦除的起始地址及长度。如图3-7所示。
步骤 4 同3.2 步骤 3。
步骤 5 单击“擦除”,给单板上电,进入擦除过程,等待擦除完成。如图3-8所示。
擦除时,长度应该为blocksize的倍数。
----结束
单板上没有boot,和按地址烧写配合,可完成单板所有镜像的烧写。
具体烧写步骤如下:
步骤 1 切换到“烧写Fastboot”页签,如图4-1所示。
图4-1 Fastboot烧写界面
步骤 2 配置串口,选择连接单板所用的串口,配置如图4-2所示。
步骤 3 配置Boot烧写信息,配置如图4-3所示。
图4-3 配置boot 烧写信息
步骤 4 准备单板环境,如果单板处于通电状态,请短接跳线,给开发板下电;如果单板没有上电,请短接单板跳线。(跳线位置请参考本文档“1.5 环境准备”)
步骤 5 点击烧写按钮,如图4-4所示。
步骤 6 给单板上电,进入烧写过程,等待烧写完成。烧写过程如图4-5所示。
烧写过程的信息会在如上的“控制台”打印输出。
如果发现烧写出错,请再次检查:
l 串口选择是否正确。
l 是否有短接单板上的自举跳。
步骤 7 烧写完成,连接终端工具,重启单板。
----结束
适用场景如下:只适用于eMMC烧写,不管单板上有没有boot都适用,可实现一键烧写所有镜像。
此功能不支持的芯片型号有:Hi3521,Hi3531,Hi3520D,Hi3535;Hi3712,Hi3110EV200,Hi3110EV400,Hi3110EV300(CA),S40V100。
具体烧写步骤如下:
步骤 1 切换到“烧写eMMC”页签,如图5-1所示。
图5-1 eMMC 烧写界面
l 切换“默认采用XML所在路径”的勾选状态,若勾选,则优先在XML路径下查找该分区文件。若不勾选,则优先采用绝对路径查找该文件,若找不到,再尝试以在XML所在目录下查找该文件,该状态默认被勾选。
l 切换“创建分区表”的勾选状态,决定是否为Ext3/4 文件系统分区创建eMMC 分区表,该状态默认被勾选。
l 适用场景:创建分区表此功能只有以下芯片具备:Hi3716,Hi3716-CA系列芯片(除Hi3716CV200,Hi3716CV200-CA,Hi3716CV200ES),Hi3712,Hi3712-CA系列芯片。
步骤 2 配置单板分区信息,点击“浏览”,可选择已设置好的分区表信息,载入工具中,如图5-2所示界面。
如果所有分区的文件打包成一个镜像烧写时(由于eMMC文件系统分区需要创建分区表,因此文件系统分区不同时,则不能一起打包,Android版本不存在此问题),此镜像必须要放到fastboot分区,而且此镜像中要包含fastboot,另外由于此时是采用串口方式烧写,烧写速度比较慢,要耐心等待。
eMMC采用DOS分区格式,对于Ext3/4文件系统分区需要创建分区表信息,内核才可以正确识别Ext3/4 文件系统分区。
如果eMMC存储排布发生变化,一定要选择“创建分区表”进行烧录,重新创建eMMC分区表,否则内核不能够正确识别Ext3/4分区。
要修改某个分区的信息可以直接修改保存为 xml格式的分区信息文件,也可以直接在工具中修改,如果要在工具中修改某个分区的信息,用鼠标点击这个分区所在的行,则会出现如图5-3所示。
分区的起始大小和分区大小都是以KB或MB为单位,而且必须是eMMC扇区大小的整数倍,否则可能会出错。
l
单击按钮,可以增加一行分区。可以在这一行修改分区名、选择是否需要文件系统以及文件系统的类型,还可以修改分区的起始大小和分区大小。
l
单击按钮,可选择或改变该分区的烧写文件。
l
单击按钮,可删除改分区信息。注意:这里fastboot 分区无法被删除,而且fastboot 分区名不能被修改,因为如果fastboot 分区被删除或fastboot 分区名被修改则无法实现一键烧写。
l
单击按钮,选择所有要烧写的分区,进行一键烧写所有分区,再次单击按钮
,则取消所有要烧写的分区,也可以点击复选框
,选择相应的分区进行烧写。
l
单击按钮,可以将编辑好的分区表保存为文件。
创建完成后在切换透视图时,弹出如图2-5话框,“确定”,在弹出的对话框中选择要保存分区信息的路径,输入要保存的文件名,就会保存为xml 格式的分区信息,点击“取消”,则切换视图且不保存分区信息。注意保存分区信息的文件名后缀必须为.xml格式,否则下次载入分区信息时可能会出错而无法正确载入分区信息。信息另存为如图2-6所示。
图5-4 关闭Hitool工具时提醒是否保存分区信息界面
信息另存为如图5-6所示。
步骤 3 准备单板环境。连接单板的串口和网口,如果单板处于通电状态,给单板下电,并确认单板自举跳线是否已短接;(跳线位置请参考本文档“1.5 环境准备”)。
步骤 4 烧写单板,点击烧写按钮,如图5-7所示。
步骤 5 给单板上电,进入烧写过程,等待烧写完成。烧写过程如图5-8所示。
烧写过程的信息会在如上的控制台中显示。
l 串口选择是否正确。
l IP地址设置是否正确,地址是否被占用。
l 是否有短接单板上的自举跳线。
步骤 6 烧写完成,连接终端工具,重启单板。
----结束
制作烧片器镜像功能可以将当前分区列表中选择的文件制作为烧片器镜像文件。配置好分区列表后,点击制作烧片器镜像按钮,在弹出的保存对话框中设置好文件路径,制作烧片器镜像就开始了,如图5-9所示。
emmc 烧写是将镜像文件烧录到emmc 器件上,而emmc 上载则是按照设置的起始地址和长度将这段内容上载至PC。上载的具体步骤完全可以参考烧写步骤。这里列出两个和原来烧写步骤中不一样的地方,重复的地方不在累述。
步骤 1 同3.2 步骤 1。
步骤 2 同3.2 步骤 2。
步骤 3 配置上载信息,可以设置上载的起始地址在“起始栏”及长度在“长度栏”,点击“浏览”栏,可以选择将这个上载的内容保存在PC 上某个具体的文件中。
步骤 4 同3.2 步骤 3。
步骤 5 准备上载,点击“上载”按钮,会将数据保存到指定的文件中,上载过程如图5-10所示。
----结束
HiBurn提供了制作HiPro镜像的功能。配置好分区列表后,点击 按钮,再选择需要制作的镜像,现在有两种hipro镜像供用户选择,分别是制作HiPro-serial和HiPro-usb工具所需要的镜像,如图5-11所示。
图5-11 选择HiPro镜像类型
选择镜像类型后在弹出的保存对话框中设置好文件路径,就可以制作HiPro镜像了。如图5-12所示。
图5-12 制作HiPro镜像过程
l 若用户不为none文件系统的分区指定烧写文件,或者不勾选某个分区,则该分区在制作镜像时会被跳过。
l 若用户不为ext3/4文件系统的分区指定烧写文件,程序会向镜像中写入一个空分区。
l 用户必须指定最后一个ext3/4文件系统分区的长度。
l 由于eMMC器件需要附带分区表,因此fastboot分区以及所有ext3/4分区实际数据的地址会相对配置的烧写地址向后微量偏移。
烧写高安平台单板时,由于fastboot可能并不含有烧写单板需要的一些命令,因此需要另外指定一个包含命令的文件,将其先下发到单板。HiBurn中称之为Programmer文件。
在包含所有烧写需要的命令的情况下,只需指定Programmer文件与fastboot中的一个即可完成烧写。
此功能不支持的芯片型号有:Hi3521,Hi3531,Hi3520D,Hi3535;Hi3712,Hi3110EV200,Hi3110EV400,Hi3716C,Hi3716H,Hi3716MV100,Hi3716MV200,Hi3716MV300,Hi3716CV200,Hi3718CV100,Hi3719CV100,Hi3719MV100,Hi3719MV100_A,S40V100。
点击“Programmer文件”文本框右边的“浏览”按钮,选定Programmer文件后,如图6-1所示(这里以分区烧写为例,其它烧写器此步操作相同)。
随后按照非高安平台单板的烧写流程操作即可。具体步骤请参照第2 至5 章。
适用场景如下:适用于支持Nand类型的单板,板端必须已有Boot,可实现单板坏块一键检测。
此功能不支持的芯片型号有:Hi3521,Hi3531,Hi3520D,Hi3535;Hi3712,Hi3110EV200,Hi3110EV400,Hi3110EV300(CA),Hi3716CV110,Hi3716MV200(CA),Hi3716MV300(CA),Hi3716CV200(CA),Hi3719MV100(CA),S40V100。
具体烧写步骤如下:
步骤 1 切换到“坏块检测”页签,如图7-1所示。
图7-1 HiBurn坏块检测界面
步骤 2 点击检查坏块按钮,开始检测坏块,如图7-2所示界面。
图7-2 HiBurn坏块检测运行界面
当检测到坏块后,界面中绿色显示条中将出现红色线条,其位置对应其在单板中的地址,并将在下方显示坏块详细信息如图7-3所示。
图7-3 HiBurn坏块检测结果展示
----结束
适用场景如下:适用于SPI Flash中因存储空间较小,用户需要将多个镜像合并为一个镜像,尽量高效率的利用block块的场景,也适用于将其他Flash类型的镜像合并为一个镜像。
具体烧写步骤如下:
步骤 1 切换到“合并镜像”页签,如图8-1所示。
图8-1 HiBurn合并镜像界面
步骤 2 点击Browse按钮,加载分区表或点击按钮,手动新建分区表,如图8-2所示。
步骤 3 点击Merging image按钮,合并镜像,如图8-3所示。
----结束
HiBurn工具的TFTP可通过首选项进行设置,点击菜单栏中“窗口”->“首选项”进入首选项对话框,进入“HiBurn”下的“TFTP设置”页面,如图9-1所示。
图9-1 TFTP设置页面
设置项:
l TFTP速率:用于计算超时,根据传输文件的长度及设置的TFTP速率计算出超时。单位为byte/s。
l 处理丢包:勾选“处理丢包”按钮,连续丢包次数项可配置,在传输过程中若连续丢失的包达到最大连续丢包次数,则判定传输失败。若不勾选“处理丢包”按钮,连续丢包次数项不可配置,且不管传输过程中的丢包情况。
l 连续丢包次数:设置最大连续丢包次数。
l TFTP重试次数:设置TFTP重试次数,若传输失败,将重试,重试设置次数后仍未成功,将停止。
l TFTP无响应超时:设置TFTP无响应超时,传输过程中若在设置时间内无响应,则判定传输失败,单位为秒。
HiBurn工具的命令也可通过首选项进行设置,点击菜单栏中“窗口”->“首选项”进入首选项对话框,进入“HiBurn”下“命令设置”页面,如图9-2所示。
mmc write命令
速率:用于计算超时,根据要写入内容的长度及设置的速率计算出超时。单位为byte/s。
setenv ethact 命令
用于设置当前使用的网口。
制作EMMC烧片器镜像和HiPro镜像中的无效数据的填充值也可通过首选项进行设置,点击菜单栏中“窗口”->“首选项”进入首选项对话框,进入“HiBurn”下“制作镜像无效数据设置”页面,如图9-3所示。
HiBurn工具的Debug控制台可通过首选项进行设置。
步骤 1 点击菜单栏中“窗口”->“首选项”进入首选项对话框,进入“HiBurn”页面,选中“Open Debug Mode”按钮,表示开启Debug控制台,如图9-4所示。
步骤 2 在开始烧写后,工具会自动创建Debug控制台,点击控制台右上角切换控制台按钮,选择切换控制台为“HiBurn-Debug”控制台,当前控制台就显示为Debug控制台,如图9-5所示。
点击菜单栏中“窗口”->“首选项”进入首选项对话框,进入“HiBurn”页面,选中“Check whether the PC and Borad IP addresses are in the same network segment”按钮,如图9-6所示,表示开启在烧写前检查PC与板端IP是否在同一网关,取消选中则表示不会在烧写前检查此项,
HiBurn提供了自动更新bootargs分区中的mtdparts/blkdevparts分区参数功能,点击菜单栏中“窗口”->“首选项”进入首选项对话框,进入“HiBurn”页面,在烧写前选中Auto-set mtdparts/blkdevparts,如图9-7所示,在烧写时,工具就会自动根据当前分区表生成一个临时的bootargs文件烧写到单板中。
l mtdparts与blkdevparts两种参数在bootargs分区中作用相同,一个bootargs文件只会有其中一种参数,如Hi3716CV200芯片所对应的bootargs分区中参数为blkdevparts;
l 勾选此功能后,工具仅提供对bootargs分区中mtdparts/blkdevparts参数的更新,并会根据更新后的参数刷新bootargs文件的CRC校验码
l 勾选此功能后,工具不会修改原bootargs文件,若当前分区信息与原bootargs不匹配,则制作bootargs.temp临时文件代替原bootargs文件烧写到bootargs分区位置。
----结束
问题描述
出现以下TFTP错误时,如图10-1所示,该如何解决?
图10-1 TFTP超时问题
解决办法
解决此问题分以下四个方面:
l 检查HiBurn中网络配置是否正确,如图10-2所示,首先检查服务器IP是否正确,若不正确点击重新加载,加载最新的PC端IP地址;然后检查子网掩码与网关是否配置正确,若正确,再检查板端IP地址是否被占用(使用ping命令,查看当前单板IP是否能够ping通,若不能则表示当前网络不通),再查看,将以上参数全部保证正确后再尝试重新烧写。
l 使用外置的tftpd32工具代替工具中内置的TFTP进行下载操作(如何使用外置tftpd32如10.2 章节所示),若tftpd32也显示超时,则检查当前网络环境是否正常;
l 修改工具中TFTP参数设置,匹配当前网络环境,通过点击菜单栏上的“Window”->“Preferences”->“HiBurn”->“TFTP Setting”,如图10-3所示,将“The number of consecutive packet loss”与“TFTP no response timeout”两个参数设置大一些,然后在进行烧写,查看是否正常。
l 检查是否关闭防火墙,若未关闭,需要关闭防火墙。
问题描述
如何使用外置的tftpd32进行镜像下载且需要注意什么?
解决办法
使用外部tftpd32步骤为:
步骤 1 在烧写前打开tftpd32工具,并选择正确的PC端IP地址与将烧写的镜像所在目录,如图10-4所示。
图10-4 配置tftpd32工具
步骤 2 在HiBurn中正常点击烧写按钮,弹出提示框,如图10-5所示,点击确认,开始烧写,当前就会使用外置的tftpd32进行镜像的下载,如图10-6所示。
图10-5 提示内置TFTP启动失败,端口被外置tftpd32工具占用
图10-6 外置tftpd32工具正在下载镜像
----结束
问题描述
烧写Fastboot分区出现以下“Failed to send start frame”错误时,如图10-7所示,我该怎么办?
图10-7 “Failed to send start frame”报错信息
解决办法
首先确认上一次点击烧写后,是否在15秒内给单板重新上电,若已经重新上电,则查看串口是否与单板接触良好,若连接正常,则检查HiBurn中是否选择了正确的串口号,如图10-8所示,全部保证正确后,请重新进行烧写。
问题描述
烧写Fastboot分区控制台只打印了一段“#########”后停止打印,且工具出现报错“Failed to send head frame”时,如图10-9所示,该如何解决?
图10-9 “Failed to send head frame”报错信息
解决办法
此报错原因可能有以下两种:
l 烧写的Fastboot镜像与当前单板型号不匹配导致,请直接查看单板标记型号或通过串口查看当前单板型号,如图10-10所示,其中” CPU”后标注即为当前单板型号,明确单板型号后,请使用匹配当前芯片的SDK镜像重新进行烧写;
l 单板DDR有问题,无法正常进行DDR初始化操作。
问题描述
烧写Fastboot分区出现以下“Failed to send data frame”错误时,如图10-11所示,我该怎么办?
图10-11 “Failed to send data frame”报错信息
解决办法
此报错原因可能是烧写Fastboot镜像时串口连接出现松动导致工具与单板进行交互时数据发送失败,请检查串口连接情况。
问题描述
烧写Fastboot分区出现以下“Failed to execute command”错误时,如图10-12所示,我该怎么办?
图10-12 “Failed to execute command”报错信息
解决办法
此报错原因可能是当前Fastboot分区的Flash类型选择错误导致的,如图10-13所示,重启单板查看单板当前“Boot Media”属性,如当前为eMMC,则需要使用按EMMC烧写,且Fastboot分区的Flash类型选择为emmc。
问题描述
在选择文件传输方式时,串口和网口之间的优缺点是什么?
解决办法
HiBurn工具的串口烧写功能是纯串口烧写,因烧写过程需给板端传送大量数据。而串口本身的传输速率较低,故用纯串口的方式烧写,效率会比较低,我们推荐用网口的方式进行烧写,纯串口的方式烧写非常稳定,若用户网络环境不稳定,可使用串口烧写。
问题描述
按地址烧写界面,文件的长度要求是什么?
解决办法
擦除时,长度应该为blocksize的倍数;yaffs文件系统部分上载时,长度应该为pagesize + oobsize的倍数。
问题描述
在点击烧写,断电重启后,但是工具并没有开始烧写,是什么原因?
解决办法
可能是串口选择错误或没有正常连接串口(请使用终端工具查看),请等待,控制台会打印出相关信息。
问题描述
在linux下使用时,串口找不到或tftp启动失败或报tftp端口被占用,可能的原因什么?
解决办法
没有以root用户登录,无权限打开tftp服务或使用串口。报tftp端口被占用也有可能是其他软件占用了此端口。
问题描述
烧写Nand时控制台打印pure data length和len_incl_bad分别是什么含义?
解决办法
如图10-14所示,其中pure data length表示实际烧写的数据长度,而len incl bad表示包含坏块的实际烧写占用的长度,以上两种长度均不包含oobSize长度。
问题描述
烧写emmc时,根据芯片类型的不同现有两种烧写的方式,一种需要创建分区表,另一种不用创建,此两种情况在烧写时需要注意什么?
解决办法
需要创建分区表的芯片有:Hi3716HV100,Hi3716MV100,Hi3716MV200,Hi3716MV300,Hi3716CV110(CA),Hi3716MV200(CA),Hi3716MV300(CA)。在烧写以上芯片时第一次或调整分区后需要勾选创建分区表,烧录入单板,否则无法正常启动。
问题描述
烧写Emmc时,若出现“Time out while receiving command execute result!”报错,该怎么办?
解决办法
此报错原因可能是:mmc write命令执行后,等待命令执行后单板的反馈超时导致的,需要通过点击菜单栏上的“Window”->“Preferences”->“HiBurn”->“Command Setting”,如图10-15所示,将命令的执行速率修改低一些,然后再重新进行烧写。
问题描述
大文件烧写时或emmc烧写勾选创建分区表烧写时,需要保证什么?
解决办法
需要用户有烧写文件目录的写权限或第一个勾选文件的目录的写权限,才能在该目录创建临时文件。
问题描述
在Emmc烧片器制作时,需要注意什么?
解决办法
l 在制作EMMC烧片器镜像时若分区表中最后一个分区的长度为“-”,则需要用户输入当前单板整个器件可用长度,用于计算最后一个分区的长度,如图10-16所示
l 在制作Emmc烧片器镜像时,若分区中文件系统为ext3/4,则可能会是稀疏镜像若为当前分区为稀疏镜像,则会在控制台打印提示,如图10-17所示,若该稀疏镜像解析数后的大小超过了整个分区的大小,则可能导致制作出来的烧片器镜像错误,故若出现此种现象,则工具会在控制台打印提示,如图10-18所示
图10-18 控制台打印当前分区的稀疏镜像解析数后长度超过了分区长度
问题描述
Emmc烧片器制作时,如何修改无效数据的填充值为0x00或0xFF?
解决办法
需要通过点击菜单栏上的“Window”->“Preferences”->“HiBurn”->“Invalid Data Setting”,如图10-19所示,可以选择无效数据填充值为0x00或0xFF,选择后,再制造EMMC烧片器镜像,就可以将无效数据填充为指定值。
问题描述
单板DDR Training失败的情况下工具会有什么打印?
解决办法
当单板出现DDR Training失败时,在烧写Fastboot分区时,会打印如图10-20所示信息。
问题描述
反馈HiBurn使用过程中出现问题时需要提供什么?
解决办法
使用HiBurn工具出现问题时,将控制台中打印内容通过控制台工具栏中导出按钮导出,反馈问题时一并反馈,将有助于问题的定位及解决。
问题描述
tftp命令总是报文件找不到,但实际所有的设置都是好的,原因是什么?如何查看是否有进程占用了tftp的69端口?
解决办法
可能存在后台进程占用了69端口。可以使用如下方法查看是否有进程占用。
在cmd命令行工具中输入, 打印例如图10-21所示:
netstat -ano -p udp
查看是否有进程占用了69端口,上图中可以看到pid为7696的进程占用了69端口。再使用如下命令查看7696进程的名称,打印例如图10-22所示:
tasklist|findstr "7696"
图10-22 查看指定PID的进程名称
然后在进程管理器中杀掉该进程即可。
问题描述
PC安装了1.7及以上版本JRE,打开HiTool时报错如图10-23所示,该怎么办?
图10-23 打开HiTool报错无法启动JVM
解决办法
因HiTool目前是依赖JRE1.6版本,故在HiTool启动时,需要加载JRE1.6,当安装了JRE1.7及以上版本后,可能会导致无法找到JRE1.6的问题,故会出现“Failed to create the Java Virtual Machine”报错。
set PATH=JRE 1.6路径;%PATH%
HiTool路径
如下举例:
set PATH=C:\Program Files\Java\jre1.6.0_01\bin;%PATH%
C:\Users\y00250933\Desktop\HiTool-STB-3.0.19\HiTool\HiTool.exe
保存该文本文件为.bat文件。点击该.bat文件启动HiTool.
A |
|
AXI |
Advanced eXtensible Interface |
|
|
D |
|
DDR |
Double Data Rate |
|
|
E |
|
eMMC |
Embedded MultiMediaCard |
|
|
G |
|
GPIO |
General Purpose Input Output |
|
|
H |
|
HDMI |
High Definition Multimedia Interface |
|
|
N |
|
NAND |
NAND |
|
|
P |
|
PID |
Process Identification |