HI3861学习笔记(2)——新建工程(打印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 鸿蒙·季 开发教程

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Leung_ManWah

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值