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文件及其路径,若路径中包含”//“则表示绝对路径(此处为代码根路径),若不包含”//”则表示相对路径。
4 编写模块BUILD.gn文件
编写模块BUILD.gn文件,指定需参与构建的特性模块。
在./applications/app下的BUILD.gn文件中添加如下代码
import("//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调试。