(二)vscode搭建espidf环境,配置wsl2

WSL2+VSCode配置ESP-IDF

水平有限,当个备忘录的,来者凑活着看,灰色字是可以不看,我看的是B站的一个视频总结的。编译速度起飞,参照官方推荐!WSL2+VSCode搭建ESP-IDF 开发环境,个人认为是目前编译最高效的开发方式_哔哩哔哩_bilibili

一、WSL2

推荐查阅官方文档说明:安装 WSL | Microsoft Learn

(1)管理员身份打开Windows PowerShell

(2)输入wsl --install

(3)如果安装失败或者时间超时,那就需要先打开控制面板的“Windows 子系统 for Linux”,“虚拟机平台”,然后重新尝试安装,不行的话就重启然后再次尝试。

(4)等待安装完成后重启电脑(这里已经安装了Ubuntu、打开了虚拟机平台、windows子系统的配置)

菜单搜索控制面板——>程序——>启动或者关闭Windows功能——>(滑到最下面)找到"适用于 Linux 的 Windows 子系统" 和 "虚拟机平台",检查是否被勾选。

补充说明:我的截图是Windows10系统的,我试过我的Windows11的笔记本,没有找到虚拟机平台,但还是能正常使用,所以如果你出现了没有虚拟机平台这个选项,请不要担心。

(5)搜索并打开Ubuntu,首次打开会需要等待一段时间


(6)输入账号密码

现在是完成了wsl的初始化配置,之后需要安装espidf的依赖库和工具。

(7)在Ubuntu上输入sudo apt update更新软件源

(目前没有自定义源则是只更新官方源,也就是更新当前软件工具的最新链接啥的,如果不先更新软件源,而是直接输入下面的代码,就会出现无法定位的情况(如下图))

输入sudo apt update更新软件源

其中“184 packages can be upgraded. Run 'apt list --upgradable' to see them.”的意思如下,

所以sudo apt update就是类似于让电脑逛一下超市知道上新了哪些东西,而接下来的espidf官方文档的指令就是购买东西,原先没逛超市所以不知道想买的东西的版本和内容,现在逛过了就可以知道慕想买东西的内容了,就可以运行下方指令了。

(8)更新完后输入下方指令,下载espidf依赖库和工具

sudo apt-get install git wget flex bison gperf python3 python3-pip python3-venv cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0

(从超时买东西,从软件源中下载自己需要的软件)(复制指令后右键鼠标就会粘贴到ubuntu的窗口)

下载的内容如下{

  • 版本控制工具:git
  • 网络下载工具:wget
  • 编译工具链组件:flex、bison、gperf
  • Python 相关:python3、python3-pip(包管理)、python3-venv(虚拟环境)
  • 构建工具:cmake、ninja-build、ccache(编译缓存)
  • 开发库:libffi-dev、libssl-dev(加密 / 接口库)
  • 硬件相关工具:dfu-util(固件升级)、libusb-1.0-0(USB 接口库)

}

(9)输入y👆

(10可选)(可以检查一下python3的版本,直接输入python3)

OK,接下来就去vscode上操作

二、vscode

(1)安装vscode

Visual Studio Code - 代码编辑。重新

(2)安装Chinese插件

(3)安装C/C++插件

(4)安装wsl插件,然后选择连接到wsl

这个时候右下角会有下载提示,等待下载完成,应该会自动把Chinese和C/C++插件下载了,没有的话就自己再下载

想要退出linux环境编程,回到windows的话,就选择关闭远程连接

(5)安装espidf插件(之前安装的是在windows的,现在安装的是在Ubuntu的,也就是linux环境下)

(6)下载好后打开espidf下载相关的内容

(可跳过)在linux账户新建文件用于存放espidf内容,方便后续管理

(也可以直接使用默认的,没啥区别,使用默认的话直接跳过文件的步骤)

在安装路径中选择自己新建的文件夹(演示一个,下一个同理,只不过再选成Tools就是了)

(7)如果安装失败,那就是没有对当前的文件夹没有修改权限,需要输入下面的指令。然后再重新安装

sudo chown -R $USER:$USER /home/你的Ubuntu的user名称/文件夹名/
chmod -R 755 /home/你的Ubuntu的user名称/文件夹名/

例如我的叫QiuLin,新建的文件夹是ESP,那就是
sudo chown -R $USER:$USER /home/qiulin/ESP/
chmod -R 755 /home/qiulin/ESP/

(8)等待安装完成,下面是安装完成的图

(8)安装完成之后先搞个工程测试一下编译能不能正常

(可跳过)我这里又新建了一个文件夹用来存放代码

(9)编译成功了

(10)尝试烧录,烧录失败

三、USB

!!!在没有配置之前,是不能在vscode的wsl环境烧录程序的

WSL 本身默认不直接支持 USB 设备访问,需要额外配置才能让 WSL 识别到 Windows 连接的 USB 设备。

WSL(尤其是 WSL2)运行在一个轻量虚拟机中,与 Windows 物理机的硬件隔离,因此默认情况下无法直接访问 USB 设备(包括 ESP32 开发板的串口)。需要通过工具将 Windows 识别的 USB 设备 “共享” 给 WSL,才能让 WSL 识别并操作。

(1)先把ESP32和电脑连接上

(2)管理员身份打开Windows PowerShell

(3)输入“winget install usbipd”,然后输入y(看情况选择开不开魔法,不开也能20s左右下载安装完)

这个指令是安装usbipd-win工具,用于将windows系统的usb设备共享给wsl环境。

!!!!如果你不打算使用繁琐的命令行指令,请移步后面的连接,同时可以忽略当前文章的后续内容了。当然,下面的知识可以参考以方便你更好的理解工作。wsl自动识别和附加串口-优快云博客

(4)关闭当前PowerShell,重新管理员身份开启一个PowerShell,输入usbipd list,记录端口对应的BUSID

安装了usbipd工具之后,要使用到这个工具的指令,而环境变量需要重新加载才能生效,旧窗口处于没有usbipd环境变量的情况。

(5)输入usbipd bind --busid <BUSID>,将 Windows 上的指定 USB 设备与 USB/IP 服务绑定。

也就是把windows上的串口分享给wsl,但是还没同意wsl使用

(6)输入usbipd attach --wsl --busid <BUSID>,将串口附加给wsl

附加也就是这个串口属于wsl权下,wsl可以是用这个串口了

(7)打开Ubuntu,先后输入“sudo apt update” " sudo apt install -y usbutils"

sudo apt update  # 先更新软件源
sudo apt install -y usbutils  # 安装包含 lsusb 命令的工具包

(8)然后输入lsusb检查串口设备号,找到有QinHeng的,就说明串口附加到wsl成功了

(10)输入“cd /dev”,然后再输入“ls”,寻找到ttyACM0,找到对应的串口端口号

(11)回到vscode,选择对应的端口号,进行烧录

(12)如果烧录显示失败,终端显示下面的内容。那就管理员身份打开ubuntu,执行“sudo usermod -aG dialout $USER”

A fatal error occurred: Could not open /dev/ttyACM0, the port is busy or doesn't exist.
([Errno 13] could not open port /dev/ttyACM0: [Errno 13] Permission denied: '/dev/ttyACM0')

Hint: Try to add user into dialout or uucp group.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值