(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),是必備的。