码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【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。本次实验就是来熟悉这个工具,并且做的相关记录。
    
    • 1

    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
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    (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
    
    • 1

    后来才知道要下三个。

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

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

    5、本次实验说明

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

    1. windows
    2. linux

    1、准备样例

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

    2、设置芯片

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

    或者使用命令,

    idf.py set-target esp32s3
    
    • 1

    3、编译

    编译如下

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

    idf.py build
    
    • 1

    编译完成如下

    在这里插入图片描述

    4、下载

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

    idf.py -p com6 flash
    
    • 1

    如果报错没有这个端口,可以重置下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
    
    • 1

    以下是擦除命令

    esptool.py -p /dev/ttyACM0 erase_flash
    
    • 1

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

    保持初心

  • 相关阅读:
    音质最好的蓝牙耳机有哪些?发烧级音质蓝牙耳机推荐
    竞赛 题目:基于LSTM的预测算法 - 股票预测 天气预测 房价预测
    BAT大厂Java面试,如何抓住面试重点知识?收割大厂offer
    20221118 今天的世界发生了什么
    【408专项篇】C语言笔记-第七章(函数)
    AiTrust下预训练和小样本学习在中文医疗信息处理挑战榜CBLUE表现
    8-13外部排序-置换选择排序
    JS的this关键字详解
    鸿蒙开发HarmonyOS Next 网络框架retrofit 封装 viemodel使用
    Sonatype Nexus3 搭建私有仓库
  • 原文地址:https://blog.csdn.net/qq_22146161/article/details/134229502
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号