Niobe開發板中基于OpenHarmony添加應用程序HelloWorld
??https://harmonyos.51cto.com??
Niobe開發套件是拓維信息基于OpenHarmony L0系統研發出的一套智能家居物聯網開發套件,搭載主芯片Hi3861. 想進一步認識Niobe的請前往Niobe行業物聯網開發板及套件詳解
而如何在Niobe上開發OpenHarmony的應用程序呢,請你往下看!
修改源碼
1 確定目錄結構
先在路徑./applications/app下新建一個目錄,用于存放業務源碼文件。其中“.”表示OpenHarmony源碼的根目錄。
例如:在app下新增業務NIOBE_OS_helloworld,其中hello_world.c為業務代碼,BUILD.gn為編譯腳本,其目錄結構如下:
.
└── applications
└── app
│── NIOBE_OS_helloworld
│ │── hello_world.c
│ └── BUILD.gn
└── BUILD.gn
2 編寫業務代碼
在hello_world.c文件中新建業務入口函數HelloWorld,并實現業務邏輯。并在代碼最下方,使用OpenHarmony啟動恢復模塊接口SYS_RUN()或者APP_FEATURE_INIT()啟動業務。(啟動恢復模塊接口定義在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 編寫將業務構建成靜態庫的BUILD.gn
在./applications/app/NIOBE_OS_helloworld下的BUILD.gn文件中添加如下代碼。
static_library("helloworld"){
sources = [
"hello_world.c"
]
}
- static_library中指定業務模塊的編譯結果,為靜態庫文件helloworld.a
- sources中指定靜態庫.a所依賴的.c文件及其路徑,若路徑中包含"http://“則表示絕對路徑(此處為代碼根路徑),若不包含”//"則表示相對路徑。
4 編寫模塊BUILD.gn文件
編寫模塊BUILD.gn文件,指定需參與構建的特性模塊。
在./applications/app下的BUILD.gn文件中添加如下代碼
import("http://build/lite/config/component/lite_component.gni")
lite_component("app") {
features = [
"NIOBE_OS_helloworld:helloworld",
]
}
- NIOBE_OS_helloworld是相對路徑,指向./applications/app/NIOBE_OS_helloworld/BUILD.gn。
- helloworld是目標,指向./applications/app/NIOBE_OS_helloworld/BUILD.gn中的static_library(“helloworld”)。
編譯
用docker編譯,進入OpenHarmony代碼根目錄,運行命令進入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
.
//繼續回車選擇niobe_wifi_iot
hb build -b release -f
等待編譯成功
燒錄
編譯成功后,bin文件會保存在out/niobe/niobe_wifi_iot目錄下:
用HiBurn.exe將Hi3861_wifiiot_app_allinone.bin文件燒錄到niobe核心板上:
首先用typeC線連接電腦和Niobe核心板,可通過設備管理確定Niobe連接的端口號,該端口號后續HiBurn和sscom都需要。
再通過HiBurn.exe工具將固件燒錄到Niobe上,HiBurn工具的獲取和操作可參考燒錄指導
調試
采用串口調試工具sscom查看串口打印信息,先對sscom進行配置,設置端口號、波特率等:
點擊打開串口,按下Niobe核心板上的復位按鍵,可通過sscom看到串口打印日志如下:
**********************
[Talkweb] Hello world.
**********************
到此,已在OpneHarmony中添加應用程序HelloWorld,并成功在Niobe調試。
??https://harmonyos.51cto.com??