ESP32-S3 16MB Flash 固件合并与烧录教程(Flash Download Tool)
·
一、准备说明
本文记录 ESP32-S3 + 16MB Flash 项目中,使用 flash_download_tool_3.9.5 合并 Arduino 编译固件并烧录的完整流程,适用于 LVGL 等 ESP32-S3 项目的批量烧录场景。
编译文件说明
使用 Arduino IDE 编译 ESP32-S3 项目后,会生成 3 个核心文件:
文件名.ino.bootloader.bin:二级引导程序(系统引导启动入口)文件名.ino.partitions.bin:分区表(定义 Flash 空间分配)文件名.ino.bin:主应用固件(你的主程序)
二、关键配置(ESP32-S3 16MB Flash 专用)
1. 核心烧录地址(已验证)
ESP32-S3 的 bootloader 必须烧录到 Flash 起始地址 0x0,而非 ESP32 通用的 0x1000,否则会启动失败。正确地址如下:
表格
| 文件 | 烧录地址 |
|---|---|
bootloader.bin | 0x0 |
partitions.bin | 0x8000 |
文件名.ino.bin | 0x10000 |
2. Flash 参数配置
SPI SPEED:40MHz(与硬件晶振匹配,工具自动检测为 40MHz)SPI MODE:DIO(兼容性最好的通用模式)FLASH SIZE:16MB(工具自动识别为QUAD;16MB)- 勾选
DoNotChgBin:保持固件原始参数,避免工具修改 SPI 配置
三、步骤 1:多文件烧录(验证固件有效性)
先直接按照地址烧录 3 个文件,确认固件能正常运行,再进行合并操作。
- 打开
ESP32S3 FLASH DOWNLOAD TOOL V3.9.5,左上角芯片类型选择ESP32S3。 - 在
SPIFlashConfig区域,按上面的参数配置 SPI 选项。 - 在
Download PathConfig区域,添加 3 个文件并填写地址:- 第 1 行:选择
文件名.ino.bootloader.bin,地址填0,勾选✅ - 第 2 行:选择
文件名.ino.partitions.bin,地址填0x8000,勾选✅ - 第 3 行:选择
文件名.ino.bin,地址填0x10000,勾选✅
- 第 1 行:选择
- 下方
COM选择你的串口(如COM24),波特率保持默认115200。 - 点击
START按钮,等待界面显示FINISH 完成,此时开发板会自动重启,验证你的程序是否正常运行。

四、步骤 2:合并为单个固件 target.bin
确认多文件烧录正常后,将 3 个文件合并为单个固件,方便批量烧录。
- 保持步骤 1 中的文件和地址配置不变,全部勾选。
- 点击工具中间的
CombineBin按钮。 - 在弹出的窗口中,选择合并文件的保存路径(如
download_tool_3.9.5\combine\target.bin),点击保存,一般会自动保存到此目录。 - 工具会自动按地址偏移,将 3 个文件合并为一个完整的
target.bin文件。

五、步骤 3:烧录合并后的单个固件
合并完成后,直接烧录单个 target.bin,一次性完成所有分区写入。
- 取消步骤 1 中 3 个文件的勾选,清空所有行。
- 在
Download PathConfig区域添加一行:- 文件路径:选择合并好的
target.bin - 地址填
0,勾选✅
- 文件路径:选择合并好的
- 保持 SPI 配置和串口设置不变,点击
START按钮。 - 等待烧录完成,开发板会自动重启,效果与分开烧录完全一致。
六、避坑指南
- bootloader 启动失败:ESP32-S3 必须将
bootloader.bin烧录到0x0,不要直接套用 ESP32 通用的0x1000地址。 - 烧录后程序不运行:检查
FLASH SIZE是否选择与硬件一致的16MB,避免工具自动截断固件。 - 合并后无法烧录:保持
DoNotChgBin勾选,防止工具修改固件的 SPI 参数。

七、总结
核心要点:
- 地址配置:
bootloader放0x0,分区表放0x8000,主程序放0x10000 - Flash 参数:
16MB+DIO+40MHz,保持与硬件一致 - 先验证再合并:分开烧录正常后,再合并为单个固件,避免合并后无法排查问题
合并后的单个固件可直接用于批量生产,大幅提升烧录效率。
更多推荐


所有评论(0)