选择合适的烧录平台
乐鑫官方针对不同需求提供以下几种烧录方式:
快速固件测试: ESP LAUNCHPAD 固件快速烧录
优势:简单快捷,无需搭建环境或额外工具,通过 Web 界面轻松烧录固件
非开发人员执行烧录: Flash Download Tool 烧录
优势:提供了图形化界面,无需深入了解命令行操作, 同时也适用于自动化部署和批量生产烧录
专业开发人员 进行全面的 固件开发: IDE 烧录
优势:集成开发环境(IDE)提供了直观的用户界面和工具集,支持固件开发、调试和烧录一体化
专业开发人员 进行全面的 固件开发和更详细的配置: IDF 终端烧录
优势:允许开发人员精确管理项目,包括固件参数设置。方便在开发和调试过程中进行烧录,以快速验证更改
准备工作
使用开发板
用数据线连接 USB 或者 UART 接口便可进行烧录。
备注
目前一些开发板使用的是 USB Type C 接口。请确保使用合适的数据线来连接开发板!
使用芯片或模组
乐鑫芯片一般具备两种模式:
固件烧录模式:芯片将等待从串口接收固件,以进行烧录。通常需要使用烧录工具发送固件数据
正常运行模式:这是芯片的正常工作模式,它会从 Flash 存储中加载固件并运行
使用芯片或者模组需要通过设置 特定的引脚 的状态进入烧录模式,通过 UART0 或者 USB 外设来进行烧录。
备注
具体的引脚信息需要参考对应芯片的技术手册,在 乐鑫官网 上可以找到。
ESP LAUNCHPAD 固件快速烧录
ESP LAUNCHPAD 是一个让开发者快速体验乐鑫芯片功能平台。
选择乐鑫官方提供的一些示例固件后可直接在网页上进行烧录
开发者还可以上传自己编译好的
.bin
文件后在网页上进行烧录
ESP LAUNCHPAD 烧录过程
下面用 ESP-BOX 为例:
打开网站 ESP LAUCHPAD
点击右上方 Connect
在弹出的窗口中选择连接 ESP-BOX 的 端口
点击下方 连接
选择要烧录到 ESP-BOX 的固件
选择 ESP Chipset Type 为
ESP32-S3
点击左下方 Flash 键开始烧录
烧录开始后会跳转到 console 界面,正确的话会显示烧录进度
烧录完成后按下左上方 Reset Device 键,或者点击右上角 Disconnect。
Flash Download Tool 烧录
Flash Download Tool 是由乐鑫开发的一款用于将固件烧录到其 ESP 系列芯片的工具,用于将预先编译好的固件文件加载到芯片的闪存(Flash)中,从而使芯片能够正确地运行应用程序或固件。
使用 Flash download tool 烧录过程
运行 flash_download_tool 的
.exe
文件选择 开发板(ChipType) 为对应的开发板,一般芯片上会有标识。选择 烧录模式(LoadMode) 为
UART
后点击下方 OK。点击选择要烧录的
.bin
文件输入要烧录的 地址偏移量(address offset),可以默认输入起始位
0x0
。选择开发板连接的 端口 COM
点击左下方 START 开始烧录
烧录完成后界面会显示蓝色的 FINISH
使用 Flash download tool 进行 Flsah 加密和安全启动
在 menuconfig 中禁用所有安全启动和 Flash 加密配置,确保编译后可以生成明文固件
调整 默认分区表(Offset of partition table) 的 偏移量,从
0x8000
调整为0xa000
备注
Flash 加密会增加引导加载程序(bootloader).bin 固件的大小,所以必须为偏移地址留了足够大的空间
打开 Flash Download Tool 的文件夹,打开 configure -> esp 芯片类型 -> security.conf 。 启用以下配置并保存文件:
[SECURE BOOT] secure_boot_en = True [FLASH ENCRYPTION] flash_encryption_en = True reserved_burn_times = 3 [ENCRYPTION KEYS SAVE] keys_save_enable = True encrypt_keys_enable = False encrypt_keys_aeskey_path = [DISABLE FUNC] jtag_disable = False dl_encrypt_disable = False dl_decrypt_disable = False dl_cache_disable = False
重新启动 Flash Download Tool
将生成的明文固件添加到 Flash Download Tool 中,并设置相应的 偏移地址
使用 Flash Download Tool 将
.bin
明文固件按照上方 使用 Flash download tool 烧录过程 进行烧录即可, 加密密钥 将被保存在本地
IDE 烧录
搭建好开发环境后可以在 IDE 中使用 ESP-IDF 插件来进行编译和烧录。
在 esp-iot-solution 或者 ESP-IDF 自带的
examples
中选择感兴趣的实例项目。
备注
环境搭建可以参考: VSCode ESP IDF Extension
我们可以体验一下 ESP32-S3-BOX 的烧录过程,此项目使用 ESP32-S3-BOX 作为一个 USB 音箱。
以 VSCode 为例:
在 VSCode 中进入想保存项目的路径,在左上角的窗口中选择 Termina -> New Termianl
使用
git clone
下载本项目的代码git clone --recursive https://github.com/espressif/esp-box.git
打开 VSCode,在左上角窗口选择 file -> open folder (或者使用快捷键 Ctrl + K Ctrl + O) 进入项目保存的路径 -> esp-box -> examples -> usb_headset。点击选择文件夹。
通过数据线将 ESP-BOX 连接到电脑
在左下角选择对应的
COM 端口
备注
如果没有检测到 COM 端口请按住开发板 Boot 键,同时按下 Reset 键进入下载模式
选择 Target 为
esp32s3
, VSCode 在界面上方选择 ESP32-S3 chip (via ESP-PROG)点击 ESP-IDF Build Project 图标,编译成功后会显示:
点击 ESP-IDF Flash device 图标进行烧录,然后在 VSCode 界面上方选择 UART。烧录成功后会在终端显示:Flash Done ⚡️
按下开发板 Reset 按钮后,就可以通过 USB 来用 ESP-BOX 播放声音了
IDF 终端烧录
使用 IDF 终端具有环境稳定,版本切换简单和高级功能齐全等优点 。
备注
环境搭建可以参考:Windows 安装教程。
下面将介绍如何使用 IDF 终端烧录一个示例项目:
打开
ESP-IDF CMD
终端窗口,ESP-IDF SDK 编译环境安装成功的界面显示如下:使用
cd
指令进入一个工程,例如:切换到正确的的芯片环境,例如:
idf.py set-target esp32
备注
将
esp32
替换为正确的芯片目标运行下方指令编译项目:
idf.py build
运行下方指令烧录项目,将
PORT
替换为开发板的串口名称:idf.py -p PORT flash
备注
使用
idf.py flash
将尝试使用可用的串口自动连接
烧录成功的界面显示如下: