跳转至

BurnTool 工具使用指南


概述

本指南介绍 BurnTool 图形界面与命令行的使用方法,覆盖串口和 USB 镜像烧写、工厂烧写、镜像导出、擦除、参数配置、结果校验及常见问题处理。

准备

安装 BurnTool

海思开发工具下载页的“HiSpark系列工具”获取与 SDK 匹配的 BurnTool。仓库工具清单tools/README.md记录的配套版本为 BurnTool 26.03.3。

BurnTool安装程序的安装步骤如下:

  1. 打开BurnTool安装程序“BurnTool.exe”。
  2. 弹出BurnTool安装路径选择界面,如图1所示,选择好安装路径后单击“Next”按钮。若安装路径选择为C盘“Program Files”需要在运行时使用管理员权限。

    图 1 BurnTool安装界面

    **图 1** BurnTool安装界面

  3. 弹出BurnTool选择协议界面,如图2所示,选择对应的产品,单击“Next”按钮。

    图 2 BurnTool选择协议界面

    **图 2** BurnTool选择协议界面

  4. 弹出BurnTool额外任务选择界面,如图3所示,单击“Next”按钮。

    图 3 BurnTool额外任务选择界面

    **图 3** BurnTool额外任务选择界面

  5. 弹出BurnTool正在安装界面,请等待,直至安装完成。

  6. 弹出BurnTool安装完成界面,如图4所示,单击“Finish”按钮退出安装。

    图 4 BurnTool安装完成界面

    **图 4** BurnTool安装完成界面

烧写前确认

  • 根据单板选择匹配的芯片类型,具体操作请参见选择 Chip
  • 选择各产品编译生成的固件包,并在镜像表格中选中需要烧写的文件。SDK 环境搭建、镜像编译和固件包获取请参见开发环境快速入门,建议优先使用一站式 CLI 开发环境。
  • HiDiTingV100 可直接使用 tag_V26.08.1 发行版中的 26.08.1 默认社区固件。该 diting-community.fwpkg 已包含 file.bin,烧写时应保持 file.bin 在镜像列表中选中。
  • 使用 USB 烧写时,请按所选芯片与烧写方式完成相应硬件准备;USB 手动烧写的强制烧录管脚要求见USB 手动烧写,CAT1 USB 的 USB_BOOT 引脚要求见CAT1 USB 使用前准备
  • 在执行操作前,根据所选烧写方式确认串口、USB、VID/PID、擦除模式和其他配置,详细参数见参数

快速操作

串口手动烧写

  1. 选择各产品编译生成的固件包,并在表格中选中需要烧写的文件。
  2. 在“Setting”→“Settings”中配置串口参数,选择目标串口号后单击“Connect”,再复位单板。
  3. 界面显示“CCC”时单击“Send file”,传输完成后按结果校验确认结果。

完整步骤和配图请参见串口手动烧写

USB 手动烧写

  1. 按 USB 硬件要求完成准备,填写 USB 设备的 Vid 和 Pid 信息。
  2. 选择各产品编译生成的固件包,并在表格中选中需要烧写的文件。
  3. 单击“Start burn”,日志窗口出现“Reset the device...”时按下单板复位键,传输完成后按结果校验确认结果。

完整步骤和配图请参见USB 手动烧写

图形/命令行

图形界面烧写

串口手动烧写

  1. 在BurnTool界面中单击“Select file”按钮,选择各产品编译生成的固件包,并单击“OK”。
  2. 在表格中选中需要烧写的文件(请参考各产品文档中关于烧写的部分)。
  3. 选择“Setting”→“Settings”,配置串口参数,默认配置如图1所示。

    说明: Force Read Time:定时读取的时间,以毫秒为单位。勾选时为定时读取串口,不勾选时为事件触发读取串口。适用于不勾选该选项无法正常烧录的场景。

    图 1 串口设置示例

    **图 1** 串口设置示例

  4. 选择目标串口号并单击“Connect”按钮(单击后“Connect”变为“Disconnect”),复位单板。打断后效果如图2所示。

    图 2 打断效果示意图

    **图 2** 打断效果示意图

  5. 当界面显示字符串“CCC”时,单击“Send file”按钮。不同产品“CCC”上方的字符串可能不同。

  6. 等待传输完成后结束烧写,烧写完成会出现“All images burn successfully”。烧写完成效果如图3所示。

    图 3 烧写完成示意图

    **图 3** 烧写完成示意图

说明: 若镜像在服务器上,并多次出现烧写镜像失败的情况,请拷贝至本地烧写

USB 手动烧写

须知: USB烧录前应强制烧录管脚(smgpio18)管脚接地,烧录结束后去掉接地。

  1. 在BurnTool界面中正确填写USB设备的Vid和Pid信息,单击“Select file”按钮,如图1所示,选择各产品编译生成的固件包,并单击“打开”。

    图 1 单击“Select file”按钮

    **图 1** 单击“Select file”按钮

  2. 在表格中选中需要烧写的文件(请参考各产品文档中关于烧写的部分),如图2所示。

    图 2 烧写文件表格

    **图 2** 烧写文件表格

  3. 单击“Start burn”按钮,待日志窗口出现“Reset the device...”如图3所示,此时按下单板的复位键。工具等待单板复位超时默认为10s,如果超时时间内未检测到单板复位日志窗口会打印“Driver may not be installed. Open the device manager to confirm.No DFU capable USB device available.”,如图4所示。

    图 3 等待单板复位

    **图 3** 等待单板复位

    图 4 检测单板复位超时

    **图 4** 检测单板复位超时

  4. 等待传输完成后结束烧写,烧写完成会出现“All images burnt successfully”。烧写完成效果如图5所示。

    图 5 烧写完成示意图

    **图 5** 烧写完成示意图

串口工厂烧写

  1. 在BurnTool界面中单击“Select file”按钮,选择各产品编译生成的固件包,并单击“OK”。
  2. 在表格中选中需要烧写的文件。
  3. 选择“Setting”→“Settings”,配置串口参数,默认配置如图1所示。

    图 1 串口设置示例

    **图 1** 串口设置示例

    说明: Total num在研发测试中最大已压测个数为20,实际烧录最大个数上限理论不限制,一般与电脑性能、夹具、接线稳定性有关。

  4. 单击“Multiple burn”按钮,打开工厂烧写窗口,若已有配置会自动读取。若无配置手动选择串口后,可以选择“Setting”→“Save config”生成配置。

  5. 单击“Connect all”按钮,并复位所有单板。
  6. 等待所有回显视图都显示绿色“PASS”或红色“Fail”。

    等待所有回显视图都显示绿色“PASS”或红色“Fail”

USB 工厂烧写

  1. 执行“USB烧写”章节的步骤1
  2. 打开软件安装路径下的“configure\config_dfu”文件夹中的“config.ini”文件(以软件安装路径“D:\BurnTool”为例),如图1所示。

    图 1 config.ini文件路径

    **图 1** config.ini文件路径

  3. 在设备管理器的“通用串行总线控制器”中找到连接的单板的位置信息(例如Port_#0006.Hub_#0001),如图2所示。

    图 2 单板位置信息

    **图 2** 单板位置信息

  4. 3中找到的单板位置信息(以Port_#0006.Hub_#0001为例),保存在“config.ini”中的LOCATION1属性中,如图3所示。

    图 3 LOCATION1位置信息

    **图 3** LOCATION1位置信息

  5. 重复执行34直到将需要烧写的单板的位置信息按序填写在“config.ini”中。

    说明:

    • 如果需要同时烧写2块单板,则需要配置这2块单板的位置信息到LOCATION1和LOCATION2属性中。
    • 如果需要同时烧写20块单板,则需要配置这20块单板的位置信息到LOCATION1到LOCATION20属性中。 客户实际使用过程中,可以找20块单板(非空片),全部将其接到HUB中。然后分别给每一块单板上电,一个一个找到每一块单板的位置信息,填充到“config.ini”中。
  6. 打开工具界面,执行“USB烧写”章节的步骤2

  7. 选择“Setting”→“USB Settings”,配置工厂烧写相关参数,默认配置如图4所示。

    图 4 工厂烧写默认参数

    **图 4** 工厂烧写默认参数

    • Total num:工厂界面窗口总个数(窗口总个数最大值为20,最小值为1)。
    • Num per line:工厂界面每行窗口个数(每行窗口个数最大值为8,最小值为4)。

    说明: Total num的配置个数应与实际烧写的单板个数保持一致。例如如果实际要同时烧写2块单板,则Total num应该配置成2,如果实际要同时烧写20块单板,则Total num应该配置成20。

  8. 单击“Multiple burn”按钮,打开工厂烧写窗口。

  9. 单击“Connect all”按钮并复位所有单板。
  10. 等待所有单板烧写完成(以连接一个单板为例),如图5所示。

    图 5 工厂烧写结束示意图

    **图 5** 工厂烧写结束示意图

    表 1 工厂烧写界面说明

    区域

    说明

    1

    • Connect all:开始检查插入的USB设备。
    • Disconnect all:待所有USB设备烧写完成后,手动退出本次烧写。

    2

    烧写结果统计:成功数、失败数、成功率、本次烧写时间。

    3

    • 回显视图:显示单板烧写状态“Doing”、“PASS”、“Fail”、“Connecting”、“Stop”。
    • 序列号:显示当前视图检测到的USB序列号。

导出镜像

  1. 不要勾选“Auto burn”和“Auto disconnect”,如图1所示,按照“串口烧写”烧写完成 loader 文件。

    图 1 去勾选Auto burn和Auto disconnect

    导出镜像关闭自动烧写与断开

  2. 单击“Select target”按钮,选择导出文件的存放位置。

  3. 在“addr”编辑框中输入读取的Flash起始地址,在“size”编辑框中输入读取的Flash大小。
  4. 单击“Export”按钮开始导出。
  5. 等待导出完成,如图2所示。

    图 2 导出文件结束示例

    **图 2** 导出文件结束示例

全部擦除

  1. 不要勾选“Auto burn“和“Auto disconnect”,如图1所示,按照“串口烧写”烧写完成 loader 文件。

    图 1 去勾选Auto burn和Auto disconnect

    全部擦除关闭自动烧写与断开

  2. 点击“Erase all”开始擦除,如图2所示。

    图 2 Erase all按钮

    **图 2** Erase all按钮

  3. 等待擦除成功。

命令行烧写

串口烧写

在Windows环境下,BurnTool.exe支持以命令行的方式调用,可用于集成到用户已有的工厂产线烧写程序中,调用命令如下:

BurnTool.exe params

命令之间用空格隔开,如果命令带有参数,命令与参数之间用冒号隔开,最简示例如下:

BurnTool.exe -com:1 -bin:C:\test_bin\xxx.fwpkg -signalbaud:921600 -chiptype:XXXX

BurnTool.exe烧写命令可以配置的params参数如表1所示。

表 1 BurnTool.exe烧写命令参数表

命令

参数

说明

-com:

x

PC端的串口号(例如:1)。

-bin:

path\xxx.bin

固件包xxx.bin的绝对路径。固件包的名称和文件类型根据各产品实际情况可能有所不同。(路径不能存在空格字符)

-chiptype:

xxxx

芯片类型。

-signalbaud:

115200

RomBoot下传输固件包时的串口波特率,默认为115200bit/s。建议根据硬件支持情况,配置成921600bit/s或更高波特率,以提升烧写效率。

-burninterval:

x

使用xms间隔发送打断报文,常用于快速启动场景。不包含此参数时,间隔则为10ms。

-forceread:

10

包含此参数表示打开串口定时读功能,读数据间隔为10ms。

一般无需打开,在如下场景可考虑打开:

  • 在某些PC环境下BurnTool无法正常使用。
  • 在一拖多场景下CPU占用率过高。

-erasemode:

x

擦除模式。其中:

  • 0:正常擦除
  • 1:全片擦除
  • 2:不擦除

-timeout:

x

打断的超时时间,单位ms。

-console

使用标准输入输出,为重定向做准备。

-clearlog

屏蔽单板打印的日志。

-onlyeraseall

仅进行全片擦除

-onlyburn:

name

指定烧写对应名字的文件,可重复传参,效果累加。

-reset

烧写完成后自动重启设备。

-packagesize:

x

每次传输的包大小,当前支持1024,2048,4096,8192

-switchafterloader

在加载loader完成后再切换波特率。

-beforereset

在发送打断报文后,发送at重启命令,复位单板。

其他典型场景

  • 如果需要使用标准输入输出获取烧写过程的打印,命令如下:

    BurnTool.exe -com:1 -bin:C:\test_bin\xxx.fwpkg -signalbaud:921600 -chiptype:XXXX -console
    
  • 如果需要指定烧写一个烧录包中的其中两个bin文件,命令如下:

    BurnTool.exe -com:1 -bin:C:\test_bin\xxx.fwpkg -signalbaud:921600 -chiptype:XXXX -onlyburn:a.bin -onlyburn:b.bin
    
  • 如果需要使用全片擦除且烧写完之后自动复位单板,命令如下:

    BurnTool.exe -com:1 -bin:C:\test_bin\xxx.fwpkg -signalbaud:921600 -chiptype:XXXX -erasemode:1 -reset
    

USB 烧写

在Windows环境下,BurnTool.exe支持以命令行的方式调用,可用于集成到用户已有的工厂产线烧写程序中,调用命令如下:

BurnTool.exe params

命令之间用空格隔开,如果命令带有参数,命令与参数之间用冒号隔开,最简示例如下:

BurnTool.exe -chiptype:Hi3322-USB -autodfu -pid:0xxxxx -vid:0xxxxx -bin:xxx.fwpkg

BurnTool.exe烧写命令可以配置的params参数如表1所示。

表 1 BurnTool.exe烧写命令参数表

命令

参数

说明

-chiptype:(必选)

xxxx

芯片类型。

-autodfu(必选)

USB烧写模式。

-pid:(必选)

xxxx

USB设备的PID(16进制格式)。

-devicepathid:

xxxx

USB设备实例路径。

-usblocation:(必选)

xxxx

USB设备位置信息。(例如:Port_#0011.Hub_#0001)

-vid:(必选)

xxxx

USB设备的VID(16进制格式)。

-bin:(必选)

path\xxx.fwpkg

固件包xxx.bin的绝对路径。固件包的名称和文件类型根据各产品实际情况可能有所不同。

-erasemode:

x

擦除模式。其中:

  • 0:正常擦除。
  • 1:全片擦除。

-console

使用标准输入输出,为重定向做准备。

命令行导出

BurnTool.exe支持不打开界面,直接通过命令行进行Flash导出操作,调用命令如下:

BurnTool.exe params

命令之间用空格隔开,如果命令带有参数,命令与参数之间用冒号隔开,最简示例如下:

BurnTool.exe -export -com:1 -signalbaud:115200 -bin:C:\test_bin\xxx.fwpkg -onlyburn:loader.bin -target:C:\test_bin\xxx.bin -addr:0x... -size:0x... -chiptype:XXXX

其中“loader.bin”为fwpkg中type为0的文件的名称,此处为举例,可能与实际情况不同。BurnTool.exe Flash导出命令可以配置的params参数如表1所示。

表 1 BurnTool.exe flash导出命令参数表

命令

参数

说明

-export

Flash导出操作。

-bin:

path\xxx.bin

固件包xxx.bin的绝对路径。固件包的名称和文件类型根据各产品实际情况可能有所不同。需要烧写其中的loader文件(路径不能存在空格字符)。

-com:

x

PC端的串口号。

说明:

参数为10进制数字。

-signalbaud:

115200

传输固件包时的串口波特率,默认为115200bit/s。

说明:

参数为10进制数字。

建议根据产品形态,硬件支持情况,实际使用情况设置合适的波特率。

-target:

path\xxx.bin

导出到本地路径。

-addr:

0x....

导出Flash地址。

说明:

带有0x为16进制输入,不带0x为10进制输入。

-size:

0x....

导出Flash大小。

说明:

带有0x为16进制输入,不带0x为10进制输入。

-console

使用标准输入输出,为重定向做准备。

-onlyburn:

name

指定烧写对应名字的文件,可重复传参,效果累加。

-beforereset

在发送打断报文后,发送at重启命令,复位单板。

其他典型场景

如果需要使用标准输入输出获取烧写过程的打印,命令如下:

BurnTool.exe -export -com:1 -signalbaud:115200 -bin:C:\test_bin\xxx.fwpkg -target:C:\test_bin\xxx.bin -addr:0x... -size:0x... -console

如果需要先烧写全量镜像再导出,命令如下:

BurnTool.exe -export -com:1 -signalbaud:115200 -bin:C:\test_bin\xxx.fwpkg -target:C:\test_bin\xxx.bin -addr:0x... -size:0x...

CAT1 USB 烧写

使用前准备与芯片选择

须知: 版本烧录时不能勾选“RadioConfig.tlv”文件。

使用USB烧写模式时,需要将芯片类型切换为“4GCat1-USB”类型。若安装时选择的芯片类型与需求不匹配或需要修改芯片类型以满足不同的烧写场景时,进行如下操作:

  1. 单击“BurnTool”区域12的“Option”按钮选择“Change chip”。如图1所示。

    图 1 选择芯片类型

    **图 1** 选择芯片类型

  2. 通过“Change chip”选项打开芯片类型选择界面,选择所需要的芯片类型并单击“OK”确认更换所选芯片类型。例:选择“4GCat1-USB”,如图2所示。

    图 2 确认芯片类型

    **图 2** 确认芯片类型

须知: 使用USB烧写时需要将USB_BOOT引脚拉低。

手动烧写

  1. 驱动安装,在交付件“.../Tools/usb”目录下获取DFU驱动配置文件,64位系统选择“cat1_dfu_x64.inf”,单击右键,选择“安装”,无错误提示表示安装成功(若提示不包含签名信息错误时,商用场景下,请先进行数字签名;实验室调测场景,可先禁止驱动签名再进行安装,禁止方法参见“USB驱动签名禁止方法”)。
  2. 在BurnTool界面中正确填写USB设备的Vid和Pid信息,单击“Select file”按钮,如图1所示,选择各产品编译生成的固件包,并单击“打开”。

    图 1 单击“Select file”按钮

    **图 1** 单击“Select file”按钮

  3. 在表格中选中需要烧写的文件(请参考各产品文档中关于烧写的部分),如图2所示。

    图 2 烧写文件表格

    **图 2** 烧写文件表格

  4. 单击“Start burn”按钮,待日志窗口出现“Reset the device...”如图3所示,此时按下单板的复位键。工具等待单板复位超时默认为10s,如果超时时间内未检测到单板复位日志窗口会打印“Driver may not be installed. Open the device manager to confirm.No DFU capable USB device available.”,如图4所示。

    图 3 等待单板复位

    **图 3** 等待单板复位

    图 4 检测单板复位超时

    **图 4** 检测单板复位超时

  5. 等待传输完成后结束烧写,烧写完成会出现“All images burnt successfully”。烧写完成效果如图5所示。

    图 5 烧写完成示意图

    **图 5** 烧写完成示意图

说明: 镜像表格、擦除模式选项、镜像文件路径默认不灰化,如果需要灰化,打开软件安装路径下的configure文件夹下config_4GCat1-USB文件夹中的“config_setting.ini”文件,将“EDITABLE=1”字段改为“EDITABLE=0”。

工厂烧写

  1. 执行“手动烧写”章节的2
  2. 打开软件安装路径下的“configure\config_dfu”文件夹中的“config.ini”文件(以软件安装路径D:\BurnTool为例),如图1所示。

    图 1 config.ini文件路径

    **图 1** config.ini文件路径

  3. 在设备管理器的“通用串行总线控制器”中找到连接的单板的位置信息(例如Port_#0006.Hub_#0001),如图2所示。

    图 2 单板位置信息

    **图 2** 单板位置信息

  4. 3中找到的单板位置信息(以Port_#0006.Hub_#0001为例),保存在config.ini中的LOCATION1属性中,如图3所示。

    图 3 LOCATION1位置信息

    **图 3** LOCATION1位置信息

  5. 重复执行34直到将需要烧写的单板的位置信息按序填写在config.ini中。

    说明:

    • 如果需要同时烧写2块单板,则需要配置这2块单板的位置信息到LOCATION1和LOCATION2属性中。
    • 如果需要同时烧写20块单板,则需要配置这20块单板的位置信息到LOCATION1到LOCATION20属性中。 客户实际使用过程中,可以找20块单板(非空片),全部将其接到HUB中。然后分别给每一块单板上电,一个一个找到每一块单板的位置信息,填充到config.ini中。
  6. 打开工具界面,执行“手动烧写”章节的2

  7. 选择“Setting”→“USB Settings”,配置工厂烧写相关参数,默认配置如图4所示。

    图 4 工厂烧写默认参数

    **图 4** 工厂烧写默认参数

    • Total num:工厂界面窗口总个数(窗口总个数最大值为20,最小值为1)。
    • Num per line:工厂界面每行窗口个数(每行窗口个数最大值为8,最小值为4)。

    说明: Total num的配置个数应与实际烧写的单板个数保持一致。例如如果实际要同时烧写2块单板,则Total num应该配置成2,如果实际要同时烧写20块单板,则Total num应该配置成20。

  8. 单击“Multiple burn”按钮,打开工厂烧写窗口。

  9. 单击“Connect all”按钮并复位所有单板。
  10. 等待所有单板烧写完成(以连接一个单板为例),如图5所示。

    图 5 工厂烧写结束示意图

    **图 5** 工厂烧写结束示意图

    表 1 工厂烧写界面说明

    区域

    说明

    1

    • Connect all:开始检查插入的USB设备。
    • Disconnect all:待所有USB设备烧写完成后,手动退出本次烧写。

    2

    烧写结果统计:成功数、失败数、成功率、本次烧写时间。

    3

    • 回显视图:显示单板烧写状态“Doing”、“PASS”、“Fail”、“Connecting”、“Stop”。
    • 序列号:显示当前视图检测到的USB序列号。

命令行烧写

在Windows环境下,BurnTool.exe支持以命令行的方式调用,可用于集成到用户已有的工厂产线烧写程序中,调用命令如下:

BurnTool.exe params

命令之间用空格隔开,如果命令带有参数,命令与参数之间用冒号隔开,最简示例如下:

BurnTool.exe -chiptype:4GCAT1-USB -autodfu -usblocation:xxxx -pid:0xxxxx -vid:0xxxxx -bin:xxx.fwpkg

BurnTool.exe烧写命令可以配置的params参数如表1所示。

表 1 BurnTool.exe烧写命令参数表

命令

参数

说明

-chiptype:(必选)

4GCAT1-USB

芯片类型。

-autodfu(必选)

USB烧写模式。

-pid:(必选)

xxxx

USB设备的PID(16进制格式)。

-devicepathid:

xxxx

USB设备实例路径。

-usblocation:(必选)

xxxx

USB设备位置信息。(例如:Port_#0011.Hub_#0001)

-vid:(必选)

xxxx

USB设备的VID(16进制格式)。

-bin:(必选)

path\xxx.fwpkg

固件包xxx.bin的绝对路径。固件包的名称和文件类型根据各产品实际情况可能有所不同。

-erasemode:

x

擦除模式。其中:

  • 0:正常擦除。
  • 1:全片擦除。
  • 3:维保模式(该烧写模式下会将NV工作分区和备份区全部擦除,并将烧写前客户已存储的NV项IMEI/IMEI1/SN继承下来)。

-console

使用标准输入输出,为重定向做准备。

-reset:

x

烧写完成是否复位。其中:

  • 0:不复位。
  • 1:复位。

-onlyburn:

name

指定烧写对应名字的文件,可重复传参,效果累加。

-timeout:

x

检测设备的超时时间,单位:ms。

其他典型场景

  • 如果需要指定烧写一个烧录包中的其中两个bin文件,命令如下(指定烧写bin文件时,需要同时添加loader文件):

    BurnTool.exe -chiptype:4GCAT1-USB -autodfu -usblocation:xxxx -pid:0xxxxx -vid:0xxxxx -bin:xxx.fwpkg -onlyburn:loader.bin -onlyburn:a.bin -onlyburn:b.bin
    
  • 如果需要使用标准输入输出获取烧写过程的打印,命令如下:

    BurnTool.exe -chiptype:4GCAT1-USB -autodfu -usblocation:xxxx -pid:0xxxxx -vid:0xxxxx -bin:xxx.fwpkg -console
    
  • 如果需要烧写完之后不自动复位单板,命令如下:

    BurnTool.exe -chiptype:4GCAT1-USB -autodfu -usblocation:xxxx -pid:0xxxxx -vid:0xxxxx -bin:xxx.fwpkg -reset:0
    

结果校验

手动烧写结果

工厂烧写结果

  • 串口工厂烧写时,等待所有回显视图显示绿色“PASS”或红色“Fail”;单板烧写状态和统计信息请结合工厂烧写界面确认。
  • USB 工厂烧写和 CAT1 USB 工厂烧写时,状态会显示 Doing、PASS、Fail、Connecting 或 Stop,并显示成功数、失败数、成功率和本次烧写时间。

导出与擦除结果

  • 导出镜像时,等待导出完成,并按导出文件结束示例确认导出结果。
  • 全部擦除时,等待擦除成功。

参数

选择 Chip

通过“Option”-“Change chip”打开芯片选择框,用于选择与单板匹配的芯片类型,部分芯片还可选择需要的烧写方式,界面如图1所示。

图 1 选择Chip界面示意图

**图 1** 选择Chip界面示意图

表 1 选择Chip界面说明

区域

说明

1

  • Chip List:可选芯片列表。

2

  • OK:确定选择按钮。
  • Cancel:取消选择按钮。

BurnTool 串口烧写界面

BurnTool界面如图1所示。

图 1 BurnTool界面示意图

**图 1** BurnTool界面示意图

表 1 BurnTool界面说明

区域

说明

1

  • Connect:打开串口并发送打断报文。
  • COM:串口号列表,显示当前可用串口号。

2

Select file:选择烧写镜像。

3

  • Import Efuse:导入eFuse配置文件。
  • Efuse列表:显示当前可读取的eFuse名称。
  • Read Efuse:根据选中的eFuse下发读取报文。

4

  • Erase Mode:选择擦除模式。
    • normal:按照固件包中的参数进行擦除操作。
    • erase all:第一个烧写项烧写前进行全片擦除,剩余烧写项烧写时不再进行擦除操作。
    • no erase:不进行擦除操作。注意,该方式需要保证flash为空片或已进行全片擦除。

5

Send file:按照表格选中信息依次烧写镜像。

6

镜像表格:显示可被烧写的镜像信息。各列含义为:

  • Name:名称。
  • Path:路径。
  • File Index:镜像在文件中的起始索引。
  • File Size:镜像大小。
  • Burn Addr:烧写的Flash起始地址。
  • Burn Size:擦除的Flash大小。
  • Type:通用类型,包括:
    • 0:Loader。
    • 1:一般镜像文件。
    • 2:参数文件。
    • 3:eFuse文件。

    其他的数字由各产品定义,不一一列举。

7

烧写进度。

8

回显视图:显示打断之后单板上报的数据。

9

  • Select target:选择导出镜像位置。
  • addr:输入要导出的Flash起始地址。
  • size:输入要导出的Flash大小。

10

Reset:重启单板。(本功能仅在烧写loader之后生效)

Erase all:全片擦除。(本功能仅在烧写loader之后生效)

11

Export:导出镜像。(本功能仅在烧写loader之后生效)

12

  • Setting:包括以下菜单:
    • Settings:设置串口参数。
    • Burn interval:设置打断间隔(选中2表示打断时以2ms间隔发送打断报文,10同理),可输入值,范围为1~30。
    • Import config:导入配置文件。
    • Save config:保存配置文件。
    • Language:修改语言。
  • Option:包含以下菜单
    • Change chip:切换芯片。
  • Help:显示版本号。

13

Multiple burn:进入工厂烧写界面。

14

  • Auto burn:打断成功后无需单击“Send file”按钮。工具将按照表格选中的信息依次烧写镜像。

    注意:该功能仅用于烧写,若需要导出镜像或读efuse则不可勾选。

  • Auto disconnect: 在程序烧写完成后自动断开连接。

15

Compare All:比较全部文件,当前只有ws63支持。

BurnTool-USB 烧写界面

USB升级界面如图1所示。

图 1 USB升级界面

**图 1** USB升级界面

表 1 Dfu烧写界面说明

区域

说明

1

  • Setting:包括以下菜单:
    • USB Setting:设置USB配置信息。
    • Language:修改语言。
  • Option:包括以下菜单:

    Change Chip:修改产品。

  • Help:包括以下菜单:

    About:显示版本信息。

2

Vid:设备的Vendor ID。

3

Pid:设备的Product ID。

4

Erase Mode:选择擦除模式。
  • normal:按照固件包中的参数进行擦除操作。
  • erase all:第一个烧写项进行全片擦除,剩余烧写项不再进行擦除操作。
  • no erase:不进行擦除操作。注意:该方式需要保证flash为空片或已进行全片擦除。

5

Select file:选择格式为fwpkg的烧写镜像,并显示烧写镜像路径。

6

Start burn:按照表格选中信息依次烧写镜像。

7

镜像表格:显示可被烧写的镜像信息。各列含义为:

  • Name:名称。
  • Path:路径。
  • File Index:镜像在文件中的起始索引。
  • File Size:镜像大小。
  • Burn Addr:烧写的Flash起始地址。
  • Burn Size:擦除的Flash大小。
  • Type:通用类型,包括:
    • 0:Loader。
    • 1:一般镜像文件。
    • 2:参数文件。
    • 3:eFuse文件。
    • 32:fota文件。

8

烧写进度。

9

日志视图:显示烧写过程中单板上报的日志及工具打印的日志。

10

Multiple burn:进入工厂烧写界面。

HiDiTing V100 社区开发板 USB 快速烧写

USB 烧写速度高于串口烧写,适合开发阶段频繁更新完整固件。首次使用前,开发板上应已有能够正常启动并响应 AT+USBDFUTRIGGER 的基础镜像;首次空板烧写仍使用串口方式。

  1. 通过“Option > Change Chip”将产品切换为 Hi3322-USB(部分版本显示为 3322-USB)。
  2. 在 USB 烧写界面填写 Vid=0x3361Pid=0x3322,选择待烧写的 .fwpkg 固件,点击“Start burn”。
  3. 使用与开发板 UART2 相连的串口,按 750000 波特率打开串口监视;发送 AT+USBDFUTRIGGER。在支持指令收藏的串口工具中,可将该指令保存后双击发送。
  4. 开发板切换到 USB DFU 后,串口可能暂时断开,这是正常现象;以 BurnTool 的进度和 PASS/Fail 结果为准。烧写成功后重新上电。

diting镜像烧写

  • 如果当前镜像无法接收 AT 指令,可使用硬件触发:先给开发板断电,将 UART2 的 RX2GND 短接;在 BurnTool 中点击“Start burn”后给开发板重新上电。烧写结束后断电并移除短接线,再正常上电。不要在带电状态下改动短接线。
  • 需要烧写界面、字体、应用等文件系统资源时,应使用 WSL + Docker 环境,将 config.py 中对应 target(如 diting-community)的 fs_image 设置为 True 后重新构建。构建结果应包含 src/output/3322/file.bin,使用 BurnTool 烧写完整 .fwpkg 固件即可同步更新资源。Windows 环境下的一站式 CLI 和 HiSpark Studio for VS Code 不执行 file.bin 生成流程,具体步骤参见 构建资源镜像

工厂烧写界面

工厂烧写功能用于大批量烧写场景。在打断之后根据表格中的选中顺序发送文件。工厂烧写界面如图1所示。

图 1 工厂烧写界面示意图

**图 1** 工厂烧写界面示意图

表 1 工厂烧写界面说明

区域

说明

1

  • Connect all:连接所有串口。
  • Disconnect all:断开所有已打开的串口。

2

  • 回显视图:显示单板烧写状态“Doing”、“Pass”、“Fail”、“Waiting”。
  • 串口号列表:显示当前可用的串口号。

3

烧写结果统计:成功数,失败数,成功率,本次烧写时间。

4

Setting:包括以下菜单
  • Save config:包含以下菜单。
  • check COM:串口检查,根据单板返回的位置信息,把单板对应的串口排到界面对应位置,注意该功能需单板镜像支持。
  • Robotic Arm Com Setting:机械臂串口配置,配置后烧写单板后,会向选择的串口发送成功和失败信息。

图 2 机械臂串口设置界面

**图 2** 机械臂串口设置界面

区域

说明

1

选择是否启用机械臂串口,勾选之后,以下参数才可以配置。

2

  • COM:串口
  • Baud:波特率
  • Data Bit:数据位
  • Stop Bit:停止位
  • Parity:校验位
  • Flow ctrl:流控

3

  • Pass info:烧写成功发送的信息,输入格式为0x32或者2。
  • Fail info:烧写失败发送的信息,输入格式为0x33或者3。

设置界面

设置界面主要用于设置串口参数,设置界面如图1所示。

图 1 设置界面示意图

**图 1** 设置界面示意图

表 1 设置界面说明

区域

说明

1

  • Baud:波特率。各产品可支持的波特率范围不同,工具仅列出所有常用波特率,是否可正常使用以产品约束为准,一般波特率越高速度越快,但对硬件要求越高。
  • Data Bit:数据位。
  • Stop Bit:停止位。
  • Parity:校验位。
  • Flow ctrl:流控。

2

  • Package size:数据传输每包大小,一般只支持1024字节,除非产品有特殊支持,否则不应该修改。
  • Force Read Time:串口定时读时间间隔,表示串口两次接收的时间间隔至少为N ms,默认为勾选且时间间隔为10ms(在4.4版本之后,默认强制勾选且无法修改)。默认为勾选可以防止出现如下场景:
    • 在某些PC环境下BurnTool无法正常使用。
    • 在一拖多场景下CPU占用率过高。
  • Switch baud rate after loader:在烧写完loader后切换所设置的波特率。loader在高波特率下无法烧写并且其他文件在此波特率下可以烧写时勾选其可以提升烧写速度。

3

  • Independent Burn:独立烧写。勾选后工厂界面所有串口将完全独立,不做整体流程控制,不计算总烧写时间,适用于夹具为单独烧写的工厂;不勾选则工厂界面所有串口会统筹管理,烧写完成后将一起判断夹具抬起操作。
  • Total num:工厂界面窗口总个数。
  • Num per line:工厂界面每行窗口个数。
  • Reopen Com Everytime:勾选后在工厂烧写界面每次烧写完成后,下次开始烧写之前会重新打开串口。
  • Reset after success:勾选后在工厂烧写界面每次烧写完成后,会重启单板。

问题处理

工具未进入打断状态

问题描述

单击连接、断电重启后,工具并没有进入打断状态。

解决办法

  • 可能是串口选择错误或没有正常连接串口,请检查串口配置。
  • 可能单板设置了1ms快速启动,需要在BurnTool“Setting”→“Burn interval”中选择2ms间隔。

如何获取符合格式的固件包

问题描述

如何获取BurnTool可识别的固件包。

解决办法

请参见各产品关于编译或固件生成的文档。

工厂烧写时随机串口无法进入doing状态

问题描述

因串口驱动配合问题,在工厂烧写时,可能会出现随机串口无法进入工作(doing)状态的情况。

解决办法

在“Setting”→“Settings”中查看“Reopen Com Everytime”的勾选状态。

如果未勾选,则尝试勾选并重新开始工厂烧写;如果已勾选,则尝试取消勾选并重新开始工厂烧写。

USB驱动签名禁止方法

按照下述方法禁止驱动强制签名,重启后生效。

  1. 按住shift并重启电脑。
  2. 重启后,选择“疑难解答”。

    重启后,选择“疑难解答”

  3. 选择“高级选项”。

    选择“高级选项”

  4. 选择“启动设置”。

    选择“启动设置”

  5. 点击“重启”。

    点击“重启”

  6. 重启后,输入F7选择“禁用驱动程序强制签名”。

    重启后,输入F7选择“禁用驱动程序强制签名”

如何进入维保烧写模式

问题描述

BurnTool如何进入维保烧写模式。

解决办法

按照下述方法开启维保烧写模式后,需要重启BurnTool生效。

  1. 打开BurnTool按照路径(以“D:\BurnTool\configure”为例)下config_4GCat1文件夹(UART烧写类型修改此文件)或者config_4GCat1-USB文件(USB烧写类型修改此文件)中的“config_setting.ini”文件,如图 config_setting.ini文件路径所示。

    图 1 config_setting.ini文件路径

    **图 1** config\_setting.ini文件路径

  2. 将文件中的MAINTENANCE_ENABLE值修改为1后保存,如图 开启维保模式所示。

    图 2 开启维保模式

    **图 2** 开启维保模式

  3. 重启BurnTool工具后,即可在界面和命令行模式下使用维保模式进行烧写。

说明: 维保模式支持IMEI/IMEI1/SN项/部分客户自定义NV字段保留,客户自定义NV_ID范围为0xB000~0xB00F。

  • 维保模式下BurnTool烧写过程中单板如果异常断电,可能会导致上述NV项丢失。
  • 维保模式不支持加密NV的保留。
  • 维保模式下若烧写版本中已预置客户自定义NV,烧写完成后对应NV值以预置值为准。