文章目录

  • 一 前言
  • 二 CMake 和 Make 编译差异?
  • 二 事先安装好官方 ESP-IDF 工具安装器
  • 三 开始设置
  • 第一步:获取 ESP8266 Master 分支代码;
  • 3.1.1 【方式一】用博主提供的方式拉取最新代码
  • 3.1.2 【方式二】用官方方式拉取最新代码
  • 第二步:设置 IDF_PATH 变量和编译工具链路径;
  • 第三步:找到关键三要素
  • 第四步:开始编译
  • 四 集成在 VS Code编辑器终端
  • 五 其他问题


一 前言

 

esp32s3 编程_8266 cmake


    也许你会问:您都写了这么多ESP8266文章,为何还停留在这个环境搭建博文,看你的文章,都是很浅薄的,没有内在干货!

    咳咳,问到这个点,我也在反思自己,物联网的应用也搞得七七八八了,那么我应该还要学什么?我一直认为:技术需要沉淀的,厚积而爆发; 我这半年在研究 SpringBoot 以及蓝牙mesh,还有最近的要开源 安信可腾讯物联方案&&微信小程序配网/控制;

    一直想以最简单的方式,给大家快速入门物联网世界,所以,我在公司开源了安信可腾讯物联方案之后,会全力做些入门视频奉献给大家!希望大家多多关注我的博客!

二 CMake 和 Make 编译差异?

esp32s3 编程_8266 window环境_02

    CMake是一种跨平台编译工具,比make更为高级,使用起来要方便得多。CMake主要是编写CMakeLists.txt文件,然后用cmake命令将CMakeLists.txt文件转化为make所需要的makefile文件,最后用make命令编译源码生成可执行程序或共享库(so(shared object))。

    以下参考此篇文章,仅供参考;

  • 1.gccGNU Compiler Collection(就是GNU编译器套件),也可以简单认为是编译器,它可以编译很多种编程语言(括C、C++、Objective-C、Fortran、Java等等)。
  • 2.当你的程序只有一个源文件时,直接就可以用gcc命令编译它。
  • 3.但是当你的程序包含很多个源文件时,用gcc命令逐个去编译时,你就很容易混乱而且工作量大
  • 4.所以出现了make工具 make工具可以看成是一个智能的批处理工具,它本身并没有编译和链接的功能,而是用类似于批处理的方式—通过调用makefile文件中用户指定的命令来进行编译和链接的。
  • 5.makefile是什么?简单的说就像一首歌的乐谱,make工具就像指挥家,指挥家根据乐谱指挥整个乐团怎么样演奏,make工具就根据makefile中的命令进行编译和链接的。
  • 6.makefile命令中就包含了调用 gcc(也可以是别的编译器)去编译某个源文件的命令。
  • 7.makefile在一些简单的工程完全可以人工手下,但是当工程非常大的时候,手写makefile也是非常麻烦的,如果换了个平台makefile又要重新修改。
  • 8.这时候就出现了Cmake这个工具,cmake就可以更加简单的生成makefile文件给上面那个make用。当然cmake还有其他功能,就是可以跨平台生成对应平台能用的makefile,你不用再自己去修改了
  • 9.可是cmake根据什么生成makefile呢?它又要根据一个叫CMakeLists.txt文件(学名:组态档)去生成makefile

看了这么多文字,是否觉得: CMake的出现,会加快 Make 的编译速度? 个人理解,跨平台的CMake 后生成的 Makefile 文件更容易被 Make 编译,从而提高编译速度!如果您觉得另有原因,欢迎留言点评!

二 事先安装好官方 ESP-IDF 工具安装器

     ESP8266 从传统的 Make 编译到去年支持 CMake 编译,无疑是提高一个档次的编译速度,前面文章我以及给大家介绍了如何在ESP32的编译,这次给大家带来如何在 ESP8266上实现;

     首先要安装官方ESP-IDF工具安装器哦,可以参考我这篇文章:

《分享下如何在window下使用CMake编译ESP32,编译速度提高传统 make 编译一个档次》

     或者您时间允许,可以观看下面的官方视频!


【IOT College】ESP-IDF 环境搭建 Windows



三 开始设置


     因为目前2020/7/29ESP8266 Master 分支没有 export.bat 文件,所以处理起来没像 ESP32 那么方便,也体现了乐鑫的主打方向是在 ESP32往后的产品了!


第一步:获取 ESP8266 Master 分支代码;

3.1.1 【方式一】用博主提供的方式拉取最新代码

     众所周知,乐鑫的开放源码都放在GitHub,而GitHub又被微软收购了,这一年的访问下载速度慢得乌龟一样,哈哈!所以,我克隆一份放在了国内的码云网站,这样就保证我们拉取代码非常快!

PS:这份同步乐鑫源仓库的工作,我会一直保持下去!

sudo git clone --recursive https://gitee.com/xuhongv/ESP8266_RTOS_SDK.git
3.1.2 【方式二】用官方方式拉取最新代码

     带子模块递归方式拉取GitHub,慢慢等吧!

sudo git clone --recursive  https://github.com/espressif/ESP8266_RTOS_SDK.git

第二步:设置 IDF_PATH 变量和编译工具链路径;

  • 设置 IDF_PATH 环境变量,取值为您克隆 ESP8266 SDK 的地址;
  • esp32s3 编程_CMake_03

  • 还需要手动下载编译工具链路径,下载地址点我,注意务必用 ZipRar 管理员身份解压,否则会造成文件丢失!之后把解压后的目录的bin目录放在环境变量PATH里面!
  • esp32s3 编程_CMake_04


第三步:找到关键三要素

     第1要素:找到前面的 ESP-IDF 工具安装器的安装路径下面的idf_cmd_init.bat文件,一般在C盘:

C:\Users\87018\.espressif\idf_cmd_init.bat

     第2要素:然后,再找到我们安装 Python3.8 的路径,比如我的:

C:\Users\87018\AppData\Local\Programs\Python\Python38

     第3要素:最后,找到我们安装 git 的路径,比如我的:

C:\SoftWare\Git\cmd

第四步:开始编译

     在集成好前面的三要素之后,在刚刚拿到的 ESP8266 SDK 路径下面打开 CMD窗口,之后依次输入:${第1要素}    ${第2要素}   ${第3要素},比如我的:

C:\Users\87018\.espressif\idf_cmd_init.bat  C:\Users\87018\AppData\Local\Programs\Python\Python38  C:\SoftWare\Git\cmd

当出现以下输出,说明成功啦:

Done! You can now compile ESP-IDF projects.
Go to the project directory and run:

  idf.py build

     如下动图操作:

esp32s3 编程_8266 window环境_05


     最后的编译下载与ESP32的一样,常见的指令:

  1. idf.py menuconfig:进去面板设置。
  2. idf.py all:编译全部。
  3. idf.py app:编译应用程序。
  4. idf.py clean:清空工程的编译物。
  5. idf.py flash:烧录固件。
  6. idf.py erase_flash:清空设备里面的固件。
  7. idf.py monitor:串口监听设备打印信息。

四 集成在 VS Code编辑器终端

     单单仅有环境成功是不行的,我们还需要集成进去编辑器里面去,这里以 VS Code为例:

     点击Alt+Shift+P,在弹框中输入setting,选择打开设置,添加以下内容:

{
    "terminal.integrated.shell.windows": "C:\\Windows\\system32\\cmd.exe",
    "terminal.integrated.shellArgs.windows": [
        "/k",
        "C:\\Users\\87018\\.espressif\\idf_cmd_init.bat",
        "C:\\Users\\87018\\AppData\\Local\\Programs\\Python\\Python38",
        "C:\\SoftWare\\Git\\cmd"
    ],
}

     之后,打开终端 Alt+Shift+`,如下所示则说明成功集成到 VS Code编辑器的终端去了!

esp32s3 编程_esp32s3 编程_06


五 其他问题

  • Q1: 提示错误 Python requirements are not satisfied
Checking if Python packages are up to date...
The following Python requirements are not satisfied:
click>=5.0
pyserial>=3.0
future>=0.15.2
cryptography>=2.1.4
pyparsing>=2.0.3,<2.4.0
pyelftools>=0.22
Please refer to the Get Started section of the ESP-IDF Programming Guide for setting up the required packages.
Alternatively, you can run "C:\\Users\\87018\\AppData\\Local\\Programs\\Python\\Python38\\python.exe -m pip install --user -r E:\\Espressif\\ESP8266_RTOS_SDK\\requirements.txt" for resolving the issue.

解决方法 :按照其提示,运行这个指令即可: C:\\Users\\87018\\AppData\\Local\\Programs\\Python\\Python38\\python.exe -m pip install --user -r E:\\Espressif\\ESP8266_RTOS_SDK\\requirements.txt

esp32s3 编程_8266 cmake_07