【PlatformIO】ESP32烧录的固件简单理解

Platform IO烧录ESP32代码的简单理解

对ESP32进行开发,将代码编译好了之后,可以提取后在其他设备使用ESP Flash Download Tool直接烧录。使用ESP Flash Download Tool烧录需要提前准备四个文件,其中包含两个启动引导文件bootloaderbin boot_app0.bin 一个flash划分文件partitions.bin和一个固件文件firmware.bin当然名字是可以更改的。

下面说下这些文件的存放位置以及烧录地址:

以Windows为例()

  • bootloader.bin的位置为PlatformIO安装目录下的.platformio\packages\tool-esptoolpy\test\image目录下面,它的对应的烧录地址为0X1000

  • boot_app0.bin的位置为PlatformIO安装目录下的platformio\packages\framework-arduinoespressif32\tools\partitions目录下面,它对应的烧录地址为0xe000

  • partitions.bin的位置为代码工程目录下的.pioenvs\[board]目录下面,它对应的烧录地址为0x8000。同时platformio\packages\framework-arduinoespressif32\tools\partitions目录下面的partitions.csv为编译的分区配置文件,会根据版型选择的不同有所不同,可以使用Excel打开进行编辑,然后在编译器内使用PIO进行重新编译即可,同时他也可以使用PIO包里面带的gen_esp32part.py脚本进行编译与反编译,操作方法为:python C:\SPB_Data\.platformio\packages\framework-arduinoespressif32\tools\gen_esp32part.py --verify xxx.csv xxx.bin(后面填写csv文件或者bin文件存放的位置,这里是将csv转换成bin,如果将位置对换,则可以将bin转换成csv)

  • firmware.bin的位置为代码工程目录下的.pioenvs\[board]目录下面,这个就是代码编译出来的固件,它对应的烧录地址为0x10000,如果分区文件未做修改的话(人为修改,或者更换编译平台),更新固件或者重新烧录只在对应地址开始需要烧录这一个文件即可。

同上面介绍的对分区文件的相互转换的操作方法相似的烧录方法为:

python C:\SPB_Data\.platformio\packages\tool-esptoolpy\esptool.py --port COM19 --baud 115200 write_flash -fm dio -fs 4MB 0x010000 xxx\firmware.bin后面选择编译出来固件,进行代码更新,直接可以在cmd.exe内执行这条指令即可,方便快捷。

1 个赞