Flash 下载工具用户指南

[English]

准备工作

乐鑫模组在进行 flash 下载时所需的软、硬件资源如下所示。

  • 硬件设备:

    • 1 x 待下载设备

    • 1 x PC(操作系统支持 Windows 7 [64 位]、Windows 10)

  • 软件:

工具介绍

界面入口

打开 Flash 下载工具,双击 .exe 文件后进入工具主界面,如下图所示:

../../_images/main_interface.jpg

Flash Download Tool 主界面

  • ChipType:芯片类型,根据所用产品类型选择

  • WorkMode:软件模式,当前有 Develop 模式与 Factory 模式,区别如下:

    • Develop 模式使用固件绝对路径,只支持单片产品烧录。

    • Factory 模式使用相对路径,建议将待烧录固件放在与 .exe 文件同级的 bin 文件夹中,配置后关闭时会自动保存在本地。

    • Factory 模式打开时,界面锁定,需点击 LockSettings 按钮使能编辑。防止鼠标误操作。

  • LoadMode:下载接口仅支持 UART

SPIDownload 界面

以下是配置说明:

  • Download Path Config 包含固件加载路径,固件下载地址,以 16 进制格式填写,比如 0x1000。

  • SPI Flash Config

    • SPI SPEED:SPI 启动速率

    • SPI MODE:SPI 启动模式

    • DETECTED INFO:自动检测到的 flash 及晶振信息

    • DoNotChgBin:若使能,则按照 bin 文件原始内容烧录。若不使能,按照界面的 SPI SPEEDSPI MODE 配置更新并烧录。

    • CombineBin 按钮:可将 Download Path Config 中选中的多个固件打包成一个固件。若使能 DoNotChgBin,则按原始固件打包。若不使能 DoNotChgBin,则按界面 SPI SPEEDSPI MODE 配置打包固件。固件之间非数据区,会以 0xff 进行填充。打包的固件将保存为 ./combine/target.bin,每次点击覆盖前次。

    • Default 按钮:将界面 SPI 配置均还原成默认值。

  • Download Panel

    • START:开始按键

    • STOP:停止按键

    • ERASE:整个 flash 擦除

    • COM:下载串口

    • BAUD:下载波特率

../../_images/spidownload_interface.jpg

SPIDownload 界面

FactoryMultiDownload 界面

  • Factory 模式使用相对路径,默认从工具目录的 bin 路径下加载待烧录固件。而 Develop 模式使用绝对路径。Factory 模式的优点:只要将待烧录固件拷入工具目录的 bin 路径下,即可在工厂电脑间拷贝,不会出现路径问题。

  • Factory 模式打开时,工具启动默认使能界面上 LockSettingsLockSettings 在使能的情况下,固件路径及 SPI flash config 均无法配置,防止产线人员误触导致配置错误。(工厂管理人员需要配置时,可点击 LockSettings 进行解锁)

../../_images/factorymultidownload_interface.png

FactoryMultiDownload 界面

FactoryMultiDownload 界面的 download path configSPI flash config 配置与 SPIDownload 界面基本相同,请参考 SPIDownload 界面,并注意单独配置每一路的串口号和波特率。

chipInfoDump 界面

  • Device 选择对应设备的串口号和通信波特率。

  • Read Flash 选择从 flash 里读取内容的首地址及要读取内容的大小,此项仅读取 flash 时需要设置。

../../_images/chip_info_dump.png

chipInfoDump 界面

  • 功能说明

    • Chip Info:读取芯片型号、flash ID 以及 flash 状态寄存器值,读取内容直接显示在软件界面上。

    • Read Flash:读取 flash 存储的数据。读出的内容会存储在生成的 bin 文件中,bin 文件名称以“芯片 MAC + 读取起始地址 + 读取数据长度 + 读取时间”的格式命名。

    • Read Efuse:读取芯片 eFuse 的内容,功能和esptool summary 相同,读出内容存储在生成的文本文件中,文件以“芯片 MAC + 读取时间”的格式命名。

备注

  • 以上读取功能的支持需要产品启动后进入下载模式。

  • 工具版本 >= 3.9.8

下载示例

本章节主以 ESP32 系列为例,演示如何进行常规烧录和加密烧录。目前,ESP32 支持常规烧录与加密烧录。

常规烧录

  1. 将 GPIO0 管脚下拉,使设备进入下载模式

  1. 打开下载工具,ChipType 选择 ESP32WorkMode 选择 DevelopLoadMode 选择 UART,点击 OK,如下图所示。

../../_images/device_selection.jpg

设备选择 — ESP32 Download Tool

  1. 进入下载页面,填入需要烧录的 bin 文件,和对应的烧录地址,勾选 bin 文件前面的复选框,并根据自己实际需求填入 SPI SPEEDSPI MODECOMBAUD

  2. 点击 START 开始下载。下载过程中,下载工具会读取 flash 的信息和芯片的 MAC 地址。

  3. 下载完成后,下载工具的界面如下图所示。

../../_images/download_finish_interface.jpg

下载完成界面

加密烧录

加密烧录流程为:

  • Flash 下载工具 将明文固件烧录进芯片

  • 芯片使用 eFuse 中的密钥对该明文固件进行加密,然后将加密后的固件写入 flash。

  • 若 eFuse 中无 flash 加密密钥,下载工具会自动在 PC 端随机生成密钥并烧录进 eFuse,客户也可以自行准备加密密钥;若 eFuse 中已有 flash 加密密钥,则跳过密钥的生成及密钥烧录过程。

以下为配置加密功能的步骤:

  • 打开配置文件 ./configure/[chip_name]/security.conf,若首次打开时无此文件,可关闭软件后再次打开即可

  • 修改相关配置项

以下为配置项的说明,其中等号后面的内容为配置项的默认值,True 表示使能,False 表示不使能。

  • [SECURE BOOT] 此配置项为开启 secure boot 时需要配置

    • secure_boot_en = False (配置是否使能 secure boot)

    • secure_boot_version = 1 (用于选择安全启动版本)

    • public_key_digest_path = .securepublic_key_digest.bin (公钥摘要文件路径,生成方式: espsecure digest_sbv2_public_key -k pem.pem -o public_key_digest.bin; .pem 文件是编译时指定的私钥文件)

    • public_key_digest_block_index = 0 (eFuse 中存储公钥摘要文件的 block 索引,默认 0)

  • [FLASH ENCRYPTION] 此配置项为开启 flash 加密时需要配置

    • flash_encryption_en = False (配置是否开启 flash 加密功能)

    • reserved_burn_times = 3 (配置预留烧录次数)

  • [SECURE OTHER CONFIG] 其他安全配置项:

    • flash_encryption_use_customer_key_enable = False (配置是否使能客户指定的加密密钥)

    • flash_encryption_use_customer_key_path = .secureflash_encrypt_key.bin (若使用客户指定的密钥,这里需要指定密钥路径)

    • flash_force_write_enable = False (配置烧录时是否跳过加密和安全启动检查。此时若对已经开启 flash 加密或安全启动的产品烧录时会弹窗报错)

  • [FLASH ENCRYPTION KEYS LOCAL SAVE] 此配置为是否将加密用的密钥文件保存在本地,默认为 False

    • keys_save_enable = False (配置是否保存密钥)

    • encrypt_keys_enable = False (配置是否对保存在本地的密钥加密)

    • encrypt_keys_aeskey_path = (若对本地保存的密钥加密,请在此处填入密钥文件,比如 ./my_aeskey.bin

  • [ESP32* EFUSE BIT CONFIG] 此配置为开启 flash 加密时,是否配置加密项,默认为 False。

[ESP32 DISABLE FUNC] 配置项

[ESP32 DISABLE FUNC] 配置项

描述

dl_encrypt_disable = False

配置是否禁用加密

dl_decrypt_disable = False

配置是否禁用解密

dl_cache_disable = False

配置是否关闭 cache

jtag_disable = False

配置是否关闭 JTAG

运行工具时会提示如下内容,需核对是否正确。下图为同时开启 flash 加密和安全启动的提示信息:

../../_images/flash_encryption_secure_boot.jpg

以 ESP32 示例开启 flash 加密和安全启动提示信息

固件烧录过程中,会向芯片的 eFuse 中烧录密钥等信息。待固件及 eFuse 烧录完成后,显示 FINISH/完成

备注

为防止已加密的模组重烧,工具烧录前会默认校验 eFuse flash 加密及安全启动信息,防止报废。