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

news2024/12/23 6:38:59

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

保持初心

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

前端框架Vue学习 ——(六)Vue组件库Element

文章目录 Element 介绍快速入门常见组件表格分页Dialog 对话框组件表单 Container 布局容器 Element 介绍 Element:是饿了么团队研发的,一套为开发者、 设计师和产品经理准备的基于Vue 2.0的桌面端组件库。 组件:组成网页的部件,…

C语言成弟弟了?就业还得是御三家

文章目录 一、前言二、ChatGPT查到的数据三、数据亮点 1.C语言近3年数据大跌2.招聘数量每年都在剧增的是全栈工程师3.薪资涨幅最高的是全栈和网安 四、结语 一、前言 不仅前在微信群里搭建了一个ChatGPT 5.0做智能助手,让他来帮我回答群问题, 搭建好之…

Zookeeper3.7.1分布式安装部署

上传安装文件到linux系统上面 解压安装文件到安装目录 [zhangflink9wmwtivvjuibcd2e package]$ tar -zxvf apache-zookeeper-3.7.1-bin.tar.gz -C /opt/software/3. 修改解压文件名 [zhangflink9wmwtivvjuibcd2e software]$ mv apache-zookeeper-3.7.1-bin/ zookeeper-3.7…

dbeaver 连接trino 出现Datasource was invalidated

dbeaver 连接trino 出现Datasource was invalidated 问题描述,如图所示: 连接测试通过,但是无法访问数据库 解决 1.首先是看自己的dbeaver连接配置是否有问题 2.看驱动配置是否ok 3.在浏览器上搜索连接的IP是否有结果 eg:192.168…

爆料!马斯克 xAI 打造的ChatGPT竞品被曝光!

夕小瑶科技说 原创 作者 | 王二狗 马斯克旗下公司 xAI 的第一款AI模型曝光! 名为:Grōk ,有望成为ChatGPT最强竞品! Grōk是什么意思呢?二狗我问了一下GPT-4: Grōk AI 曝光12项功能 这次Grōk模型都曝…

Linux MMC子系统 - 3.eMMC 5.1常用命令说明(1)

By: Ailson Jack Date: 2023.11.05 个人博客:http://www.only2fire.com/ 本文在我博客的地址是:http://www.only2fire.com/archives/162.html,排版更好,便于学习,也可以去我博客逛逛,兴许有你想要的内容呢。…

Maven的总结

先要了解maven是什么? Maven就是一个软件,掌握软件安装、配置、以及基本功能(项目构建、依赖管理)使用就是本课程的主要目标! 最主要的功能是为了方便Java项目jar包的导入 认识Maven maven的GVAP属性 Maven 中的 GAVP…

通过环境变量实现多个JDK切换

前文: 由于jdk版本需要升级为jdk17,因为jdk8比较常用且稳定,本人又不想卸载掉安装的jdk8,在经过查找资料后找到了可以通过修改环境变量在本地任意切换jdk版本 环境变量配置 网上教程一堆,直接跳过了,这里主要说明怎么通过配置环境变量切换 电脑->属性->高级系统设置-&g…

腾讯云服务器CVM详细介绍_优缺点亲自整理

腾讯云服务器CVM提供安全可靠的弹性计算服务,腾讯云明星级云服务器,弹性计算实时扩展或缩减计算资源,支持包年包月、按量计费和竞价实例计费模式,CVM提供多种CPU、内存、硬盘和带宽可以灵活调整的实例规格,提供9个9的数…

【k8s】pod调度——亲和,反亲和,污点,容忍

官方网址:https://kubernetes.io/zh/docs/concepts/scheduling-eviction/assign-pod-node/ 一、亲和性 (1)节点亲和性 pod.spec.nodeAffinity ●preferredDuringSchedulingIgnoredDuringExecution:软策略 p开头 ●requiredDuri…

试利用栈的基本操作写出先序遍历二叉树的非递归形式的算法

试利用栈的基本操作写出先序遍历二叉树的非递归形式的算法 代码思路: 要用栈解决先序遍历,我们首先要知道栈的性质和二叉树先序遍历的规则 栈最基本的就是先进后出 而二叉树先序遍历就是“根左右” 利用这两个性质,我们可以先将根结点入队…

【软件测试】其实远远不止需求文档这么简单

我们都知道,软件测试是一门依赖性很强的综合技术,软件测试工程师在施行自己的工作时,总是要依赖其他团队的产出。 比如,我们要依赖着需求团队给出的需求分析说明书来确定测试的方向,又要依赖开发团队产出的实际代码产品…

JavaScript_Date对象_实例方法_get类

计算这一年还剩多少天&#xff1a; <!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <meta name"viewport" content"widthdevice-width, initial-scale1.0"> <title>Document&…

oracle-sql语句执行过程

客户端输入sql语句。 sql语句通过网络到达数据库实例。 服务器进程(server process)接收到sql语句。 sql – 解析成执行计划&#xff0c;然后sql才能执行。 会将sql和sql的执行计划缓存到共享池中。解析: 会消耗很多资源。 从数据库找数据&#xff0c;先从buffer cache中找&a…

自定义注解格式化处理BigDecimal

目录 一、场景描述 二、实现步骤 1、自定义类 2、使用注解 3、测试 一、场景描述 在开发过程中&#xff0c;如果有实体类的属性中存在BigDecimal的属性&#xff0c;并且需要对其进行校验&#xff0c;例如&#xff1a;限制BigDecimal的小数点位数是两位。但目前没有注解可以…

第六章 块为结构建模 P1|系统建模语言SysML实用指南学习

仅供个人学习记录 概述 块是SysML结构中的模块单元&#xff0c;用于定义一类系统、部件、部件互连&#xff0c;或者是流经系统的项&#xff0c;也用于定义外部实体、概念实体或其他逻辑抽象 块定义图用于定义块以及块之间的相互关系&#xff0c;如层级关系&#xff0c;也用于…

搭建WAMP网站教程(windows+apache+mysql+php)

之前为了学习网络安全&#xff0c;从搭建网站学起&#xff0c;对网站运行有个初步的了解。 今天翻到了之前的笔记&#xff0c;顺手发到csdn上了。 搭建网站步骤 一、Apache 安装Apache&#xff0c;下载Apache之后把Apache解压&#xff0c;此处解压到C:\目录下 2.然后要记得安…

pg14-sql基础(三)-分组统计

分组 SELECT hire_date, COUNT(*) FROM employees GROUP BY hire_date;SELECT extract(year from hire_date), COUNT(*) FROM employees GROUP BY extract(year from hire_date); -- GROUP BY 1;SELECT extract(year from hire_date), department_id, COUNT(*) FROM employees…

MFC 基础篇(一)

目录 一.SDK编程 二.为什么要学MFC&#xff1f; 三.MFC能做什么&#xff1f; 四.MFC开发环境搭建 五.MFC项目创建 六.消息映射机制 一.SDK编程 Application Programming Interface 应用程序编程接口。 Software Development Kit 软件开发工具包&#xff0c;一般会包括A…

自动化测试之争:code vs codeless

在TesterHome看到的一个话题&#xff0c;当我们选择做自动化时是否需要code 或者codeless。 code方案 用code去做自动化&#xff0c;实现过程就是拿个IDE撸代码。 python pytest/unittest appium/selenium/requests ... Java Junit/testNG appium/selenium/requests .…