ESP32 固件烧录指南

更新时间:2018-09-14 11:07:27

ESP32 固件烧录指南

文档说明:在进行 TinyEngine JS 的开发之前,必须先烧录固件让开发板/硬件支持 TinyEngine 功能。

所以本文将介绍如何在 MAC/Windows/Ubuntu 系统下烧录 ESP32 的 TinyEngine 固件。

准备工作

ESP32 使用USB转串口进行烧录,所以需要安装串口驱动:

  • Windwos 和 MAC:点击该地址并下载相应系统对应驱动并安装。

  • Ubuntu:无需安装驱动,默认自带。


MAC系统下烧录

  1. 安装python2.7 和 pip。

  2. python2.7 下载地址: 下载地址 ,请选择对应系统的python2.7下载并安装。

  3. pip安装:

sudo easy_install pip

安装完成后,打开终端,输入python —version查看版本是否正确。

  1. 安装 esptool.py

这是一个用python开发的针对ESP32的小工具,可以实现底层的操作,包括Flash的烧写,擦除。它也是一个开源项目,项目在github上进行托管, 托管地址

安装方法:

pip install esptool
pip install pyserial
  1. 测试 esptool.py 是否生效

打开终端,输入esptool.py 查看是否有输出,如果esptool.py安装正常,会输出 【usage: esptool 】 类似信息。

  1. 擦除 flash (仅首次烧录需要

由于官方flash参数和分区表与TinyEngine定制固件可能不同,所以在您首次烧录TinyEngine固件时需要先擦除一遍Flash。以后再次更新时则不需要重复该操作。

方法:

将ESP32的USB口和PC连接起来,然后在终端输入如下命令擦除Flash:

esptool.py --chip esp32 --port /dev/ttyUSB0 --baud 115200 erase_flash

FAQ:

注意这里/dev/tty.SLAB_USBtoUART是MAC上ESP32串口的默认端口号,如果出现找不到端口时,请确认ESP32的USB端口是否已经连接好,或使用ls /dev/tty* 查看是否有该端口或端口名称不同,如果端口名称不同,请使用正确的端口替换/dev/tty.SLAB_USBtoUART即可。

  1. 使用 esptool.py 命令烧写 TinyEngine 固件

TinyEngi 官方开源库 获取固件, 其固件 firmware/esp32/esp32-devkitc 目录,可以看到有如下文件

custom_partitions.bin:分区表

bootloader.bin: 启动文件

ota_data_initial: fota升级文件

esp32devkitc-xxx.bin: TinyEngine kernel固件。

说明:请根据待烧录固件的实际名称将如下命令的esp32devkitc-xxx.bin替换成firmware下的真实文件名

在终端输入如下命令开始烧写

esptool.py --chip esp32 --port /dev/tty.SLAB_USBtoUART --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 40m --flash_size detect 0xd000 ota_data_initial.bin 0x1000 bootloader.bin 0x10000 esp32devkitc-xxx.bin 0x8000 custom_partitions.bin

FAQ:如前所述,如果端口找不到,请确认端口号正确,如提示找不到esp32devkitc-xxx.bin文件,请用firmware下的固件实际文件名替换esp32devkitc-xxx.bin即可。


Ubuntu系统下烧录

  1. 安装python2.7 和 pip。
sudo apt-get install python2.7 python2.7-dev
sudo apt-get install python-pip

安装完成后,打开终端,输入python —version查看版本是否正确。

  1. 安装esptool.py

这是一个用python开发的针对ESP32的小工具,可以实现底层的操作,包括Flash的烧写,擦除。它也是一个开源项目,项目在github上进行托管, 托管地址

python -m pip install esptool
  1. 安装pyserial串口通信工具。
python -m pip install pyserial
  1. 测试esptool.py是否生效

打开终端,输入esptool.py 查看是否有输出,如果esptool.py安装正常,会输出如下类似信息。

usage: esptool [-h] [—chip {auto,esp8266,esp32}] [—port PORT] [--baud BAUD]
  1. 擦除flash (仅首次烧录需要

由于官方flash参数和分区表与TinyEngine定制固件可能不通,所以在您首次烧录TinyEngine固件时需要先擦除一遍Flash。以后再次更新时则不需要重复该操作。

方法:

将ESP32的USB口和PC连接起来,然后在终端输入如下命令擦除Flash:

esptool.py --chip esp32 --port /dev/ttyUSB0 --baud 115200 erase_flash

FAQ:

注意这里/dev/ttyUSB0是MAC上ESP32串口的默认端口号,如果出现找不到端口时,请确认ESP32的USB端口是否已经连接好,或使用ls /dev/ttyUSB* 查看是否有该端口或端口名称不同,如果端口名称不同,请使用正确的端口替换/dev/ttyUSB0即可。

  1. 使用esptool.py命令烧写TinyEngine固件

进入到 TinyEngine项目的 [firmware/esp32/esp32-devkitc] 目录,可以看到有如下文件

custom_partitions.bin:分区表

bootloader.bin: 启动文件

ota_data_initial: fota升级文件

esp32devkitc-xxx.bin: TinyEngine kernel固件。

说明:请根据待烧录固件的实际名称将如下命令的esp32devkitc-xxx.bin替换成firmware下的真实文件名

在终端输入如下命令开始烧写

esptool.py --chip esp32 --port /dev/ttyUSB0 --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 40m --flash_size detect 0xd000 ota_data_initial.bin 0x1000 bootloader.bin 0x10000 esp32devkitc-xxx.bin 0x8000 custom_partitions.bin

FAQ:如前所述,如果端口找不到,请确认端口号正确,如提示找不到esp32devkitc-xxx.bin文件,请用firmware下的固件实际文件名替换esp32devkitc-xxx.bin即可。


Windows系统下烧录

  1. 安装python2.7

  2. 下载python2.7对应的windows安装包并安装,地址

安装完成后,打开cmd终端,输入python —version查看版本号是否正确,如果提示找不到python命令,请手动添加环境变量。

  1. 安装pip。

  2. 下载地址是:https://pypi.python.org/pypi/pip#downloads

  3. 下载完成之后,解压到一个文件夹,用CMD控制台进入解压目录,例如我的目录是C盘work,则输入

    cd C:\work\pip-18.0 (举例)

    最后输入命令安装:

      python setup.py install
    

FAQ: 安装好之后,我们直接在命令行输入pip,如果显示‘pip’不是内部命令,也不是可运行的程序。请手动添加环境变量。

  1. 安装esptool.py

这是一个用python开发的针对ESP32的小工具,可以实现底层的操作,包括Flash的烧写,擦除。它也是一个开源项目,项目在github上进行托管, 托管地址

python -m pip install esptool
  1. 安装pyserial串口通信工具。
python -m pip install pyserial
  1. 测试python和esptool.py是否生效

打开终端,输入python —version查看版本是否正确。

打开终端,输入esptool.py 查看是否有输出,如果esptool.py安装正常,会输出【usage: esptool 】 类似信息。

  1. 擦除flash (仅首次烧录需要

由于官方flash参数和分区表与TinyEngine定制固件可能不通,所以在您首次烧录TinyEngine固件时需要先擦除一遍Flash。以后再次更新时则不需要重复该操作。

方法:

将ESP32的USB口和PC连接起来,查看设备管理->端口->Slilicon Labs CP210x USBtoUART Bridge的端口号,如我的电脑上是COM3,则在终端输入如下命令擦除Flash:

esptool.py --chip esp32 --port COM3 --baud 115200 erase_flash

FAQ:

如果出现找不到端口时,请确认ESP32的USB端口是否已经连接好和COM端口号是否正确。

  1. 使用esptool.py命令烧写TinyEngine固件

  2. 进入到 TinyEngine项目的firmware/esp32/esp32-devkitc目录,可以看到有如下文件

custom_partitions.bin:分区表

bootloader.bin: 启动文件

ota_data_initial: fota升级文件

esp32devkitc-xxx.bin: TinyEngine kernel 固件。

备注:windows进入目录的方法是:cd 路径栏里面的复制路径

说明:请根据待烧录固件的实际名称将如下命令的esp32devkitc-xxx.bin替换成firmware下的真实文件名

  • 在终端输入如下命令开始烧写
esptool.py --chip esp32 --port COM3 --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 40m --flash_size detect 0xd000 ota_data_initial.bin 0x1000 bootloader.bin 0x10000 esp32devkitc-xxx.bin 0x8000 custom_partitions.bin

FAQ:如前所述,如果端口找不到,请确认端口号正确,如提示找不到esp32devkitc-xxx.bin文件,请用firmware下的固件实际文件名替换esp32devkitc-xxx.bin即可。

results matching ""

    No results matching ""