一、环境搭建:
参考资料:
- 如何使用 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 倍提升),以及增加整个系统调用的兼容性。
(1)启用 WSL
方法 1:在启用或关闭 Windows 功能中,勾选“适用于 Linux 的 Windows 子系统” (Windows Subsystem for Linux),然后按照提示重启电脑。
方法 2(推荐):可以通过命令行指令开启,管理员模式进入 powershell ,然后运行:dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
(2) 选择并安装一个 Linux 发行版
这里建议选择 ubuntu 18.04,直接在 Microsoft 应用商店搜索并安装.
安装完成后,等待几分钟可以设置用户名和密码。
ubuntu默认只有终端,也可以手动安装 Ubuntu 的图形界面,但是并不建议。2、安装依赖包
(1) 将默认 python 切换为 python3 (可选步骤,推荐)
可见系统默认安装了python3,通过运行下面的命令,可以将系统python切换为python3
效果如下:sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 10
输入exit()可退出python(2) 修改 ubuntu 源到国内镜像:
进入后,按”I”可进入编辑模式。如下:cd /etc/apt/
sudo cp sources.list sources.list.bak
sudo vim sources.list
删除该文件全部内容(或者通过符号#来注销掉),粘贴以下内容并保存:
然后,按”ESC”键,输入”:wq”,回车。保存并退出。deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
(3)安装pip
先运行(必须):
然后运行sudo apt-get update
sudo apt install python3-pip
升级pip命令sudo -H python -m pip install --upgrade pip
将 pip3 源更换到国内镜像(可选步骤,推荐)
(3)安装依赖pip3 config set global.index-url http://mirrors.aliyun.com/pypi/simple
pip3 config set global.trusted-host mirrors.aliyun.com
运行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
3、编译工具链获取
在https://gitee.com/EspressifSystems/ESP8266_RTOS_SDK中下载工具链
先建一个目录esp,
复制工具链的地址,下载到esp目录下,mkdir esp
cd esp
sudo wget https://dl.espressif.com/dl/xtensa-lx106-elf-gcc8_4_0-esp-2020r3-linux-amd64.tar.gz
ls
解压其到当前文件夹:sudo tar -zvxf xtensa-lx106-elf-gcc8_4_0-esp-2020r3-linux-amd64.tar.gz
修改其权限为777:sudo chmod 777 -R xtensa-lx106-elf
4、获取 ESP8266_RTOS_SDK 代码
(1)下载ESP8266_RTOS_SDK源码
方法1: 网络好,可以试一试
方法2(推荐):github经常会链接失败,先运行sudo git clone --recursive https://github.com/espressif/ESP8266_RTOS_SDK.git
如果网速太慢或者链接不成功,可以改成如下命令,从国内镜像源里直接下载。sudo git clone https://github.com/espressif/ESP8266_RTOS_SDK.git
然后,运行sudo git clone https://github.com.cnpmjs.org/espressif/ESP8266_RTOS_SDK.git
切换至ESP8266_RTOS_SDK目录sudo chmod 777 -R ESP8266_RTOS_SDK
该文件夹中有个隐藏文件称为:.gitmodules,把子项目中的url地址同样加上.cnpmjs.org后缀,cd ESP8266_RTOS_SDK
修改为下面这样sudo vim .gitmodules
即修改所有的url,前面加上https://github.com.cnpmjs.org。保存退出后,
然后执行
更新拉取子模块。git submodule update --init --recursive
(2)设置环境变量
先拿到上述的工具链路径和SDK路径,可执行如下命令,系统会打开当前路径的文件夹的位置
效果如下:explorer.exe .
从而确定工具链和SDK的路径。
执行
根据自己电脑设置的路径,把下面两句添加到文件中去。以我的为例,如下vim ~/.bashrc
完成后,如下:(注意大小写一定要对)export PATH=$PATH:/home/xinghun/esp/xtensa-lx106-elf/bin
export IDF_PATH=/home/xinghun/esp/ESP8266_RTOS_SDK
保存后,执行
工具链环境测试是否设置成功:source ~/.bashrc
IDF_PATH 路径测试是否设置成功:xtensa-lx106-elf-gcc -v
echo $IDF_PATH
(3)执行脚本
./install.sh
. ./export.sh
(4)测试是否成功
切换到hello world例子,
执行cd ~/esp/ESP8266_RTOS_SDK/examples/get-started/hello_world
如果报错,试着执行下面操作:make menuconfig
再执行,make menuconfig,成功后弹出如下界面#更新软件
sudo apt-get update
#安装如下软件
sudo apt-get install build-essential
sudo apt-get install libncurses5
sudo apt-get install libncurses5-dev
在这里可以设置串口和波特率。(5)安装驱动和设置menuconfig
如果电脑之前没有安装CH340驱动,可以在https://docs.ai-thinker.com/tools下载串口驱动并安装,然后插上USB线和esp8266的板子,可以在设备管理器里面发现多了一个串口设备,以我的为例,如下:
在menuconfig界面设置串口com5为ttyS5(注意S一定要大写)。
从上图可以发现,默认的串口通信的波特率为74880.后面通过串口调试助手的时候需要与这里保持一样。当然也可以更改成其他的波特率,比如我改成了115200.
保存并退出。
(6)make并烧录
执行
make -j8
成功后如下:
如需烧录到esp8266板子,可以按照上面的提示,执行
make flash
可以在https://docs.ai-thinker.com/tools下载官方的串口调试助手,也可以从https://mydown.yesky.com/pcsoft/413547432.html下载另一款(推荐)
5、下载VScode并安装wsl插件
安装完VScode后,简单配置后,安装wsl插件,然后可以在ubuntu里面执行
code .
执行完,会自动打开VScode,并且定位到当前程序的位置,如下
在左边文件的任意位置,右键“在集成终端中打开”,可以在终端打开wsl环境中的ubuntu
二、通过腾讯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