使用VSCode編寫程序源碼以及基礎(chǔ)設(shè)置
想了解更多關(guān)于開源的內(nèi)容,請(qǐng)?jiān)L問:
前言
本文介紹了在VScode中編寫程序源碼,如何將源碼編譯成二進(jìn)制文件,宏命令,以及一些爆紅問題的處理,IntelliSense設(shè)置,屏蔽內(nèi)置的 test suite方法
一、編寫程序源碼
1、準(zhǔn)備開發(fā)套件
【OpenHarmony快速入門】使用VSCode編寫程序源碼以及基礎(chǔ)設(shè)置-開源基礎(chǔ)軟件社區(qū)
2、建立目錄
ps1:獲取虛擬機(jī)ip地址確保虛擬機(jī)處于開機(jī)狀態(tài)
ps2:如何獲取虛擬機(jī)ip地址,下載編譯源碼可以看我的另一篇文章 https://ost.51cto.com/posts/24912打開VScode,點(diǎn)擊左上角file,點(diǎn)擊open folder,輸入兩個(gè)\ 和虛擬機(jī)ip地址
【OpenHarmony快速入門】使用VSCode編寫程序源碼以及基礎(chǔ)設(shè)置-開源基礎(chǔ)軟件社區(qū)
雙擊home文件夾,進(jìn)去到1.1.3根目錄,選擇1.1.1根目錄文件夾打開。
【OpenHarmony快速入門】使用VSCode編寫程序源碼以及基礎(chǔ)設(shè)置-開源基礎(chǔ)軟件社區(qū)
打開之后…
【OpenHarmony快速入門】使用VSCode編寫程序源碼以及基礎(chǔ)設(shè)置-開源基礎(chǔ)軟件社區(qū)
3、編寫源碼
打開 applications\sample\wifi-iot\app\startup 點(diǎn)擊左上角新建文件圖標(biāo) 新建hello.c文件
【OpenHarmony快速入門】使用VSCode編寫程序源碼以及基礎(chǔ)設(shè)置-開源基礎(chǔ)軟件社區(qū)
下面編寫C程序代碼,保存文件。
- ps1:其中 #include “ohos_init.h” 為OpenHarmony特定的頭文件。
- ps2:SYS_RUN為ohos_init.h頭文件定義的一個(gè)宏。
- ps3:這里爆紅先不急。
【OpenHarmony快速入門】使用VSCode編寫程序源碼以及基礎(chǔ)設(shè)置-開源基礎(chǔ)軟件社區(qū)
4、編寫編譯腳本
ps:千萬要注意有兩個(gè)BUILD.gn。
【OpenHarmony快速入門】使用VSCode編寫程序源碼以及基礎(chǔ)設(shè)置-開源基礎(chǔ)軟件社區(qū)
先打開 applications\sample\wifi-iot\app\startup\BUILD.gn。
需要把helloworld做成靜態(tài)庫,把source_set改成static_library。
【OpenHarmony快速入門】使用VSCode編寫程序源碼以及基礎(chǔ)設(shè)置-開源基礎(chǔ)軟件社區(qū)
【OpenHarmony快速入門】使用VSCode編寫程序源碼以及基礎(chǔ)設(shè)置-開源基礎(chǔ)軟件社區(qū)
定義庫名稱,靜態(tài)庫需要編譯的源文件,include目錄,保存文件。
【OpenHarmony快速入門】使用VSCode編寫程序源碼以及基礎(chǔ)設(shè)置-開源基礎(chǔ)軟件社區(qū)
再打開 applications\sample\wifi-iot\app\BUILD.gn。
ps:features字段用于指定業(yè)務(wù)模塊,使目標(biāo)模塊參與編譯,保存文件。
【OpenHarmony快速入門】使用VSCode編寫程序源碼以及基礎(chǔ)設(shè)置-開源基礎(chǔ)軟件社區(qū)
二、將源碼編譯成二進(jìn)制文件
打開虛擬機(jī) 進(jìn)入 OpenHarmony 源碼根目錄,選中1.1.3,鼠標(biāo)右擊選擇在終端打開。
【OpenHarmony快速入門】使用VSCode編寫程序源碼以及基礎(chǔ)設(shè)置-開源基礎(chǔ)軟件社區(qū)
輸入:
hb build -f
查看編譯結(jié)果,編譯成功完成。
【OpenHarmony快速入門】使用VSCode編寫程序源碼以及基礎(chǔ)設(shè)置-開源基礎(chǔ)軟件社區(qū)
三、將二進(jìn)制文件燒錄到開發(fā)板
編譯生成的固件位置
兩個(gè)\ 虛擬機(jī) IP\home\lushikai\openharmony\1.1.3\out\hispark_pegasus。
wifiiot_hispark_pegasus\Hi3861_wifiiot_app_allinone.bin。
首先,連接開發(fā)板,打開HiBurn,進(jìn)行初始配置。
【OpenHarmony快速入門】使用VSCode編寫程序源碼以及基礎(chǔ)設(shè)置-開源基礎(chǔ)軟件社區(qū)
選擇固件打開。
【OpenHarmony快速入門】使用VSCode編寫程序源碼以及基礎(chǔ)設(shè)置-開源基礎(chǔ)軟件社區(qū)
燒錄
ps:老方法,不會(huì)燒錄可以看另一篇文章 https://ost.51cto.com/posts/24912燒錄成功,點(diǎn)擊disconnect。
【OpenHarmony快速入門】使用VSCode編寫程序源碼以及基礎(chǔ)設(shè)置-開源基礎(chǔ)軟件社區(qū)
四、查看程序運(yùn)行結(jié)果
打開MobaXterm,連接好開發(fā)板串口。
【OpenHarmony快速入門】使用VSCode編寫程序源碼以及基礎(chǔ)設(shè)置-開源基礎(chǔ)軟件社區(qū)
按下開發(fā)板RST鍵,開始運(yùn)行。
【OpenHarmony快速入門】使用VSCode編寫程序源碼以及基礎(chǔ)設(shè)置-開源基礎(chǔ)軟件社區(qū)
查看輸出。
【OpenHarmony快速入門】使用VSCode編寫程序源碼以及基礎(chǔ)設(shè)置-開源基礎(chǔ)軟件社區(qū)
五、OpenHarmony啟動(dòng)的8個(gè)階段
宏命令
core: CORE_INIT()
core system service: SYS_SERVICE_INIT()
core system feature: SYS_FEATURE_INIT()
system startup: SYS_RUN()
system service: SYSEX_SERVICE_INIT()
system feature: SYSEX_FEATURE_INIT()
application-layer service: APP_SERVICE_INIT()
application-layer feature: APP_FEATURE_INIT()
六、VScode的IntelliSense設(shè)置
ps:有智能感知功能,自動(dòng)代碼補(bǔ)全,代碼提示,代碼導(dǎo)航,右鍵跳轉(zhuǎn),實(shí)時(shí)錯(cuò)誤檢查等。
回到VScode,打開寫好的hello.c文件,鼠標(biāo)移動(dòng)到爆紅位置會(huì)顯示錯(cuò)誤提示。
【OpenHarmony快速入門】使用VSCode編寫程序源碼以及基礎(chǔ)設(shè)置-開源基礎(chǔ)軟件社區(qū)
在有錯(cuò)誤提示地方有個(gè)黃色小燈泡點(diǎn)擊打開,點(diǎn)擊edit includePath setting。
【OpenHarmony快速入門】使用VSCode編寫程序源碼以及基礎(chǔ)設(shè)置-開源基礎(chǔ)軟件社區(qū)
找到包含路徑。
【OpenHarmony快速入門】使用VSCode編寫程序源碼以及基礎(chǔ)設(shè)置-開源基礎(chǔ)軟件社區(qū)
添加路徑。
${workspaceFolder}/utils/native/lite/include
【OpenHarmony快速入門】使用VSCode編寫程序源碼以及基礎(chǔ)設(shè)置-開源基礎(chǔ)軟件社區(qū)
ok~
【OpenHarmony快速入門】使用VSCode編寫程序源碼以及基礎(chǔ)設(shè)置-開源基礎(chǔ)軟件社區(qū)
建議的額外設(shè)置,完成之后保存文件。
【OpenHarmony快速入門】使用VSCode編寫程序源碼以及基礎(chǔ)設(shè)置-開源基礎(chǔ)軟件社區(qū)
ps:如果#include <stdio.h>頭文件也爆紅,下面介紹如何解決。
【OpenHarmony快速入門】使用VSCode編寫程序源碼以及基礎(chǔ)設(shè)置-開源基礎(chǔ)軟件社區(qū)
打開配置文件,""輸入路徑 注意第二行后面別忘了加逗號(hào) 然后保存文件。
${workspaceFolder}/device/hisilicon/hispark_pegasus/sdk_liteos/platform/os/Huawei_LiteOS/components/lib/libc/musl/include
【OpenHarmony快速入門】使用VSCode編寫程序源碼以及基礎(chǔ)設(shè)置-開源基礎(chǔ)軟件社區(qū)
ok~
【OpenHarmony快速入門】使用VSCode編寫程序源碼以及基礎(chǔ)設(shè)置-開源基礎(chǔ)軟件社區(qū)
七、VScode解析 .gn 文件
1、安裝gn.exe
PS:這一步有能力自行操作,安不安裝并不影響編譯。
下載 gn-windows-amd64.zip。
建議將 gn.exe 放到 C:\Windows\System32\ 不需要配置環(huán)境變量。
2、安裝GN插件 GNFormat插件
【OpenHarmony快速入門】使用VSCode編寫程序源碼以及基礎(chǔ)設(shè)置-開源基礎(chǔ)軟件社區(qū)
3、格式化 .gn 文件
回到start up目錄下的BUILD.gn文件。
【OpenHarmony快速入門】使用VSCode編寫程序源碼以及基礎(chǔ)設(shè)置-開源基礎(chǔ)軟件社區(qū)
app目錄下的BUILD.gn文件。
【OpenHarmony快速入門】使用VSCode編寫程序源碼以及基礎(chǔ)設(shè)置-開源基礎(chǔ)軟件社區(qū)
按下 Alt+Shift+F 進(jìn)行格式化。
八、屏蔽內(nèi)置的 test suite
ps1:test suite會(huì)影響觀察程序運(yùn)行結(jié)果。
ps2:注意刪除的還有86行的逗號(hào)。
刪除86-93行,保存文件,重新編譯。
【OpenHarmony快速入門】使用VSCode編寫程序源碼以及基礎(chǔ)設(shè)置-開源基礎(chǔ)軟件社區(qū)
回到虛擬機(jī),找到1.1.3源碼根目錄選擇在終端打開,進(jìn)行全量編譯。
hb build -f
【OpenHarmony快速入門】使用VSCode編寫程序源碼以及基礎(chǔ)設(shè)置-開源基礎(chǔ)軟件社區(qū)
打開HiBurn,對(duì)重新編譯的Hi3861_wifiiot_app_allinone.bin固件進(jìn)行燒錄。
ps:燒錄前先把MobaXterm關(guān)閉。
【OpenHarmony快速入門】使用VSCode編寫程序源碼以及基礎(chǔ)設(shè)置-開源基礎(chǔ)軟件社區(qū)
打開MobaXterm,連接串口,按下RST鍵。
可以看到串口輸出日志不再包含測(cè)試輸出了。
【OpenHarmony快速入門】使用VSCode編寫程序源碼以及基礎(chǔ)設(shè)置-開源基礎(chǔ)軟件社區(qū)
九、快速查找文件和代碼
按內(nèi)容查找。
grep -nr xxx
按文件名查找
find . -name 'xxx'