ESP32S3 多固件烧录方法、合并多个固件为单一固件方法

ESP32S3 多固件烧录方法、合并多个固件为单一固件方法


文章目录

  • ESP32S3 多固件烧录方法、合并多个固件为单一固件方法
  • 前言
  • 1、前期准备工作
  • 2、多固件烧录方法
  • 3、单固件烧录方法
  • 总结


前言

使用正点原子的ESP32S3 BOX开发板独立烧录编译生成的xxx.bin固件无法正常运行起来,因为如果没有经过特殊处理直接下载单一固件,程序是不会正确运行的,必须添加多个固件才可以运行。即单独烧录工程编译生成的固件程序是不会运行的,需要同时烧录其它辅佐的固件才可以,比如另外的bootloader.bin、partition-table.bin 等,至于为什么要这样,可以自行学习,这里不展开描述。

本文就以一个简单的例子来操作演示,只要掌握了该方法,其它的工程或烧录固件方法都一样的,举一反三。

在这里插入图片描述

1、前期准备工作

第一步:首先解压一个(图片显示)实验例程到桌面,当然,工程存放在其它英文路径下也是可以的,不要含有中文路径即可,如下图:

在这里插入图片描述

第二步:双击打开工程文件夹,鼠标右键空白区域选择以通过VS Code 打开工程。

在这里插入图片描述

第三步:编译工程。

打开VS Code 主界面后,在左下方找到一个扳手的图标,点击编译工程。

注意:左下角会有一个IDF版本的选择,要IDF版本和你工程的版本一致,点击就可以在顶部搜索框下面选择对应工程版本的,我打开的是5.4的版本,所以就选择这个,能选多个版本的前提是你已经提前安装了多个版本的IDF。如果版本不对应,可能会导致运行异常的,如果下载后发现不合理就看看是否是这里的版本问题导致的。

在这里插入图片描述

如果打开工程后无法自动匹配IDF版本,那么就会显示xxx的,此时就需要手动选择一个对应的版本了,不然是无法进行编译的。

编译完后提示信息如下图:

在这里插入图片描述

可以看到编译结果有3个xx.bin文件,如下图:

在这里插入图片描述
注意,不同功能代码所包含的bin数量就会不一样。

第四步:接着打开工程文件夹,可以看到比之前多了一个build文件夹,里面就用来存放编译生成的固件的。

在这里插入图片描述

进去build文件夹后如下图:

在这里插入图片描述
三个固件就存放在里面。

第五步:打开固件烧录工具:flash_download_tool_3.9.2。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述


2、多固件烧录方法

打开固件烧录软件以后,添加工程编译生成的3个固件和对应地址。忘记了具体地址是多少的可以回到IDE查看的。

在这里插入图片描述

按图片标号顺序依次设置完成后,点击START按钮开始固件烧录。

注意COM要和板子的端口一致才能正常烧录,如果不知道具体是多少,可以到电脑设备管理器里面端口看到具体COM几的,没安装过驱动的那么就要先安装一次串口驱动。

在这里插入图片描述

烧录完成后,按一次开发板的复位按键即可启动程序看现象了。

说明一下,如果单纯的添加22_pitures.bin固件进行烧录的话,程序是无法正常运行,可以自己验证测试一次就明白了。

3、单固件烧录方法

在前面多固件烧录的基础上将多个固件合成一个固件进行烧录。按下图标号顺序设置参数。

在这里插入图片描述

如果没有自己操作的情况下,工具自己会合成一个固件的,路径是flash_download_tool_3.9.2\combine\target.bin。你下载一次后,这个target.bin就被覆盖你当前合成的固件了,直接下载就可以用了。

当点击CombineBin按钮后,工具会默认打开烧录工具的路径,里面是这个target.bin文件了,(该步骤可选,工具默认完成的)。

如果有特殊需求可以选其它的路径或名字生成。

在这里插入图片描述

接着直接添加该固件,地址填0x0即可进行烧录了。

在这里插入图片描述

注意:如果烧录固件还是无法运行,那么就看看这个固件生成的时间是否合理的,失败的话可以重新操作一次,只要代码正常一般基本上生成也是没问题的。

烧录完成后按一次复位按键即可运行程序了。


总结

ESP32用烧写工具进行固件烧录是比较简单的,需要注意的就是添加位置相关固件,不能只下载一个实验bin固件,不然是无现象的,注意这个问题就没其它错误的地方了。

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

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

相关文章

Webug4.0靶场通关笔记10- 第14关链接注入

目录 第14关 链接注入 1.打开靶场 2.源码分析 3.渗透实战 (1)方法1:跳转外部网页 (2)方法2:获取cookie 4.漏洞防御 本文通过《webug靶场第14关 链接注入》来进行渗透实战。 第14关 链接注入 链接注…

SpringBoot的汽车商城后台管理系统源码开发实现

概述 汽车商城后台管理系统专为汽车4S店和经销商设计,提供全面的汽车管理系统解决方案。 主要内容 1. 核心功能模块 系统提供以下主要功能: ​​销售管理​​:记录销售信息,跟踪交易进度​​客户管理​​:维护客户…

VBA代码解决方案第二十四讲:EXCEL中,如何删除重复数据行

《VBA代码解决方案》(版权10028096)这套教程是我最早推出的教程,目前已经是第三版修订了。这套教程定位于入门后的提高,在学习这套教程过程中,侧重点是要理解及掌握我的“积木编程”思想。要灵活运用教程中的实例像搭积木一样把自己喜欢的代码…

日本IT行业|salesforce开发语言占据的地位

在日本的IT行业中,Salesforce 开发语言处于一个较为专业但稳步增长的细分领域,并不是主流开发语言(如 Java、Python、PHP),但其在某些行业和场景中地位越来越重要。 本篇以下是详细分析: Salesforce开发语言…

前端开发,文件在镜像服务器上不存在问题:Downloading binary from...Cannot download...

问题与处理策略 问题描述 在 Vue 项目中,执行 npm i 下载依赖时,报如下错误 Downloading binary from https://npm.taobao.org/mirrors/node-sass//v4.14.1/win32-x64-72_binding.node Cannot download "https://npm.taobao.org/mirrors/node-sa…

基于Vue2 + Element 实现任务列表管理功能的详细教程

前言:本文介绍的是如何从0开始搭建Vue2项目到1实现对任务添加、删除和筛选的功能,🔗 相关链接Vue 入门(安装与应用超详细教程) ❤ 【作者主页—📚阅读更多优质文章、获取更多优质源码】 目录 一 . 项目搭建 1.1 安装node.js 1.…

【PostgreSQL数据分析实战:从数据清洗到可视化全流程】1.4 数据库与表的基本操作(DDL/DML语句)

👉 点击关注不迷路 👉 点击关注不迷路 👉 点击关注不迷路 文章大纲 1.4 数据库与表的基本操作(DDL/DML语句)1.4.1 数据库生命周期管理(DDL核心)1.4.1.1 创建数据库(CREATE DATABASE&…

Fabrice Bellard(个人网站:‌bellard.org‌)介绍

Fabrice Bellard 是法国人,国际著名程序员。1972年生于法国Grenoble,大学就读于巴黎高等综合理工学院,后在国立巴黎高等电信学院攻读。 Fabrice Bellard(个人网站:‌bellard.org‌)是计算机领域最具影响力…

USB布局布线

1USB简介 USB是通用串行总线的英文缩写,是连接外部装置的一个串口总线标准,也是一种输入输出接口的技术规范,被广泛地应用于个人电脑和移动设备等信息通迅产品,并扩展到摄影器材,数字电视(机顶盒&#xff0…

【数据结构】线性表--链表

【数据结构】线性表--链表 一.前情回顾二.链表的概念三.链表的实现1.链表结点的结构:2.申请新结点函数:3.尾插函数:4.头插函数:5.尾删函数:6.头删函数:7.在指定结点之前插入:8.在指定结点之后插…

Mybatis-plus代码生成器的创建使用与详细解释

Mybatis-plus代码生成器的创建使用与详细解释 一、代码生成器概述 1. 定义(什么是代码生成器) 在软件开发过程中,存在大量重复性的代码编写工作,例如实体类、Mapper 接口、Service 接口及实现类等。代码生成器就是为了解决这类问题而诞生的工具。MyBa…

drawDB:打造高效数据库设计流程

drawDB:打造高效数据库设计流程 drawDB 简介资源链接 核心功能详解1. 直观的实体关系图设计2. SQL 脚本生成3. SQL 导入功能4. 本地化存储与分享功能5. 自定义主题与外观 安装和使用教程本地开发环境搭建构建生产版本Docker 部署基本使用方法 应用场景和实际价值适用…

基于 ESP32 和 GC9D01 0.71寸TFT屏幕的逼真眼睛与写轮眼动态显示

近期,我利用 ESP32 和 GC9D01 0.71’TFT 进行了一次有趣的显示项目开发,成功实现了在该小尺寸屏幕上绘制逼真眼睛和写轮眼的效果。 硬件准备 主控板 :ESP32,具备强大的处理能力和丰富的接口资源,能够高效地处理图像数…

LeetCode58_最后一个单词的长度

LeetCode58_最后一个单词的长度 标签:#字符串Ⅰ. 题目Ⅱ. 示例 0. 个人方法 标签:#字符串 Ⅰ. 题目 给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中 最后一个 单词的长度。 单词 是指仅由字母组成、…

论文阅读:MAXIM Multi-Axis MLP for Image Processing

这是 2022 CVPR 上的一篇文章,介绍了用 MLP 做 low-level 图像处理的工作 Abstract 近年来,Transformer 和多层感知机(MLP)模型的发展为计算机视觉任务提供了新的网络架构设计。尽管这些模型在图像识别等许多视觉任务中已被证明…

PostgreSQL初试

文章目录 1 PostgreSQL 简介2 PostgreSQL 与 MySQL 的区别3 PostgreSQL 的安装1_Linux部署2_容器化部署 4 PostgreSQL的配置1_远程连接配置2_配置数据库的日志3_设置数据库密码 5 PostgreSQL 基本操作1_用户操作2_权限操作3_创建一个自己的用户4_差异补充 6 安装图形化界面1_使…

Fortran语言,do-end do循环,相互包含测试,自动性能优化

1)上代码 !$omp parallel private(n, j, dx, dy, dz, r, a)do n 1, nsteps!$omp dodo i 0, nparticles - 1x_tmp(i) x(i) vx(i) * dty_tmp(i) y(i) vy(i) * dtz_tmp(i) z(i) vz(i) * dtdo j 0, nparticles - 1dx x(j) - x(i)dy y(j) - y(i)dz z(j) - z(…

Cona编译问题

问题描述 Clion 使用conan插件配置了C工程,然后想通过命令行进行编译执行。 出现以下错误 CMake Error at /usr/local/Cellar/cmake/3.30.1/share/cmake/Modules/CMakeDetermineSystem.cmake:152 (message):Could not find toolchain file: conan_toolchain.cmake…

Qt实现 hello world + 内存泄漏(5)

文章目录 实现hello world的两种方式通过图形化的方式通过纯代码的方式1. 新老头文件的说明2.堆或栈上创建对象的选择3.QString的说明 内存泄漏问题 实现hello world的两种方式 通过图形化的方式 通过图形化的方式,在界面上创建出一个控件,显示出hello …

【翻译、转载】【译文】模型上下文协议(Model Context Protocol, MCP)简介

原文地址: https://michaelwapp.medium.com/model-context-protocol-mcp-an-introduction-guide-25736f3dd672 在人工智能和 AI 驱动应用日新月异的格局中,一种与大型语言模型(LLM)交互的新方式正在兴起。随着 AI 智能体&#x…