选择合适的烧录平台

[English]

乐鑫官方针对不同需求提供以下几种烧录方式:

  1. 快速固件测试: ESP LAUNCHPAD 固件快速烧录

    • 优势:简单快捷,无需搭建环境或额外工具,通过 Web 界面轻松烧录固件

  2. 非开发人员执行烧录: Flash Download Tool 烧录

    • 优势:提供了图形化界面,无需深入了解命令行操作, 同时也适用于自动化部署和批量生产烧录

  3. 专业开发人员 进行全面的 固件开发: IDE 烧录

    • 优势:集成开发环境(IDE)提供了直观的用户界面和工具集,支持固件开发、调试和烧录一体化

  4. 专业开发人员 进行全面的 固件开发和更详细的配置: IDF 终端烧录

    • 优势:允许开发人员精确管理项目,包括固件参数设置。方便在开发和调试过程中进行烧录,以快速验证更改

准备工作

get-ready

备注

如果还没为项目选好合适的开发板,请参考 ESP 硬件选型

芯片,模组,和开发板的区别请参考 芯片,模组,开发板

使用开发板

用数据线连接 USB 或者 UART 接口便可进行烧录。

备注

目前一些开发板使用的是 USB Type C 接口。请确保使用合适的数据线来连接开发板!

使用芯片或模组

乐鑫芯片一般具备两种模式:

  1. 固件烧录模式:芯片将等待从串口接收固件,以进行烧录。通常需要使用烧录工具发送固件数据

  2. 正常运行模式:这是芯片的正常工作模式,它会从 Flash 存储中加载固件并运行

使用芯片或者模组需要通过设置 特定的引脚 的状态进入烧录模式,通过 UART0 或者 USB 外设来进行烧录。

备注

具体的引脚信息需要参考对应芯片的技术手册,在 乐鑫官网 上可以找到。

ESP LAUNCHPAD 固件快速烧录

ESP LAUNCHPAD 是一个让开发者快速体验乐鑫芯片功能平台。

  • 选择乐鑫官方提供的一些示例固件后可直接在网页上进行烧录

  • 开发者还可以上传自己编译好的 .bin 文件后在网页上进行烧录

ESP LAUNCHPAD 烧录过程

下面用 ESP-BOX 为例:

打开网站 ESP LAUCHPAD

  1. 点击右上方 Connect

  2. 在弹出的窗口中选择连接 ESP-BOX 的 端口

  3. 点击下方 连接

    launchpad
  4. 选择要烧录到 ESP-BOX 的固件

    launchpad1
  5. 选择 ESP Chipset TypeESP32-S3

  6. 点击左下方 Flash 键开始烧录

  7. 烧录开始后会跳转到 console 界面,正确的话会显示烧录进度

    launchpad3
  8. 烧录完成后按下左上方 Reset Device 键,或者点击右上角 Disconnect

Flash Download Tool 烧录

Flash Download Tool 是由乐鑫开发的一款用于将固件烧录到其 ESP 系列芯片的工具,用于将预先编译好的固件文件加载到芯片的闪存(Flash)中,从而使芯片能够正确地运行应用程序或固件。

使用 Flash download tool 烧录过程

  1. 运行 flash_download_tool.exe 文件

  2. 选择 开发板(ChipType) 为对应的开发板,一般芯片上会有标识。选择 烧录模式(LoadMode)UART 后点击下方 OK

    FLASH-DOWNLOAD-TOOL2
  3. 点击选择要烧录的 .bin 文件

  4. 输入要烧录的 地址偏移量(address offset),可以默认输入起始位 0x0

  5. 选择开发板连接的 端口 COM

  6. 点击左下方 START 开始烧录

    FLASH-DOWNLOAD-TOOL3
  7. 烧录完成后界面会显示蓝色的 FINISH

    FLASH-DOWNLOAD-TOOL3

使用 Flash download tool 进行 Flsah 加密和安全启动

  1. menuconfig 中禁用所有安全启动和 Flash 加密配置,确保编译后可以生成明文固件

  2. 调整 默认分区表(Offset of partition table)偏移量,从 0x8000 调整为 0xa000

    备注

    Flash 加密会增加引导加载程序(bootloader).bin 固件的大小,所以必须为偏移地址留了足够大的空间

  3. 打开 Flash Download Tool 的文件夹,打开 configure -> esp 芯片类型 -> security.conf 。 启用以下配置并保存文件:

    [SECURE BOOT]
    secure_boot_en = True
    [FLASH ENCRYPTION]
    flash_encryption_en = True
    reserved_burn_times = 3
    [ENCRYPTION KEYS SAVE]
    keys_save_enable = True
    encrypt_keys_enable = False
    encrypt_keys_aeskey_path =
    [DISABLE FUNC]
    jtag_disable = False
    dl_encrypt_disable = False
    dl_decrypt_disable = False
    dl_cache_disable = False
    
  4. 重新启动 Flash Download Tool

  5. 将生成的明文固件添加到 Flash Download Tool 中,并设置相应的 偏移地址

  6. 使用 Flash Download Tool.bin 明文固件按照上方 使用 Flash download tool 烧录过程 进行烧录即可, 加密密钥 将被保存在本地

    FLASH-DOWNLOAD-TOOL-KEY

IDE 烧录

搭建好开发环境后可以在 IDE 中使用 ESP-IDF 插件来进行编译和烧录。

  • esp-iot-solution 或者 ESP-IDF 自带的 examples 中选择感兴趣的实例项目。

备注

环境搭建可以参考: VSCode ESP IDF Extension

我们可以体验一下 ESP32-S3-BOX 的烧录过程,此项目使用 ESP32-S3-BOX 作为一个 USB 音箱。

以 VSCode 为例:

  1. 在 VSCode 中进入想保存项目的路径,在左上角的窗口中选择 Termina -> New Termianl

  2. 使用 git clone 下载本项目的代码

    git clone --recursive https://github.com/espressif/esp-box.git
    
  3. 打开 VSCode,在左上角窗口选择 file -> open folder (或者使用快捷键 Ctrl + K Ctrl + O) 进入项目保存的路径 -> esp-box -> examples -> usb_headset。点击选择文件夹。

  4. 通过数据线将 ESP-BOX 连接到电脑

    VSCode-IDF-1
  5. 在左下角选择对应的 COM 端口

    备注

    如果没有检测到 COM 端口请按住开发板 Boot 键,同时按下 Reset 键进入下载模式

  6. 选择 Targetesp32s3, VSCode 在界面上方选择 ESP32-S3 chip (via ESP-PROG)

  7. 点击 ESP-IDF Build Project 图标,编译成功后会显示:

    VSCode-IDF-2
  8. 点击 ESP-IDF Flash device 图标进行烧录,然后在 VSCode 界面上方选择 UART。烧录成功后会在终端显示:Flash Done ⚡️

  9. 按下开发板 Reset 按钮后,就可以通过 USB 来用 ESP-BOX 播放声音了

IDF 终端烧录

使用 IDF 终端具有环境稳定,版本切换简单和高级功能齐全等优点 。

备注

环境搭建可以参考:Windows 安装教程

下面将介绍如何使用 IDF 终端烧录一个示例项目:

  1. 打开 ESP-IDF CMD 终端窗口,ESP-IDF SDK 编译环境安装成功的界面显示如下:

    idf-cmd
  2. 使用 cd 指令进入一个工程,例如:

    idf-cmd-open
  3. 切换到正确的的芯片环境,例如:

    idf.py set-target esp32
    

    备注

    esp32 替换为正确的芯片目标

  4. 运行下方指令编译项目:

    idf.py build
    
  5. 运行下方指令烧录项目,将 PORT 替换为开发板的串口名称:

    idf.py -p PORT flash
    

    备注

    使用 idf.py flash 将尝试使用可用的串口自动连接

烧录成功的界面显示如下:

idf-cmd-flash