使用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

 看到的

3添加环境

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

环境变量

如图选项在编辑

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

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.bin 或 C:\path\to\backup\firmware_backup.bin

只写文件名会下载到当前终端的位置下

我的输入

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

会下到

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

相关推荐

  1. 使用elasticsearch-dump工具备份ES数据库

    2024-07-10 04:40:06       58 阅读
  2. esp32c6 micropython固件首发

    2024-07-10 04:40:06       42 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-10 04:40:06       66 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-10 04:40:06       70 阅读
  3. 在Django里面运行非项目文件

    2024-07-10 04:40:06       57 阅读
  4. Python语言-面向对象

    2024-07-10 04:40:06       68 阅读

热门阅读

  1. 【Python】多语言识别库 langid

    2024-07-10 04:40:06       30 阅读
  2. 海致科技实施实习生面试

    2024-07-10 04:40:06       20 阅读
  3. go获取正在运行的函数并及时捕获panic

    2024-07-10 04:40:06       23 阅读
  4. C语言中的static关键字

    2024-07-10 04:40:06       30 阅读
  5. LeetCode 202. 快乐数

    2024-07-10 04:40:06       29 阅读
  6. halcon学习

    2024-07-10 04:40:06       30 阅读
  7. MySQL快速安装(mysql8.0.30区别之前yum安装)

    2024-07-10 04:40:06       24 阅读
  8. FastGPT本地手动部署(一)mongodb和pgvector的安装

    2024-07-10 04:40:06       27 阅读
  9. 字符串

    2024-07-10 04:40:06       28 阅读