ESP8266_03SDK與Makefile的基本用法

ESP8266_01搭建開發環境

ESP8266_02程序的編譯與下載

ESP8266_03SDK與Makefile的基本用法

ESP8266_04管腳控制與軟件定時器

ESP8266_05 ESP8266有幾個串口?

ESP8266_06硬件定時器與IO中斷

ESP8266_07基於PWM的呼吸燈

ESP8266_08基於flash的數據掉電保護

ESP8266_09基於IIC控制的OLED屏幕

ESP8266_10 ESP8266的STATION模式

ESP8266_11 ESP8266的UDP廣播

ESP8266_12 ESP8266客戶端模式下的TCP通信

ESP8266_13服務器端模式下的TCP通信

ESP8266_14 SOFTAP模式下的服務器端和客戶端

ESP8266_15天氣預報之TCP的GET操作

ESP8266_16天氣預報之JSON數據的生成與解析

ESP8266_17簡單網絡時間協議-SNTP

ESP8266_18 MQTT協議接入ONENET平臺

ESP8266_19MQTT協議接入ONENET平臺_訂閱主題

ESP8266_20 基於ONENET平臺的數據上傳之TCP的POST操作

ESP8266_21基於ESP8266的一鍵配網

ESP8266_22基於自身ADC的電壓採樣

ESP8266_23基於硬件定時器的紅外遙控器解碼

         正文開始之前的閒扯:

         項目原因,沒辦法保證一天一更。昨天甲方爸爸臨時讓我改程序,還想讓我通宵趕出來,我是那麼容易屈服的人嗎?

         有人問用什麼板子合適,還有的直接問我買。這個,建議大家買個二三十的模塊就行,可以是NodeMcu,也可以是安信可的模塊加一個底板,沒必要買太貴的。

         還有的人手裏拿着某某物聯網平臺的板子,問能不能用,只要是基於ESP8266的,都可以,但是你要找到板子配套的原理圖。

         好了,下面是正文。

 

         先說一下什麼是SDK?

         定義(轉自網絡):一般都是一些軟件工程師爲特定的軟件包、軟件框架、硬件平臺、操作系統等建立應用軟件時的開發工具的集合。

         再看一下樂鑫內部對SDK的描述:ESP8266 Software Development Kit (SDK) 是樂鑫爲開發者提供的物聯網 (IoT) 應用開發平臺,包括基礎平臺以及上層應⽤開發示例,如智能燈、智能開關等。 SDK 的基礎平臺按照是否基於操作系統可分爲:non-OS 和 RTOS 兩種版本。

         簡單來說,這是一個已經搭建好的工程框架,包含完整的源文件和頭文件。同時,提供了一些例程供用戶參考。

 

         那麼,SDK在哪裏下載?

         找廠家!芯片廠家是樂鑫,所以去樂鑫官網找。這裏爲了節省時間,我直接放上鍊接:

         https://www.espressif.com/en/support/download/sdks-demos

         注:本文寫於2019年7月12日星期五,當前的ESP8266 NONOS SDK已經更新到了3.0.0 後續的教程也主要基於NONOS的版本。

         下載解壓後,可以看到下面幾個文件:

         接下來,需要進行一些操作,然後才能導入到AiThinker_IDE裏。其實下面的操作主要參考安信可的網址:https://wiki.ai-thinker.com/ai_ide_use

         但由於安信可的教程比較舊,所以這裏做了一些調整。

1. 將 sdk 目錄下的 driver_lib 重命名爲 app

2. 拷貝 \examples\IoT_Demo 下的所有文件到剛纔的 app 目錄(提示覆蓋則確認),完成後目錄結構如下:

3. 將ESP8266_NONOS_SDK/third_party       這個文件夾刪掉。

 

接下來,我們啓動AiThinker_IDE,將項目導入

導入項目

1. 選擇 File→Impor

t

 

2. 點開C/C++分支,並選中Existing Code as Makefile Project

 

3. 去除C++支持,選中 Cygwin GCC

點擊Browser,選中ESP8266_NONOS_SDK-3.0.0所在的目錄

4. 點擊 Finish 完成ESP8266_NONOS_SDK-release-v3.0.0_01的導入

如下圖:

 

編譯項目

鼠標選中項目名稱,點擊右鍵出現菜單:

 

Build Project :編譯項目

Clean Project:清理項目

選中編譯項目,控制檯輸出如下圖即編譯成功

 

         真的能編譯成功?         那是不可能的。

         安信可官網說的是能編譯成功,但針對的可能是比較老的SDK版本,如果你使用3.0版本的SDK,肯定是會報錯的。報錯如下:

         打開根目錄下的makefile文件,找到第29行,把等號後面的值改掉。

         SDK3.0裏面寫的是0,改成多少?根據你模塊的FLASH大小來修改:如果是8MBIT,改爲2;如果是16MBIT,改爲3;如果是32MBIT,改爲4.

         這個關係不用背下來,makefile文件向下翻到第82行,你會看到它有一個說明:

         它這裏寫的值的單位是BYTE。改完之後,再次編譯,你會發現編譯成功了:

         接下來,思考另一個問題:爲什麼有人生成的bin文件是這樣的?

         其實,安信可官網曾經說過。可生成兩種形式的bin文件,一種是不支持在線升級的,一種是支持在線升級的。剛纔這個圖,就是支持在線升級的。那麼,如何生成這種bin文件?

         打開根目錄下的makefile文件,找到第25、26行。當第25行爲new的時候,如果第26行是1,那麼生成的是支持在線升級的,如果是0,那就不支持在線升級。

         除此之處,當我們使用一些特殊功能的源文件的時候,也需要在Makefile裏添加相應的庫文件。所以,這裏建議大家,多看幾遍Makefile文件,不需要完全看懂,但要知道基本用法。

         至此,關於ESP8266的環境搭建、程序下載、固件配置,基本用法都說了一下。後面,逐步開始敲代碼的過程。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章