当前位置: 首页 > web >正文

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.xdnf.cn/news/3882.html

相关文章:

  • LangChain4J-XiaozhiAI 项目分析报告
  • 线程间通信--线程间顺序控制
  • C++类_局部类
  • 安装与配置Go语言开发环境 -《Go语言实战指南》
  • C#与西门子PLC通信:S7NetPlus和HslCommunication使用指南
  • JavaWeb:SpringBootWeb快速入门
  • 五、shell脚本--函数与脚本结构:搭积木,让脚本更有条理
  • JavaScript 中的 Proxy 与 Reflect 教程
  • 比特、字节与布尔逻辑:计算机数据存储与逻辑运算的底层基石
  • PMP-第四章 项目整合管理(一)
  • 享元模式(Flyweight Pattern)
  • MOS管极间电容参数学习
  • spring中的@ComponentScan注解详解
  • stm32week14
  • 主机电路安全防护系统哪个厂家做
  • 招聘绩效效果评估方案与优化路径
  • 35、C# 中的反射(Reflection)
  • 深入理解 Spring MVC:DispatcherServlet 与视图解析机制​
  • 快速弄懂POM设计模式
  • 1991年-2023年 上市公司-重污染企业数据 -社科数据
  • GitHub 趋势日报 (2025年05月03日)
  • 多模态大语言模型arxiv论文略读(五十九)
  • STM32教程:ADC原理及程序(基于STM32F103C8T6最小系统板标准库开发)*详细教程*
  • 数电填空题整理(适用期末考试)
  • Linux网络编程:套接字
  • C++类_匿名类
  • 从入门到登峰-嵌入式Tracker定位算法全景之旅 Part 2 |蜂窝 LBS on Tracker:从 AT 命令到定位结果
  • 今天python练习题
  • MYSQL-联合查询
  • 【前端】【总复习】HTML