一、环境搭建:

参考资料:

  • 如何使用 WSL + VSCode 搭建 ESP32 开发环境
  • WSL使用史上最详细教程
  • 乐鑫esp8266学习rtos3.0笔记

    1、什么是 WSL ?

    有了 WSL ,用户既能使用 Windows 桌面环境,又能使用更强大的 Linux 终端工具。
    WSL(Windows Subsystem for Linux):WSL 是运行在 Windows 上的 GNU/Linux 环境,Linux 程序无需修改即可在 Windows 上运行,包括大多数命令行工具、实用程序和应用程序,没有传统虚拟机或双引导设置的开销。
    注意:只支持 Windows 10 Version 1903 或更高版本。只有 Windows 10 版本 2004 的内部版本 19041 或更高版本中才提供 WSL 2。 通过按 Windows 徽标键 + R,检查你的 Windows 版本,然后键入 winver,选择“确定”。 (或者在 Windows 命令提示符下输入 ver 命令)。 你可能需要更新到最新的 Windows 版本。 对于低于 19041 的版本,WSL 根本不受支持。
    WSL2 提升了文件系统性能
    WSL2 升级了 WSL 的软件架构,支持在 Windows 上直接运行 ELF64 Linux 二进制文件。它的优点是提高了文件系统性能(2-5 倍提升),以及增加整个系统调用的兼容性。
    image.png

    (1)启用 WSL

    方法 1:在启用或关闭 Windows 功能中,勾选“适用于 Linux 的 Windows 子系统” (Windows Subsystem for Linux),然后按照提示重启电脑。
    image.png
    方法 2(推荐):可以通过命令行指令开启,管理员模式进入 powershell ,然后运行:
    1. dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

    (2) 选择并安装一个 Linux 发行版

    这里建议选择 ubuntu 18.04,直接在 Microsoft 应用商店搜索并安装.
    安装完成后,等待几分钟可以设置用户名和密码。
    ubuntu默认只有终端,也可以手动安装 Ubuntu 的图形界面,但是并不建议。

    2、安装依赖包

    (1) 将默认 python 切换为 python3 (可选步骤,推荐)

    image.png
    可见系统默认安装了python3,通过运行下面的命令,可以将系统python切换为python3
    1. sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 10
    效果如下:
    image.png
    输入exit()可退出python

    (2) 修改 ubuntu 源到国内镜像:

    1. cd /etc/apt/
    2. sudo cp sources.list sources.list.bak
    3. sudo vim sources.list
    进入后,按”I”可进入编辑模式。如下:
    image.png
    删除该文件全部内容(或者通过符号#来注销掉),粘贴以下内容并保存:
    1. deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
    2. deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
    3. deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
    4. deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
    5. deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
    6. deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
    7. deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
    8. deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
    9. deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
    10. deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
    然后,按”ESC”键,输入”:wq”,回车。保存并退出。
    image.png
    (3)安装pip
    image.png
    先运行(必须):
    1. sudo apt-get update
    然后运行
    1. sudo apt install python3-pip
    image.png
    升级pip命令
    1. sudo -H python -m pip install --upgrade pip
    image.png
    将 pip3 源更换到国内镜像(可选步骤,推荐)
    1. pip3 config set global.index-url http://mirrors.aliyun.com/pypi/simple
    2. pip3 config set global.trusted-host mirrors.aliyun.com
    (3)安装依赖
    运行
    1. sudo apt-get install git wget flex bison gperf python3 python3-pip python3-setuptools cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0
    image.png

    3、编译工具链获取

    https://gitee.com/EspressifSystems/ESP8266_RTOS_SDK中下载工具链
    image.png
    先建一个目录esp,
    1. mkdir esp
    2. cd esp
    复制工具链的地址,下载到esp目录下,
    1. sudo wget https://dl.espressif.com/dl/xtensa-lx106-elf-gcc8_4_0-esp-2020r3-linux-amd64.tar.gz
    2. ls
    image.png
    解压其到当前文件夹:
    1. sudo tar -zvxf xtensa-lx106-elf-gcc8_4_0-esp-2020r3-linux-amd64.tar.gz
    image.png
    修改其权限为777:
    1. sudo chmod 777 -R xtensa-lx106-elf

    4、获取 ESP8266_RTOS_SDK 代码

    (1)下载ESP8266_RTOS_SDK源码

    方法1: 网络好,可以试一试
    1. sudo git clone --recursive https://github.com/espressif/ESP8266_RTOS_SDK.git
    方法2(推荐):github经常会链接失败,先运行
    1. sudo git clone https://github.com/espressif/ESP8266_RTOS_SDK.git
    如果网速太慢或者链接不成功,可以改成如下命令,从国内镜像源里直接下载。
    1. sudo git clone https://github.com.cnpmjs.org/espressif/ESP8266_RTOS_SDK.git
    然后,运行
    1. sudo chmod 777 -R ESP8266_RTOS_SDK
    切换至ESP8266_RTOS_SDK目录
    1. cd ESP8266_RTOS_SDK
    该文件夹中有个隐藏文件称为:.gitmodules,把子项目中的url地址同样加上.cnpmjs.org后缀,
    1. sudo vim .gitmodules
    修改为下面这样
    image.png
    即修改所有的url,前面加上https://github.com.cnpmjs.org。保存退出后,
    然后执行
    1. git submodule update --init --recursive
    更新拉取子模块。

    (2)设置环境变量

    先拿到上述的工具链路径和SDK路径,可执行如下命令,系统会打开当前路径的文件夹的位置
    1. explorer.exe .
    效果如下:
    image.png
    从而确定工具链和SDK的路径。
    执行
    1. vim ~/.bashrc
    根据自己电脑设置的路径,把下面两句添加到文件中去。以我的为例,如下
    1. export PATH=$PATH:/home/xinghun/esp/xtensa-lx106-elf/bin
    2. export IDF_PATH=/home/xinghun/esp/ESP8266_RTOS_SDK
    完成后,如下:(注意大小写一定要对)
    image.png
    保存后,执行
    1. source ~/.bashrc
    工具链环境测试是否设置成功:
    1. xtensa-lx106-elf-gcc -v
    IDF_PATH 路径测试是否设置成功:
    1. echo $IDF_PATH

    (3)执行脚本

    1. ./install.sh
    2. . ./export.sh
    image.png

    (4)测试是否成功

    切换到hello world例子,
    1. cd ~/esp/ESP8266_RTOS_SDK/examples/get-started/hello_world
    执行
    1. make menuconfig
    如果报错,试着执行下面操作:
    1. #更新软件
    2. sudo apt-get update
    3. #安装如下软件
    4. sudo apt-get install build-essential
    5. sudo apt-get install libncurses5
    6. sudo apt-get install libncurses5-dev
    再执行,make menuconfig,成功后弹出如下界面
    image.png
    在这里可以设置串口和波特率。

    (5)安装驱动和设置menuconfig

    如果电脑之前没有安装CH340驱动,可以在https://docs.ai-thinker.com/tools下载串口驱动并安装,然后插上USB线和esp8266的板子,可以在设备管理器里面发现多了一个串口设备,以我的为例,如下:
    image.png
    在menuconfig界面设置串口com5为ttyS5(注意S一定要大写)。
    image.png

image.png
从上图可以发现,默认的串口通信的波特率为74880.后面通过串口调试助手的时候需要与这里保持一样。当然也可以更改成其他的波特率,比如我改成了115200.
image.png
保存并退出。

(6)make并烧录

执行

  1. make -j8

成功后如下:
image.png
如需烧录到esp8266板子,可以按照上面的提示,执行

  1. make flash

image.png
可以在https://docs.ai-thinker.com/tools下载官方的串口调试助手,也可以从https://mydown.yesky.com/pcsoft/413547432.html下载另一款(推荐)
image.png

5、下载VScode并安装wsl插件

安装完VScode后,简单配置后,安装wsl插件,然后可以在ubuntu里面执行

  1. code .

执行完,会自动打开VScode,并且定位到当前程序的位置,如下

image.png
在左边文件的任意位置,右键“在集成终端中打开”,可以在终端打开wsl环境中的ubuntu
image.png

二、通过腾讯IOT连接ESP8266

git clone —single-branch -b release/v3.1 https://github.com/espressif/ESP8266_RTOS_SDK.git

sudo wget https://dl.espressif.com/dl/xtensa-lx106-elf-linux64-1.22.0-92-g8facf4c-5.2.0.tar.gz

sudo tar -zvxf xtensa-lx106-elf-linux64-1.22.0-92-g8facf4c-5.2.0.tar.gz