Niobe開(kāi)發(fā)板中基于OpenHarmony添加應(yīng)用程序HelloWorld
??想了解更多內(nèi)容,請(qǐng)?jiān)L問(wèn):??
??51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)??
??https://harmonyos.51cto.com??
Niobe開(kāi)發(fā)套件是拓維信息基于OpenHarmony L0系統(tǒng)研發(fā)出的一套智能家居物聯(lián)網(wǎng)開(kāi)發(fā)套件,搭載主芯片Hi3861. 想進(jìn)一步認(rèn)識(shí)Niobe的請(qǐng)前往Niobe行業(yè)物聯(lián)網(wǎng)開(kāi)發(fā)板及套件詳解
而如何在Niobe上開(kāi)發(fā)OpenHarmony的應(yīng)用程序呢,請(qǐng)你往下看!
修改源碼
1 確定目錄結(jié)構(gòu)
先在路徑./applications/app下新建一個(gè)目錄,用于存放業(yè)務(wù)源碼文件。其中“.”表示OpenHarmony源碼的根目錄。
例如:在app下新增業(yè)務(wù)NIOBE_OS_helloworld,其中hello_world.c為業(yè)務(wù)代碼,BUILD.gn為編譯腳本,其目錄結(jié)構(gòu)如下:
.
└── applications
└── app
│── NIOBE_OS_helloworld
│ │── hello_world.c
│ └── BUILD.gn
└── BUILD.gn
2 編寫(xiě)業(yè)務(wù)代碼
在hello_world.c文件中新建業(yè)務(wù)入口函數(shù)HelloWorld,并實(shí)現(xiàn)業(yè)務(wù)邏輯。并在代碼最下方,使用OpenHarmony啟動(dòng)恢復(fù)模塊接口SYS_RUN()或者APP_FEATURE_INIT()啟動(dòng)業(yè)務(wù)。(啟動(dòng)恢復(fù)模塊接口定義在ohos_init.h文件中)
#include "ohos_init.h"
#include "ohos_types.h"
void HelloWorld(void)
{
printf("\n\n");
printf("**********************\n");
printf("[Talkweb] Hello world.\n");
printf("**********************\n");
return;
}
SYS_RUN(HelloWorld);
3 編寫(xiě)將業(yè)務(wù)構(gòu)建成靜態(tài)庫(kù)的BUILD.gn
在./applications/app/NIOBE_OS_helloworld下的BUILD.gn文件中添加如下代碼。
static_library("helloworld"){
sources = [
"hello_world.c"
]
}
- static_library中指定業(yè)務(wù)模塊的編譯結(jié)果,為靜態(tài)庫(kù)文件helloworld.a
- sources中指定靜態(tài)庫(kù).a所依賴(lài)的.c文件及其路徑,若路徑中包含"http://“則表示絕對(duì)路徑(此處為代碼根路徑),若不包含”//"則表示相對(duì)路徑。
4 編寫(xiě)模塊BUILD.gn文件
編寫(xiě)模塊BUILD.gn文件,指定需參與構(gòu)建的特性模塊。
在./applications/app下的BUILD.gn文件中添加如下代碼
import("http://build/lite/config/component/lite_component.gni")
lite_component("app") {
features = [
"NIOBE_OS_helloworld:helloworld",
]
}
- NIOBE_OS_helloworld是相對(duì)路徑,指向./applications/app/NIOBE_OS_helloworld/BUILD.gn。
- helloworld是目標(biāo),指向./applications/app/NIOBE_OS_helloworld/BUILD.gn中的static_library(“helloworld”)。
編譯
用docker編譯,進(jìn)入OpenHarmony代碼根目錄,運(yùn)行命令進(jìn)入docker鏡像,在鏡像中用hb編譯:
sudo docker run -it -v $(pwd):/home/openharmony swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker:0.0.5
hb set
.
//繼續(xù)回車(chē)選擇niobe_wifi_iot
hb build -b release -f
等待編譯成功
燒錄
編譯成功后,bin文件會(huì)保存在out/niobe/niobe_wifi_iot目錄下:
用HiBurn.exe將Hi3861_wifiiot_app_allinone.bin文件燒錄到niobe核心板上:
首先用typeC線(xiàn)連接電腦和Niobe核心板,可通過(guò)設(shè)備管理確定Niobe連接的端口號(hào),該端口號(hào)后續(xù)HiBurn和sscom都需要。
再通過(guò)HiBurn.exe工具將固件燒錄到Niobe上,HiBurn工具的獲取和操作可參考燒錄指導(dǎo)
調(diào)試
采用串口調(diào)試工具sscom查看串口打印信息,先對(duì)sscom進(jìn)行配置,設(shè)置端口號(hào)、波特率等:
點(diǎn)擊打開(kāi)串口,按下Niobe核心板上的復(fù)位按鍵,可通過(guò)sscom看到串口打印日志如下:
**********************
[Talkweb] Hello world.
**********************
到此,已在OpneHarmony中添加應(yīng)用程序HelloWorld,并成功在Niobe調(diào)試。
??想了解更多內(nèi)容,請(qǐng)?jiān)L問(wèn):??
??51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)??
??https://harmonyos.51cto.com??