Windows系统下Eclipse搭建ESP32编译环境及安装过程

 更新时间:2021年10月18日 14:29:03   作者:极客飓风  
Ecppse 使用了 ESP-IDF 中的 Makefile 支持。这意味着您需要从创建 ESP-IDF 项目开始。您可以使用 github 中的 idf-template 项目,接下来通过本文给大家介绍Windows系统下Eclipse搭建ESP32编译环境及安装过程,感兴趣的朋友一起看看吧

一、准备软件与环境

  • esp32_win32_msys2_environment_and_toolchain-20181001
  • esp-idf_3.3.1
  • ecppse C/C++
  • python 3.8
  • git

二、安装过程

1. 首先安装python3.8 与git

下载好python3.8 与git的windows安装包一路默认安装即可;

2. esp32_win32_msys2_environment_and_toolchain-20181001解压

将esp32_win32_msys2_environment_and_toolchain-20181001解压至C盘中:

3. 将esp-idf_3.3.1解压至C:\msys32\home\developer\esp\esp-idf(需要自己创建该文件夹)目录中

4. 添加环境变量 IDF_PATH(ESP-IDF 的路径)与 python环境变量 至windows系统中。

此外,还需要进一步安装python依赖包:(C盘目录根据自己安装情况进行更改)

python -m pip install --user -r C:\msys32\home\developer\esp\esp-idf\requirements.txt

5. 安装 Ecppse C/C++。 6. 将github等自己需要的项目解压到c:\msys32\home\developer\esp\文件夹。

三、将项目导入Ecppse

  • Ecppse 使用了 ESP-IDF 中的 Makefile 支持。这意味着您需要从创建 ESP-IDF 项目开始。您可以使用 github 中的 idf-template 项目,或者打开 esp-idf examples 子目录中的示例之一。
  • Ecppse 运行后,选择 File -> Import...
  • 在弹出的对话框中,选择“C/C++”->“Existing Code as Makefile Project”,点击Next。
  • 在下一页上,输入“Existing Code Location”作为您的 IDF 项目的目录。不要指定 ESP-IDF 目录本身的路径(稍后提供)。您指定的目录应包含一个名为“Makefile”的文件(项目 Makefile)。
  • 在同一页面上,在“用于索引器设置的工具链”下选择“跨 GCC”。然后单击完成。

项目属性

  • 新项目将出现在 Project Explorer 下。右键单击项目并从上下文菜单中选择属性。
  • 单击“C/C++ Build”下的“Environment”属性页面。单击“添加...”并输入名称BATCH_BUILD和值1
  • 再次单击“添加...”,然后输入名称IDF_PATH。该值应该是安装 ESP-IDF 的完整路径。Windows 用户可以IDF_PATH从 Windows 资源管理器中复制。
  • 编辑PATH环境变量。保留当前值,并将路径附加到作为 IDF 设置的一部分安装的 Xtensa 工具链,如果这尚未在 PATH 中列出。工具链的典型路径如下所示/home/user-name/esp/xtensa-esp32-elf/bin。请注意,您需要:在附加路径之前添加一个冒号。Windows 用户需要预先C:\msys32\mingw32\bin;C:\msys32\opt\xtensa-esp32-elf\bin;C:\msys32\usr\bin添加PATH环境变量(如果您将 msys32 安装到不同的目录,那么您需要更改这些路径以匹配)。
  • 在 macOS 上,添加一个PYTHONPATH环境变量并将其设置为/Library/Frameworks/Python.framework/Versions/2.7/pb/python2.7/site-packages. 这样一来,在安装步骤中安装了 pyserial 的系统 Python 会覆盖任何内置的 Ecppse Python。

附加说明

如果 IDF_PATH 目录或项目目录位于C:\msys32\home目录外,则必须在 C/C++ 构建属性中提供自定义构建命令:(请注意,此方法可能会显着增加构建时间。)python ${IDF_PATH}/tools/windows/ecppse_make.py

导航到“C/C++ General”->“Preprocessor Include Paths”属性页:

  • 单击“提供商”选项卡
  • 在提供程序列表中,单击“CDT Cross GCC Built-in Compiler Settings”。将“获取编译器规范的命令”更改为.xtensa-esp32-elf-gcc ${FLAGS} -std=c++11 -E -P -v -dD "${INPUTS}"
  • 在提供程序列表中,单击“CDT GCC Build Output Parser”并将“Compiler command pattern”更改为 xtensa-esp32-elf-(gcc|g\+\+|c\+\+|cc|cpp|clang)

导航到“C/C++ General”->“Indexer”属性页:

  • 选中“启用项目特定设置”以启用此页面上的其余设置。
  • 取消选中“允许包含的启发式解析”。启用此选项后,Ecppse 有时无法找到正确的头目录。

导航到“C/C++ Build”->“Behavior”属性页:

  • 选中“启用并行构建”以并行启用多个构建作业。

四、make menuconfig

在Ecppse编译之前,需要首先使用C:\msys32\msys2.exe来构建项目结构,否则直接在Ecppse中编译会报错无法编译。

点击打开msys2,进入项目文件夹:

cd /home/developer/esp/project_esp32_v1

然后执行:

make menuconfig

等待项目构建,会进入界面:

这时需要配置烧录的串口号:选择Serial flasher config 进入之后查看自己ESP32所用的串口并且在此界面下更改:COM9,然后OK,退出配置界面。

五、返回Ecppse编译与烧录

上述步骤四构建成功后,关闭cmd命令行界面,返回ecppse软件:

编译成功后。准备烧录项目:

  • 在 Project Explorer 中右键单击您的项目(重要的是确保您选择的是项目,而不是项目中的目录,否则 Ecppse 可能会找到错误的 Makefile。)
  • 从上下文菜单中选择 Build Targets -> Create...。
  • 输入“flash”作为目标名称。将其他选项保留为默认值。
  • 现在您可以使用 Project -> Build Target -> Build (Shift+F9) 来构建自定义闪存目标,这将编译和闪存项目。

请注意,您需要使用“make menuconfig”来设置串行端口和其他用于闪烁的配置选项。“make menuconfig”仍然需要命令行终端(请参阅适用于您平台的说明。)

烧录成功!

到此这篇关于Windows系统下Eclipse搭建ESP32编译环境的文章就介绍到这了,更多相关Eclipse搭建ESP32编译环境内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • MyBatis-Plus中SimpleQuery查询实现

    MyBatis-Plus中SimpleQuery查询实现

    本文主要介绍了MyBatis-Plus中SimpleQuery查询实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • java按指定编码写入和读取文件内容的类分享

    java按指定编码写入和读取文件内容的类分享

    这篇文章主要介绍了java按指定编码写入和读取文件内容的类,需要的朋友可以参考下
    2014-02-02
  • SpringBoot调用第三方WebService接口的操作技巧(.wsdl与.asmx类型)

    SpringBoot调用第三方WebService接口的操作技巧(.wsdl与.asmx类型)

    这篇文章主要介绍了SpringBoot调第三方WebService接口的操作代码(.wsdl与.asmx类型 ),本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-08-08
  • Java double类型比较大小详解

    Java double类型比较大小详解

    这篇文章主要介绍了Java double类型比较大小,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • Java 中的字符串替换方法之replace, replaceAll 和 replaceFirst示例详解

    Java 中的字符串替换方法之replace, replaceAll 和 rep

    在Java中,字符串的替换是一种常见的操作,特别是在处理文本和格式化输出时,本文将详细讨论这些方法的用法、区别以及示例,感兴趣的朋友一起看看吧
    2024-12-12
  • SpringBoot集成Activiti7工作流引擎的示例代码

    SpringBoot集成Activiti7工作流引擎的示例代码

    本文主要介绍了SpringBoot集成Activiti7工作流引擎的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-11-11
  • Java实现简单碰撞检测

    Java实现简单碰撞检测

    这篇文章主要为大家详细介绍了Java实现简单碰撞检测,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-06-06
  • 简单理解遵循接口隔离原则的Java设计模式编程

    简单理解遵循接口隔离原则的Java设计模式编程

    这篇文章主要介绍了遵循接口隔离原则的Java设计模式编程,针对Java编程中interface接口方面的编写进行约束,需要的朋友可以参考下
    2016-02-02
  • Mybatis执行流程、缓存原理及相关面试题汇总

    Mybatis执行流程、缓存原理及相关面试题汇总

    最近刚学完MyBatis,趁着大好机会,总结一下它的执行流程,面试也爱问这个,下面这篇文章主要给大家介绍了关于Mybatis执行流程、缓存原理及相关面试题的相关资料,需要的朋友可以参考下
    2022-02-02
  • MyEclipse到期破解代码分享

    MyEclipse到期破解代码分享

    前几天有个小伙伴咨询,使用的时候一直说myeclipse已过期,需要购买,如何解决?可以去网上搜搜注册码,但作为程序猿这么做简直太无趣,看看我们自己来解决这个问题
    2014-11-11

最新评论