当前位置: 首页 > news >正文

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

http://www.lryc.cn/news/396233.html

相关文章:

  • JS进阶-解析赋值
  • Java虚拟机面试题汇总
  • C++休眠的方法
  • 选择排序(C语言版)
  • 基于CentOS Stream 9平台搭建FRP内网穿透
  • Redis管理禁用命令
  • RFID智能锁控系统在物流安全运输中的应用与效益分析
  • WPF设置全局样式
  • 【福利】代码公开!咸鱼之王自动答题脚本
  • ChatGPT-4o大语言模型优化、本地私有化部署、从0-1搭建、智能体构建技术
  • 使用clion刷leetcode
  • 图解HTTP(5、与 HTTP 协作的 Web 服务器 6、HTTP 首部)
  • JS之防抖和节流
  • Open3D 点云PCA算法配准(粗配准)
  • Transformer中的编码器和解码器结构有什么不同?
  • 【深度学习】第5章——卷积神经网络(CNN)
  • fluwx插件实现微信支付
  • k8s核心操作_Deployment的扩缩容能力_Deployment自愈和故障转移能力---分布式云原生部署架构搭建022
  • P8306 【模板】字典树
  • 面试官:讲一下如何终止一个 Promise 继续执行
  • linux之常见的coredump原因都有哪些
  • 低资源低成本评估大型语言模型(LLMs)
  • 什么是RPC?有哪些RPC框架?
  • HTTP有哪些请求方式?
  • 接口测试课程结构
  • leetcode--从中序与后序遍历序列构造二叉树
  • 西瓜杯CTF(1)
  • Kafka 典型问题与排查以及相关优化
  • C# 策略模式(Strategy Pattern)
  • 【初阶数据结构】1.算法复杂度