如何在Ubuntu系統(tǒng)中搭建ESP32開發(fā)環(huán)境
ESP32是一款集成2.4GHz Wi-Fi和藍(lán)牙雙模的單芯片方案,采用臺積電40nm工藝。在這篇文章中,我們將介紹如何在Ubuntu系統(tǒng)中搭建ESP32的軟件開發(fā)環(huán)境,并且在ESP-IDF(Espr
ESP32是一款集成2.4GHz Wi-Fi和藍(lán)牙雙模的單芯片方案,采用臺積電40nm工藝。在這篇文章中,我們將介紹如何在Ubuntu系統(tǒng)中搭建ESP32的軟件開發(fā)環(huán)境,并且在ESP-IDF(Espressif IoT Development Framework)的基礎(chǔ)上進(jìn)行二次開發(fā)。
1. 升級操作系統(tǒng)至最新穩(wěn)定版
首先,我們需要保證操作系統(tǒng)為Lubuntu16.04或者其它衍生版(比如Lubuntu和本經(jīng)驗(yàn)采用的Ubuntu Mate)滿足16.04的要求。然后我們需要進(jìn)行系統(tǒng)升級,使用以下命令即可:
sudo apt-get upgrade
2. 安裝交叉編譯工具鏈依賴的環(huán)境
我們需要安裝幾個(gè)依賴環(huán)境才能成功搭建ESP32的開發(fā)環(huán)境,使用以下命令安裝:
sudo apt-get install git make gcc libncurses5-dev flex bison gperf python-serial
3. 創(chuàng)建ESP32專用的工作目錄
我們需要?jiǎng)?chuàng)建一個(gè)ESP32專用的工作目錄,使用以下命令:
sudo mkdir /esp32
4. 設(shè)置文件夾的歸屬為當(dāng)前用戶
我們需要將創(chuàng)建的文件夾的歸屬設(shè)置為當(dāng)前用戶,使用以下命令:
sudo chown username:username /esp32
其中,username為當(dāng)前用戶的用戶名。
5. 創(chuàng)建三個(gè)文件夾
我們需要?jiǎng)?chuàng)建三個(gè)文件夾,分別保存交叉編譯工具鏈、樣例和SDK源碼,使用以下命令即可:
mkdir crossTools demos sources
6. 下載官方的交叉編譯工具
我們需要下載官方的交叉編譯工具,使用以下命令:
wget
7. 解壓文件到當(dāng)前目錄下
下載完成后,我們需要解壓文件到當(dāng)前目錄下,使用以下命令:
tar -xzvf xtensa-esp32-elf-linux64-1.22.0-61-gab8375a-5.2.0.tar.gz
8. 將解壓后的交叉編譯工具連添加到系統(tǒng)的PATH環(huán)境變量中
我們需要將解壓后的交叉編譯工具鏈添加到系統(tǒng)的PATH環(huán)境變量中,使用以下命令:
sudo vim /etc/profile
在最后面添加交叉編譯工具鏈bin文件夾的目錄,如下所示:
export PATH$PATH:/esp32/crossTools/xtensa-esp32-elf/bin
然后更新一下profile文件,使之生效:
source /etc/profile
9. 檢查是否安裝成功
我們可以使用以下命令檢查交叉編譯工具鏈?zhǔn)欠癜惭b成功:
xtensa-esp32-elf-gcc -v
如果看到有版本信息顯示,說明已經(jīng)安裝成功。
10. 下載ESP-IDF二次開發(fā)套建
我們可以前往樂鑫官網(wǎng)下載最新版的ESP32-IDF開發(fā)條件(實(shí)質(zhì)上就是SDK,換了個(gè)洋氣點(diǎn)的名字而已),然后通過虛擬機(jī)的共享目錄傳送給虛擬機(jī)中的Linux系統(tǒng)?;蛘呤鞘褂胓it clone命令進(jìn)行下載,方法如下:
git clone --recursive
11. ESP-IDF的目錄結(jié)構(gòu)
ESP-IDF的目錄結(jié)構(gòu)如下:
- components:ESP-IDF的核心組件
- examples:ESP-IDF提供的實(shí)例程序
- make:ESP-IDF工程管理目錄
- tools:ESP-IDF提供的工具集
- docs:ESP-IDF相關(guān)文檔
12. 編譯hello_world樣例程序
為了驗(yàn)證搭建的ESP32開發(fā)環(huán)境是否成功,我們可以編譯ESP-IDF提供的hello_world樣例程序。首先將hello_world樣例拷貝到我們之前新建的demo文件夾中,使用以下命令:
cp -rf examples/01_hello_world/ ../../demos/
然后進(jìn)入到工程文件目錄,執(zhí)行以下命令:
make all
這會自動編譯所有的BIN文件,默認(rèn)會編譯bootloader、partition_table、app文件,并提示如何進(jìn)行燒寫。
13. 燒寫所有的BIN文件
在燒寫程序之前,需要給USB設(shè)備增加讀寫權(quán)限,使用以下命令:
sudo usermod -a -G dialout $USER
然后重啟系統(tǒng)以生效:
sudo reboot
現(xiàn)在我們可以燒寫所有的BIN文件,首先長按Boot鍵,同時(shí)按Reset鍵,系統(tǒng)將會進(jìn)入下載模式。然后使用以下命令燒寫B(tài)IN文件:
make flash
14. 驗(yàn)證程序是否正常運(yùn)行
按下Reset鍵,通過minicom串口終端查看打印輸出信息,發(fā)現(xiàn)每隔10秒系統(tǒng)會重啟。如果看到這個(gè)功能,說明我們已經(jīng)成功搭建了ESP32的開發(fā)環(huán)境。
結(jié)論
通過以上步驟,我們可以在Ubuntu系統(tǒng)中成功搭建ESP32的軟件開發(fā)環(huán)境,并且使用ESP-IDF進(jìn)行二次開發(fā)。