最近在弄這個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