VScode中集成esp8266/32開發(fā)環(huán)境詳解
引言
文章的起點(diǎn)源于一個(gè)小伙伴私信我,想了解如何在vscode中直接開發(fā)esp8266。vscode其輕便,小巧等優(yōu)點(diǎn)越來越受各類程序員的喜愛。 前面我分別介紹了如何在Windows中使用msys32,以及在Ubuntu(linux的一種發(fā)行版)搭建esp8266的開發(fā)環(huán)境,直接基于命令行編譯,配置,下載等操作,這樣做的好處是避免直接基于IDE(集成開發(fā)環(huán)境)開發(fā),IDE背后幫我們封裝了很多操作,讓我們無法了解其背后實(shí)現(xiàn)的原理和機(jī)制,比如配置文件是如何生成的,多文件是如何編譯的,頭文件是如何關(guān)聯(lián)起來的等等問題,這就需要我們?nèi)チ私夤こ蘉akefile,一步步探索其中的原理。
本文引用地址:http://2s4d.com/article/202503/468705.htm回到正題,接下來主要介紹如何配置使得能夠在vscode中直接開發(fā)esp8266,實(shí)現(xiàn)代碼編輯和編譯下載等操作全部在vscode中完成。OK, 開始行動(dòng)~
開始前工作準(zhǔn)備
開始前需要小伙伴先搭建好esp8266/32(之后以esp8266為例子)開發(fā)環(huán)境,包括下載ESP8266_RTOS_SDK, 交叉工具鏈,msys32等,并設(shè)置IDF_PATH,PATH 環(huán)境變量,這里不再贅述,不熟悉的小伙伴請參考我之前的視頻Windows中搭建esp8266開發(fā)環(huán)境。 當(dāng)然還要下載vscode編輯器啦~,其下載安裝很簡單,只需要到官網(wǎng)下載傻瓜式安裝即可。 下載后需要安裝一個(gè)"C/C++"插件
配置settings.json文件
點(diǎn)擊“文件”->"打開文件夾",打開自己的工程目錄,比如我的“Humiture”
點(diǎn)擊vscode左下方“齒輪”圖標(biāo), 選擇“設(shè)置”:
接著會(huì)出現(xiàn)“用戶”, “工作區(qū)” 2種類型的設(shè)置, 其中“用戶”設(shè)置相當(dāng)于全局設(shè)置,如果工作區(qū)中未進(jìn)行相關(guān)配置,會(huì)默認(rèn)使用“用戶”下的設(shè)置, 而“工作區(qū)”相當(dāng)于局部設(shè)置,只作用于當(dāng)前打開的工作區(qū),這里我們選擇“工作區(qū)”來介紹,無論哪種模式設(shè)置操作都是一樣的,只是作用域不同而已。
點(diǎn)擊“工作區(qū)”->"終端",點(diǎn)擊“settings.json”:
打開“settings.json”后,將其修改成以下內(nèi)容,并保存:
{
"terminal.integrated.shell.windows": "D:msys32msys2_shell.cmd",//這里根據(jù)自己的實(shí)際路徑
"terminal.integrated.shellArgs.windows": [
"-defterm",
"-no-start",
"-mingw32",
"-here"
],
"terminal.integrated.automationShell.linux": "",
"terminal.integrated.automationShell.windows": "",
"extensions.confirmedUriHandlerExtensionIds": [
]
}
settings.json配置
以上配置說明:
"terminal.integrated.shell.windows": "D:msys32msys2_shell.cmd"
----------------------是設(shè)置Windows環(huán)境集成終端,即msys32文件下的msys2_shell.cmd
"terminal.integrated.shellArgs.windows": 中的參數(shù):
"-defterm" 表示將windows中集成終端作為默認(rèn)終端,即上面的msys2_shell.cmd
"-no-start" 表示當(dāng)我們點(diǎn)擊vscode下方的“終端”時(shí),不要默認(rèn)msys32終端界面(小伙伴可以去掉這個(gè)選項(xiàng),自行感受下)
"-mingw32" 表示指定使用mingw32終端,因?yàn)樵趍sys32文件中有mingw32和mingw64,而esp8266在Makefile中就指定了必須使用mingw32,否則編譯會(huì)通不過,感興趣的小伙伴自行分析下Makefile就能驗(yàn)證了。
"-here" 表示打開終端時(shí),默認(rèn)的路徑就在工程,若不加此選項(xiàng),這默認(rèn)是在家目錄下(~),這樣方便我們直接點(diǎn)擊vscode中的終端時(shí),就可以直接make編譯拉,不然還要cd切換目錄~
其他的參數(shù),關(guān)系不大,這里就不一一說明了
驗(yàn)證下配置效果,點(diǎn)擊vscode下方的信息欄,打開我們的終端:
嘗試配置,編譯
首先我們先嘗試下配置下我們的工程,在終端輸入make menuconfig命令:
發(fā)現(xiàn)配置失敗,根據(jù)提示“Your display is too small to run Menuconfig!” , 我們知道esp8266采用kconfig(類似linux內(nèi)核配置方式)圖形界面配置,因此我們只需要把終端界面拖大一點(diǎn),以滿足能夠全部顯示出menuconfig界面問題就解決啦~
這里會(huì)出現(xiàn)一些亂碼(其實(shí)kconfig并是真正圖形,只是用工具模擬出圖形,之后有機(jī)會(huì)講解如何配置linux內(nèi)核時(shí),我再來詳細(xì)說明~), 解決的方法:在msys32etcprofile.dexport_idf_path.sh腳本中添加export LAND="en_US" ,導(dǎo)出LANG環(huán)境變量即可。
接著重啟vscode,重新配置,正常顯示~
嘗試編譯, make -j4, 也是成功編譯:
創(chuàng)建工作區(qū),實(shí)現(xiàn)跳轉(zhuǎn),代碼自動(dòng)補(bǔ)全
前面我們只將工程代碼添加進(jìn)來,而依賴的ESP8266_RTOS_SDK還沒關(guān)聯(lián)起來呢, 接下來我們就將其添加到當(dāng)前工作區(qū)中。
首先將工作區(qū)保存:點(diǎn)擊"文件"->“將工作區(qū)另存為...”
接著將ESP8266_RTOS_SDK添加進(jìn)來, “文件”->"將文件夾添加到工作區(qū)",選擇ESP8266_RTOS_SDK
配置c_cpp_properties.json 文件, 按住鍵盤的: shift + ctrl + p, 出現(xiàn)如下圖所示:
點(diǎn)擊框選,會(huì)默認(rèn)創(chuàng)建c_cpp_properties.json, 并在“includePath”欄中添加以下自己實(shí)際的
ESP8266_RTOS_SDK/components路徑,當(dāng)然如果你的工作還有其他依賴,按此格式添加即可。
{
"configurations": [
{
"name": "Win32",
"includePath": [
"${workspaceFolder}/**",
"D:/msys32/home/40806/esp/ESP8266_RTOS_SDK/components/**"//自己要添加的頭文件路徑
], //其他內(nèi)容是默認(rèn)生成的,無需改動(dòng)
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE"
],
"windowsSdkVersion": "10.0.18362.0",
"compilerPath": "E:/visual stdio2019/VC/Tools/MSVC/14.25.28610/bin/Hostx64/x64/cl.exe",
"cStandard": "c11",
"cppStandard": "c++17",
"intelliSenseMode": "msvc-x64"
}
],
"version": 4
}
當(dāng)然修改完記得保存哦, 接下來我們就可以看到工程中包含的頭文件都顯示正常了(在此設(shè)置前很多#include “xxx”都紅色波浪線+黃燈提示無法加載頭文件):
接著我們再試試能否代碼自動(dòng)補(bǔ)全功能和函數(shù)和變量跳轉(zhuǎn):
可以看到隨著一邊輸入,vscode也一邊提示相關(guān)補(bǔ)全,同時(shí)跳轉(zhuǎn)功能也是OK的。
總結(jié)
至此我們已經(jīng)成功在vscode搭建了esp8266/32的開發(fā)配置, 接下來我們就可以在vscode一邊編寫代碼,一邊配置,編譯,下載拉(其實(shí)就是把msys32終端集成到vscode中),感興趣的小伙伴趕緊嘗試下吧。
評(píng)論