如何备份复制拷贝出ESP32/8266内的固件程序

文章目录


Esptool是什么

esptool 是一个开源、官方的命令行工具,主要用于对 乐鑫(Espressif)的 ESP8266/ESP32、系列芯片进行读写固件、编程和调试。它通过串口(UART)与 ESP 设备Bootloader(引导加载程序)进行通信,按照约定的协议发送指令和数据,执行各种底层操作。esptool 是一个 Python 脚本,所以需要先安装 Python。安装后,就可以在命令行中使用 esptool.py 命令。

与其他工具的关系:

Arduino IDE:当您在 Arduino IDE 中点击"上传"按钮时,IDE 实际上是在后台调用了 esptool(或其变种 arduino-esp32 中的工具)来完成固件烧录。您无需手动操作。

PlatformIO:PlatformIO 同样使用 esptool 作为其烧录 ESP 固件的后端工具。

ESP-IDF:乐鑫官方的开发框架 ESP-IDF,其构建和烧录系统也深度集成了 esptool。

ESP-IDF环境安装

点击下载ESP-IDF工具安装器

安装好后,电脑开始列表中会出现两个ESP-IDF,二选一使用其中一个

通过Esptool命令读取备份ESP32/8266内的固件程序

获取ESP的flash大小:

c 复制代码
esptool.py flash_id


将擦除ESP中flash固件:

c 复制代码
esptool.py erase_flash


将ESP中 Flash 整个内容备份到指定路径:

c 复制代码
esptool.py -p COM218 -b 921600 read_flash 0 0x1000000 "C:\Users\18748\Documents\Downloads\backup.bin"

COM218为自己电脑设备管理器中ESP32连接的USB转串口的端口号

b 为串口波特率

0为起始地址,0x1000000为ESP32的flash容量大小为16MB,其他的有0x800000 (8MB),0x400000 (4MB), 0x200000 (2MB)

根据做自己所用的模组实际flash大小填写

backup.bin为备份的文件名,可以自己随便取一个文件名,加上 .bin 后缀,不要去新建,ESP-IDF备份好会自动新建的

双引号为要备份的文件存放到自己电脑的文件夹的路径,根据自己需要随意指定一个文件夹,注意路径后面没有文件名,例如 C:\Users\18748\Documents\Downloads

烧录一个指定文件夹中的固件程序文件到ESP中:

c 复制代码
esptool.py -p COM218 -b 460800 write_flash 0 "D:\flash_download_tool\flash_dump\fc012cd137a0_0x0_0x1000000_20251030_191832.bin"


烧录多个指定文件夹中的固件程序文件到ESP32中:

c 复制代码
esptool.py -p COM218 -b 460800 write_flash 0x0 "C:\Users\18748\Documents\Arduino\ESP32-S3-WS2812\Blink\build\esp32.esp32.esp32s3\Blink.ino.bootloader.bin" 0x8000 "C:\Users\18748\Documents\Arduino\ESP32-S3-WS2812\Blink\build\esp32.esp32.esp32s3\Blink.ino.partitions.bin" 0xe000 "C:\Users\18748\Documents\Arduino\ESP32-S3-WS2812\Blink\build\esp32.esp32.esp32s3\boot_app0.bin" 0x10000 "C:\Users\18748\Documents\Arduino\ESP32-S3-WS2812\Blink\build\esp32.esp32.esp32s3\Blink.ino.bin"

通过flash_download_tool备份读取ESP32/8266中flash的固件程序

点击下载flash_download_tool软件工具
读取ESP芯片信息、RAM/Flash容量大小

读取Flash中固件程序

选择好较大的波特率,加快读取速度,根据读取到的flash容量大小,设置好size的值,0x1000000为ESP32的flash容量大小为16MB,其他的有0x800000 (8MB),0x400000 (4MB), 0x200000 (2MB)。点击Rsad Flash,等待读取完毕,读取到文件会自动弹出,出现在flash_download_tool工具安装目录文件夹下。

将读取到固件程序,再烧录到ESP32中验证是否和原来的一致

总结

通过以上两种方式,我们了解到如何读取备份一个ESP32/8266中falash内的固件程序。可以看到第二种方式方面快捷。

相关推荐
伴杯猫3 个月前
【ESP32-IDF】高级外设开发3:I2S
c语言·单片机·嵌入式硬件·mcu·物联网·esp32·esp-idf
PassLink_7 个月前
[ESP-IDF]:esp32-camera 使用指南 ESP32S3-OV2640 用例测试
esp32·c·esp-idf·ov2640·esp32-camera·esp32s3-cam
OSnotes7 个月前
ESP-IDF教程2 GPIO - 输入、输出和中断
esp-idf
OSnotes7 个月前
ESP-IDF教程1 开发环境
esp-idf
大专生学编程10 个月前
基于ESP32-IDF驱动GPIO输出控制LED
嵌入式硬件·esp32·esp-idf
MonkeyKing_sunyuhua1 年前
ubuntu22.04 桌面系统怎么搭建一个esp-idf的项目,搭建开发环境
esp-idf
柔贝特三哥1 年前
ESP32 S3 语音识别 语音唤醒程序流程
人工智能·esp32·语音识别·esp-idf·ai对话·语音唤醒·语音命令
事在人wёi1 年前
VSCode esp-idf环境搭建 报错 ERROR_INVALID_PIP
vscode·esp-idf
咖喱年糕1 年前
【VSCode】安装 【ESP-IDF】插件及【ESP32-S3】新建工程和工程配置
json·cmake·esp32-s3·esp-idf·project·串口下载