准备
为了实现工厂烧写,需要直接使用bin文件进行烧录,不能每次都使用IDE,使用IDE也不利于源码保密。
本文章会基于以下版本讲解,由于版本不同,可能会有略微的差异。本篇文章会讲一个通用的方法,能够让你在不同的版本下都能学会如何下载程序,不需要区分使用的是哪种模块(S2,S3,WROOM或C2等)。
Arduino IDE 2.1.1
下载地址:Software | Arduino
flash_download_tool 3.9.5
下载地址:下载概览 | 乐鑫科技
ESP32开发板库 1.0.6和2.0.11
解析
下面开始,首先应该有一个能编译过的工程,并且可以使用Arduino IDE软件进行下载,这是前提,我们在这个基础上再讨论使用量产工具下载的事。
首先,将首选项将上传的详细输出选上。
然后,这里我先使用ESP32开发板1.0.6库编译上传一下,因为2.0.11库生成的文件不同,但是方法相同。
上传之后我们需要输出的第一行内容。
"C:\Users\administrator\AppData\Local\Arduino15\packages\esp32\tools\esptool_py\3.0.0/esptool.exe" --chip esp32 --port "COM1" --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 80m --flash_size detect
0xe000 "C:\Users\administrator\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.6/tools/partitions/boot_app0.bin"
0x1000 "C:\Users\administrator\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.6/tools/sdk/bin/bootloader_qio_80m.bin"
0x10000 "C:\Users\administrator\AppData\Local\Temp\arduino\sketches\DC89E78A08E824CB06B3651A98A0763E/bd_cs.ino.bin"
0x8000 "C:\Users\administrator\AppData\Local\Temp\arduino\sketches\DC89E78A08E824CB06B3651A98A0763E/bd_cs.ino.partitions.bin"
esptool.py v3.0-dev
Serial port COM1
这里我把需要的给换行了,前面是一会下载用的地址,后面是文件的路径。
其实IDE就是按照这个下载的,我们只需要按照相同的方式使用flash软件进行下载就可以了。
下载
然后我们到对应的路径找到对应的文件,单独保存起来,留着量产工具下载。
然后我们打开flash_download_tool工具,配置一下就可以下载了。
其中SPI SPEED和SPI MODE根据你选择的开发板参数设置,
好了,下面我发一下完整的设置好的截图
然后我们使用2.0.11开发板库进行一下演示。
上传的输出信息如下:
"C:\Users\administrator\AppData\Local\Arduino15\packages\esp32\tools\esptool_py\4.5.1/esptool.exe" --chip esp32 --port "COM1" --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 80m --flash_size 4MB
0x1000 "C:\Users\administrator\AppData\Local\Temp\arduino\sketches\DC89E78A08E824CB06B3651A98A0763E/bd_cs.ino.bootloader.bin"
0x8000 "C:\Users\administrator\AppData\Local\Temp\arduino\sketches\DC89E78A08E824CB06B3651A98A0763E/bd_cs.ino.partitions.bin"
0xe000 "C:\Users\administrator\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/partitions/boot_app0.bin"
0x10000 "C:\Users\administrator\AppData\Local\Temp\arduino\sketches\DC89E78A08E824CB06B3651A98A0763E/bd_cs.ino.bin"
esptool.py v4.5.1
Serial port COM1
过程如上,把路径下的文件拷贝出来留用。
然后附上完整的截图
合并
这样每次就需要提供4个bin文件,并且需要配置4个对应的地址,对于生产环境来说,如果填错一个就会导致一批产品错误,造成损失,下面来讲一下如何将4个bin合并成一个bin,来降低配置复杂度。
点击CombineBin按钮,会自动合并文件,生成名为target.bin的文件,并且会打开文件夹
对于合并文件的烧入地址为0x00