问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

使用esptool工具备份ESP32的固件(从芯片中备份下来固件)

创作时间:
作者:
@小白创作中心

使用esptool工具备份ESP32的固件(从芯片中备份下来固件)

引用
CSDN
1.
https://blog.csdn.net/qq_59527512/article/details/140307594

ESP32是Espressif Systems公司推出的一款集成了Wi-Fi和蓝牙功能的低功耗微控制器,广泛应用于物联网设备开发。在开发过程中,备份和恢复固件是常见的需求,比如在升级或调试过程中需要保留原始固件,或者在设备出现故障时需要恢复到已知的工作状态。esptool是Espressif官方提供的用于ESP系列芯片固件烧录和读取的命令行工具,支持Windows、Linux和macOS等操作系统。本文将详细介绍如何在Windows环境下使用esptool工具备份ESP32的固件。

本文以Windows电脑为例,板子为esp32-c3。

1. 下载Python

可在官网中下载,此处不进行讲解。

使用如下代码查看是否安装了 Python(终端输入)

python

2. 下载esptool

在终端输入如下代码即可下载

使用 pip(推荐): 在你已经安装的 Python 和 pip(Python 包管理器),通过运行以下命令来安装 esptool:

pip install esptool

安装成功

在python的目录下可以看到

我的python的目录

C:\Users\zhi_geng_niao\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\Scripts

看到的

  1. 添加环境

在设置中(高级系统设置)

环境变量

如图选项在编辑

在点击新建,将刚才的路径复制进去即可

3. 使用esptool

找到终端以管理员权限打开

通过usb插上esp32

可在设备中看到esp32已经连接

实例1:查看ESP的信息

输入如下代码

格式

esptool --port <串行端口> chip_id

我输入的

esptool --port COM3 chip_id

结果(就不全部截图了,截了一些)

一般信息

esptool.py v3.0
Serial port /dev/ttyUSB0
Connecting....
Chip is ESP8266
Features: WiFi
Crystal is 26MHz
MAC: 5c:cf:7f:1c:xx:xx
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 115200
Changed.
MAC: 5c:cf:7f:1c:xx:xx
Chip ID: 0x00123456
esptool.py v3.0
串行端口 /dev/ttyUSB0
正在连接....
芯片是 ESP8266
功能:WiFi
晶体频率是 26MHz
MAC 地址:5c:cf:7f:1c:xx:xx
正在上传stub...
正在运行stub...
Stub正在运行...
正在改变波特率到 115200
已改变。
MAC 地址:5c:cf:7f:1c:xx:xx
芯片 ID:0x00123456

实例2:获取芯片的闪存大小

输入如下代码

格式

esptool.py --port <串口号> flash_id

实例

esptool --port COM3 flash_id

可以看到我的为4MB

实例3:实现备份固件

代码格式

esptool.py --chip esp32c3 --port <串行端口> read_flash <起始地址> <结束地址或大小> <完整备份文件路径>
  • --chip esp32c3 指芯片类型 :--chip 类型
  • <串行端口>:替换为你的设备连接的串行端口号,例如 /dev/ttyUSB0(Linux 或 macOS)或 COM1(Windows)。
  • <起始地址>:替换为你想要开始读取的闪存地址,通常固件从地址 0x0 开始。
  • <结束地址或大小>:替换为你想要读取的闪存结束地址或数据大小。如果你知道固件的大小,可以直接使用大小,例如 0x400000 表示读取 4MB 的数据。
  • <完整备份文件路径>:替换为你想要保存的备份文件的完整路径,包括文件名。例如,/path/to/backup/firmware_backup.binC:\path\to\backup\firmware_backup.bin。只写文件名会下载到当前终端的位置下

我的输入

esptool --chip esp32c3 --port COM3 read_flash 0x0 0x400000 esp32-c3_firmware_backup.bin

会下到

C:\Users\zhi_geng_niao\Desktop\nh>的地址中

实例4:将固件烧入板子中

注意

在 ESP32-C3 芯片上,固件通常是从地址 0x1000 开始烧录的。这是 ESP32-C3 芯片的一个约定,用于保留芯片的启动代码和必要的信息。因此,如果你已经下载了一个固件文件,并且想要将其烧录到 ESP32-C3 芯片中,你应该从地址 0x1000 开始烧录。

代码格式

esptool.py --chip <芯片类型> --port <串行端口> write_flash <起始地址> <固件文件> [<分区表文件>]

实例(因为刚才备份时的开始地址是0x0所以这里为0x0)

esptool --chip esp32c3 --port COM3 write_flash 0x0 esp32-c3_firmware_backup.bin
© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号