(NodeMCU开发)篇1:搭建NodeMCU开发环境,HelloWorld
CONTENTS
前言
目前,关于NodeMCU的开发环境各不一样,支持在不同平台不同语言进行开发。这里讲的主要是C语言环境的搭建。同样使用C语言搭建开发方式也有很多,但是本质上都是一样的。
在这里,收集了各种环境开发方式,对其进行整理归类,然后选了其中的一种综合方便与更接近底层的方式进行开发。
名词解释
-
AiThinkerIDE: 安信可 ESP 系列一体化开发环境(基于 Windows + Cygwin + Eclipse + GCC 的综合 IDE 环境)。将window环境封装起来成为一个IDE。<注:在版本的后期将Cygwin换成MSYS2了>
-
GNU兼容环境 : 这里说的GNU环境是指NodeMCU在编译的时需要的编译环境。有Cygwin、MSYS2。提供了GUN运行环境,能让windows运行make命令。
-
GNU:一个技术组织,运动,计划。—— 软件开源。GNU/Linux 的意思是上层应用程序是GUN体系(遵循GPL标准的一套)。
-
GPL(GeneralPublicLicense): GUN通用公共授权。
-
编译工具链xtensa-lx106-elf:
因为ESP8266功能太弱,不足以支持开发工作,所以需要在其他平台上进行开发。现在我们就要在树莓派上将ESP8266的程序代码编译链接成ESP8266可执行的文件,再将编译好的文件烧写到ESP8266上运行,这个过程就是交叉编译,交叉编译所需的软件工具叫做工具链toolchain。
我们需要的工具链是一个lx106编译器,可以为各种以lx106为内核的器件开发程序,也包括ESP8266。
因为树莓派资源也有限,还有前面说过的树莓派操作系统本身的问题,我们没有采用乐鑫最新的编程架构ESP-IDF。而使用较老的ESP8266开发工具esp-open-sdk为树莓派编译一个工具链xtensa-lx106-elf。(来自:树莓派安装ESP8266_SDK开发环境)
GNU兼容环境 :
- MSYS2:MSYS2是一组工具和库,MSYS2 为 GCC、mingw-w64、CPython、CMake、Meson、OpenSSL、FFmpeg、Rust、Ruby 等提供最新的本机构建,仅举几例。
👉🏼 offical链接 - Cygwin
Cygwin就是在Windows中增加了一个中间层——兼容POSIX的模拟层,并在此基础上构建了大量Linux-like的软件工具。再来解释本文开头的回答,如下图,POSXI兼容环境包括以下两部分:
- cygwin1.dll,作为实现POSIX系统调用的模拟层,可原生运行在Windows中;
- 在cygwin1.dll之上构建的大量函数库、应用程序,如libc、zlib、bash、gcc、vim、awk、sed、git等等,与UNIX/Linux几乎等同*。
Cygwin将cygwin1.dll、函数库、应用程序等文件按照UNIX/Linux的目录树架构进行组织存放。
优点:
- 首先自然是近乎一致的UNIX/Linux体验;
缺点:
总结:提供了一个环境,一个统一的环境。
开发
开发方式
NodeMCU的环境有很多种方式
- Arduino开发
- Lua开发
- C 开发
方案 | 方案说明 | 支持的SDK | 参考链接 |
---|---|---|---|
使用AiThinkerIDE(版本:V1.5.2) | 需个人将编译文件进行烧录 | NONOS-SDK3.0 RTOS-SDK3.0 |
- [1] 安信可官方-csdn |
使用AiThinkerIDE(版本:V0.5)中的Cygwi环境 + 编译工具链xtensa-lx106-elf + IED(eclipse/VSCode代码编辑工具) | NONOS-SDK2.0 RTOS-SDK2.0 |
- [1] Esp8266学习之旅 - 半颗心脏 - [2] 如何在Visual Studio Code上搭建ESP8266开发环境.md <推荐> |
|
使用GNU兼容环境 + 编译工具链xtensa-lx106-elf + IDE(eclipse/VSCode代码编辑工具) | - [1] 《ESP8266 SDK入门指南》—— 搭建环境部分--使用虚拟机 | ||
使用GNU兼容环境 + 编译工具链xtensa-lx106-elf + IDE(eclipse/VSCode代码编辑工具) | 整合烧录--python脚本实现 | NONOS-SDK3.0 RTOS-SDK3.0 |
- [1] 官方:ESP8266 RTOS SDK Programming Guide——how to use ESP8266_RTOS_SDK (ESP-IDF Style) - [2] 官方-github - [3] 复现官方的教程1:搭建 ESP8266 开发环境(windows)- CSDN - [4] 复现官方的教程2:搭建ESP8266 RTOS的VS Code开发环境 (个人根据此复现成功) - [5] 跟教程2一样,但更详细聊聊ESP8266的SDK(ESP8266_RTOS_SDK v3.3 环境搭建)——cnblog |
树莓派开发 | - 树莓派安装ESP8266_SDK开发环境 |
开发方式讲解
这里讲的主要是C语言环境的搭建。
总体过程:NodeMCU开发需要在GNU/Liunx下进行编译。输出文件进行烧录。
也就是说在windows中需要构建这样的GNU编译环境,构建环境的方法是可以是使用虚拟机、使用软件(例如:Cygwin、MSYS2等),总而言之就是构建这样一个GNU兼容环境。
以上的C开发过程中都是先构建这样一个GNU兼容环境,其中AiThinkerIDE里包含了GNU兼容环境。只要有这环境就可以对NodeMCU中的工程文件进行编译输出二进制文件。再使用烧录软件进行烧录。
编译工具链xtensa-lx106-elf的用途,本质就是一个makefile文件,是针对x106芯片的,是进行交叉编译的过程中所需的软件工具(工具链toolchain),是必备的。