在 WSL2 搭建ESP8266/ESP32开发环境

发布时间 2023-04-24 23:11:28作者: 二十四书生

Ubuntu版本

Ubuntu 22.04.1 LTS  # wsl

前期准备

本文中所有命令均使用完整路径,环境安装完成后,目录结构如下

/home/zhao/esp
├── esp-gitee-tools
├── esp32-sdk
│   └── esp-idf
└── esp8266-sdk
    └── ESP8266_RTOS_SDK

下载 esp32-gitee-tools[1]

cd ~/esp
git clone https://gitee.com/EspressifSystems/esp-gitee-tools.git # 必选,加速安装过程的神器

检查python环境是否满足要求

python -m virtualenv --version # 确保模块存在

否则运行

sudo apt install python-is-python3  python3-pip
python -m pip install virtualenv

可能需要手动安装的包

#sudo apt-get update                 # 如果报错,需要先执行这一步
sudo apt install ncurses-dev         # menuconfig 所需的软件包
sudo apt install flex bison gperf    # 可能需要的软件包,缺失会导致`make`时报错

下载并配置环境

这一步ESP32/ESP8266操作各不相同,但核心步骤就是两步

  • 下载sdk
  • 执行安装脚本install.sh,自动配置编译器和python虚拟环境
  • 执行export.sh,导出环境变量如

ESP32

下载 ESP32-IDF[2]

cd ~/esp/esp32-sdk # 空文件夹用来存放idf框架
git clone https://gitee.com/EspressifSystems/esp-idf

安装

# ~/esp/esp32-sdk/esp-idf/install.sh # 从github下载,会很慢
~/esp/esp-gitee-tools/install.sh ~/esp/esp32-sdk/esp-idf/   # 让esp-gitee-tools 帮助esp-idf执行安装

执行完成后,会看到如下提示

All done! You can now run:
  . /home/zhao/esp/esp32-sdk/esp-idf/export.sh

启动IDF环境

. ~/esp/esp32-sdk/esp-idf/export.sh

ESP8266

下载 ESP8266_ROTS_SDK[3]

cd ~/esp/esp8266-sdk # 新建空文件夹用来存放idf框架
git clone https://gitee.com/EspressifSystems/ESP8266_RTOS_SDK.git

安装

过程中会为idf框架创建python虚拟环境,下载编译器xtensa-lx106-elf放在~/.espressif目录

~/esp/esp8266-sdk/ESP8266_RTOS_SDK/install.sh # 在此之前确保python环境满足要求

执行完成后,会看到如下提示

# 此处省略安装过程
All done! You can now run:
  . /home/zhao/esp/esp8266-sdk/ESP8266_RTOS_SDK/export.sh

启动IDF环境

执行命令即可导出相关的环境变量

. ~/esp/esp8266-sdk/ESP8266_RTOS_SDK/export.sh

开始使用吧

执行export.sh脚本后,环境变量IDF_PATH会指向对应的sdk
无论是ESP32 还是 ESP8266,到这一步都是通用的,

每次开发时要做的第一步就是执行对应的export.sh脚本

Hello IDF

cd ${IDF_PATH}/examples/get-started/hello_world/
idf.py build 

更新子模块

需要更新git子模块的时候, 不使用git命令,改用esp-gitee-tools

方法一:sumodule-update.sh

~/esp/esp-gitee-tools/submodule-update.sh  ${IDF_PATH}

方法二:jihu-mirror.sh

~/esp/esp-gitee-tools/jihu-mirror.sh set  # 使用jihu镜像
~/esp/esp-gitee-tools/jihu-mirror.sh unset  # 不使用jihu镜像,从原url拉取

参考


  1. https://gitee.com/EspressifSystems/esp-gitee-tools ↩︎

  2. https://gitee.com/EspressifSystems/esp-idf ↩︎

  3. https://gitee.com/EspressifSystems/ESP8266_RTOS_SDK ↩︎