ESP32的arduino IDE代码使用flash download tool进行烧录
前言
最近遇到用户在使用
arduino IDE
开发环境编写了ESP32的代码,希望提供编写好的程序给用户烧录,但是又不希望让客户看到源代码。
可以肯定的是这显然是可以实现的,这里我们拿一块最新的
ESP32-S3
的开发板作为一次操作示例。
arduino代码烧录
首先我们在
arduino IDE
中编写一个串口输出
Hello World!
的代码并烧录(
arduino中添加ESP32-S3开发板
可以参考我们往期的文章),代码如下
voidsetup(){// put your setup code here, to run once:
Serial.begin(115200);}voidloop(){// put your main code here, to run repeatedly:
Serial.println("Hello World!");delay(500);}
arduino中的代码烧录比较简单,只需要选对芯片型号和端口号就可以直接烧录。
烧录之后我们打开串口助手软件,配置好115200的波特率和对应的端口号,看是否定期
500ms
返回了
Hello World!
即可。
如果没有任何信息返回可以尝试按一下复位按键。
arduino下载了一些什么文件
相信大家关心的并不是
arduino
怎么样烧录程序,网上教程太多而且这并不复杂。
下面我们看到
arduino
烧录的时候
编译
和
上传
的详细信息输出,我们可以看到以下的内容,以及红框中的内容,这是重要的
这里面记录着
arduino
向
ESP32-S3开发板
中如何进行烧录的,详细放到下面我们着重解析,如果烧录的时候没有像我下面这么详细的信息,在arduino IDE中的首选项打开详细信息输出就好
H:\arduino\hardware\espressif\esp32/tools/esptool/esptool.exe --chip esp32s3 --port COM7 --baud 921600--before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 80m --flash_size 4MB 0x0
C:\Users\18748\AppData\Local\Temp\arduino_build_578225/sketch_dec13a.ino.bootloader.bin 0x8000 C:\Users\18748\AppData\Local\Temp\arduino_build_578225/sketch_dec13a.ino.partitions.bin 0xe000 H:\arduino\hardware\espressif\esp32/tools/partitions/boot_app0.bin 0x10000 C:\Users\18748\AppData\Local\Temp\arduino_build_578225/sketch_dec13a.ino.bin
内容非常多,我们把里面的重要信息拆分成多行方便查看
H:\arduino\hardware\espressif\esp32/tools/esptool/esptool.exe
--chip esp32s3 --port COM7 --baud 921600--before default_reset --after hard_reset write_flash -z
--flash_mode dio --flash_freq 80m --flash_size 4MB
0x0
C:\Users\18748\AppData\Local\Temp\arduino_build_578225/sketch_dec13a.ino.bootloader.bin
0x8000
C:\Users\18748\AppData\Local\Temp\arduino_build_578225/sketch_dec13a.ino.partitions.bin
0xe000
H:\arduino\hardware\espressif\esp32/tools/partitions/boot_app0.bin
0x10000
C:\Users\18748\AppData\Local\Temp\arduino_build_578225/sketch_dec13a.ino.bin
下面这两行为
端口号
和
波特率
,我们一会在
flash download tool
配置成一样的就好,这里不是很重要
--chip esp32s3 --port COM7 --baud 921600--before default_reset --after hard_reset write_flash -z
下面这行是
arduino
在烧录时配置的参数,一会我们使用
flash download tool
也可以配置成一样的,相当于是照抄一遍
arduino IDE
配置的参数和进行的操作
--flash_mode dio --flash_freq 80m --flash_size 4MB
上面两段内容相信很多人也知道如何配置,那么下面是比较重要一些的内容,包含了烧录了
哪些文件
到
ESP32
以及
烧录到哪里
,我们详细操作
0x0
C:\Users\18748\AppData\Local\Temp\arduino_build_578225/sketch_dec13a.ino.bootloader.bin
0x8000
C:\Users\18748\AppData\Local\Temp\arduino_build_578225/sketch_dec13a.ino.partitions.bin
0xe000
H:\arduino\hardware\espressif\esp32/tools/partitions/boot_app0.bin
0x10000
C:\Users\18748\AppData\Local\Temp\arduino_build_578225/sketch_dec13a.ino.bin
1、arduino IDE将储存在电脑
C:\Users\18748\AppData\Local\Temp\arduino_build_578225
下名称为
sketch_dec13a.ino.bootloader.bin
的文件烧录到了地址
0x0
中
2、arduino IDE将储存在电脑
C:\Users\18748\AppData\Local\Temp\arduino_build_578225
下名称为
sketch_dec13a.ino.partitions.bin
的文件烧录到了地址
0x8000
中
3、arduino IDE将储存在电脑
H:\arduino\hardware\espressif\esp32/tools/partitions
下名称为
boot_app0.bin
的文件烧录到了地址
0xe000
中
4、arduino IDE将储存在电脑
C:\Users\18748\AppData\Local\Temp\arduino_build_578225
下名称为
sketch_dec13a.ino.bin
的文件烧录到了地址
0x10000
中
那么我们需要做的是将上面提取出来的
地址
中找到对应的四个文件复制出来给他们放一起就好
整理出下面四个文件
值得说明的是上面这四个
文件的路径
以及文件的
名称
会随着您的
工程
、
arduino安装的路径
以及
windows的账户名
发生改变,因此您没有办法直接复制我上面现成的路径。
您的
arduino工程
至少需要
编译
一遍以获得上面的信息来找到四个文件的位置以及烧录到的对应地址。
flash download tool工具烧录
乐鑫官网下载 flash download tool工具,切记选择对应型号的芯片,避免出现选择默认的
ESP8266
去烧录
ESP32
的代码的情况
选择对应的文件,后面的框中填入对应的地址,其他的选项照抄即可,影响不是很大,参照下图
烧录成功后打开串口助手软件,同样的打开对应的
端口
选择正确的
波特率
,按一下开发板上的复位按键即可看到返回的信息
或许您会觉得四个文件四个地址过于麻烦不是很方便,那么我们可以勾选
DoNotChgBin
(烧录的时候勾选也可以),并点击下方的
CombineBin
按钮,此时会打开一个文件夹,并在文件夹中生成一个
target.bin
的文件。
这个文件我们只需要直接烧录到
0x0
的地址中即可,如下方所示
烧录之后的代码效果并没有什么区别,方便了我们用户烧录出错的情况。
总结
如果您也是使用
arduino IDE
开发
ESP32
的产品,希望我们的文章能对您有所帮助,理论上来讲,虽然我们此次使用的
ESP32-S3
做的示例,但这个流程应当是适用于目前所有的
ESP
的包括
8266
在内的
SOC
的,有疑问可以留言互相沟通学习,欢迎大佬们一键三连!
版权归原作者 优信电子 所有, 如有侵权,请联系我们删除。