天天看點

搭建 ESP32 開發環境 —— Hello World【安裝依賴包】【安裝工具鍊】【下載下傳ESP-IDF(即SDK)】【編譯 Hello world】【燒寫程式】

這裡以 Ubuntu 為例,其它系統請參考中文文檔:

  • file:///home/work/esp/esp-idf-doc-zh/docs/_build/html/get-started/linux-setup.html

【安裝依賴包】

整個 ESP-IDF 環境需要用到很多軟體,例如

git

make``python

等,是以我們需要先将這些軟體預裝好。

雖然需要用到這麼多軟體,但是隻需要這樣一條簡單的指令,系統自動就會幫我們裝好,多友善啊,這就是 Linux 對我的魅力之所在(PS:本人長期使用 Ubuntu 作為自己的工作、生活、娛樂的作業系統)。想一想,如果 windows 需要安裝這麼多軟體,是不是煩都煩死了。

【安裝工具鍊】

64 位操系統和 32 位作業系統所使用的工具鍊不相同,是以請根據你自己對系統選擇對應的方法。

【64 位系統】

樂鑫是預設将工具鍊安裝在

~/esp/

目錄的,我們也将工具鍊安裝到這裡吧。

先建立并進入該目錄:

mkdir -p ~/esp
cd ~/esp 
           

使用

wget

指令下載下傳 64 位的工具鍊:

将工具鍊解壓:

tar -xzf xtensa-esp32-elf-linux64---gab8375a-.tar.gz
### 強迫症,解壓後把工具鍊的壓縮包删掉 ###
rm xtensa-esp32-elf-linux64---gab8375a-.tar.gz
           

解壓後的工具鍊位于路徑

~/esp/xtensa-esp32-elf

下面。該目錄下面的

bin

目錄就是我們用來編譯 ESP-IDF 工程所需的可執行程式。如果要使系統直接能夠這些程式,需要将這個

bin

檔案夾路徑添加到系統的環境變量

PATH

中去。這裡直接使用

echo

指令将其添加到腳本檔案

~/.bashrc

中(系統每次啟動剛時都會執行這個腳本)。

echo "export PATH=$PATH:$HOME/esp/xtensa-esp32-elf/bin" >> ~/.bashrc
           
第一次添加後需要對該腳本執行

source ~/.bashrc

操作,讓該腳本立即生效。今後重新開機系統後不需要再執行該操作。

【32 位系統】

樂鑫是預設将工具鍊安裝在

~/esp/

目錄的,我們也将工具鍊安裝到這裡吧。

先建立并進入該目錄:

mkdir -p ~/esp
cd ~/esp 
           

使用

wget

指令下載下傳 32 位的工具鍊:

将工具鍊解壓:

tar -xzf xtensa-esp32-elf-linux32---gab8375a-.tar.gz
### 強迫症,解壓後把工具鍊的壓縮包删掉 ###
rm xtensa-esp32-elf-linux32---gab8375a-.tar.gz
           

解壓後的工具鍊位于路徑

~/esp/xtensa-esp32-elf

下面。該目錄下面的

bin

目錄就是我們用來編譯 ESP-IDF 工程所需的可執行程式。如果要使系統直接能夠這些程式,需要将這個

bin

檔案夾路徑添加到系統的環境變量

PATH

中去。這裡直接使用

echo

指令将其添加到腳本檔案

~/.bashrc

中(系統每次啟動剛時都會執行這個腳本)。

echo "export PATH=$PATH:$HOME/esp/xtensa-esp32-elf/bin" >> ~/.bashrc
           
第一次添加後需要對該腳本執行

source ~/.bashrc

操作,讓該腳本立即生效。今後重新開機系統後不需要再執行該操作。

【下載下傳ESP-IDF(即SDK)】

ESP-IDF 的全稱是 Espressif IoT Development Framework(樂鑫 IoT 開發架構),即我們通常所說的 SDK,它裡面提供了豐富的可供我們調用的庫和API。

我們直接使用 git 進行 clone:

cd ~/esp
git clone --recursive https://github.com/espressif/esp-idf.git
           

注意 clone 後面的參數

--recursive

,它表示遞歸克隆該倉庫的子倉庫,這是一種在開源界非常流行的做法,可以友善地對多個倉庫進行控制。如果你是‘老鳥’,在 clone 時沒看到這個參數(說明你還隻是半老鳥,^_^),也可以使用下面的指令來手動更新該倉庫的子子產品:

ESP-IDF 下載下傳完成後,我們還需要導出環境變量

IDF_PATH

—— 我們今後在編譯自己的工程代碼時會使用這個變量來查找 ESP-IDF 所在路徑。同樣使用

echo

指令将其追加到腳本檔案

~/.bashrc

的預設(完成後不要忘記執行

source ~/.bashrc

指令哦)。

echo "export IDF_PATH=~/esp/esp-idf" >> ~/.bashrc
           
另外,多花幾分鐘看看 ESP-IDF 目錄下的各檔案都是幹嘛的吧

【編譯 Hello world】

ESP-IDF 為我們提供了豐富的 demo 程式,位于路徑

examples

下面。我們這裡先試試經典款

hello world

。進入 hello world 所在目錄,然後編譯:

cd examples/get-started/hello_world/
make
           

如果是第一次執行

make

指令,系統會彈出一個圖形配置界面,如下圖所示。

搭建 ESP32 開發環境 —— Hello World【安裝依賴包】【安裝工具鍊】【下載下傳ESP-IDF(即SDK)】【編譯 Hello world】【燒寫程式】

我們可以通過鍵盤上的

tab

鍵在下面的菜單中進行跳轉。當光标跳轉到

<Exit>

菜單後,按下Enter鍵,退出配置菜單,然後系統會自動編譯 ESP-IDF 目錄下的各個元件以及 hello world 目錄下的源碼。

編譯完成後,我們可以在 hello wolrd 工程所在目錄下生成一個

build

檔案,用于存放編譯過程中生成的臨時檔案以及最終可以直接燒寫到開發闆的

.bin

檔案。此外,系統還會直接在 hello world 工程所在目錄生成一個配置檔案

sdkconfig

,它存放了我們在配置界面所配置的各種值(我們這裡沒有修改,是以是預設值)。

【燒寫程式】

然後用 USB 将開發闆與 PC 連接配接在一起,系統會識别到裝置

/dev/ttyUSB0

如果你用的是虛拟機,需要在虛拟機上面将該裝置從 win 移動到虛拟機中。

我們先修改該裝置的權限,然後燒寫并監視序列槽輸出:

sudo chmod  /det/ttyUSB0
make flash monitor
           
當然,你也可以根據自己的喜好使用選擇序列槽工具,例如 minicom 等。

然後就看到系統啟動消息了,大功告成!!!

繼續閱讀