ESP32烧录Arduino生成的bin文件

本文详细介绍了如何使用ArduinoIDE生成ESP32的bin文件,并通过乐鑫的烧录工具进行固件烧录。首先,通过ArduinoIDE导出bin文件,然后下载乐鑫的烧录工具,收集必要的启动文件、bootloader、SDK等。在烧录过程中,需要正确选择芯片类型、烧录模式和文件地址。最后,进入MCU下载模式,通过串口或USB进行烧录。文章适用于ESP32、ESP8266等ESP系列MCU的固件烧录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ESP32烧录Arduino生成的bin文件

前言

Arduino有着丰富的第三方库,因此开发起来非常的方便快捷,但是在实际的生产中,我们不可能使用Arduino IDE来进行固件的烧录,因为使用Arduino IDE烧录效率很低,而且要先帮工厂把环境搭建好,更重要的是烧录时必须要打开源代码,这可能会导致工厂泄露机密。因此,最好的方案还是将代码转成通用的bin文件烧录。
废话不多说,马上开始讲解。

1 Arduino生成bin文件

关于Arduino的环境搭建,库安装这些我就不介绍了,都走到量产这一步了不会有人还不知道吧。

打开Arduino IDE,打开 项目 -> 导出已编译的二进制文件,等待编译完成即可在工程目录下生成相应的bin文件。
在这里插入图片描述
编译成功后生成的bin文件:
在这里插入图片描述

2 bin文件烧录

2.1 下载烧录工具

烧录bin文件的时候我们需要用到乐鑫的flash烧录工具。
工具可以在乐鑫官网下载:
https://www.espressif.com/zh-hans/support/download/other-tools
在这里插入图片描述

2.2 集齐MCU需要烧录的固件

用Arduino IDE烧录ESP8266、ESP32、ESP32-S2或者其他ESP系列的MCU时给我们的感觉是它仅仅烧录了自己编写的代码以及底层支持库。但实际上除了这些,还包含了启动文件,bootloader,sdk等。
因此,如果我们只烧录Arduino生成的bin文件是无法正常运行的。我们还需要找到另外几个文件。
这几个文件都在你安装的开发板库里面。比如你用的ESP32,那就是在esp32库。

我这里以ESP32-S2为例讲解,其他ESP系列的MCU也是一样的。

首先我们要打开库文件对应的文件夹。
这个路径可以在Arduino IDE的首选项里面看到。点击一下这个路径就可以弹出文件窗口。
在这里插入图片描述
在这里插入图片描述
在packages文件夹可以看到所有已安装的开发板库。比如我这里安装了esp32和esp8266的库。
在这里插入图片描述
进入相应的库,找到partitions和sdk这两个文件夹。
在这里插入图片描述
提示:我这个是esp32 v2.0.1版本的库,其他MCU或者其他版本的库文件框架可能会有区别,但是大体上应该都是类似的。

1)第1个文件:boot_app0
在partitions文件夹里面。
在这里插入图片描述
2)第2个文件:bootloader
在sdk文件夹里面。
特别说明一下:目前esp32是有3个MCU的sdk的,选择自己要用的即可。我这里用的是esp32-s2。
在这里插入图片描述
提示:dio、dout、qio和qout是spi的模式,40m和80m是flash的频率,比较常用的是dio和40m。当然,如果对性能有更高的要求可以选80m,在SPI作为主机时可以达到80MHz,但相应的对硬件的抗干扰能力也有更高的要求。

3)第3个文件:app
这个是你实际的应用代码,也就是用Arduino IDE生成的bin文件。

4)第4个文件:default
和第1个文件一样,也是在partitions文件夹里面。
在这里插入图片描述

2.3 烧录固件

打开乐鑫的烧录工具,选择对应的芯片和烧录方式。
提示:ESP32-S2除了串口以外,还可以通过USB下载。

在这里插入图片描述
依次添加烧录文件,并填写相应的烧录地址,配置好相应的模式。
我这里还是以ESP32-S2为例。
在这里插入图片描述
获取烧录文件地址的方法:这几个地址可以在Arduino IDE烧录时输出的日志中找到。
在这里插入图片描述

连接好硬件设备,并且进入下载模式。
进入下载模块的方法:按住boot键,然后再按reset键,最后松开boot键。或者按住boot键之后再上电。只要保证MCU启动时,boot脚是低电平即可。
在这里插入图片描述

通过串口打印的信息可以确定是否已进入下载模式。
进入下载模式时可以看到以下信息:
在这里插入图片描述

在烧录工具上选择好对应的com口,配置好波特率(波特率越大,下载速度越快)。
提示:ESP32-S2除了串口以外,还可以通过USB下载,要先进入下载模式才能检测到USB对应的com口,或者之前运行的代码有把USB配置成虚拟串口也可以看到对应的com口。

点击START开始烧录。
提示:烧录固件之前可以先全部擦除一遍。如果点击开始烧录之后才发觉MCU没有进入烧录模式,也可以在这里进入,进入之后马上就会开始烧录了。

在这里插入图片描述
等待下载完成后重启一下即可。

结束语

好了,关于Arduino生成bin文件及烧录方法的介绍就到这里。本文只列举了ESP32-S2的情况,ESP8266和ESP32我也试过,也是一样的,大家举一反三即可。如果这篇文章对你有帮助,可以点赞收藏,如果还有什么问题,欢迎在评论区留言或者私信给我。

Arduino开发教程汇总:
https://blog.csdn.net/ShenZhen_zixian/article/details/121659482

### 将Bin文件烧录ESP32使用Arduino #### 准备工作 为了成功将`.bin`文件烧录ESP32,在开始之前需要确认已经安装好Arduino IDE,并配置好了相应的开发环境,包括但不限于选择了正确的开发板型号以及端口[^1]。 #### 设置开发板参数 在进行任何操作前,务必通过菜单栏中的“工具”选项来设定合适的开发板信息。这一步骤至关重要,因为不同的分区方案(partition scheme)会影响最终生成.bin文件及其对应的烧写地址。对于大多数应用场景而言,默认的选择通常能够满足需求,但如果遇到特定情况,则可能需要调整这些设置以适应具体项目的需要[^4]。 #### 编译并导出二进制文件 完成上述准备工作之后,就可以着手准备所需的固件文件了。打开Arduino IDE内的目标项目源码,执行编译动作。接着前往“项目(Project)”-> “导出已编译的二进制文件(Export Compiled Binary...)”,此时IDE将会把编译好的成果保存下来,一般会存在两个地方:一个是当前工作的目录下;另一个则是系统的临时文件夹内(C:\Users\[用户名]\AppData\Local\Temp\)。需要注意的是,这里产生的多个`.bin`文件分别代表了不同部分的数据,比如应用程序本身、引导加载程序等,它们各自有着固定的起始地址用于后续的操作过程。 #### 烧录流程 当一切就绪后,便可以通过命令行工具如esptool.py来进行实际的烧录作业。在此之前,请确保电脑上正确连接着ESP32模块,并且识别到了串口号。下面给出了一段基于Python编写的小脚本作为参考案例: ```bash esptool.py --chip esp32 --port COMX erase_flash esptool.py --chip esp32 --port COMX write_flash -z 0x1000 firmware.bin ``` 请注意替换掉上面代码片段里的`COMX`为实际使用的串行通信接口名称,而`firmware.bin`则指向先前所提到的那个包含了完整镜像数据的主要文件路径。另外,如果还有其他辅助性的`.bin`文件也需要一并上传的话,那么可以在同一行指令后面继续追加更多项,指定各自的偏移量即可。
评论 29
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值