使用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
相关文章:
使用esptool工具备份ESP32的固件(从芯片中备份下来固件)
本文以Windows电脑为例 板子为esp32-c3 1下载python 可在官网中下载,此处不进行讲解 使用如下代码查看是否安装了 Python(终端输入) python 2下载esptool 在终端输入如下代码即可下载 使用 pip(推荐): 在你已经安装的 Pyth…...
JS进阶-解析赋值
学习目标: 掌握解析赋值 学习内容: 解构赋值数组解构对象解构筛选数组filter方法(重点) 解构赋值: 解构赋值是一种快速为变量赋值的简洁语法,本质上仍然是为变量赋值。 分为: 数组解构对象解…...
Java虚拟机面试题汇总
目录 1. JVM的主要组成部分及其作用? 1.1 运行时数据区划分? 1.2 哪些区域可能会发生OOM? 1.3 堆和栈的区别? 1.4 内存模型中的happen-before是什么? 2. HotSpot虚拟机对象创建流程? 2.1 类加载过程…...
C++休眠的方法
Windows的API函数 Sleep(INFINITE); 休眠时间为永久 Linux的API函数sleep 没有直接表示无限时间的参数,根据POSIX标准,sleep() 函数的参数应该是 unsigned int 类型,因此最大可以接受的参数值是 UINT_MAX,即 4294967295 秒。sleep…...
选择排序(C语言版)
选择排序是一种简单直观的排序算法 算法实现 首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置。 再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。 重复第二步&…...
基于CentOS Stream 9平台搭建FRP内网穿透
内网穿透方法很多,本文以github上很火的frp为例 1.frp官方 文档:https://gofrp.org/zh-cn/docs/overview/ 1.1 下载 https://github.com/fatedier/frp/releases 选中合适的版本 2. 服务端(服务器)搭建frps 需要公网IP服务器 选…...
Redis管理禁用命令
在redis数据量比较大时,执行 keys * ,fluashdb 这些命令,会导致redis长时间阻塞,大量请求被阻塞,cpu飙升,严重可能导致redis宕机,数据库雪崩。所以一些命令在生产环境禁止使用。 Redis 禁用命令…...
RFID智能锁控系统在物流安全运输中的应用与效益分析
一、物流锁控系统现状与挑战 1.1 传统锁控系统的局限性 安全性不足:机械锁容易被撬开或钥匙被复制,导致货物在运输过程中面临被盗风险。 无法实时追踪:一旦货物离开发货点,物流公司无法实时监控货物状态,增加了货物…...
WPF设置全局样式
目的 创建一个资源字典,自动引入到各个Window或者UserControl中,可以随意使用。或者引入多个控件包,为了做兼容,保证可以引用多个控件库。 1. 定义资源字典 首先,你需要创建一个XAML文件来定义你的资源字典…...
【福利】代码公开!咸鱼之王自动答题脚本
转载请注明出处:小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你,欢迎[点赞、收藏、关注]哦~ 微信或QQ打开咸鱼之王小程序,进入答题界面,运行main.py。期间不要动鼠标。 可自行更改代码来适配自己的需求~ 可以按照示例图片…...
ChatGPT-4o大语言模型优化、本地私有化部署、从0-1搭建、智能体构建技术
在过去几年中,人工智能领域的发展迅猛,尤其是大语言模型的应用,为各行各业带来了前所未有的创新与突破。从ChatGPT-3.5的推出到GPT Store的上线,再到最新的多模态交互ChatGPT-4o,OpenAI不断引领科技潮流,推…...
使用clion刷leetcode
如何优雅的使用clion刷leetcode 安装插件:LeetCode Editor) 插件配置: 这样我们每打开一个项目,就会创建类似的文件 我们的项目结构: 我们在题解文件中导入头文件myHeader.h并将新建的文件添加到cmakelists.txt文件,…...
图解HTTP(5、与 HTTP 协作的 Web 服务器 6、HTTP 首部)
5、与 HTTP 协作的 Web 服务器 一台 Web 服务器可搭建多个独立域名的 Web 网站,也可作为通信路径上的中转服务器提升传输效率。 用单台虚拟主机实现多个域名 在相同的 IP 地址下,由于虚拟主机可以寄存多个不同主机名和域名的 Web 网站,因此…...
JS之防抖和节流
防抖 (debounce) 所谓防抖,就是指触发事件后在 n 秒内函数只能执行一次,如果在 n 秒内又触发了事件,则会重新计算函数执行时间。 ps: 重置普攻,百度翻译要输完停止一定时间后才翻译。 没有防抖和节流的缺点: 函数触发…...
Open3D 点云PCA算法配准(粗配准)
目录 一、概述 1.1PCA配准的原理 1.2PCA配准的应用 二、代码实现 三、实现效果 3.1原始点云 3.2配准后点云 3.3变换矩阵 一、概述 PCA(Principal Component Analysis,主成分分析)是一种用于降维和特征提取的统计方法。在点云处理中,PCA可以用于点云配准(a…...
Transformer中的编码器和解码器结构有什么不同?
Transformer背后的核心概念:注意力机制;编码器-解码器结构;多头注意力等; 例如:The cat sat on the mat; 1、嵌入: 首先,模型将输入序列中的每个单词嵌入到一个高维向量中表示&…...
【深度学习】第5章——卷积神经网络(CNN)
一、卷积神经网络 1.定义 卷积神经网络(Convolutional Neural Network, CNN)是一种专门用于处理具有网格状拓扑结构数据的深度学习模型,特别适用于图像和视频处理。CNN 通过局部连接和权重共享机制,有效地减少了参数数量&#x…...
fluwx插件实现微信支付
Flutter开发使用fluwx插件实现微信支付,代码量不多,复杂的是安卓和iOS的各种配置。 在 pubspec.yaml 文件中添加fluwx依赖 fluwx: ^4.5.5 使用方法 通过fluwx注册微信Api await Fluwx().registerApi(appId: wxea7a1c53d9e5849d, universalLink: htt…...
k8s核心操作_Deployment的扩缩容能力_Deployment自愈和故障转移能力---分布式云原生部署架构搭建022
然后我们上面说了k8s中的deployment的多副本能力 然后,我们再来看 k8s中的deployment的扩缩容能力 可以看到,对于扩容,要使用 kubectl scale 命令 对于缩容 要使用kubectl scale 命令都是使用这个命令对吧 来试试,可以看到上面命令 首先看看 kubectl get pod 可以看到有…...
P8306 【模板】字典树
题目描述 给定 n 个模式串 s1,s2,…,sn 和 q 次询问,每次询问给定一个文本串 ti,请回答 s1∼sn 中有多少个字符串 sj 满足 ti 是 sj 的前缀。 一个字符串 t 是 s 的前缀当且仅当从 s 的末尾删去若干个(可以为 0 个&#…...
SkyWalking 10.2.0 SWCK 配置过程
SkyWalking 10.2.0 & SWCK 配置过程 skywalking oap-server & ui 使用Docker安装在K8S集群以外,K8S集群中的微服务使用initContainer按命名空间将skywalking-java-agent注入到业务容器中。 SWCK有整套的解决方案,全安装在K8S群集中。 具体可参…...
HTML 列表、表格、表单
1 列表标签 作用:布局内容排列整齐的区域 列表分类:无序列表、有序列表、定义列表。 例如: 1.1 无序列表 标签:ul 嵌套 li,ul是无序列表,li是列表条目。 注意事项: ul 标签里面只能包裹 li…...
Python爬虫(二):爬虫完整流程
爬虫完整流程详解(7大核心步骤实战技巧) 一、爬虫完整工作流程 以下是爬虫开发的完整流程,我将结合具体技术点和实战经验展开说明: 1. 目标分析与前期准备 网站技术分析: 使用浏览器开发者工具(F12&…...
k8s业务程序联调工具-KtConnect
概述 原理 工具作用是建立了一个从本地到集群的单向VPN,根据VPN原理,打通两个内网必然需要借助一个公共中继节点,ktconnect工具巧妙的利用k8s原生的portforward能力,简化了建立连接的过程,apiserver间接起到了中继节…...
【论文阅读28】-CNN-BiLSTM-Attention-(2024)
本文把滑坡位移序列拆开、筛优质因子,再用 CNN-BiLSTM-Attention 来动态预测每个子序列,最后重构出总位移,预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵(S…...
大语言模型(LLM)中的KV缓存压缩与动态稀疏注意力机制设计
随着大语言模型(LLM)参数规模的增长,推理阶段的内存占用和计算复杂度成为核心挑战。传统注意力机制的计算复杂度随序列长度呈二次方增长,而KV缓存的内存消耗可能高达数十GB(例如Llama2-7B处理100K token时需50GB内存&a…...
RabbitMQ入门4.1.0版本(基于java、SpringBoot操作)
RabbitMQ 一、RabbitMQ概述 RabbitMQ RabbitMQ最初由LShift和CohesiveFT于2007年开发,后来由Pivotal Software Inc.(现为VMware子公司)接管。RabbitMQ 是一个开源的消息代理和队列服务器,用 Erlang 语言编写。广泛应用于各种分布…...
基于Springboot+Vue的办公管理系统
角色: 管理员、员工 技术: 后端: SpringBoot, Vue2, MySQL, Mybatis-Plus 前端: Vue2, Element-UI, Axios, Echarts, Vue-Router 核心功能: 该办公管理系统是一个综合性的企业内部管理平台,旨在提升企业运营效率和员工管理水…...
PostgreSQL——环境搭建
一、Linux # 安装 PostgreSQL 15 仓库 sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-$(rpm -E %{rhel})-x86_64/pgdg-redhat-repo-latest.noarch.rpm# 安装之前先确认是否已经存在PostgreSQL rpm -qa | grep postgres# 如果存在࿰…...
对象回调初步研究
_OBJECT_TYPE结构分析 在介绍什么是对象回调前,首先要熟悉下结构 以我们上篇线程回调介绍过的导出的PsProcessType 结构为例,用_OBJECT_TYPE这个结构来解析它,0x80处就是今天要介绍的回调链表,但是先不着急,先把目光…...
