Visual Studio Code(簡(jiǎn)稱Vscode)是微軟推出的一款開(kāi)源的輕量級(jí)代碼編輯器,可以在Windows和Linux系統(tǒng)中使用,同時(shí)Vscode支持插件擴(kuò)展,功能十分強(qiáng)大并且靈活,受到了許多軟件開(kāi)發(fā)人員的喜愛(ài),并被許多開(kāi)發(fā)社區(qū)推薦,所以在軟件開(kāi)發(fā)的領(lǐng)域中得到了越來(lái)越廣泛的應(yīng)用。英創(chuàng)公司的ESMARC系列(ESM6800H/E,ESM6802,ESM7000,ESM8000)主板也可以在Linux系統(tǒng)下通過(guò)Vscode進(jìn)行應(yīng)用程序的開(kāi)發(fā)。因?yàn)殚_(kāi)發(fā)主機(jī)通常情況下都是X86平臺(tái),所以Vscode默認(rèn)會(huì)使用Linux系統(tǒng)自帶的gcc編譯成X86平臺(tái)的可執(zhí)行文件,而ESMARC系列主板均為ARM平臺(tái),所以就需要進(jìn)行一些設(shè)置讓Vscode使用交叉編譯工具鏈來(lái)編譯生成ARM平臺(tái)的可執(zhí)行文件,下面就來(lái)介紹具體的設(shè)置方法。
英創(chuàng)公司使用的環(huán)境為Ubuntu+Vscode,推薦客戶也是用相同的環(huán)境,以免出現(xiàn)其他問(wèn)題。在https://code.visualstudio.com/download中可以下載Vscode最新的deb安裝包,下載完成后,進(jìn)入到安裝包的目錄中然后使用命令$sudo apt install ./<file>.deb就可以完成安裝。如果遇到問(wèn)題可以在https://code.visualstudio.com/docs/setup/linux查看詳細(xì)的安裝說(shuō)明。
安裝完成后,在Ubuntu的命令行終端中進(jìn)入到工程目錄下,然后輸入命令$code .就可以進(jìn)入到Vscode的編輯界面。Vscode的配置文件默認(rèn)會(huì)放在當(dāng)前目錄的.vscode目錄中,我們需要使用到c_cpp_properties.json、settings.json和tasks.json這三個(gè)文件,關(guān)于他們具體的作用,可以參考下面的表格:
文件名 | 描述 |
c_cpp_properties.json | 配置include路徑和IntelliSense |
settings.json | 針對(duì)編譯工具的全局環(huán)境變量的設(shè)置 |
tasks.json | 配置編譯任務(wù) |
英創(chuàng)公司針對(duì)ESMARC系列主板已經(jīng)編輯好了這三個(gè)配置文件的模板,用戶只需要稍作修改就能夠使用,下面我們就以一個(gè)具體的例子helloworld來(lái)演示操作步驟。
首先我們先創(chuàng)建helloworld目錄,然后進(jìn)入到該目錄中,運(yùn)行vscode,具體命令如下:
$ mkdir helloworld $ cd helloworld/ $ code .
進(jìn)入到Vscode界面后,如果是第一次使用Vscode的客戶,建議先安裝插件C/C++ for Visual Studio Code,這個(gè)插件能夠讓Vscode支持C和C++語(yǔ)言。在右側(cè)邊欄目上選中擴(kuò)展(快捷鍵Ctrl+Shift+X),輸入ms-vscode.cpptools,然后點(diǎn)擊安裝搜索出來(lái)的插件,如下圖:
如果需要更多插件支持,可以參考Using extensions in Visual Studio Code,安裝完成后,我們就可以開(kāi)始編寫(xiě)程序和修改配置文件了,選中右側(cè)邊欄目上的資源管理器(快捷鍵Ctrl+Shift+E),新建helloword.c文件用于編輯代碼,如下圖:
在編寫(xiě)代碼之前,我們先進(jìn)行相關(guān)設(shè)置,設(shè)置完成后可以在Vscode中實(shí)現(xiàn)定義查看以及自動(dòng)補(bǔ)全等功能。先添加一個(gè)新目錄.vscode,分別創(chuàng)建c_cpp_properties.json、settings.json和tasks.json這三個(gè)文件,然后將英創(chuàng)公司提供的配置文件內(nèi)容復(fù)制到對(duì)應(yīng)的文件中(也可以直接將英創(chuàng)公司提供的配置文件拷貝進(jìn)去)。如下圖:
對(duì)于三個(gè)配置文件,其中settings.json和tasks.json需要根據(jù)實(shí)際的情況修改一下。settings.json文件主要是編譯工具的全局環(huán)境變量,所以需要根據(jù)實(shí)際編譯工具的安裝路徑稍作修改。英創(chuàng)公司提供的settings.json文件中關(guān)于ESMARC系列主板(ESM6800H/E,ESM6802,ESM7000,ESM8000)編譯工具的設(shè)置已經(jīng)配置好了,用戶不用做修改,只需要修改GENRIC中的內(nèi)容。其中PROGNAME用于指定編譯生成文件的名稱,本文例程的名稱為helloworld。SDKROOT為主板交叉編譯工具鏈的安裝路徑,本文中填寫(xiě)的安裝路徑為/home/hzc/tools/esm8000,客戶需要根據(jù)實(shí)際的安裝路徑修改。而INCLUDEPATH、HOSTINCLUDEPATH和COMPILERPATH均為include路徑信息,根據(jù)實(shí)際主板型號(hào)修改即可。本文中INCLUDEPATH、HOSTINCLUDEPATH和COMPILERPATH是以ESM8000主板為例,配置文件可以支持ESM6800E/H,ESM6802,ESM7000和ESM8000四種型號(hào)的主板。比如使用的ESM7000主板,則INCLUDEPATH需要修改為${config:ESM7000.INCLUDEPATH}。可以參考下面的截圖:
最后還要修改tasks.json中的內(nèi)容。tasks.json主要是配置編譯任務(wù),這里需要修改CXX、CC、CFLAGS、CXXFLAGS、LIBS環(huán)境變量以及command和args中關(guān)于編譯器和源文件的配置。其中CXX、CC、CFLAGS和CXXFLAGS于settings.json文件中的INCLUDEPATH類(lèi)似,根據(jù)實(shí)際主板型號(hào)修改配置項(xiàng)中主板型號(hào)就行了,比如使用的ESM7000主板,CXX修改為${config:ESM7000.CXX}。LIBS主要是用于有額外鏈接庫(kù)的時(shí)候,添加對(duì)應(yīng)的庫(kù)文件。比如需要鏈接線程庫(kù),就需要在LIBS中填寫(xiě)-lpthread。可以參考下圖:
接下來(lái)是command和args,command主要是修改使用的編譯器,如果是C工程,command則填寫(xiě)為CC,如果是C++工程,command則填寫(xiě)為CXX。args主要是需要修改其中配置源文件的部分,如果源文件是C文件則填寫(xiě)為${workspaceFolder}/**.c,如果源文件是CPP文件,則填寫(xiě)為${workspaceFolder}/**.cpp。另外如果工程目錄(${workspaceFolder})下還有有子目錄包含源文件,還需要將子目錄也包含進(jìn)去,比如創(chuàng)建了src目錄中存放源文件,就要添加一行${workspaceFolder}/src/**.cpp或者${workspaceFolder}/src/**.c,文章的例子中在工程目錄下只有一個(gè)helloword.c文件,所以只需要填寫(xiě)一個(gè)${workspaceFolder}/**.c,可參考下圖:
修改完成后,就可以開(kāi)始編寫(xiě)應(yīng)用程序了,因?yàn)閕nclude路徑已經(jīng)設(shè)置過(guò)了,所以Vscode中可以查看編譯器中變量以及函數(shù)的定義,并且可以自動(dòng)補(bǔ)全代碼,十分方便。編輯完成后,就可以進(jìn)行編譯,選擇終端->運(yùn)行生成任務(wù)(快捷鍵Shift+Ctrl+B),如下圖:
在右側(cè)的資源管理器中可以看到在helloword目錄下已經(jīng)成功生成了名為helloworld的可執(zhí)行文件,這時(shí)通過(guò)nfs掛載或者ftp等方式將可執(zhí)行程序拷貝到主板中,就可以在主板上運(yùn)行了。
感興趣的客戶可以和英創(chuàng)的工程師聯(lián)系,獲取相關(guān)的配置文件。
成都英創(chuàng)信息技術(shù)有限公司 028-8618 0660