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

【PC电脑windows环境下-[jetson-orin-NX]Linux环境下-下载工具esptool工具使用-相关细节-简单样例-实际操作】

【PC电脑windows环境下-[jetson-orin-NX]Linux环境下-下载工具esptool工具使用-相关细节-简单样例-实际操作】

  • 1、概述
  • 2、实验环境
  • 3、 物品说明
  • 4-2、自我总结
  • 5、本次实验说明
      • 1、准备样例
      • 2、设置芯片
      • 3、编译
      • 4、下载
      • 5、验证
    • (1)windows环境下进行烧写
      • 1、下载软件
      • 2、打开软件
      • 3、相关选项
      • 4、其它选项
      • 5、进行下载
      • 6、按下复位后,进行验证
    • (2)Linux环境下进行烧写
      • 1、下载软件
      • 2、准备文件
      • 3、相关命令
      • 4、进行下载
      • 5、功能验证
  • 7、代码连接
  • 8、相关细节
      • (1)Windows 报错
      • (2)Linux 下报错
      • (3)Linux下pc环境配置
  • 9、总结

1、概述

一般来说,我们编译的话,直接就下载到ESP32中,但是有时候我们可能需要反复下载或者工厂下载,一般来说不可能让调试代码的那台电脑去下载,像STM32有STM32 ST-LINK Utility和STM32CubeProgrammer这两种工具,那么esp32有没有,其实也有的,就是esptool。本次实验就是来熟悉这个工具,并且做的相关记录。

2、实验环境

硬件信息:开发板 ESP32-S3-DevKitM-1(EPS32-S3-wroom-1模块)
在这里插入图片描述

其它硬件:一个usb-type-c连接线。
软件环境:ESP-IDF 5.0 PowerShell 、vscode

3、 物品说明

ESP32对自己来说还是比较新的,最近也是刚刚接触,这里对自己使用ESP32进行简单说明。
博文链接:【在英伟达nvidia的jetson-orin-nx和PC电脑ubuntu20.04上-装配ESP32开发调试环境-基础测试】
在这里插入图片描述
上述单片机原理图。
文档链接:http://vcc-gnd.com:8080/yd-data/YD-ESP32-S3/5-public-YD-ESP32-S3-Hardware%20info/

另外如果对ESP32相关型号比较感兴趣,可以去官网查看,或者找些资。
官网文档:https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32s3/hw-reference/esp32s3/user-guide-devkitm-1.html
在这里插入图片描述

4-2、自我总结

自己认为有一条必须了解的是,ESP32每次下载需要下三个文件。
在这里插入图片描述
可能用习惯了STM32的惯性思维,因为STM32一般来说,只需要下一个bin文件,而ESP32是分开的,每次编译后的下载,其实ESP32都下了bootloader,app和parition_table三个文件。

1、Bootloader(引导加载程序):引导加载程序是位于ESP32芯片上的特殊固件,负责引导和初始化系统。它是在芯片上电时首先执行的代码,负责加载应用程序(app)和分区表等内容。
引导加载程序通常由ESP-IDF(ESP32开发框架)提供,或者您可以选择自定义引导加载程序。
引导加载程序的主要功能是加载应用程序和分区表,并将控制权传递给应用程序的入口点。
2、Application(应用程序):[添加链接描述](https://docs.espressif.com/projects/esptool/en/latest/esp32/esptool/basic-commands.html)应用程序是您开发的ESP32固件的主要部分,包含您自己编写的代码和功能。
应用程序通常是一个或多个源代码文件,实现了您的特定应用逻辑和功能。
应用程序文件通常被编译为可执行的固件映像(例如.bin或.elf文件),以便在ESP32上运行。
3、Partition Table(分区表):分区表是一个描述ESP32闪存中不同分区的配置文件,每个分区对应一个特定的用途和大小。
分区表定义了不同分区的起始地址、大小、类型等信息,并在烧录过程中确定了ESP32固件的存储布局。
分区表通常是一个用于描述分区的JSON文件,指定了不同分区的名称、大小和类型等信息

(1)参照官方文档
无论你看任何文档,有什么不懂时候,都非常建议看看官网文档是如何写,再来看他人的解释说明文章,你会明白很多,不个人感觉,官方文档有时候确实不容易看,要不我们为啥不直接看官网文档,而是看他人写的说明书呢。
官方文档链接:https://docs.espressif.com/projects/esptool/en/latest/esp32/esptool/basic-commands.html
在这里插入图片描述

github上链接:https://github.com/espressif/esptool/releases/tag/v4.6.2
在这里插入图片描述
另外发现CSDN也有相关官方博客:https://blog.csdn.net/espressif/article/details/105028809
在这里插入图片描述

这块开始不知道esp32需要下载三个文件,随便弄个工程app.bin,就烧进去了,使用命令。

esptool.py --port COM4 write_flash 0x1000 my_app-0x01000.bin

后来才知道要下三个。

(2)windows下使用esptool相关工具
Windows下有现成esptool的exe工具,直接打开直接就能使用,只要选择算在算对就行。

(3)linux下也是用esptool相关工具
主要是需要安装,然后使用时候,注意烧写三个文件,所以我们需要将相关文件拿出来。

5、本次实验说明

我们将选择一个简单样例,一个串口打印程序,然后直接将相关文件进行烧写,分别在两种环境下,使用工具。

  1. windows
  2. linux

1、准备样例

我们需要准备一个简单样例,来完成本次实验。直接使用之前建立的模helloworld版样例
在这里插入图片描述

2、设置芯片

这里因为之前设置过了,如果你使用芯片不一样,可以重新设置下,vscode下如下图,
在这里插入图片描述

或者使用命令,

idf.py set-target esp32s3

3、编译

编译如下

在这里插入图片描述
或者使用命令行

idf.py build

编译完成如下

在这里插入图片描述

4、下载

使用命令行
命令行根据自己的设备端口

idf.py -p com6 flash

如果报错没有这个端口,可以重置下ESP32,进入下载模式。
如下图为自己其它文章寻找串口方式,就不重复造轮子了。
博文链接:【PC电脑windows-学习样例tusb_serial_device-ESP32的USB模拟串口程序+VScode建立工程+usb组件添加±基础样例学习】
在这里插入图片描述

或者如下vscode

在这里插入图片描述

5、验证

vscode还是挺强的,知道连串口软件都不用打开了
在这里插入图片描述

如此我们就准备好了样例。

(1)windows环境下进行烧写

1、下载软件

随着文档更新,以后版本可能不一样,但是大致还是这个工具。
文档链接:https://www.espressif.com.cn/en/support/download/other-tools
在这里插入图片描述

2、打开软件

下载之后,就是这个软件了,直接运行。
在这里插入图片描述
在这里插入图片描述
如下为软件打开后样子,选择我们自己相关型号。
在这里插入图片描述

3、相关选项

(1)boot文件选择,并选择后面选择烧写位置“0x0”
在这里插入图片描述

(2)app文件选择,并选择后面选择烧写位置“0x10000”
在这里插入图片描述

(3)分区表文件选择,并选择后面选择烧写位置“0x8000”
在这里插入图片描述

4、其它选项

在这里插入图片描述

5、进行下载

然后点击START,进行下载
注意只有下边有绿色进度条时,才算下载了,自己实际弄的时候,发现没有动。
在这里插入图片描述

6、按下复位后,进行验证

在这里插入图片描述
如此Windows下就验证完毕了。

(2)Linux环境下进行烧写

现在切到linux环境下,自己一个pc,因为还没有装工具,正好验证下,jetson orin因为已经装完了,可以用了,可能反而发现不了文档。参考CSND官方文章。
博文链接:https://blog.csdn.net/espressif/article/details/105028809
在这里插入图片描述
结果验证半天,PC的Linux 环境都没能成功,有点小尴尬。
在这里插入图片描述

这块后续可能再写个文章再说吧,直接在jetson下演示。

1、下载软件

在jetson 下,记得在如下进行下载。
在这里插入图片描述
如下,具体安装确实有点忘记了,以下是当时运行相关命令。
在这里插入图片描述
装成功后,使用命令可以查看。

2、准备文件

我们先验证下,使用串口软件,看看是哪个串口,一会方便烧写
在这里插入图片描述
如下就是我们需要准备的bin文件,就是之前Windows烧写那三个
在这里插入图片描述

3、相关命令

以下就是烧写的命令了,要烧写3个文件

esptool.py  --port  /dev/ttyACM0  write_flash   0x0 bootloader.bin 0x10000 app-template.bin 0x8000 partition-table.bin

以下是擦除命令

esptool.py -p /dev/ttyACM0 erase_flash

4、进行下载

在这里插入图片描述

5、功能验证

在windows下验证或者Linux下验证,使用串口软件链接debug串口,如下为win环境验证。

在这里插入图片描述

7、代码连接

(1)esp串口样例
代码链接:https://download.csdn.net/download/qq_22146161/88482930

8、相关细节

(1)Windows 报错

下载的时候卡着,那我需要重启软件,然后按住boot键,然后是rst键,在撒开boot键,重新下载。
在这里插入图片描述

(2)Linux 下报错

端口占用,关掉串口软件
在这里插入图片描述

(3)Linux下pc环境配置

确实遇到点问题,安装有点问题,后期有时间补下。

9、总结

保持初心

相关文章:

【PC电脑windows环境下-[jetson-orin-NX]Linux环境下-下载工具esptool工具使用-相关细节-简单样例-实际操作】

【PC电脑windows环境下-[jetson-orin-NX]Linux环境下-下载工具esptool工具使用-相关细节-简单样例-实际操作】 1、概述2、实验环境3、 物品说明4-2、自我总结5、本次实验说明1、准备样例2、设置芯片3、编译4、下载5、验证 (1)windows环境下进行烧写1、下…...

什么是flink

flink的起源 Flink的起源可以追溯到2010年,当时它作为一个研究项目开始。该项目最初由德国柏林工业大学(Berlin Institute of Technology)的一群研究人员发起,包括Matei Zaharia、Kostas Tzoumas和Stephan Ewen等。 项目最初被称为…...

基于 VTable 的多维数据展示的原理与实践

多维表格介绍 多维表格又名透视表、交叉表、Pivot Table,指的是可以在行维度和列维度放入一个或多个维度,显示维度之间相互关系的一种表格。用户可以一目了然地分析出各种场景指标以及对比,旨在帮助业务分析推动决策。 假设需要分析如下表格…...

为什么有了MAC地址,还需要IP地址?

解释 搞懂这个问题,首先需要了解交换机的功能 交换机内部有一张MAC地址映射表,记录着MAC地址和端口的对应关系。 如果A要给B发送一个数据包,构造如下格式的数据结构: 到达交换机时,交换机内部通过自己维护的 MAC 地…...

Eclipse开发环境的安装与配置

Eclipse开发环境的安装与配置 1.Eclipse安装与配置 1.将JDK与Eclipse这两个软件安装包放在一个文件夹下,方便之后安装使用。 2.安装JDK 在D:LeStoreDownload\java文件夹下另外新建三个文件夹分别命名为java、jdk和eclipse(分别用于Java、j…...

《006.Springboot+vue之旅游信息推荐系统》【有文档】

《006.Springbootvue之旅游信息推荐系统》【有文档】 项目简介 [1]本系统涉及到的技术主要如下: 推荐环境配置:DEA jdk1.8 Maven MySQL 前后端分离; 后台:SpringBootMybatis; 前台:vueElementUI; [2]功能模块展示: …...

LangChain+LLM实战---使用知识图谱和大模型来实现多跳问答

原文:Knowledge Graphs & LLMs: Multi-Hop Question Answering 可以使用检索增强方法来克服大型语言模型(Large Language Models, llm)的局限性,比如幻觉和有限的知识。检索增强方法背后的思想是在提问时引用外部数据,并将其提供给LLM&a…...

【实践篇】一次Paas化热部署实践分享 | 京东云技术团队

前言 本文是早些年,Paas化刚刚提出不久时,基于部门内第一次Paas化热部署落地经验所写,主要内容是如何构建一些热部署代码以及一些避雷经验。 一、设计-领域模型设计 1.首先,确定领域服务所属的领域 2.其次,确定垂直…...

蓝桥杯官网填空题(算式问题)

题目描述 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。 看这个算式: ☆☆☆ ☆☆☆ ☆☆☆ 如果每个五角星代表 1 ~ 9 的不同的数字。 这个算式有多少种可能的正确填写方法? 173 286 459 …...

Verilog HDL语言基础知识

目录 Verilog HDL语言基础知识 6.1.2 Verilog HDL模块的结构 6.1.3 逻辑功能定义 6.2.1 常量 6.3 运算符及表达式 6.4.2 条件语句 Verilog HDL语言基础知识 先来看两个Verilog HDL程序。 例6.1 一个8位全加器的 Verilog HDL源代码 module adder8(cout,sum,ina,…...

11.1~11.2数电实验一些点+11.4~11.5报错复盘

方框写在前面是说这个数有多大,写在后面是说这类数有多少 前面的用于计数,每位无实际意义;后面每位都代表一个同类型的,即数组,每位有实际意义 使用四位格雷码作为深度为8的FIFO的读写指针 将格雷码转换成四位二进制…...

从电脑的角度,探究被强制删除的文件的去向和恢复方法!

当我们在进行电脑操作的时候,由于一些原因,我们可能会误操作,将电脑里面的某些文件强制删除掉。有的时候,我们误以为这些文件已经彻底消失了,但实际上这些被删除的文件只是被隐藏了,它们并没有真正离开我们…...

淘宝、天猫电商平台商品详情最低价skuid爬取、各类sku信息调取

淘宝商品描述详细信息API接口是一个用于获取淘宝商品详细信息的API,通过它可以获取到商品的标题、价格、图片等信息。通过淘宝商品描述详细信息API接口,开发者可以方便地获取宝贝的相关信息,并将它们用于各种应用场景中。淘宝商品描述详细信息…...

C/S架构学习之组播

组播:过多的广播会占用网络带宽,产生广播风暴的现象,从而影响正常的通信活动;组播(或者多播)是局域网内部的通信,只有加入到某个多播组的主机才能收到数据;组播的方式既可以发给多个…...

vue package.json Script配置讲解

Vue 项目的 scripts 配置如下: "scripts": {"dev": "vite --force","build": "vite build","build:docker": "vite build --outDir ./docker/dist/","lint:eslint": "eslin…...

wagtail的使用

文章目录 安装虚拟环境新建项目时指定虚拟环境打开已有项目添加虚拟环境 安装wagtail查看安装后的包 创建wagtail项目安装依赖迁移创建超级用户运行项目 管理工作台内容扩展首页的数据模型更新数据库修改模板页创建一个页面的过程 models中的基本字段templates字符型文本字段富…...

【JavaScript】零碎知识点总结_2

1. 引入网站图标 可以直接放在根目录 还可以 link 引入&#xff08;推荐&#xff09; <linkrel"shortcut icon"href"./assets/favicon.ico"type"image/x-icon">2. 转换为数字 123 -> 123 除 做字符串拼接&#xff0c;算术运算符都…...

P1182 数列分段 Section II 题解

文章目录 题目描述输入格式输出格式样例样例输入样例输出 数据范围与提示完整代码 题目描述 对于给定的一个长度为N的正整数数列 A 1 ∼ N A_{1\sim N} A1∼N​&#xff0c;现要将其分成 M M M&#xff08; M ≤ N M\leq N M≤N&#xff09;段&#xff0c;并要求每段连续&am…...

vscode1.83远程连接失败

&#xff08;报错信息忘记截图了 总之卡在vscode-server.tar.gz的下载那里&#xff0c;一直404&#xff0c;删了C:\Users\Administrator\.ssh\known_hosts也不管用 看了一下vscode1.83的commitID为a6606b6ca720bca780c2d3c9d4cc3966ff2eca12&#xff0c;网友说可以通过以下网…...

Leetcode-141 环形链表

使用HashSet&#xff0c;从头遍历链表并写入哈希表&#xff0c;遍历每个元素找哈希表是否出现过&#xff0c;如果出现过则存在环。 HashSet 基于 HashMap 来实现的&#xff0c;是一个不允许有重复元素的集合。 HashSet 允许有 null 值。 HashSet 是无序的&#xff0c;即不会记录…...

Taurus多执行器对比实战:JMeter/Gatling/Locust统一压测方案

1. 为什么选Taurus做多执行器对比——不是为了炫技&#xff0c;而是为了少踩坑在性能测试领域&#xff0c;我见过太多团队卡在“选型”这一步&#xff1a;刚招来一个会写JMeter脚本的工程师&#xff0c;项目突然要压测WebSocket接口&#xff0c;发现JMeter原生支持弱、插件维护…...

零基础轻松拿捏!魔珐星云青少年健康运动教学数字人搭建全流程指南

大家好&#xff01;本次给大家分享一款面向青少年体育教育的AI创意实践项目——青少年健康运动教学智能数字交互系统。本项目聚焦青少年体质健康痛点&#xff0c;围绕体育教学智能化升级需求&#xff0c;打造集健康知识教学、运动动作陪练、健康知识考核、运动能力评测于一体的…...

基于LM22678的树莓派硬盘专用电源设计:解决供电不稳与电流冲击

1. 项目概述&#xff1a;为什么我们需要一个“专用”电源&#xff1f;如果你正在用树莓派搭配一块机械硬盘搭建一个家庭服务器或者个人云存储&#xff0c;可能已经遇到了一个不大不小的麻烦&#xff1a;供电不稳。树莓派官方推荐的5V/3A电源&#xff0c;单独带树莓派4B跑满负载…...

OpenClaw 连接阿里云百炼图文教程

OpenClaw 连接阿里云百炼图文教程 前置准备 已安装并可以正常打开 OpenClaw Windows。 OpenClaw 顶部 Gateway 状态保持在线。 已准备好可正常登录的阿里云账号。 可以正常访问阿里云百炼登录地址&#xff1a;https://bailian.console.aliyun.com/cn-beijing#/home 建议提…...

sudo企业级应用【20260525】001篇

文章目录 一、总体设计思路 1️⃣ 设计原则 2️⃣ 日志策略(重点) 二、10 个真实生产场景(含 sudoers 配置) 🔹 Linux 系统管理(3 个) ✅ 场景 1:基础运维(用户 / 权限) ✅ 场景 2:磁盘与文件系统 ✅ 场景 3:网络与防火墙 🔹 云管理(2 个) ✅ 场景 4:云 CLI …...

‌2026智慧校园规划必读:如何在预算吃紧下选到高性价比方案‌

✅作者简介&#xff1a;合肥自友科技 &#x1f4cc;核心产品&#xff1a;智慧校园平台(包括教工管理、学工管理、教务管理、考务管理、后勤管理、德育管理、资产管理、公寓管理、实习管理、就业管理、离校管理、科研平台、档案管理、学生平台等26个子平台) 。公司所有人员均有多…...

PCL 基于强度的双边滤波【2026最新版】

目录 一、算法原理 1、计算步骤 2、算法源码 3、函数解析 4、参考文献 二、代码实现 三、结果展示 四、滤波后未发生变化的原因 五、解决办法 六、结果展示 七、相关链接 本文由CSDN点云侠原创,博客长期更新,本文最近一次更新时间为:2026年5月24日。 一、算法原理 1、计算…...

Raspberry Pi Debug Probe:RP2040嵌入式开发的调试利器与实战指南

1. 项目概述&#xff1a;为什么你需要一个Raspberry Pi Debug Probe&#xff1f;如果你玩过树莓派Pico或者任何基于RP2040芯片的开发板&#xff0c;肯定遇到过这样的场景&#xff1a;写好的代码&#xff0c;点一下“上传”&#xff0c;然后……就没有然后了。板子上的LED没按你…...

观察Token消耗明细,Taotoken用量看板如何帮助控制预算

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 观察Token消耗明细&#xff0c;Taotoken用量看板如何帮助控制预算 对于个人开发者或项目管理者而言&#xff0c;在使用大模型API时…...

Linux平台终极Jellyfin客户端:如何用Tsukimi打造专业级媒体中心体验?

Linux平台终极Jellyfin客户端&#xff1a;如何用Tsukimi打造专业级媒体中心体验&#xff1f; 【免费下载链接】tsukimi A simple third-party Jellyfin client for Linux 项目地址: https://gitcode.com/gh_mirrors/ts/tsukimi 你是否厌倦了网页版Jellyfin的笨重体验&am…...