HI3861学习笔记——打印Hello World
Posted Leung_ManWah
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HI3861学习笔记——打印Hello World相关的知识,希望对你有一定的参考价值。
一、添加Hello World源码文件
1.1 确定目录结构
开发者编写业务时,务必先在 ./applications/BearPi/BearPi-HM_Nano/sample 路径下新建一个目录(或一套目录结构),用于存放业务源码文件。
例如:在 app 下新增业务 my_app
,其中 hello_world.c
为业务代码,BUILD.gn
为编译脚本,具体规划目录结构如下:
.
└── applications
└── BearPi
└── BearPi-HM_Nano
└── sample
│── my_first_app
│ │── hello_world.c
│ └── BUILD.gn
└── BUILD.gn
1.2 修改文件夹权限
在Ubuntu中 ./applications/BearPi/BearPi-HM_Nano/sample
,修改sample文件夹权限为可创建和删除文件
1.3 新增my_app文件夹
在VS Code中 ./applications/BearPi/BearPi-HM_Nano/sample
路径下新建一个my_app目录,用于存放业务源码文件。
1.4 新增hello_world.c文件
在VS Code中 ./applications/BearPi/BearPi-HM_Nano/sample/my_app
路径下新建一个hello_world.c文件,该文件为业务源码文件。
1.5 新增BUILD.gn文件
在VS Code中 ./applications/BearPi/BearPi-HM_Nano/sample/my_app
路径下新建一个BUILD.gn文件,该文件为业务源码编译脚本。
二、编写Hello World业务代码
在 hello_world.c
中新建业务入口函数 Hello_World
,并实现业务逻辑。并在代码最下方,使用 OpenHarmony 初始化和启动应用层功能接口 APP_FEATURE_INIT()
启动业务。(APP_FEATURE_INIT
定义在 utils\\native\\lite\\include\\ohos_init.h 文件中)
#include <stdio.h>
#include "ohos_init.h"
void Hello_World(void)
{
printf("hello world!\\r\\n");
}
APP_FEATURE_INIT(Hello_World);
三、编写编译构建文件BUILD.gn
3.1 编写用于将业务构建成静态库的BUILD.gn文件
文件位于 ./applications/BearPi/BearPi-HM_Nano/sample/my_app/BUILD.gn
static_library("myapp") {
sources = [
"hello_world.c"
]
include_dirs = [
"//utils/native/liteos/include"
]
}
static_library
中指定业务模块的编译结果,为静态库文件libmyapp.a
,开发者根据实际情况完成填写。sources
中指定静态库.a所依赖的.c文件及其路径,若路径中包含"//“则表示绝对路径(此处为代码根路径),若不包含”//"则表示相对路径。include_dirs
中指定source
所需要依赖的.h文件路径。
3.2 编写模块BUILD.gn文件,指定需参与构建的特性模块
文件位于 ./applications/BearPi/BearPi-HM_Nano/sample/BUILD.gn
修改读写权限
在features字段中增加索引"my_app:myapp",使目标模块参与编译。
#"D1_iot_wifi_scan:wifi_scan",
#"D2_iot_wifi_connect:wifi_connect",
#"D3_iot_udp_client:udp_client",
#"D4_iot_tcp_server:tcp_server",
#"D5_iot_mqtt:iot_mqtt",
#"D6_iot_cloud_oc:oc_mqtt",
#"D7_iot_cloud_onenet:onenet_mqtt",
"my_app:myapp"
my_app
是相对路径,指向 ./applications/BearPi/BearPi-HM_Nano/sample/my_first_app/BUILD.gn。myapp
是目标,指向 ./applications/BearPi/BearPi-HM_Nano/sample/my_first_app/BUILD.gn 中的static_library("myapp")
。
四、调试Hello World程序
然后 hpm dist
进行编译,等待直到屏幕出现:BUILD SUCCESS
字样,说明编译成功。
烧录固件后,查看串口打印:
• 由 Leung 写于 2021 年 5 月 10 日
• 参考:BearPi-HM_Nano开发板第一个示例程序
【鸿蒙2.0设备开发教程】小熊派HarmonyOS 鸿蒙·季 开发教程
以上是关于HI3861学习笔记——打印Hello World的主要内容,如果未能解决你的问题,请参考以下文章