首页 > 其他分享 >ESP-IDF 安装与剪裁

ESP-IDF 安装与剪裁

时间:2023-02-05 19:55:56浏览次数:54  
标签:git cmake ESP 离线 idf build IDF 安装 剪裁

开发工具安装

离线安装包下载地址:https://dl.espressif.cn/dl/esp-idf/ 需要选择Espressif IDE with ESP-IDF,该选项的离线包集成了Eclipse开发环境,安装完就可以直接使用。

虽然是离线安装包,但安装时根据你选择的芯片类型,有些芯片还是需要需要联网,且需要保证网络能正常访问github
image

对于ESP32,ESP32S2,ESP32S3:
因为离线安装工具不包含esp32ulp-elf,esp32ulp是esp32, esp32s2, esp32s3集成的一个低功耗专用内核的编译器,因此安装的最后需要链接到Github进行下载,如果下载中断则会安装失败(安装失败请手动添加下图ESP-IDF4.4 CMD内显示的环境变量值)。

对于ESP32C3:
因为esp32c3没有低功耗专用内核,只需要的riscv32-esp-elf编译器已经包含在离线安装包内,就可用不联网了。

安装成功会自动添加PATH环境变量,如果最后一步下载esp32ulp失败导致安装过程中断的,需要手动添加。

首次运行建议断开电脑网络,创建一个esp32样例工程,进行编译,从日志窗口可以看到,espidf会使用.git目录的资源自动更新一些内置的组件。
image
image

移除Git工具检查

update 2023-02-05:
对于espid2.7 + espidf5.0,下面的涉及的cmake文件行号变了,但要删除的内容还是一样的。

如果不想让espidf每次编译前都访问github检查组件更新情况,可以删除esp-idf-v4.4.2目录下的.git .github .gitlab这三个文件夹,或者把git.exe从环境变量移除。
但这样每次cleanbuild项目都会有下面的警告:
image
因此还需要改动下编译相关的cmake文件。
错误信息出现在git_submodules.cmake

if(NOT GIT_FOUND)
    message(WARNING "Git executable was not found. Git submodule checks will not be executed. "
        "If you have any build issues at all, start by adding git executable to the PATH and "
        "rerun cmake to not see this warning again.")

    function(git_submodule_check root_path)
        # no-op
    endfunction()
else()

根据输出日志的Call Stack 信息,找到报错的调用链:
project.cmake第12行包含了idf.cmake

# The mere inclusion of this CMake file sets up some interal build properties.
# These properties can be modified in between this inclusion the the idf_build_process
# call.
include(${CMAKE_CURRENT_LIST_DIR}/idf.cmake)

idf.cmake第39行引入了git_submodules

    include(git_submodules)

删除idf.cmake第39行
image
再次执行build或者clean操作,发现build.cmake还有使用到git_submodules.cmake
image
删除build.cmake第77行
image
警告消失了
image
最后直接删除git_submodules.cmake文件。
image

移除无用组件

ESP-IDF自带组件路径:\Espressif\frameworks\esp-idf-v4.4.3\components,推荐将components文件夹整个压缩备份,当以后使用到已删除的组件时,可进行还原操作。
image

标签:git,cmake,ESP,离线,idf,build,IDF,安装,剪裁
From: https://www.cnblogs.com/yanye0xff/p/16948555.html

相关文章

  • 容器报错docker: Error response from daemon: driver failed programming external c
    在启动容器时的容器时,会出现报错:Errorresponsefromdaemon:driverfailedprogrammingexternalconnectivityonendpointXXX(端口映射或启动容器时报错)  原因:在......
  • QT中级(1)QTableView自定义委托(一)实现QSpinBox、QDoubleSpinBox委托
    1写在前面的话我们在之前写的《QT(7)-初识委托》文章末尾提到,“使用一个类继承QStyledItemDelegate实现常用的控件委托,在使用时可以直接调用接口,灵活实现各种委托”。我......
  • esphome-esp8266
    esp8266使用esphome接入hass对于生成配置文件的更改此处nodemcu泛指集成的开发板,一般十几块钱一块下方使用的是D1,对应的针脚是GPIO5esp8266:board:nodemcuv2......
  • ESP_IDF中使用TFT_eSPI库驱动ST7789V
    前言:想学习创建好看的菜单界面很久了,寒假在家正好有时间,手中恰好有一块ST7789的tft屏幕,正好拿来练练手。Step1:在github中找到TFT_eSPI库(网址:docs·master......
  • C# 中 IsNullOrEmpty 和 IsNullOrWhiteSpace使用与区别
    一、概述C#中判断字段或者字符串是否为空或者NULL的时候,我们通常使用IsNullOrEntity和IsNullOrWhiteSpace函数进行判断,但是这两个函数在大部分情况得出的结果是一致的,但是......
  • DRF请求解析编码,响应格式配置方法 及Response init实例化参数
    目录drf之请求Request能够解析前端传入的编码格式需求只接收json格式编码drf之响应Response能够响应的编码格式需求更改响应格式Response源码分析init参数重点drf之请求......
  • k8s namespace kubeDNS
       图中kube-dns只是一个service,但是他对外提供k8s集群内部的dns服务,真正的dnsserver,是coredns这几个podk8snamespace的作用只是提供逻辑上的组件隔离例如pod......
  • ESP32-IDF 在vscode环境搭建
    前言 由于许多的未知原因,我尝试过许多网上教程,在vscode上搭建ESP—IDF环境,但结果是耗费了大把时间,结果还非常不理想。在参考了(一)esp32开发环境搭建(VSCode+ID......
  • esp32链接手机通信
    测试通过#include<WiFi.h>constchar*ssid="@*****";constchar*password="******";//这里是第三方wifi的名称和密码,本机作为sta接入constIPAddressserv......
  • Got bad greeting from SMTP host smtp.163.com, port 587, response [EOF]
    异常信息:GotbadgreetingfromSMTPhost:smtp.163.com,port:587,response:[EOF]使用spring-boot-starter-mail配置:解决办法1:去掉port解决办法2:添加socketFa......