前面搭了一個(gè)ubuntu18.04的服務(wù)器+遠(yuǎn)程VScode開(kāi)發(fā)環(huán)境,最終就是為了玩板:
工欲善其事,必先利其器--Vscode嵌入式Linux開(kāi)發(fā)遠(yuǎn)程開(kāi)發(fā)設(shè)置(適用于多平臺(tái))
如下所示,這是韋東山老師推出ESP32開(kāi)發(fā)板:
?
相關(guān)資料鏈接:
https://esp32.100ask.net/
然而官方推出的是一個(gè)集成好的ubuntu22的開(kāi)發(fā)環(huán)境的虛擬機(jī),啥都幫小白做好了,顯然,這不符合我的風(fēng)格,我必須手把手自己搭一遍。然而經(jīng)過(guò)調(diào)研發(fā)現(xiàn),ubuntu18.04的這環(huán)境相對(duì)于官方推出的這個(gè)22的環(huán)境來(lái)說(shuō)比較坑,網(wǎng)上各類博文參差不齊,有上文沒(méi)下文的,好,這類問(wèn)題我必須一篇文章解決,在搭建環(huán)境的過(guò)程中屬實(shí)也遇到了不少坑。接下來(lái),直接整起來(lái):
1、Ubuntu18.04開(kāi)發(fā)esp32-idf必要工具鏈安裝
?
sudo?apt-get?install?git?wget?flex? bison?gperf?python3?python3-venv??? python3-setuptools?cmake?ninja-build? ccache?libffi-dev?libssl-dev?dfu-util?libusb-1.0-0
?
如上所示,開(kāi)發(fā)esp-idf的環(huán)境安裝成功。
2、Python3.8安裝
這一步比較關(guān)鍵,如果選擇3.8以下的版本去編譯esp-idf工程的話就會(huì)編譯不過(guò)。在安裝Python環(huán)境之前,先要安裝zlib相關(guān)的,不然會(huì)報(bào)錯(cuò),這是因?yàn)闆](méi)有指定zlib源碼的路徑導(dǎo)致的,這就間接導(dǎo)致了python的zlib包無(wú)法使用,因?yàn)閜ython編譯的過(guò)程中會(huì)用到zlib包相關(guān)的功能,如下所示:
解決方法:
?
wget?http://zlib.net/zlib-1.2.13.tar.gz tar?-zxvf?zlib-1.2.13.tar.gz?&&?cd?zlib-1.2.13/ ./configure?&&?make?-j8 sudo?make?install
?
Python的話我下的是3.8.6的版本,最好的方法是到Python官方去下載源代碼,然后手動(dòng)配置編譯安裝到自己的服務(wù)器上,這里我下的是Python3.8.6:https://www.python.org/downloads/source/,將代碼壓縮包下下來(lái)以后,然后解壓后配置、編譯并安裝到當(dāng)前系統(tǒng)上:
?
tar?-xzvf?Python-3.8.6.tgz sudo?./configure?--enable-optimizations sudo?make?-j8 sudo?make?install
?
3、升級(jí)最新版本的cmake
由于編譯esp-idf官方的cmake構(gòu)建版本要求是至少基于3.16以上的,如下所示:
因此我們需要將ubuntu系統(tǒng)上的cmake環(huán)境升級(jí)到最新版本,解決方案如下:
?
wget?https://cmake.org/files/v3.21/cmake-3.21.4.tar.gz tar?-zxvf?cmake-3.21.4.tar.gz cd?cmake-3.21.4/ ./bootstrap make?-j8 sudo?make?install
?
4、拉取樂(lè)鑫官方V5.0版本的的ESP-IDF源碼并設(shè)置環(huán)境
?
git?clone?-b?release/v5.0?https://gitee.com/EspressifSystems/esp-idf.git
?
在esp-idf源代碼的根目錄下執(zhí)行:
?
./install.sh?esp32s3
?
如下所示:
然后根據(jù)終端提示在esp-idf根目錄下運(yùn)行:. ./export.sh
5、編譯最簡(jiǎn)單的hello world項(xiàng)目
切換到hello world項(xiàng)目目錄下:
?
/home/yangyuanxin/workspace/esp-idf/examples/get-started/hello_world
?
然后運(yùn)行:idf.py build,結(jié)果會(huì)發(fā)現(xiàn)很多cmake中配置了很多git的submodule,而這些在沒(méi)有配置github相關(guān)代理的時(shí)候基本上是拉不下來(lái)的,進(jìn)而就會(huì)導(dǎo)致編譯不成功,幸好,安信可為我們找到了解決方案,他們已經(jīng)將這些子模塊clone了一份放到了gitee上,因此下載速度飛快,閱讀下面的文章:
?
https://gitee.com/EspressifSystems/esp-gitee-tools/blob/master/docs/README-submodule-update.md
?
將上述文章所羅列的包進(jìn)行一次性安裝,確保esp-idf環(huán)境所依賴的包能夠安裝成功:
然后再次編譯esp-idf的hello world工程,如下所示,編譯成功:
6、下載最簡(jiǎn)單hello world項(xiàng)目
先設(shè)置目標(biāo)芯片:
?
idf.py?set-target?esp32s3
?
將開(kāi)發(fā)板連接到PC機(jī)上,然后通過(guò)dmesg查看具體是哪個(gè)設(shè)備接了進(jìn)來(lái),如下圖所示,是/dev/ttyACM0
然后使用idf.py -p /dev/ttyACM0 flash進(jìn)行工程下載,如果發(fā)現(xiàn)有相關(guān)權(quán)限的問(wèn)題,參考樂(lè)鑫相關(guān)的文檔,將當(dāng)前用戶添加到Linux Dialout組。如下所示:
下載成功如下所示:
然后使用idf.py -p /dev/ttyACM0 monitor監(jiān)控工程:
7、編譯并下載LED閃爍項(xiàng)目
切換到blink_led Demo路徑下:
配置工程,選擇為GPIO輸出模式,通過(guò)IO高低電平的方式來(lái)循環(huán)點(diǎn)亮和熄滅LED燈:
?
idf.py?menuconfig
?
然后按ESC后保存退出進(jìn)行工程編譯:
執(zhí)行idf.py -p /dev/ttyACM flash將編譯好的二進(jìn)制文件燒錄到開(kāi)發(fā)板上去,然后使用idf.py -p /dev/ttyACM monitor監(jiān)控串口數(shù)據(jù):
下載完畢后可以看到板子上連接的LED燈已經(jīng)以一定的周期閃爍變化。
好了,萬(wàn)事開(kāi)頭搭環(huán)境難,后面不管是程序開(kāi)發(fā)也好,使用IDE環(huán)境也好,都只是錦上添花的事情。
審核編輯:湯梓紅
評(píng)論
查看更多