1. 程式人生 > >ESP8266學習筆記(1)——搭建環境、編譯燒寫

ESP8266學習筆記(1)——搭建環境、編譯燒寫

一、搭建環境

1.1 資料準備

《ESP8266 SDK 入門指南》

1.2 安裝安信可ESP8266_IDE(可選)

1.3 安裝VirtualBox

1.4 安裝ESP8266_lubuntu映象檔案

1.在 VirtualBox 主選單中選擇 File > Import Appliance…

2.選擇需要匯入的映象檔案,如: C: \ESP8266_lubuntu_20141021.ova ,單擊 Next

3.單擊 Import 確認匯入。

Lubuntu使用者:ESP8266 密碼:espressif

1.5 設定共享資料夾

1.新建 D:\VM\share 資料夾

2.在主選單中選擇 Machine > Settings > Shared Folders…

3.在 Machine Folders 中選擇虛擬機器的共享資料夾。如: D:\VM\share

4.執行掛載 shell 指令碼 ./mount.sh

二、編譯

2.1 下載ESP8266 SDK

ESP8266 Software Development Kit (SDK) 是樂鑫為開發者提供的物聯網 (IoT) 應用開發平 臺,包括基礎平臺以及上層應用開發示例,如智慧燈、智慧開關等。SDK 的基礎平臺按照是否基於作業系統可分為: Non-OS

RTOS 兩種版本。

2.1.1 Non-OS SDK

Non-OS SDK 是不基於作業系統的 SDK,提供 IOT_Demo 和 AT 的編譯。 Non-OS SDK 主要使用 定時器 和 回撥函式 的方式實現各個功能事件的巢狀,達到特定條件下觸發特定功能函式的目的。 Non-OS SDK 使用 espconn 介面實現網路操作,使用者需要按照 espconn 介面的使用規則進行軟體開發。

bin:編譯生成的 BIN 檔案,可直接下載到 Flash 中。

documents: SDK 相關的文件或連結。

driver_lib:外設驅動的庫檔案,如: UART、 I2C 和 GPIO 等。

examples:可供使用者二次開發的示例程式碼,如 IoT Demo 等。

include: SDK 自帶標頭檔案,包含了使用者可使用的相關 API 函式及其他巨集定義,使用者無需修改。

ld:連結時所需的指令碼檔案,若無特殊需求,使用者無需修改。

lib: SDK 提供的庫檔案。

tools:編譯 BIN 檔案所需的工具,使用者無需修改。

2.1.2 RTOS SDK

RTOS SDK 基於 FreeRTOS,在 Github 上開源。

• RTOS 版本 SDK 使用 FreeRTOS 系統,引入 OS 多工處理 的機制,使用者可以使用 FreeRTOS 的標準介面實現資源管理、迴圈操作、任務內延時、任務間資訊傳遞和 同步等面向任務流程的設計方式。具體介面使用方法參考 FreeRTOS 官方網站的使用說明或者 USING THE FreeRTOS REAL TIME KERNEL—A Practical Guide 介紹。

• RTOS 版本 SDK 的網路操作介面是標準 lwIP API,同時提供了 BSD Socket API 介面的封裝實現,使用者可以直接按照 Socket API 的使用方式來開發軟體應用,也可以直接編譯執行其他平臺的標準 Socket 應用,有效降低平臺切換的學習成本。

• RTOS 版本 SDK 引入了 cJSON 庫,使用該庫函式可以更加方便的實現對 JSON 資料包的解析。

• RTOS 版本相容 non-OS SDK 中的 Wi-Fi 介面、 SmartConfig 介面、 Sniffer 相關介面、系統介面、定時器介面、 FOTA 介面和外圍驅動介面,不支援 AT 實現。

bin:編譯生成的 BIN檔案,可直接下載到 Flash 中。

documents: SDK 相關的文件或連結。

driver_lib:樂鑫官方提供的驅動示例程式碼。

examples:可供使用者二次開發的示例程式碼。

    - openssl_demo:樂鑫官方提供的 OpenSSL 介面功能示例程式碼。

    - project_template:樂鑫官方提供的工程模板示例程式碼。

    - smart_config:樂鑫官方提供的 SmartConfig 功能示例程式碼。

    - spiffs_test:樂鑫官方提供的 SPIFFS 檔案系統功能示例程式碼。

    - websocket_demo:樂鑫官方提供的 WebSocket 功能示例程式碼。

include: SDK 自帶標頭檔案,包含了使用者可使用的相關 API 函式及其他巨集定義,使用者無需修改。

ld:連結時所需的指令碼檔案,如無特殊需求,使用者無需修改。

lib: SDK 提供的庫檔案。

third_party:樂鑫開放原始碼的第三方庫,當前包含 freeRTOS、 JSON、 lwIP, mbedTLS、 noPoll、 OpenSSL、 SPIFFS 和 SSL。

tools:編譯 BIN 檔案所需的工具,使用者無需修改。

2.2 編譯SDK

1. 在終端切換到 /Share/ESP8266_NONOS_SDK/IoT_Demo 目錄。

cd /home/esp8266/Share/ESP8266_NONOS_SDK/IoT_Demo

./gen_misc.sh

系統顯示如下提示資訊。

gen_misc.sh version 20150511

Please follow below steps(1-5) to generate specific bin(s):

2. 如圖所示,按系統提示根據實際情況選擇相應選項。

    1) 第一個是選擇boot版本,一般選擇“1”,boot_v1.2+就是1.2版本以上

    2) 第二個是選擇生成的bin檔案,一般選擇“1”,user1.bin

    3) 第三個是選擇SPI的讀寫速度,一般選擇“2”,40MHz

    4) 第四個是選擇SPI的模式,一般選擇“0”,QIO

    5) 第五個是選擇SPI的記憶體大小,根據晶片選擇。

3. 編譯成功後系統顯示生成的 BIN 檔案及其下載到 Flash 中的地址,如下圖所示。

說明: 使用者可以進入 /home/esp8266/Share/ESP8266_NONOS_SDK/bin 目錄檢查生成的 BIN 檔案。

2.3 使用安信可ESP_IDE編譯SDK

三、燒寫

3.1 下載燒寫工具

ESPFlashDownloadTool_v3.6.4.exe

3.2 燒寫步驟

3.2.1 根據需求選擇韌體

ESP8266 Firmware (FW) 是一些可直接下載到 ESP8266 HDK 中的 BIN 檔案,使用者可以選擇下載 Firmware Over-The-Air(FOTA,支援雲端升級)和 non-FOTA(不支援雲端升級) 的 BIN 檔案。

Flash 佈局:

3.2.2 為韌體填寫下載地址

Non-FOTA 韌體的下載地址,如下圖所示

FOTA 韌體的下載地址,如下圖所示

注意:建議按照燒錄地址從低到高按順序排列燒錄。

           如需燒錄 8 MB 或者 16 MB 的大容量 Flash,請使用工具 esptool。

           支援 FOTA 的韌體無需下載 user2.bin,使用者可以從雲端伺服器升級韌體。

3.2.3 選擇FLASH SIZE

燒寫時,右邊的 DETECTED INFO 會顯示晶片實際的資訊。

根據晶片實際的記憶體大小來選擇上面的 FLASH SIZE

說明:32Mbit 等於 4M

3.2.4 開發板(或模組)切換燒寫模式

ESP-LAUNCHER:

ESP-WROOM-02:

• 由 Leung 寫於 2018 年 9 月 14 日

• 參考:《ESP8266 SDK 入門指南》