Harmony_Hi3861学习---helloworld,了解工程创建

1、创建业务文件

1.1 业务文件所在目录

在这个目录下    E:\hi3861_hdu_iot_application240515\src\vendor  存放着各企业的业务代码,有小熊派、润和、海思和华清远见等,新建的业务代码也放在这里面。以小熊派为例,进入目录查看,其按照内容分了ABCD4类业务代码。

由于代码支持所有厂家的例程,选择不同厂家需要在其目录下E:\hi3861_hdu_iot_application-master\src\applications\sample\wifi-iot\app修改编译的厂家目录。以小熊派为例:

修改目录为小熊派例程所在目录。

1.2 两种方法建立业务文件夹

可以在此目录建立我们的业务代码,新建文件夹E1_hello_world

查看工程里面同步了这个文件夹

也可以在工程下面新建,在demo文件夹右键新建文件加,然后命名即可,两种方法相同。

2、业务文件组成

      业务文件有两部分组成,分别是.c的源文件和build.gn文件。.c文件就是我们的业务源码文件,helloworld对应的业务代码在此文件里面编写,重点介绍build.gn文件。

       目前OpenHarmony编译构建是基于 Gn 和 Ninja 完成的。 BUILD.gn为编译脚本。整个编译的运作机制并不复杂,可以总结为:以命令行为驱动,调用gn,执行ninja。命令行主要做解析方面的工作,解析待编译的产品名称,加载相关配置;调用gn是为了根据命令行解析的产品名称和编译类型,配置编译工具链和全局的编译选项;最后执行Ninja,以启动编译并生成对应的产品版本。

2.1  .C文件的建立与编写

在E1_hello_world文件下新建hello_world.c文件 ,如图。

编写的业务代码如下:

#include <stdio.h>
#include "ohos_init.h"

void Hello_World(void)
{
    printf("hello world!\r\ntoday is monday\r\n");
}
APP_FEATURE_INIT(Hello_World);

 APP_FEATURE_INITOpenHarmony启动恢复模块接口,该接口用来启动业务。也可以使用SYS_RUN来实现,效果是一样的。(APP_FEATURE_INIT和SYS_RUN定义都在ohos_init.h)文件中。

2.2  build.gn文件的编写

static_library("helloworld") {
    sources = [
        "hello_world.c"
    ]

    include_dirs = [
      #  "//base/iot_hardware/peripheral/interfaces/kits",
        "//vendor/bearpi/bearpi_hm_nano/common/iot_hardware_hals/include",
    ]
    # deps = [ "//vendor/bearpi/bearpi_hm_nano/common/iot_hardware_hals:bearpi_iot_hardware_hals" ]
}

static_library 是静态库,也就是编译构建静态库,稍后再编译完成的out/bearpi_hm_nano/libs文件夹下有对应生成的libhello_world.a文件。编译的源文件是hello_world.c,该源文件里面有.h对应的头文件,这些头文件所在路径是//utild/native/lite/include"。路径中包含“//”则表示绝对路径代码的根路径,即bearpi-hm_nano文件夹)。

2.3编写模块BUILD.gn文件,指定需要参与构建的特性模块

在E:\hi3861_hdu_iot_application240515\src\vendor\bearpi\bearpi_hm_nano\demo目录下新建模块的build.gn文件

文件代码如下:

import("//build/lite/config/component/lite_component.gni")

lite_component("demo") {
  features = [
 
    "E1_hello_world:helloworld"

  ]
}

E1_hello_world 指的是业务代码的 build.gn所在路径,使目标模块参与编译。冒号后的 helloworld指的是该目录下的 BUILD.gn 文件中的static_library("helloworld")

3 编译下载输出打印

3.1编译

3.2下载

提前装好串口驱动

按板子上的reset,自动下载。

3.3打印

4、总结:

在原有模板上建立自己的工程分为三个步骤

1、修改E:\hi3861_hdu_iot_application-master\src\applications\sample\wifi-iot\app\build.gn修改build.gn,是参与构建厂家例程所在目录

2、编写业务代码.c文件和业务代码编译构建build.gn文件

3、编写模块的编译构建文件build.gn

  • 22
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值