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固件,不然是无现象的,注意这个问题就没其它错误的地方了。