ESP-IDF V5.4 开发环境搭建教程(基于 Windows11 WSL2 )

news/2025/11/15 16:23:20/文章来源:https://www.cnblogs.com/FBsharl/p/19225731

前言

最近因公司业务需要,接触了 ESP32 芯片,中途踩了不少坑,也慢慢熟悉了 ESP32 的开发流程。我使用了乐鑫官方的 ESP-IDF 作为编译工具,其他版本有 arduino-esp32、PlatformIO,但它们底层也是基于 ESP-IDF,只不过进行了一层 API 封装。为了优雅的使用 ESP-IDF,我选择 WSL2 作为我的开发环境,这样做的好处是可以与宿主机隔离,避免污染宿主机环境。

本文将介绍如何基于 WSL2 Ubuntu22.04 系统,搭建一个 ESP-IDF 开发环境,实现成功编译项目并烧录到 ESP32-S3 中。话不多说,马上开始。

流程

具体的流程如下:

image

使用 apt 安装相关软件包

在终端运行如下命令:

sudo apt-get updatesudo apt-get upgrade -ysudo 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

注意:CMake 版本需要 3.16 以上,建议使用 20.04 以上的 Ubuntu 系统,这样会自动安装新版本的软件源。

获取 ESP-IDF

接下来获取 ESP-IDF 源码,在终端运行如下命令:

mkdir -p ~/esp
cd ~/esp
git clone -b v5.4.1 --recursive https://github.com/espressif/esp-idf.git

ESP-IDF 将下载至 ~/esp/esp-idf,建议不要修改下载路径,使用上述路径。

设置工具

由于我使用的是 ESP32-S3,需要为该芯片安装需要用到的工具,在终端运行如下命令:

cd ~/esp/esp-idf
./install.sh esp32s3

如果想安装所有 ESP 的芯片工具,可以运行如下命令:

cd ~/esp/esp-idf
./install.sh all

等待片刻即可安装完成。如果下载安装速度较慢,可以使用国内服务器:

cd ~/esp/esp-idf
export IDF_GITHUB_ASSETS="dl.espressif.cn/github_assets"
./install.sh esp32s3

安装成功之后,导出环境变量,运行如下命令:

. ./export.sh

设置环境变量

接下来进行环境变量设置,让我们可以在终端使用 ESP-IDF 工具进行各种操作,有两种设置环境变量的方式:

  1. 直接导出:这种方式的缺点是每次重开终端都要运行一大段命令,不太优雅。

终端运行如下命令:

. $HOME/esp/esp-idf/export.sh
  1. 【推荐】放到 shell 配置中作为别名:这种方式的优点是每次重开终端只需运行别名即可。

复制并粘贴以下命令到 shell 配置文件中(.profile.bashrc.zprofile 等)

alias get_idf='. $HOME/esp/esp-idf/export.sh'

通过重启终端窗口或运行 source [path to profile],如 source ~/.bashrc 来刷新配置文件。

现在可以在任何终端窗口中运行 get_idf 来设置或刷新 ESP-IDF 环境。

编译项目

设置完 ESP-IDF 环境变量之后,就可以愉快的使用了。我们来运行一个 Hello-World 程序看看效果,官方的 ESP-IDF 工具提供了各种示例源码,可以直接使用。

运行如下命令:

cd ~/esp
cp -r $IDF_PATH/examples/get-started/hello_world .
cd hello_world
# 将工程配置为 esp32s3
idf.py set-target esp32s3

配置成功之后,运行如下命令进行项目编译:

idf.py build

运行以上命令可以编译应用程序和所有 ESP-IDF 组件,接着生成引导加载程序、分区表和应用程序二进制文件。

$ idf.py build
Running cmake in directory /path/to/hello_world/build
Executing "cmake -G Ninja --warn-uninitialized /path/to/hello_world"...
Warn about uninitialized values.
-- Found Git: /usr/bin/git (found version "2.17.0")
-- Building empty aws_iot component due to configuration
-- Component names: ...
-- Component paths: ...... (more lines of build system output)[527/527] Generating hello_world.bin
esptool.py v2.3.1Project build complete. To flash, run this command:
../../../components/esptool_py/esptool/esptool.py -p (PORT) -b 921600 write_flash --flash_mode dio --flash_size detect --flash_freq 40m 0x10000 build/hello_world.bin  build 0x1000 build/bootloader/bootloader.bin 0x8000 build/partition_table/partition-table.bin
or run 'idf.py -p PORT flash'

烧录固件

在 WSL2 进行固件烧录会比较麻烦,需要用到 usbipd-win 软件,它的作用是将 Windows 的串口转到 WSL2 内部。

  1. 前往 usbipd-win 项目的最新发布页面。 https://github.com/dorssel/usbipd-win/releases
  2. 选择.msi 文件,这将下载安装程序。(您可能会收到一个警告,要求您确认信任此下载)。
  3. 运行下载的 usbipd-win_x.msi 安装程序文件。

安装成功之后,将 ESP32-S3 接入主机,打开 设备管理器,查看端口,可以看到如下:

image

上图可以看到,我的串口为 COM13。接着,以管理员模式打开 PowerShell,运行如下命令:

usbipd list

会打印如下:

Connected:
BUSID  VID:PID    DEVICE                                                        STATE
1-5    303a:1001  USB 串行设备 (COM13), USB JTAG/serial debug unit              Not shared
1-9    05ac:024f  USB 输入设备                                                  Not shared

接下来,运行如下命令将 COM13 设置为 Shared 状态:

usbipd bind --busid 1-5

1-5 表示总线ID,请以你的总线ID为准。此时,重新运行 usbipd list 命令,会打印如下输出:

Connected:
BUSID  VID:PID    DEVICE                                                        STATE
1-5    303a:1001  USB 串行设备 (COM13), USB JTAG/serial debug unit              Not shared
1-9    05ac:024f  USB 输入设备                                                  Shared

之后,将该 COM 口转到 WSL2 内部,运行如下命令:

usbipd attach --wsl --busid 1-5

重新运行 usbipd list 命令,会打印如下输出:

Connected:
BUSID  VID:PID    DEVICE                                                        STATE
1-5    303a:1001  USB 串行设备 (COM13), USB JTAG/serial debug unit              Attached
1-9    05ac:024f  USB 输入设备                                                  Not shared

表示转到 WSL2 内部成功,此时我们无法在宿主机 Windows 上操作该串口,只能在 WSL2 内部,如果要在宿主机操作该串口,可以拔掉串口线重新插或者运行 usbipd detach --busid 1-5 命令。

打开 WSL2 内部,可以看到在 /dev 目录下会多出一个字符设备:ttyACM0,此时表现上述操作成功,接下来就可以愉快的进行烧录了,在 hello_world 项目目录下,运行如下命令:

idf.py -p /dev/ttyACM0 flash monitor

注:如果不指定 -p 参数,将会默认使用 /dev/ttyACM0 。

monitor 参数用于监控串口日志。

等待片刻烧录成功后,就可以在终端看到相关日志打印了。

 

 

转载声明:

本文转载自 csdn 作者  Leon_Chenl

作者博客:https://blog.csdn.net/Leon_Chenl

原文链接:https://blog.csdn.net/Leon_Chenl/article/details/147443774

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/966355.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PlotNeutralNet使用教程

PlotNeutralNet使用教程参考来源: https://blog.csdn.net/Zhanglw882/article/details/115537471 https://blog.csdn.net/qq_41605934/article/details/118423571 https://blog.csdn.net/li26324949/article/details/…

idf.py如何退出串口监视器模式?

使用 `idf.py monitor` 进入串口监视器模式后,如何正确退出而不中断或损坏串口连接?许多开发者在操作 ESP-IDF 项目时,习惯直接使用 Ctrl+C 终止进程,但这可能导致串口资源未释放、终端卡死或后续烧录失败。常见问…

2025雅思培训课程排行榜:高提分课程定制机构深度解析

2025雅思培训课程排行榜:高提分课程定制机构深度解析随着留学热潮的持续升温,雅思成绩作为海外院校申请的核心指标,其重要性愈发凸显。优质的雅思培训课程不仅能帮助学员精准攻克学习难点,更能高效提升应试能力,缩…

11.10-11.15 总结

11.10 11.11 模拟赛 打得不是很好,只通过了 \(A\) 题,另外几道题都挺有难度的。其中 \(B\) 题需要发现左子树只又 \(k^x\) 的性质。

Tomcat的常见问题

问题1出现上述问题首先先把internet选项中高级里面把TLS 1.1和TLS 1.2勾上然后重启windows在看看是否成功如果还是不成功依旧是上面的问题那很有可能是你配置文件里面写错了 注意:大小写,单词不要写错等问题2tomc…

2025 最新推荐!护栏厂家实力榜单,国际协会认证优质品牌,市政 / 铁路 / 桥梁专用护栏制造厂精选

随着全球基础设施建设标准化推进,护栏作为安全防护核心设施的品质要求持续升级。据国际道路安全协会(IRSA)2024 年度测评数据显示,优质护栏可降低 62% 的道路安全事故损失,但市场上 38% 的产品存在原材料不达标、…

2025 最新净水器经销商推荐排行榜,精选优质服务商 涵盖直饮 / 反渗透等多类型设备直饮水净水器/过滤净水器/反渗透净水器公司推荐

引言 随着健康意识升级与企业成本管控需求凸显,净水器已成为企事业单位与家庭的刚需设备,但市场品牌繁杂、服务质量参差不齐的问题日益突出。传统桶装水的卫生隐患、高成本与净水器行业 “产品品质无保障、售后响应慢…

2025年芹黄素实力厂家权威推荐榜单:芹菜苷元/芹菜素/芹菜素95%源头厂家精选

在大健康产业蓬勃发展的背景下,植物提取物作为连接天然资源与终端应用的关键环节,其市场需求持续攀升。 芹黄素,又称芹菜素或芹菜苷元,是一种具有广泛应用价值的黄酮类化合物,在医药、保健品、食品和化妆品等领域…

序列密码算法RC4的实现与攻击

RC4的实现 RC4的整个过程可以清晰地分为两个阶段: 密钥调度算法:使用密钥混淆一个内部状态数组(S盒),为生成密钥流做准备 伪随机生成算法:在KSA基础上,不断地生成伪随机的密钥流字节 密钥调度算法 KSA是初始化步…

2025年RFID服装标签批发厂家权威推荐榜单:RFID服装吊牌标签/服装门店盘点标签/服装零售电子标签源头厂家精选

服装行业数字化转型加速,RFID技术作为新质生产力的代表,正深刻改变着服装产业的运营模式。据QYResearch调研统计,2025年全球服装RFID方案市场保持稳定增长态势。 RFID服装标签通过无线射频识别技术,为每一件服装赋…

2025 年木包装箱厂家最新推荐榜:木托盘、出口木箱、钢边木箱、免熏蒸包装箱优质厂家权威测评

在全球工业物流领域,木包装箱作为精密仪器、重型设备运输的核心保障,其品质直接决定物流安全与成本控制。据国际包装协会(IOPA)2024 年度测评数据显示,全球仅 38% 的木包装箱厂家能同时满足承重误差≤2%、防潮性能…

arch配置swap分区并做休眠设置

原有的swap分区是zram0,但是它的UUID每次启动都会变化,因此不能用来做休眠。 另外分出一块16G的分区格式化为swap。 sudo swapoff -a # 先关掉当前所有 swap(安全起见) sudo mkswap /dev/nvme1n1p4 sudo blkid /…

2025 年结晶装备厂家最新推荐榜:连续结晶器、煤化工蒸发设备、盐硝分离器等工业核心装备权威品牌指南多效蒸发/硫酸钠蒸发结晶器/煤化工盐硝分离器公司推荐

在化工、锂电新能源等产业持续升级的背景下,结晶装备作为物料分离提纯的核心设备,其技术水平与可靠性直接决定生产效率与产品品质。当前市场装备同质化与技术壁垒并存,为精准筛选优质品牌,本次榜单基于国际蒸发技术…

2025年遥控平板车厂家权威推荐榜单:平板运输车/顶升电动平车/电动地平车源头厂家精选

在智能制造与绿色物流浪潮的推动下,2023年国内电动平板车市场规模已达87.6亿元,预计2025年将突破120亿元。遥控平板车以其高效、安全、灵活的特性,正成为现代工厂和仓库中不可或缺的搬运工具。 选择合适的遥控平板车…

2025 最新新能源装备厂家企业品牌权威推荐榜,含芒硝结晶器/碳化热解设备/碳酸锂碳化提纯设备优质厂商

引言 全球清洁能源转型进入加速期,新能源装备市场规模年复合增长率超 18%,但行业乱象仍制约发展。为破解选型难题,本次榜单联合国际能源装备协会(IEEMA)、全球清洁技术测评中心(GCTC),基于三大核心测评体系:技…

【AI白皮书】AI原生应用及其架构

1.1 大模型技术发展回顾和产业价值 1.1.1 大模型发展回顾与展望 2022年11月,ChatGPT横空出世,模型即服务(MaaS)模式快速兴起,AI从实验室走向商业场景。2024年,OpenAI推出o1模型和4o模型,大模型技术迎来质的飞跃…

2025 年最新脚轮厂家推荐!万向脚轮、工业脚轮、医用脚轮等全品类优质厂家品牌权威排行榜,助力采购决策设备脚轮/重型脚轮/医疗脚轮公司推荐

引言 脚轮作为物流、工业、医疗等领域短程移动的核心部件,其品质直接关联设备安全与运营效率。据国际脚轮工业协会(ICCA)最新测评数据显示,全球合格脚轮产品仅占市场总量的 62%,劣质产品导致的设备故障占比达 38%…

2025 最新干燥装备厂家权威推荐排行榜,盘式/桨叶/流化床/闪蒸/真空喷雾干燥器优质公司精选

引言 在化工、锂电新能源、制药等产业高速发展的背景下,干燥装备作为核心物料处理设备,其技术水平直接关乎生产效率与产品品质。据国际干燥技术协会(IDTA)最新测评数据显示,全球高端干燥装备市场中,具备智能化、…

接口自动化,用例独立还是用例复用

"用例独立。用例相互之间没有依赖,随便拉出一条用例就能执行。" 这是我在文章《接口自动化框架设计漫谈V1.0》提到的,也是我一直坚持的接口自动化用例设计方式。 这么做的依据是某些开源测试框架是这样设计…

2025 最新净水器厂家推荐排行榜:母婴级安全、无阻垢弱碱、杜邦 / 陶氏 RO 膜,高性价比国货品牌精选斯里兰卡椰壳炭/制冰/DIY/厨下净水器公司推荐

健康饮水需求日益升级,净水器已成为家庭必备家电,但市场乱象让消费者决策艰难:“滤芯刺客” 导致年换芯成本飙升至数千元,部分产品虚假宣传 “母婴级” 却过滤不达标,售后响应慢、乡镇安装难等问题频发,中间商加…