当前位置: 首页 > news >正文

Docker搭建ESPIDF环境,程序下载

文章目录

  • 一、前言
  • 二、文件准备
  • 三、.devcontainer 文件
    • 3.1 Dockerfile
    • 3.2 devcontainer.json
    • 3.3 容器里面打开工程
  • 四、编译下载程序
    • 4.1 运行esptool 服务端
    • 4.2 vscode 客户端配置
    • 4.3 下载程序
  • 五、遇到的问题

一、前言

在使用ESP-IDF开发ESP32的时候,环境配置的复杂性和兼容性问题往往是开发者在入门和实践阶段面临的首要挑战。从工具链的安装、Python依赖 的版本协调,到系统路径的配置,这些步骤不仅耗时耗力,还可能因开发机环境的差异而遭遇意外错误。

Docker 技术为这一难题提供了优雅的解决方案——通过容器化封装一个标准、统一、可复现的 ESP-IDF 开发环境,使得任何开发者都能在瞬间获得一个开箱即用、与宿主环境隔离且功能完备的构建框架。这不仅极大地简化了项目的启动流程,也为团队协作和持续集成奠定了坚实的基础。

本文将详细介绍如何基于 Docker 快速搭建 ESP-IDF 开发环境,旨在帮助开发者摆脱环境配置的困扰,将精力专注于更具创造性的应用开发本身。

二、文件准备

  • Docker Desktop 软件

    官网自行下载

  • docker 拉取 ESP-IDF镜像

    docker pull espressif/idf
    
  • vscode

    Visual Studio Code - Code Editing. Redefined

  • esptool

    Releases · espressif/esptool · GitHub

    最好下载最新的兼容性好

    如果不行请查看docker 镜像里面的版本号,下载对应的版本

    # 查看版本
    esptool version 
    
  • vscode 下载Dev Containers插件

    在这里插入图片描述

三、.devcontainer 文件

在项目文件下面创建一个 .devcontainer 的文件夹

3.1 Dockerfile

.devcontainer 文件夹下面创建 Dockerfile 文件

# 定义构建参数 DOCKER_TAG,默认值为 'latest',可在构建时通过 --build-arg 覆盖
ARG DOCKER_TAG=latest# 基于乐鑫官方 ESP-IDF 镜像构建,版本由 DOCKER_TAG 指定
FROM espressif/idf:${DOCKER_TAG}# 设置系统语言环境为 UTF-8,确保终端字符编码正确
ENV LC_ALL=C.UTF-8
ENV LANG=C.UTF-8# 可选:安装 udev 管理设备节点(当前被注释)
# RUN apt-get update -y && apt-get install udev -y# 将 IDF 环境变量初始化命令添加到 bashrc,启动 shell 时自动加载
RUN echo "source /opt/esp/idf/export.sh > /dev/null 2>&1" >> ~/.bashrc# 指定容器启动时执行的入口脚本(用于处理设备权限等)
ENTRYPOINT [ "/opt/esp/entrypoint.sh" ]# 默认容器启动命令:启动 bash shell
CMD ["/bin/bash", "-c"]

3.2 devcontainer.json

.devcontainer 文件夹下面创建 devcontainer.json 文件

{"name": "ESP-IDF QEMU",  // 开发容器显示名称"build": {"dockerfile": "Dockerfile"  // 指定构建使用的 Dockerfile},"customizations": {"vscode": {"settings": {"terminal.integrated.defaultProfile.linux": "bash",  // 设置默认终端为 bash"idf.espIdfPath": "/opt/esp/idf",  // ESP-IDF 框架路径"idf.toolsPath": "/opt/esp",       // IDF 工具链路径"idf.gitPath": "/usr/bin/git"      // 指定 git 执行路径},"extensions": [  // 推荐安装的 VSCode 扩展"espressif.esp-idf-extension",  // 乐鑫官方 ESP-IDF 扩展"espressif.esp-idf-web"        // ESP-IDF Web 工具扩展]}},"runArgs": [  // 容器运行时参数"--privileged"  // 授予特权模式(访问 USB 设备等硬件)]
}

3.3 容器里面打开工程

使用 ctrl+shift+p 选择Dev Containers: Reopen in Container

在这里插入图片描述

四、编译下载程序

4.1 运行esptool 服务端

在宿主主机上面运行 esptool

.\esp_rfc2217_server.exe -v -p 4000 COM6

COM6 :连接esp32的串口号

4000: 和 docker通讯的端口号

在这里插入图片描述

会提示使用 rfc2217://192.168.1.7:4000?ign_set_control 作为端口号

4.2 vscode 客户端配置

修改.code ->settings.json 文件的串口端口号

"idf.port": "rfc2217://192.168.1.7:4000?ign_set_control"

在这里插入图片描述

4.3 下载程序

在这里插入图片描述

在这里插入图片描述

五、遇到的问题

  • vscode和docker 容器里面的vscode-server版本不兼容

    在这里插入图片描述

    在这里插入图片描述

    这个问题是因为vscode太老了,esp-idf容器的 ubuntu24.04 的版本,更新vscode,使得和ubuntu的vscode-server一致。

解决方案:vscode连接ubuntu18报Gilbc2.28错-CSDN博客

http://www.dtcms.com/a/418199.html

相关文章:

  • MQTT-物联网轻量级通信
  • eclipse复制项目后原项目名依然伴随值所复制的项目名
  • 微服务架构:从单机到分布式的革命性升级
  • 【ROS2学习笔记】话题通信篇:python话题订阅与发布
  • 【碎片化学习】SpringBoot服务的启动过程
  • 儿童网站模板 html做百度快照要先有网站吗
  • Games101 第六章 Shading(着色)
  • 电子电气架构 --- 智能座舱域环境感知和人机交互系统
  • 数字营销网站主页优化制作网页动画的软件
  • CSS详篇
  • Memblock-3
  • 大数据毕业设计选题推荐-基于大数据的全国饮品门店数据可视化分析系统-Hadoop-Spark-数据可视化-BigData
  • 【后端开发】golang部分中间件介绍(任务调度/服务治理/数据库/缓存/服务通信/流量治理)
  • 建设一个自己的网站需要多少钱站长统计官方网站
  • 烟台装修公司网站建设注册公司流程和费用时间
  • java设计模式:工厂方法 + 建造者模式
  • 3、Lombok进阶功能实战:Builder模式、异常处理与资源管理高级用法
  • Linux 内核开发 的核心知识点
  • 【Linux系列】并发世界的基石:透彻理解 Linux 进程 — 理解操作系统
  • 小米17对比iPhone 17:2025年深度对比
  • 借助Aspose.Email,使用 Python 将 EML 转换为 MHTML
  • 免费做名片的网站专业网站开发设计
  • 微服务项目->在线oj系统(Java-Spring)-后台管理(1)
  • 怎么防止网站攻击做网站价格表
  • 1、Product-Service 服务设计规范文档
  • 网深科技NetInside网络流量异常分析报告
  • 基于TCP的简易端口扫描器
  • 大腾智能助力深圳市联合创造科技,实现精密触控屏行业数字化升级
  • MR+无人机-增强态势感知、更高效的现场检查和增强
  • 无人机遥控器使用与信号连接问题处理