esp8266 SDK開發之環境搭建


最近在弄這個WiFi模塊,發現網上SDK開發方面的資料很少,發現了一套視頻教程,不過主講人的講課方式實在受不了。對基於SDK開發感興趣的同學可以通過本帖在Ubuntu系統上通過Eclipes搭建開發環境。

過程可以分為兩步:
1、下載、編譯SDK
2、配置Eclipes

一、下載、編譯SDK

esp8266的sdk有兩種,分別是ESP8266_RTOS_SDK和ESP8266_NONOS_SDK,這兩者的區別在於RTOS_SDK有一個叫做RTOS的操作系統,采用了NONOS_SDK部分接口,不支持AT指令。
詳見:Q: What is the difference between RTOS and the non-OS SDK?

這里我們使用NONOS_SDK,下載地址:esp-open-sdk

里邊集成了NONOS_SDK的編譯器和燒錄工具等,也可用此編譯器編譯ESP_RTOS_SDK中的項目。

我們直接在命令行進行操作:

    #安裝一些依賴工具
    $ sudo apt-get install make unrar-free autoconf automake libtool gcc g++ gperf \
        flex bison texinfo gawk ncurses-dev libexpat-dev python-dev python python-serial \
        sed git unzip bash help2man wget bzip2
    #如果ubuntu版本高於14.04可能還需要此工具
    $ sudo apt-get install libtool-bin
    #使用git克隆項目到本地,這里假設項目克隆到了/home/mmmmar/esp-open-sdk
    $ git clone --recursive https://github.com/pfalcon/esp-open-sdk.git
    #進入項目文件夾
    $ cd /home/mmmmar/esp-open-sdk
    #編譯
    $ make STANDALONE=y

注意:在SDK的編譯過程中需要聯網下載一些依賴庫並編譯,而且下載過程很容易失敗,我在下載時掛代理才成功的。
如果編譯失敗可以查看esp-open-sdk/crosstool-NG/build.log 查看崩潰信息,一般都是下載失敗。

編譯成功后會在esp-open-sdk文件夾出現xtensa-lx106-elf  esptool  ESP8266_NONOS_SDK三個文件夾,分別是編譯器,燒錄工具,NONOS_SDK最新版。
這時需要把編譯器路徑加入到系統路徑中,執行:

    #此命令只作用於當前控制台
    export PATH=/home/mmmmar/esp-open-sdk/xtensa-lx106-elf/bin:$PATH

這時就可以編譯esp-open-sdk/ESP8266_NONOS_SDK/examples中的示例工程了。
需要注意,要把ESP8266_NONOS_SDK文件夾復制到esp-open-sdk文件夾的外部,假如我們要編譯examples文件夾中的at項目,我們需要把at文件夾復制到ESP8266_NONOS_SDK目錄下,不然編譯會失敗。
復制完之后路徑如下:

    /home/mmmmar
    ├── ESP8266_NONOS_SDK
    │   ├── at
    │   ├── examples
    └── esp-open-sdk

 
復制完之后就可以編譯at(我們最初用的AT指令就是這個項目,不過我們只能添加新的AT命令)項目了。
執行at文件夾下的gen_misc.sh,這里需要輸入一些參數。
對於那些參數我也不是特別清楚,我的esp-01(黑色)選擇的是:
boot version      = none
spi size and map =   1024KB( 512KB+ 512KB)

其余默認。黑色的版的esp-01有1MB的存儲空間,而藍色版只有512KB,不能使用最新版的AT固件。

編譯完成后有如下輸出:

    !!!
    No boot needed.
    Generate eagle.flash.bin and eagle.irom0text.bin successully in folder bin.
    eagle.flash.bin-------->0x00000
    eagle.irom0text.bin---->0x10000
    !!!

現在可以把ESP8266_NONOS_SDK/bin目錄中生成的固件燒錄到開發板中去了,可以使用esp-open-sdk/esptool/esptool.py
不過我用的是windows上的一鍵燒錄工具,大家百度一下就能搜到。

在配置一欄里需要填寫各個二進制文件的燒錄地址,這里附上官方文檔里說明:

詳見:2a-esp8266-sdk_getting_started_guide_en.pdf
至此,整套編譯工具燒錄工具就可以使用了,接下來介紹如何配置Eclipes

 

二、配置Eclipes
其實直接用vim+YCM也行,不過集成開發環境還是用的舒服一點。這里用的Eclipes是eclipse-cpp-neon-2-linux-gtk

1、File-New-Makefile Project From Existing Code
2、輸入項目名稱,路徑,語言類型為C,編譯器選none

3、添加頭文件搜索路徑,Project-Properties-C/C++ General-Preprocessor Include Paths,Macros etc

添加圖中兩處include文件夾路徑
注意在添加esp-open-sdk/xtensa-lx106-elf/xtensa-lx106-elf/include時勾選[Treat as build-in]  [ Contains system headers]

 

4、添加環境變量,Project-Properties-C/C++ Build-Environment,點擊Add

5、創建編譯目標,Project-Build Targets-Create

其中,Build command中填入的命令就等於我們執行gen_misc.sh並輸入參數,詳見示例工程中的!!!readme!!!.txt文件

6、編譯目標,Project-Build Targets-Build

以上,完成了Eclipes所有的配置,附圖一張

 

 

附加:

   /****************************************
    ESP8266_NONOS_SDK/include/c_types.h
    #define TRUE true
    #define FALSE flase
    這兩個宏定義在Eclipes的代碼提示中會報錯,可以修改一下
    ****************************************/
    #define TRUE   1
    #define FALSE  0

ubuntu上燒錄方法:

使用esp-open-sdk/esptool/esptool.py,執行如下命令

#這里的參數需要根據自己的需求改變,詳見esp-open-sdk/esptool/README.md
sudo ./esptool.py --port /dev/ttyUSB1 write_flash 0x00000 eagle.flash.bin 0x10000 eagle.irom0text.bin

燒錄時要確保接線牢固,不然可能傳輸過程中會出現數據丟失或更改導致固件驗證失敗

 

參考:
官網文檔
Free and open (as much as possible) integrated SDK for ESP8266/ESP8285 chips

Latest ESP8266 SDK based on FreeRTOS

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM