1. 程式人生 > >深入淺出ESP32開發之二ESP-IDF下載、編譯與執行

深入淺出ESP32開發之二ESP-IDF下載、編譯與執行

一、ESP-IDF下載

ESP-IDF全稱Espressif IoT Development Framework是樂鑫基於ESP32推出的新一代SDK,基於FreeRTOS系統,在上一代SDK基礎上做了眾多更新和改進,集合了眾多元件。支援在Windows、Linux和MacOS下基於ESP-IDF開發。

ESP-IDF原始碼已託管在github上,可在https://github.com/espressif/esp-idf下載,

在命令列輸入git clone --recursive https://github.com/espressif/esp-idf下載,注意git clone必須新增--recursive,否則無法拉取components目錄下的全部模組。

下載完成後,我們可以看到ESP-IDF的目錄結構如下:

l components:ESP-IDF的核心元件

l docs:ESP-IDF相關文件

l examples:ESP-IDF提供的示例程式,包括眾多外設、Wi-Fi、藍芽等demo

l make:EPS-IDF工程管理目錄

l tools:ESP-IDF提供的工具集

二、編譯

ESP-IDF的example目錄下提供了眾多的示例程式,我們先編譯“get-started”下的“hello_world”

如果直接在該目錄下執行make,會提示出錯

Makefile:8: /make/project.mk: No such file or directory

make: *** No rule to make target '/make/project.mk'.  Stop.

這是因為Makefile裡的變數IDF_PATH沒有設定

這裡有2種方法:

方法1:

在當前Demo工程內修改Makefile,新增IDF_PATH=/home/share/samba/espressif/esp-idf,輸入的路徑為ESP-IDF目錄

這個方法,換個Demo工程就需要手工新增IDF_PATH變數,想要一次性搞定就使用方法2吧。

方法2:

修改/etc/profile檔案,新增export IDF_PATH=/home/share/samba/espressif/esp-idf

並使用source /etc/profile使環境變數生效。

完成以上配置後,執行make命令,第一次執行make命令預設會進入configuration介面。我們可以使用預設設定直接退出。

make將繼續執行編譯直至完成。

本次編譯總共生成了3個檔案,分別為:

位於build/bootloader目錄下的bootloader.bin

位於build目錄下的partitions_singleapp.bin

位於build目錄下的hello-world.bin

三、開發板下載

我使用的是樂鑫原廠出的基於ESP-WROOM-32模組做的ESP32_Core_borad_V2開發板,自帶USB-TTL(CP2102),該開發板類似NodeMCU,可自動進入boot模式,下載程式極其方便。

本次測試沒有使用在Ubuntu下下載程式碼,使用的是在Windows版串列埠下載程式“ESPFlashDownloadTool_v3.4.4.exe”

設定完成後,點選“START”後開始下載,進入boot模式後,“Download Panel”將顯示各裝置的MAC地址。

四、執行測試

ESP32預設日誌通過串列埠輸出,串列埠波特率設定為:115200

復位開發板後,日誌輸出串列埠可看到Hello_world已經正常執行。

Demo程式還列出當前ESP32晶片相關資訊:

1:當前demo運行於app cpu

2:當前ESP32晶片為雙核

3:具有WIFI/BT/BEL功能

4:4MB外部FLASH