ESP32固件烧录-初级入门

我一开始入门esp32的时候找关于固件下载好长时间都没有找到适合入门的固件烧录教程。现在学了一段时间,所以想要写一篇关于esp32固件烧录的教程,去帮助一些入门的朋友。

这篇文章主要参考的官方文档的说明,如果想要了解更多的关于烧录知识或者完全适合你的开发板固件烧录的方法,你可以参考下面是链接:

为什么下载固件?

首先到手一款esp32开发板的第一件事就是下载固件,自己写代码才可以烧录进去才可以运行。

固件如何烧录到esp32中?

我在网络上找的时候以为对于不同的编程语言要下载不同的固件。但是后来我发现我错了,对于固件而言,它是和你写代码时运用的编程语言是无关的,无论你使用的是C++,micropython还是Lua.

下载的固件如何使用?

我们可以从乐鑫的官网进行下载对应的固件,esp32烧录固件需要使用乐鑫专用的flash下载工具。
flash工具链接
乐鑫官网进入有些慢,请耐心等待。
在这里插入图片描述
下载的是一个压缩包,内部包含flash下载工具和固件以及一些其他的东西。但是我们并不需要压缩包内部的固件,我们只需要它的flash下载工具。

固件从哪里下载?

下载真正需要的固件的链接,这是官方的固件,可以根据自己的开发板去下载对应的固件。

烧录固件前期必要知识准备

固件压缩包内部有很多的固件,我们可以根据自己的需要去安装。

  • factory/factory_xxx.bin 是这些特定功能的二进制文件的合集。您可以仅烧录factory/factory_xxx.bin 到起始地址为 0 的 flash 空间中,或者根据 download.config文件中的信息将若干个二进制文件烧录到 flash 中对应起始地址的空间中。

  • at_customize.bin 提供了用户分区表,该表列出了 ble_data.bin 分区、SSL 证书分区、MQTT 证书分区以及 factory_param_XXX.bin 分区和其它一些分区的的起始地址和分区大小。您可以通过 AT 命令 AT+FS 和 AT+SYSFLASH 来读和写该文件中罗列的分区里的内容。

  • factory_param_XXX.bin 指明了不同 ESP32 模组之间的硬件配置。请确保您的模组使用了正确的固件。

    在这里插入图片描述

  • ble_data.bin 在 ESP32 工作于 Bluetooth LE 服务端的时候提供蓝牙服务;

  • server_cert.bin、server_key.bin 和 server_ca.bin 是 SSL 服务端示例证书;

  • client_cert.bin、client_key.bin 和 client_ca.bin 是 SSL 客户端示例证书;

  • mqtt_cert.bin、mqtt_key.bin 和 mqtt_ca.bin 是 MQTT SSL 客户端示例证书;
    如果有些功能你不需要,你可以选择不用烧录烧录。

固件来源

其实固件的来源不仅有官方,还有一些用户自行编译的,以及github上的,对于小白我建议使用官方的固件。
当然如果你想要提升一下自己的能力去烧录其他来源的固件,你可以看这篇文章

固件文件分析

以ESP32-WROOM-32 对应的 ESP32-WROOM-32_AT_Bin_V2.2.0.0 固件,该固件的目录结构及其中各个 bin 文件介绍如下,其它 ESP32 系列模组固件的目录结构及 bin 文件也可参考如下介绍:
.
├── at_customize.bin // 二级分区表
├── bootloader // bootloader
│ └── bootloader.bin
├── customized_partitions // AT 自定义 bin 文件
│ ├── ble_data.bin
│ ├── client_ca.bin
│ ├── client_cert.bin
│ ├── client_key.bin
│ ├── factory_param.bin
│ ├── factory_param_WROOM-32.bin
│ ├── mqtt_ca.bin
│ ├── mqtt_cert.bin
│ ├── mqtt_key.bin
│ ├── server_ca.bin
│ ├── server_cert.bin
│ └── server_key.bin
├── download.config // 烧录固件的参数
├── esp-at.bin // AT 应用固件
├── esp-at.elf
├── esp-at.map
├── factory // 量产所需打包好的 bin 文件
│ ├── factory_WROOM-32.bin
│ └── factory_parameter.log
├── flasher_args.json // 下载参数信息新的格式
├── ota_data_initial.bin // ota data 区初始值
├── partition_table // 一级分区列表
│ └── partition-table.bin
├── phy_init_data.bin // phy 初始值信息
└── sdkconfig // AT 固件对应的编译配置

download.config文件

download.config 文件包含烧录固件的参数:(这个将会在利用烧录软件时用到,很重要

--flash_mode dio --flash_freq 40m --flash_size 4MB
0x8000 partition_table/partition-table.bin
0x10000 ota_data_initial.bin
0xf000 phy_init_data.bin
0x1000 bootloader/bootloader.bin
0x100000 esp-at.bin
0x20000 at_customize.bin
0x24000 customized_partitions/server_cert.bin
0x39000 customized_partitions/mqtt_key.bin
0x26000 customized_partitions/server_key.bin
0x28000 customized_partitions/server_ca.bin
0x2e000 customized_partitions/client_ca.bin
0x30000 customized_partitions/factory_param.bin
0x21000 customized_partitions/ble_data.bin
0x3B000 customized_partitions/mqtt_ca.bin
0x37000 customized_partitions/mqtt_cert.bin
0x2a000 customized_partitions/client_cert.bin
0x2c000 customized_partitions/client_key.bin

–flash_mode dio 代表此固件采用的 flash dio 模式进行编译;
–flash_freq 40m 代表此固件采用的 flash 通讯频率为 40 MHz;
–flash_size 4MB 代表此固件适用的 flash 最小为 4 MB;
0x10000 ota_data_initial.bin 代表在 0x10000 地址烧录 ota_data_initial.bin 文件。

烧录开始

准备工作以及必要知识储备完成,下面开始固件烧录
下面我以windows为例,讲述烧录步骤

  1. 打开烧录工具:

  2. 选择和自己开发板相同的型号(例如ESP32)

  3. 选择烧录模式:(例如develop)

  4. 根据您的需求选择一种下载接口;(此处,我们选择 uart)其实无法选择
    在这里插入图片描述

  5. 将 AT 固件烧录至设备,以下两种方式任选其一:
    第一:直接下载打包好的量产固件至 0x0 地址:勾选 “DoNotChgBin”,使用量产固件的默认配置;
    在这里插入图片描述
    我推荐新手使用这个方案,虽然略有不足,但是基本上满足新手的需要。

第二:分开下载多个 bin 文件至不同的地址:根据 download.config 文件进行配置请勿勾选 “DoNotChgBin”;(现在就知道 download.config的重要性了,我们固件烧录的地址就在这个地方存储,在烧录时需要填写正确的地址;)
在这里插入图片描述
如果选择这种方案,烧录download.config文件中所包含的所有的固件。

注意:记得在固件前面点上对勾,要不然不会烧录对应的固件。

为了避免烧录出现问题,请查看开发板的下载接口的 COM 端口号,并从 “COM:” 下拉列表中选择该端口号。

对于Linuix或者macOS的固件烧录,可以参考官方文档

到现在固件烧录基本上已经完成了。

烧录工具的使用说明

如果你想要了解更多关于烧录软件的说明,在下载flash工具的文件夹中,有一个doc文件夹,内部有中文以及英文的烧录软件说明书。
以及一些错误也可以参考烧录文件中的使用说明。

如果文章中存在问题,请大家批评指正在评论区,让后来的朋友避免错误,也欢迎大家私信我,我会尽快对文章进行修改。如果读者存在问题,也可以私信我,我会尽我最大的能力去解决。

  • 17
    点赞
  • 111
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
ESP32-WROOM-32是一种集成了Wi-Fi和蓝牙功能的高性能片上系统(SoC)。为了实现串口烧录,我们需要编写一些代码并进行一些设置。 首先,我们需要将ESP32-WROOM-32连接到电脑上。我们可以使用USB到串口转换器将ESP32-WROOM-32的串口引脚(TX和RX)连接到电脑的USB端口上。 接下来,我们需要打开一个串口烧录工具,例如ESPlorer或Arduino IDE(通过安装适当的驱动程序)。在烧录工具中,我们需要选择正确的串口端口和波特率。通常来说,ESP32-WROOM-32使用115200的波特率。 然后,我们需要准备好要烧录固件。这可以是由Arduino IDE生成的二进制文件(.bin),也可以是由ESP-IDF生成的其他格式的固件。我们可以从官方网站上下载ESP-IDF并按照相关的文档进行设置。 接下来,我们需要将ESP32-WROOM-32设置为烧录模式。我们可以在开发板上找到一个称为“BOOT”或“EN”(使能)的按钮或引脚,按下该按钮或将该引脚连接到地(GND)来使ESP32-WROOM-32进入烧录模式。 最后,我们可以点击串口烧录工具中的“烧录”按钮开始烧录。在烧录过程中,烧录工具会向ESP32-WROOM-32发送固件数据并执行烧录操作。烧录成功后,我们可以重启ESP32-WROOM-32并观察它的行为。 总结起来,ESP32-WROOM-32串口烧录需要连接电脑和ESP32-WROOM-32,选择正确的串口端口和波特率,准备好固件,并将ESP32-WROOM-32设置为烧录模式,最后点击烧录工具中的烧录按钮。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值