Windows系統(tǒng)下Eclipse搭建ESP32編譯環(huán)境及安裝過程
一、準(zhǔn)備軟件與環(huán)境
- 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安裝包一路默認(rèn)安裝即可;
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(需要自己創(chuàng)建該文件夾)目錄中

4. 添加環(huán)境變量 IDF_PATH(ESP-IDF 的路徑)與 python環(huán)境變量 至windows系統(tǒng)中。
此外,還需要進(jìn)一步安裝python依賴包:(C盤目錄根據(jù)自己安裝情況進(jìn)行更改)
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\文件夾。
三、將項目導(dǎo)入Ecppse
- Ecppse 使用了 ESP-IDF 中的 Makefile 支持。這意味著您需要從創(chuàng)建 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 目錄本身的路徑(稍后提供)。您指定的目錄應(yīng)包含一個名為“Makefile”的文件(項目 Makefile)。
- 在同一頁面上,在“用于索引器設(shè)置的工具鏈”下選擇“跨 GCC”。然后單擊完成。
項目屬性
- 新項目將出現(xiàn)在 Project Explorer 下。右鍵單擊項目并從上下文菜單中選擇屬性。
- 單擊“C/C++ Build”下的“Environment”屬性頁面。單擊“添加...”并輸入名稱
BATCH_BUILD和值1。 - 再次單擊“添加...”,然后輸入名稱
IDF_PATH。該值應(yīng)該是安裝 ESP-IDF 的完整路徑。Windows 用戶可以IDF_PATH從 Windows 資源管理器中復(fù)制。 - 編輯
PATH環(huán)境變量。保留當(dāng)前值,并將路徑附加到作為 IDF 設(shè)置的一部分安裝的 Xtensa 工具鏈,如果這尚未在 PATH 中列出。工具鏈的典型路徑如下所示/home/user-name/esp/xtensa-esp32-elf/bin。請注意,您需要:在附加路徑之前添加一個冒號。Windows 用戶需要預(yù)先C:\msys32\mingw32\bin;C:\msys32\opt\xtensa-esp32-elf\bin;C:\msys32\usr\bin添加PATH環(huán)境變量(如果您將 msys32 安裝到不同的目錄,那么您需要更改這些路徑以匹配)。 - 在 macOS 上,添加一個
PYTHONPATH環(huán)境變量并將其設(shè)置為/Library/Frameworks/Python.framework/Versions/2.7/pb/python2.7/site-packages. 這樣一來,在安裝步驟中安裝了 pyserial 的系統(tǒng) Python 會覆蓋任何內(nèi)置的 Ecppse Python。
附加說明:
如果 IDF_PATH 目錄或項目目錄位于C:\msys32\home目錄外,則必須在 C/C++ 構(gòu)建屬性中提供自定義構(gòu)建命令:(請注意,此方法可能會顯著增加構(gòu)建時間。)python ${IDF_PATH}/tools/windows/ecppse_make.py
導(dǎo)航到“C/C++ General”->“Preprocessor Include Paths”屬性頁:
- 單擊“提供商”選項卡
- 在提供程序列表中,單擊“CDT Cross GCC Built-in Compiler Settings”。將“獲取編譯器規(guī)范的命令”更改為.
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)
導(dǎo)航到“C/C++ General”->“Indexer”屬性頁:
- 選中“啟用項目特定設(shè)置”以啟用此頁面上的其余設(shè)置。
- 取消選中“允許包含的啟發(fā)式解析”。啟用此選項后,Ecppse 有時無法找到正確的頭目錄。
導(dǎo)航到“C/C++ Build”->“Behavior”屬性頁:
- 選中“啟用并行構(gòu)建”以并行啟用多個構(gòu)建作業(yè)。
四、make menuconfig
在Ecppse編譯之前,需要首先使用C:\msys32\msys2.exe來構(gòu)建項目結(jié)構(gòu),否則直接在Ecppse中編譯會報錯無法編譯。
點擊打開msys2,進(jìn)入項目文件夾:
cd /home/developer/esp/project_esp32_v1
然后執(zhí)行:
make menuconfig

等待項目構(gòu)建,會進(jìn)入界面:

這時需要配置燒錄的串口號:選擇Serial flasher config 進(jìn)入之后查看自己ESP32所用的串口并且在此界面下更改:COM9,然后OK,退出配置界面。

五、返回Ecppse編譯與燒錄
上述步驟四構(gòu)建成功后,關(guān)閉cmd命令行界面,返回ecppse軟件:

編譯成功后。準(zhǔn)備燒錄項目:
- 在 Project Explorer 中右鍵單擊您的項目(重要的是確保您選擇的是項目,而不是項目中的目錄,否則 Ecppse 可能會找到錯誤的 Makefile。)
- 從上下文菜單中選擇 Build Targets -> Create...。
- 輸入“flash”作為目標(biāo)名稱。將其他選項保留為默認(rèn)值。
- 現(xiàn)在您可以使用 Project -> Build Target -> Build (Shift+F9) 來構(gòu)建自定義閃存目標(biāo),這將編譯和閃存項目。
請注意,您需要使用“make menuconfig”來設(shè)置串行端口和其他用于閃爍的配置選項?!癿ake menuconfig”仍然需要命令行終端(請參閱適用于您平臺的說明。)



燒錄成功!

到此這篇關(guān)于Windows系統(tǒng)下Eclipse搭建ESP32編譯環(huán)境的文章就介紹到這了,更多相關(guān)Eclipse搭建ESP32編譯環(huán)境內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
javaweb前端向后端傳值的幾種方式總結(jié)(附代碼)
javaweb是java開發(fā)中的一個方向,下面這篇文章主要給大家介紹了關(guān)于javaweb前端向后端傳值的幾種方式的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-03-03
Java中使用ForkJoinPool的實現(xiàn)示例
ForkJoinPool是一個功能強大的Java類,用于處理計算密集型任務(wù),本文主要介紹了Java中使用ForkJoinPool的實現(xiàn)示例,具有一定的參考價值,感興趣的可以了解一下2023-09-09
mybatis-plus 處理大數(shù)據(jù)插入太慢的解決
這篇文章主要介紹了mybatis-plus 處理大數(shù)據(jù)插入太慢的解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12
SpringBoot+Mybatis-Plus實現(xiàn)mysql讀寫分離方案的示例代碼
這篇文章主要介紹了SpringBoot+Mybatis-Plus實現(xiàn)mysql讀寫分離方案的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03
攔截器獲取request的值之后,Controller拿不到值的解決
這篇文章主要介紹了攔截器獲取request的值之后,Controller拿不到值的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-10-10
Mybatis的@select和@SelectProvider注解方式動態(tài)SQL語句解讀
這篇文章主要介紹了Mybatis的@select和@SelectProvider注解方式動態(tài)SQL語句,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-12-12
Assert.assertEquals的使用方法及注意事項說明
這篇文章主要介紹了Assert.assertEquals的使用方法及注意事項說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-05-05
Java?NIO緩沖區(qū)Buffer基礎(chǔ)教程示例
這篇文章主要介紹了Java?NIO緩沖區(qū)Buffer基礎(chǔ)教程示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-10-10
spring boot 自定義規(guī)則訪問獲取內(nèi)部或者外部靜態(tài)資源圖片的方法
這篇文章主要介紹了spring boot 自定義規(guī)則訪問獲取內(nèi)部或者外部靜態(tài)資源圖片的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-01-01

