【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、总结

保持初心

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/123650.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

服务器的操作系统,你选择哪些?

OpenCloudOS CentOS CentOS Stream Ubuntu Debian Windows Server

两个int(32位)整数m和n的二进制表达中,求有多少个位(bit)不同?

我先来讲一讲这道题的大概意思:假设我们输入的是 0 和 1: 0的32位二进制中为:000……0(32位) 1的32位二进制中为:000……1(32位) 那么就有一位不同。 方法一: 既然是二进制中,那么就是满二进一,就像…

图解三傻排序 选择排序、冒泡排序、插入排序

&#xff08;1&#xff09;选择排序 // 交换 void swap(int arr[], int i, int j) {int tmp arr[i];arr[i] arr[j];arr[j] tmp; }// 选择排序 void selectionSort(int arr[],int len) {if (len < 2) return;for (int minIndex, i 0; i < len - 1; i) {minIndex i;f…

chrome driver下载、selenium安装及报错解决

目录 一、Chrome驱动下载 1.查看Chrome版本 2.下载驱动 3.驱动的路径 无法运行驱动 二、selenium的安装与使用 1.安装selenium 2.使用selenium 参考 一、Chrome驱动下载 1.查看Chrome版本 打开Chrome浏览器&#xff0c;点击右上角的三个点&#xff0c;再点击设置。 …

模态对话框和非模态对话框

创建到堆区这样非模态对话框就不会一闪而过 .exec使程序进入阻塞状态 ()[]{}lambda表达式 55号属性可以在对话框关闭的时候将堆区的内存释放掉从而防止内存泄露

Redis系列-Redis数据类型【3】

目录 Redis系列-Redis数据类型【3】字符串类型&#xff08;String&#xff09;SDS (simple dynamic string) 哈希类型&#xff08;Hash&#xff09;列表类型&#xff08;List&#xff09;集合类型&#xff08;Set&#xff09;有序集合类型&#xff08;ZSet&#xff09;字符串类…

安装pr提示VCRUNTIME140.dll丢失的修复方法,3个有效的方法

在学习和工作中&#xff0c;我们经常需要使用到PR和PS。然而&#xff0c;在安装这些软件时&#xff0c;有时会遇到一些错误提示&#xff0c;其中之一就是“VCRUNTIME140.dll丢失”&#xff0c;无法运行启动软件程序。那么&#xff0c;如何解决VCRUNTIME140.dll丢失的问题呢&…

累计概率分布、概率分布函数(概率质量函数、概率密度函数)、度量空间、负采样(Negative Sampling)

这里写自定义目录标题 机器学习的基础知识累计概率分布概率分布函数度量空间负采样&#xff08;Negative Sampling&#xff09;基于分布的负采样&#xff08;Distribution-based Negative Sampling&#xff09;&#xff1a;基于近邻的负采样&#xff08;Neighbor-based Negativ…

Rasa NLU中的组件

Rasa NLU部分主要是解决NER&#xff08;序列建模&#xff09;和意图识别&#xff08;分类建模&#xff09;这2个任务。Rasa NLP是一个基于DAG的通用框架&#xff0c;图中的顶点即组件。组件特征包括有顺序关系、可相互替换、可互斥和可同时使用。有向无环图&#xff08;DAG&…

一体化HIS医疗信息管理系统源码:云HIS、云电子病历、云LIS

基于云计算技术的B/S架构的HIS系统&#xff0c;为医疗机构提供标准化的、信息化的、可共享的医疗信息管理系统&#xff0c;实现医患事务管理和临床诊疗管理等标准医疗管理信息系统的功能。系统利用云计算平台的技术优势&#xff0c;建立统一的云HIS、云病历、云LIS&#xff0c;…

flutter显示出底部控件的引导页

需求&#xff1a;同一个页面的两个不同的入口&#xff0c;同一个控件的位置有变化&#xff0c;显示引导页时对应这个控件的引导内容的位置也需要改变&#xff1b;同时半透明底部显示出真实的页面内容。 这样的需要如果切图然后再往页面上贴位置无法精确的对准。 思路&#xff1…

特殊矩阵的压缩存储(对称矩阵,三角矩阵,三对角矩阵,稀疏矩阵)

目录 1.数组的存储结构1.—维数组2.二维数组1.行优先存储2.列优先存储 2.特殊矩阵1.对称矩阵1.行优先存储 2.三角矩阵1.上三角矩阵2.下三角矩阵 3.三对角矩阵&#xff08;带状矩阵&#xff09;4.稀疏矩阵 1.数组的存储结构 1.—维数组 各数组元素大小相同&#xff0c;且物理上…

Fabric区块链浏览器搭建

目录 一、创建区块链浏览器相关目录二、配置docker-compose三、配置区块链浏览器四、启动区块链浏览器 书接这一回 Fabric二进制建链&#xff0c;在建好链之后&#xff0c;将为这条链部署一个区块链浏览器。 Hyperledger Fabric区块链浏览器地址&#xff1a;https://github.co…

多目标优化算法:多目标霸王龙优化算法(MOTROA)MATLAB

一、霸王龙优化算法 霸王龙优化算法&#xff08;Tyrannosaurus optimization&#xff0c;TROA&#xff09;由Venkata Satya Durga Manohar Sahu等人于2023年提出&#xff0c;该算法模拟霸王龙的狩猎行为&#xff0c;具有搜索速度快等优势。 参考文献&#xff1a; [1]Venkata …

com.alibaba:tools:jar com.alibaba:jconsole:jar

com.alibaba:tools:jar com.alibaba:jconsole:jar

时间序列预测模型实战案例(十)(个人创新模型)通过堆叠CNN、GRU、LSTM实现多元预测和单元预测

本文介绍 本篇博客为大家讲解的是通过组堆叠CNN、GRU、LSTM个数&#xff0c;建立多元预测和单元预测的时间序列预测模型&#xff0c;其效果要比单用GRU、LSTM效果好的多&#xff0c;其结合了CNN的特征提取功能、GRU和LSTM用于处理数据中的时间依赖关系的功能。通过将它们组合在…

1-前端基本知识-HTML

1-前端基本知识-HTML 文章目录 1-前端基本知识-HTML总体概述什么是HTML&#xff1f;超文本标记语言 HTML基础结构文档声明根标签头部元素主体元素注释 HTML概念词汇&#xff1a;标签、属性、文本、元素HTML基本语法规则HTML常见标签标题标签段落标签换行标签列表标签超链接标签…

【大数据】Apache NiFi 数据同步流程实践

Apache NiFi 数据同步流程实践 1.环境2.Apache NIFI 部署2.1 获取安装包2.2 部署 Apache NIFI 3.NIFI 在手&#xff0c;跟我走&#xff01;3.1 准备表结构和数据3.2 新建一个 Process Group3.3 新建一个 GenerateTableFetch 组件3.4 配置 GenerateTableFetch 组件3.5 配置 DBCP…

【文末送书】十大排序算法及C++代码实现

欢迎关注博主 Mindtechnist 或加入【智能科技社区】一起学习和分享Linux、C、C、Python、Matlab&#xff0c;机器人运动控制、多机器人协作&#xff0c;智能优化算法&#xff0c;滤波估计、多传感器信息融合&#xff0c;机器学习&#xff0c;人工智能等相关领域的知识和技术。关…

打造一个可视化接口自动化测试系统

现如今&#xff0c;接口开发几乎成为一个互联网公司的标配了&#xff0c;无论是web还是app&#xff0c;哪怕是小程序&#xff0c;都离不开接口作为支撑&#xff0c;当然&#xff0c;这里的接口范围很广&#xff0c;从http到websocket&#xff0c;再到rpc&#xff0c;只要能实现…