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

保持初心

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java泛型的深入 泛型还可以在很多地方进行定义 泛型类 泛型方法 泛型接口 泛型的继承和通配符 泛型类练习

文章目录 泛型的深入泛型还可以在很多地方进行定义泛型类泛型方法泛型接口 泛型的继承和通配符泛型类练习总结 泛型的深入 public static void main(String[] args) {//在没有泛型的时候怎么存储数据ArrayList listnew ArrayList();list.add(1);list.add("abc");//遍…

上海:竹云董事长董宁受邀在第三届“双区驱动,打造全球经济新引擎”国际合作论坛发言

作为中国最具活力的两大重要经济带,粤港澳和长三角两大湾区2022年GDP总量超过42万亿,占全国GDP总量的35%,对中国经济的重要性举足轻重。中国国际进口博览会是我国主动向世界开放市场的重大举措,是一个推动两地开放合作&#xff0c…

Ubuntu18.04安装pcl-1.12.1,make时报错:/usr/bin/ld: cannot find -lvtkIOMPIImage

解决方案: 在vtk安装包中,重新打开cmake-gui,然后勾选上VTK_Group_MPI和VTK_Group_Imaging。 cd VTK-8.2.0 cd build cmake-gui然后重新编译生成。 make -j8 # 或者j4,量力而行。 sudo make install 就可以解决了。 然后重新回到pcl安装…

V-REP和Python的联合仿真

机器人仿真软件 各类免费的的机器人仿真软件优缺点汇总_robot 仿真 软件收费么_dyannacon的博客-CSDN博客 课程地址 https://class.guyuehome.com/p/t_pc/course_pc_detail/column/p_605af87be4b007b4183a42e7 课程资料 guyueclass: 古月学院课程代码 旋转变换 旋转的左乘与…

论文阅读—— UniDetector(cvpr2023)

arxiv:https://arxiv.org/abs/2303.11749 github:https://github.com/zhenyuw16/UniDetector 一、介绍 通用目标检测旨在检测场景那种的一切目标。现有的检测器依赖于大量数据集 通用的目标检测器应该有两个能力:1、可以利用多种来…

数据库实验:SQL的数据视图

目录 视图概述视图的概念视图的作用 实验目的实验内容实验要求实验过程 视图概述 视图是由数据库中的一个表或多个表导出的虚拟表,其作用是方便用户对数据的操作 视图的概念 视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一…

SQL审计是什么意思?目的是什么?有什么好处?

很多刚入行的运维小伙伴对于SQL审计不是很了解,不知道其是什么意思?使用SQL审计的目的是什么?使用SQL审计的好处有哪些?这里我们大家就来一起聊聊,仅供参考哈! SQL审计是什么意思? 【回答】&…

CoCa论文笔记

摘要 计算机视觉任务中,探索大规模预训练基础模型具有重要意义,因为这些模型可以可以极快地迁移到下游任务中。本文提出的CoCa(Contrastive Captioner),一个极简设计,结合对比损失和captioning损失预训练一…

24PL-18-50-1836、12PN-4.1-50-1836比例电磁铁控制器

12PG-2.2-40-1836、24PG-8.8-40-1836、12PT-40-1836、24PT-40-1836、12PL-2.2-40-1836、24PL-8.8-40-1836、12PN-2.2-40-1836、24PN-8.8-40-1836、12PG-4.1-50-1836、24PG-18-50-1836、12PT-4.1-50-1836、24PT-18-50-1836、12PL-4.1-50-1836、24PL-18-50-1836、12PN-4.1-50-183…

以订单退款流程为例,聊聊如何优化策略模式

如果有人问你什么是策略模式?你可以尝试这样回答 策略模式是一种行为设计模式,它允许在运行时根据不同的情况选择不同的算法策略。这种模式将算法的定义与使用的代码分离开来,使得代码更加可读、可维护和可扩展。 在策略模式中,通…

LeetCode 热题100——链表专题

一、俩数相加 2.俩数相加(题目链接) 思路:这题题目首先要看懂,以示例1为例 即 342465807,而产生的新链表为7->0->8. 可以看成简单的从左向右,低位到高位的加法运算,4610,逢…

ES7 装饰器

阅读能解决问题-: 1)装饰器有什么用,主要功能? 2)装饰器?减少引入,减少代码,可以扩展,不需要改原有方法的代码位置 3)放置位置,可以是类、类成员&…

24张宇八套卷复盘(五)

张八()94选择25填空20高数大题25线代大题12概率大题12 前言 临近考试冲刺阶段,感觉做过的卷子很难再提起精神去复盘,于是在这里进行一下复盘。 主要是对于整体试卷结构的把握,以及考试状态的复盘。 简单的卷子把会做的…

数据库设计,原来找到对的辅助工具这么简单

糟糕的数据库设计后果?随着时间的流逝,需要花更多的时间摆弄数据结构。在处理大型复杂项目时,这变成了一个更大的问题。 合适的数据库设计工具可以帮助我们节省大量时间,同时还会确保不会因使用不当丢失数据,在线数据库…

【RabbitMQ】RabbitMQ 消息的堆积问题 —— 使用惰性队列解决消息的堆积问题

文章目录 一、消息的堆积问题1.1 什么是消息的堆积问题1.2 消息堆积的解决思路 二、惰性队列解决消息堆积问题2.1 惰性队列和普通队列的区别2.2 惰性队列的声明方式2.3 演示惰性队列接收大量消息2.4 惰性队列的优缺点 一、消息的堆积问题 1.1 什么是消息的堆积问题 消息的堆积…

517-0224-16A-458525 531X303MCPARG1 现代工厂中DCS与PLC的比较

517-0224-16A-458525 531X303MCPARG1 现代工厂中DCS与PLC的比较 分布式控制系统(DCSs)和可编程逻辑控制器(PLC)之间的区别可以归结为一个简单的足球比喻。你的指挥系统是你的船长。团队名单上的第一个名字,你的DCS是可靠的,勤奋的,控制着整个…

Android codec2 视频框架 之应用

文章目录 应用流程外部主动获取输入和输出buffer外部设置回调 内部流程 应用流程 外部主动获取输入和输出buffer 解码的调用流程,以android原生的一个bin来说明 android 原生代码位置: frameworks/av/cmds/stagefright/codec.cpp frameworks/av/cmds/st…

Synchronized关键字使用不合理,导致的多线程下线程阻塞问题排查

在为客户进行性能诊断调优时,碰到了一个Synchronized关键字使用不合理导致多线程下线程阻塞的情况。用文字记录下了问题的整个发现-排查-分析-优化过程,排查过程中使用了商业化产品——XLand性能分析平台,通过文章主要希望跟大家分享下分析和…

vue3错误排查-POST请求的body参数 传参方式form-data和json

问题:vue3实现登录功能,登录成功后 跳转到登陆后的界面 一秒后 闪退回登录页 对应的输出结果也一闪而过,反复复查了代码,没问题。 自测:进行断点输出调试。强行跳转到登陆后的界面,查看输出的结果。 没有报…

使用腾讯云轻量服务器安装AList

新人有免费两个月试用轻量服务器,使用云服务器商自带的webshell登录; 我这儿用docker安装Alist,因为服务器没自带docker,所以具体安装docker centos7.0最快速安装docker的方法 通过 Docker 部署 Alist 命令: docke…