获取不同软件开发平台的固件烧录信息(开发阶段)
- 基于 ESP-IDF SDK 开发的完整工程的固件通常包含
bootloader.bin
、partition-table.bin
和app.bin
。
不系列芯片的 bootloader.bin
的下载地址(也叫偏移(offset)地址)是 固定的
, 且不支持修改
。具体如下:
芯片 |
bootloader.bin 下载地址 |
---|---|
0x0 |
|
0x1000 |
|
0x0 |
|
0x0 |
|
0x2000 |
|
0x0 |
|
0x0 |
|
0x0 |
|
0x0 |
|
0x0 |
具体工程生成的 固件
和对应的 下载地址
取决于工程的 分区表
设置,每个工程都需要设置对应的分区表。 ESP-IDF SDK 中提供了一系列默认的分区表文件可供用户使用,参见: esp-idf/components/partition_table 文件里的 .csv 文件。
用户也可以为工程设置自定义的分区表文件,可参考: esp-idf/examples/storage/spiffs 例程。在工程目录下创建一个 .csv
的文件,然后参考 分区表 使用说明进行设置,例如分区表文件如下:
若工程使用自定义的分区表文件,将需要在工程 软件配置
中设置 自定义的分区表名称和路径
,如下:
ESP 系列产品的软件开发支持多种软件开发环境,常用的软件环境有 ESP-IDF CMD 终端编译环境
、 VSCODE IDE
、 Arduino IDE
等软件环境。
Windows 环境下的
ESP-IDF CMD 终端编译环境
,具体使用说明可参考: Windows 上搭建 ESP-IDF SDK 编译环境 + Visual Studio Code 软件编程环境VS CODE IDE
软件开发环境,具体使用说明可参考: 适用于 VS Code 的 ESP-IDF 扩展Arduino IDE
软件开发环境,具体使用说明可参考: 基于 Windows 安装 ESP32 Arduino 软件开发环境
1. Windows ESP-IDF CMD 软件编译环境
在 Windows ESP-IDF CMD 软件编译环境中, 工程配置
、 编译
、 下载
和 监控
都通过执行具体的指令来完成。例如:
用户可以执行
idf.py menuconfig
指令进行工程配置。分区表设置:
![]()
分区表下载地址设置:
![]()
使用
Windows ESP-IDF CMD
软件编译环境编译工程后,将在idf.py build
指令执行完成后,打印如下日志以显示当前工程生成的固件和对应的固件下载地址。![]()
用户也可以直接在
build
文件夹下打开flash_project_args
文件来获取固件下载信息,如下:![]()
最后,用户可以直接运行
idf.py flash monitor
指令来下载固件并监控固件运行日志。获取工程编译的固件和地址后,也可以参考 选择合适的烧录平台 章节说明进行固件下载。
2. VSCODE IDE 软件编译环境
在 VS CODE IDE
环境中,提供了用于 软件编译
、 烧录
、 配置
、 监控``和 ``调试
等快捷按钮,用户可直接通过这些按钮来完成特定的设置。例如:
软件设置:相当于
idf.py menuconfig
配置界面。![]()
工程烧录:相当于
idf.py flash
。工程烧录时同样会在终端运行界面打印工程烧录的固件和对应的下载地址,如下:
![]()
工程烧录完成后同样会打印固件烧录时运行的指令的日志,如下:
![]()
同样,也可以直接在工程编译生成的 build 文件夹下打开 flash_project_args 文件来获取固件下载信息,如下:
![]()
获取工程编译的固件和地址后,也可以参考 选择合适的烧录平台 章节说明进行固件下载。
3. Arduino IDE 软件编译环境
打开
Arduino IDE
里的例程:![]()
Arduino IDE
软件配置:![]()
Aruino IDE
固件下载日志:![]()
将日志复制出来,可以获取工程对应的固件和下载地址信息。如下:
esp32s3 --port "COM4" --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode keep --flash_freq keep --flash_size keep 0x0 "C:\Users\caiguanhong\AppData\Local\Temp\arduino\sketches\7B5F00811F0549D692D11436750291AC/I2S_Toggle_Test.ino.bootloader.bin" 0x8000 "C:\Users\caiguanhong\AppData\Local\Temp\arduino\sketches\7B5F00811F0549D692D11436750291AC/I2S_Toggle_Test.ino.partitions.bin" 0xe000 "C:\Users\caiguanhong\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.1.0/tools/partitions/boot_app0.bin" 0x10000 "C:\Users\caiguanhong\AppData\Local\Temp\arduino\sketches\7B5F00811F0549D692D11436750291AC/I2S_Toggle_Test.ino.bin" esptool.py v4.8.1然后可以根据日志提供的路径信息找到对应工程的固件,如下:
![]()
获取工程编译的固件和地址后,也可以参考 选择合适的烧录平台 章节说明进行固件下载。