在windows 下使用eclipse進行編譯和燒寫
阿新 • • 發佈:2017-08-25
desktop 交叉編譯 頁面 開源 操作 調試 process 內置 sta
eclipse IDE是一款開源的前端編程軟件,它提供了編寫,編譯和調試ESP-IDF項目的圖形集成開發環境。
首先在https://www.obeo.fr/en/eclipse-download?INSTALLER-WIN64中選擇需要的對應位數的eclipse。
然後在http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html下載eclipse運行所需的java環境。
在安裝是選擇
點擊安裝jdk環境和eclipse軟件。打開eclipse結果如下
STEP1;
設置Eclipse
一旦新的Eclipse安裝啟動,請按照下列步驟操作:
進口新工程
- Eclipse使用ESP-IDF中的Makefile支持。這意味著您需要先創建ESP-IDF項目。您可以使用github中的idf-template項目,或者在esp-idf examples子目錄中打開一個示例。(這裏選擇上篇文章的helloworld)
- 一旦Eclipse運行,選擇文件 - >導入...
- 在彈出的對話框中,選擇“C / C ++” - >“現有代碼作為Makefile項目”,然後單擊“下一步”。
- 在下一頁上,輸入“現有代碼位置”作為您的IDF項目的目錄。不要指定ESP-IDF目錄本身的路徑(稍後)。
- 在同一頁面上的“用於索引器設置的工具鏈”下,取消選中“僅顯示支持該平臺的可用工具鏈”。
- 在出現的擴展列表中,選擇“Cygwin GCC”。然後單擊完成。
此時打開點擊可以看到新項目將顯示在項目資源管理器下了。
STEP2;
項目屬性
右鍵單擊該項目,然後從上下文菜單中選擇“屬性”
-
點擊“C / C ++ Build”屬性頁面(頂級):
- 取消選中“使用默認構建命令”,然後在自定義構建命令中輸入
python ${IDF_PATH}/tools/windows/eclipse_make.py
- 取消選中“使用默認構建命令”,然後在自定義構建命令中輸入
-
單擊“C / C ++構建”下的“Environment”屬性頁面:
-
- 點擊“Add...”,輸入名稱
BATCH_BUILD
和值1
- 再次點擊“Add...”,輸入名稱
IDF_PATH
。該值應為安裝ESP-PATH的完整路徑。應使用非反斜杠(即C:/ Users / MyUser / Development / esp-idf)的轉斜斜杠來指定IDF_PATH目錄。 - 編輯PATH環境變量。刪除現有值並替換為(3個bin路徑)
C:\Users\li\Desktop\ESP32\msys32\usr\bin;C:\Users\li\Desktop\ESP32\msys32\mingw32\bin;C:\Users\li\Desktop\ESP32\msys32\opt\xtensa-esp32-elf\bin
- 點擊“Add...”,輸入名稱
-
點擊“C/C++ General” -> “Preprocessor Include Paths, Macros, etc.” 完成如下操作,替換
${COMMAND}
行開頭的文本xtensa-esp32-elf-gcc
。 -
點擊勾選“CDT GCC Build Output Parser”,並將完整的編譯器命令模式改為
xtensa-esp32-elf-(g?cc)|([gc]\+\+)|(clang)
- 選擇appply and close,此時看到工程已經不報錯了。
- 在Eclipse之外,打開一個命令行提示符。導航到項目目錄,並運行以配置項目的esp-idf設置。此步驟目前必須在Eclipse之外運行。
make menuconfig,和上篇文章的編譯操作一樣。
- 點擊build進行編譯後,
- 選擇創建一個燒寫flash的文件
-
選中project->Build Target->build對flash進行編譯,將程序燒寫到開發板中。
- 程序燒寫完成,之後按照上篇文章的驗證方法對整個燒寫結果進行驗證。
-
技術細節
-
- xtensa-esp32-elf-gcc交叉編譯器不是 Cygwin工具鏈,盡管我們告訴Eclipse它是一個。這是因為msys2使用Cygwin並支持Cygwin路徑(類型
/c/blah
而不是c:/blah
或c:\\blah
)。特別地,xtensa-esp32-elf-gcc報告給Eclipse的“內置編譯器設置”功能,其內置的include目錄都在/usr/
其中,這是Eclipse否則無法解析的Unix / Cygwin樣式路徑。通過告訴Eclipse編譯器是Cygwin,它使用該cygpath
實用程序在內部解析這些路徑。 - 解析從esp-idf輸出時也會出現同樣的問題。Eclipse解析此輸出以查找頭目錄,但無法解析表單的include目錄,
/c/blah
而不使用cygpath
。Eclipse Build Output Parser使用一個啟發式來確定是否應該調用它cygpath
,但是由於目前未知的原因,esp-idf配置不會觸發它。因此,eclipse_make.py
包裝器腳本用於調用make
然後用於cygpath
處理Eclipse的輸出。
- xtensa-esp32-elf-gcc交叉編譯器不是 Cygwin工具鏈,盡管我們告訴Eclipse它是一個。這是因為msys2使用Cygwin並支持Cygwin路徑(類型
在windows 下使用eclipse進行編譯和燒寫