esp8266 SDK開發之環境搭建

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

過程能夠分爲兩步:
一、下載、編譯SDK
二、配置Eclipes

1、下載、編譯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中的項目。

咱們直接在命令行進行操做:php

    #安裝一些依賴工具
    $ 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最新版。
這時須要把編譯器路徑加入到系統路徑中,執行:python

    #此命令只做用於當前控制檯
    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目錄下,否則編譯會失敗。
複製完以後路徑以下:linux

    /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固件。

編譯完成後有以下輸出:git

    !!!
    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上的一鍵燒錄工具,你們百度一下就能搜到。github

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

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

 

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

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

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

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

 

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

五、建立編譯目標,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

相關文章
相關標籤/搜索