ESP32 PlatformIO固件烧录
最近在重构一款嵌入式项目 , 用 PlatformIO 开发 Arduino 的 ESP32 项目. 在这些嵌入式项目进入生产流程中 , 通常需要去批量烧录 , 这个时候需要去借用一些工具或者脚本去完成
准备
首先代码编译 , 若成功则会在 .pio/build/{开发板}/
目录下生成对应的编译文件
这里比较需要到的就是
bootloader.bin
firmware.bin
partitions.bin
这里还需要一个二级 boot 跳转文件 ,在 ESP32 SDK 安装目录下 , 参考路径
C:\Users\用户\.platformio\packages\framework-arduinoespressif32\tools\partitions\boot_app0.bin
可以将以上4个文件拷贝到一个新目录
烧录
在不清楚烧录命令配置的情况下 , 可以直接用编译器的烧录配置 . 直接 pio run -v -t upload
然后查看日志输出的命令 , 这里提出了笔者自己的命令 , 然后对应使用上面准备的文件 , 整合命令
1 | esptool --chip esp32s3 --port "COM7" --baud 460800 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 80m --flash_size 8MB 0x0000 bootloader.bin 0x8000 partitions.bin 0xe000 boot_app0.bin 0x10000 firmware.bin |
这里的
esptool
是需要安装 python 并且安装 esptool库
这里附上笔者的分区表
1 | # Name, Type, SubType, Offset, Size, Flags |
因为这里固件大小约1.3M , 还需要做 OTA ,因为给两个 APP分区都是1.5M.
其它
通常在生产烧录中还有一个需求 , 就是给每台程序烧录一个唯一的序列号 . 这个时候可以通过单独划一个分区如 custom
然后将ID烧录入 custom
分区 , 然后和以上bin文件一起烧录
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Halcyon Days!