安装 ESP-IDF

在 Linux 上安装 ESP-IDF 开发环境

安装依赖

  • Debian 系
1sudo apt-get install git wget flex bison gperf python3 python3-venv python3-setuptools cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0
  • Arch Linux
1sudo pacman -S --needed gcc git make flex bison gperf python cmake ninja ccache dfu-util libusb

CentOS 就是孤儿

Clone ESP-IDF

release/v5.0 (目前为 v5.0.1) 版本为例,目前可选版本有: https://github.com/espressif/esp-idf/tags
1git clone -b release/v5.0 --depth 1 --recursive https://github.com/espressif/esp-idf.git ${HOME}/.local/opt/esp-idf-v5.0

如果中途 clone 子模块失败:

  1. 切换到 ESP-IDF 目录: cd ~/.local/opt/esp-idf-v5.0
  2. 更新子模块: git submodule update --init --recursive

设置 ESP-IDF

使用 export IDF_GITHUB_ASSETS="dl.espressif.com/github_assets" 可以提升部分文件在大陆地区下载的速度
  1. 切换到 ESP-IDF 目录: cd ~/.local/opt/esp-idf-v5.0
  2. 设置工具链安装位置
    • 创建文件夹: mkdir -p ~/.local/opt/esp-tools
    • 设置临时环境变量 export IDF_TOOLS_PATH=${HOME}/.local/opt/esp-tools
    • 若不设置,则会安装到 ~/.espressif
  3. 设置对于设备的工具链
    • 如果是 ESP32-C3 等某一个设备: ./install.sh esp32c3
    • 如果是多个设备: ./install.sh esp32c3,esp32
    • 如果是所有被 ESP-IDF 支持的设备: ./install.sh all
  4. 设置环境变量
    • 为 esp-idf-v5.0.1 文件夹创建软链,方便切换版本
      • 进入文件夹: cd ${HOME}/.local/opt
      • 创建链接: ln -s -T esp-idf-v5.0 esp-idf
    • 设置环境变量,前置条件: Linux 设置环境变量
      • 创建编辑 ${HOME}/.local/profile.d/esp.sh 并添加:
      • export IDF_CCACHE_ENABLE=1
      • export IDF_PATH=${HOME}/.local/opt/esp-idf
      • export IDF_TOOLS_PATH=${HOME}/.local/opt/esp-tools
  5. 激活环境: . ${IDF_PATH}/export.sh

编译测试

复制示例

1mkdir ~/ESPProjets
2cd ~/ESPProjets
3cp -r $IDF_PATH/examples/get-started/hello_world .
4cd hello_world

配置工程

1idf.py set-target esp32c3
2idf.py menuconfig

编译&烧录&监视

1idf.py build
2idf.py [ -p $PORT ] flash
3idf.py [ -p $PORT ] monitor
4# or
5idf.py flash monitor

WSL2下使用串口请参考:

  • Windows 安装: https://github.com/dorssel/usbipd-win
  • Linux 安装: usbip
  • 使用方法:
    • Windows:
      • usbipd list
      • usbipd bind --force --busid=<busid> (管理员)
    • Linux:
      • usbip list --remote=<host>
      • sudo usbip attach --remote=<host> --busid=<busid>

在 Arch Linux 上没有权限访问串口:

  • sudo usermod -aG uucp ${USER}
  • 重新登录
CC BY-NC-SA 4.0 转载或引用本文时请遵守许可协议,注明出处、不得用于商业用途!
最后更新于 May 03, 2023 20:27 +0800
人最重要的特点是会思考,写博客的初衷是保存思维的电子快照。 当然各种文档工具亦或是简单的文本编辑器也能随时记录点滴,选择建个人网站无非是想满足技术爱好者的偏执。
Built with Hugo
主题 StackJimmy 设计