本文轉載自:http://wiki.ai-thinker.com/ai_ide_use
關於 Problems 報錯
注意:Eclipse 只是一個代碼編寫工具,它並不能讀取 makefile 里面的一些配置,甚至它會讀取到 cygwin 下同名稱的頭文件。
針對該現象引起的報錯,我們建議用戶在使用該 IDE 時,直接將 Problems 欄目關掉,因為該提示並不准確,我們主要關注的信息應該為 Console 欄目下的輸出。(第一條 Console 報錯最重要!)
示例1:ESP8266 NONOS 使用
准備
我們以ESP8266_NONOS_SDK_V1.5.4為例 (使用樂鑫原廠固件,需要將 driver_lib 和 examples/IoT_Demo 下的文件拷貝到 app目錄下 ,后續步驟與下面一致。)
下載后解壓到合適的目錄下
打開 ESP8266IDE.exe
導入項目
1. 選擇 File→Import
2. 點開C/C++分支,並選中Existing Code as Makefile Project
3. 去除C++支持,選中 Cygwin GCC
點擊Browser,選中esp_iot_sdk_v1.5.2所在的目錄
4. 點擊 Finish 完成esp_iot_sdk_v1.5.2的導入
如下圖:
編譯項目
鼠標選中項目名稱,點擊右鍵出現菜單:
Build Project :編譯項目
Clean Project:清理項目
選中編譯項目,控制台輸出如下圖即編譯成功
注意:Build Project 前最好先 Clean Project,以防止出錯
結束
示例2:ESP8266_RTOS_SDK 使用
以下內容適用於樂鑫默認方式,您可以直接下載ESP8266_RTOS_SDK_V1.5.0 ,該示例工程合並了用戶工程和SDK工程,可以直接按照 NONOS 版本步驟導入。
准備
首先我們下載 ESP8266_RTOS_SDK
下載后解壓到合適的目錄下,我們以 D:\Aithinker\ESP8266_RTOS_SDK 為例:
ESP8266的FreeRTOS SDK,采用了SDK和工程文件夾分離的方式,所以我們需要手動創建一個 app 目錄。
1. 將 sdk 目錄下的 driver_lib 重命名為 app
2. 拷貝 /examples/project_template 下的所有文件到剛才的 app 目錄(提示覆蓋則確認),完成后目錄結構如下:
3. 將 ESP8266_RTOS_SDK/third_party/makefile 重命名為 makefile.bak ,以防止編譯時報錯,雖然不影響編譯但是強迫症患者不能忍啊。。。
接下來,我們啟動 ESP_IDE,將項目導入 Eclipse
導入項目
1. 選擇 File→Import
2. 點開C/C++分支,並選中Existing Code as Makefile Project
3. 去除C++支持,選中 Cygwin GCC
點擊Browser,選中ESP8266_RTOS_SDK
4. 點擊 Finish 完成ESP8266_RTOS_SDK的導入
完成后如下圖:
配置項目
因為分離了sdk和project目錄
所以編譯之前必須先指定一個 SDK_PATH 和 BIN_PATH
修改 ESP8266_RTOS_SDK/app 目錄下的 makefile,添加以下內容
parent_dir:=$(abspath $(shell pwd)/$(lastword $(MAKEFILE_LIST))) parent_dir:=$(shell dirname $(parent_dir)) parent_dir:=$(shell dirname $(parent_dir)) SDK_PATH= $(parent_dir) BIN_PATH=$(SDK_PATH)/bin
編譯默認項目
鼠標選中 ESP8266_RTOS_SDK_V1.5.0,點擊右鍵出現菜單:
Build Project :編譯項目
Clean Project:清理項目
選中編譯項目,控制台輸出如下圖即編譯成功
注意:Build Project 前最好先 Clean Project,以防止出錯
編譯 Hello World
1. 刪除 sample_lib 文件夾
2. 修改 ESP8266_RTOS_SDK/app/makefile,將 makefile 中的 sample_lib 替換為 driver ,將 libsample_lib.a 替換為 libdriver.a
3. 因為 driver/i2c_master.c 編譯時會報錯,因此需要在該文件內添加一些頭文件支持
4. ESP8266 默認打印端口為串口 1,需要進行一些初始化方可使用,我們在 user_main.c 的 user_init() 函數中調用 uart_init_new() 函數
5. 修改 ESP8266_RTOS_SDK/Makefile,使其支持boot模式
6. 再次編譯項目,至此可以參考 如何為 ESP 系列模組燒錄固件 進行固件的下載
7. 運行結果如下:
示例3:ESP31B_RTOS_SDK 使用
示例4:ESP32_IDF 使用
准備
首先,打開 cygwin.bat
執行下列指令以使用 git 下載esp-idf 和 esp-idf-template
cd /cygdrive/d/ESP32 (進入你的工程目錄) git clone --recursive https://github.com/espressif/esp-idf.git (必須添加--recursive 屬性,否則無法全部拉取所有模塊) cd esp-idf git clone https://github.com/espressif/esp-idf-template app (將 esp-idf-template clone到 esp-idf/app 下) git submodule update --init (強制拉取所有子模塊,防止上一步驟遺漏)
若 git 下載較慢或失敗,可下載http://pan.baidu.com/s/1jIRotBg(已打包 esp-idf 和 esp-idf-template,下載后請執行 git pull 以進行更新),可省略上面 git 步驟。
打開 ESP_IDE.exe,配置正確的 esp-idf 路徑,並點擊【OK】打開 eclipse
導入項目
1. 選擇 File→Import
2. 點開C/C++分支,並選中Existing Code as Makefile Project
3. 去除C++支持,選中 Cygwin GCC
點擊Browser,選中 esp-idf 所在的目錄
4. 點擊 Finish 完成 esp-idf 的導入
如下圖:
配置項目
因為 make 只能從 app 目錄啟動,故我們需要修改整個項目 build 的位置
右鍵項目→Properties ,單擊 C/C++ Build,修改如下圖
此時,已經具備了編譯的基礎,下面我們配置 make menuconfig 和 make flash 兩條指令
首先新建target,右鍵項目名稱→Make targets ,選擇 Creat
給該 Target 新建一個名稱
在彈出的頁面中取消勾選 Use builder setting ,
取消勾選 Same as the target name 並清空 Make target 的內容
在下面command 中輸入 mintty.exe -e make menuconfig
點擊 OK 保存
重復上一步驟,新建一個 DownLoad 的 Target ,
在彈出的頁面中取消勾選 Use builder setting ,
取消勾選 Same as the target name 並清空 Make target 的內容
在下面command 中輸入 make flash
點擊 OK 保存
選中項目,按下快捷鍵 Shift + F9,彈出剛才新建的兩個 Target
鼠標選中需要編譯的 Target, 點擊 Build 即可實現在 Eclipse 中下載和配置 idf
編譯項目
首次使用請先執行 make menuconfig
鼠標選中項目名稱,點擊右鍵出現菜單:
Build Project :編譯項目
Clean Project:清理項目
選中編譯項目,控制台輸出如下圖即編譯成功
注意:Build Project 前最好先 Clean Project,以防止出錯































