文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Openharmony轻量设备开发—润和智能家居套件-编译构建系统的使用

2024-11-30 10:26

关注

想了解更多关于开源的内容,请访问:

51CTO 开源基础软件社区

https://ost.51cto.com

在上一篇帖子中,我们学习了Openharmony轻量系统的编译构建https://ost.51cto.com/posts/25293,其中包括了子系统,组件的核心理念、编译构建系统的配置规则等等。下面我们来学习一下编译构建系统的使用。

案例:新增组件

1、根据功能准备开发套件

笔者使用的是润和智能家居开发套件,连接主板和核心板。

【Openharmony轻量设备开发】润和智能家居套件-编译构建系统的使用-开源基础软件社区

2、编写/合入组件源码

编写组件源码:applications\sample\component_demo\demo.c。

在applications/sample下新建component_demo文件夹。

在component_demo文件夹下新建文件demo.c。

编写如下代码:

【Openharmony轻量设备开发】润和智能家居套件-编译构建系统的使用-开源基础软件社区

#include 
 #include "ohos_init.h"
 void entry(void)
 {
   printf("I am a component.\r\n");
 }
 SYS_RUN(entry);

其中:

3、编写组件编译脚本

编写组件编译脚本:在applications\sample\component_demo下新建BUILD.gn文件,编写如下代码。

【Openharmony轻量设备开发】润和智能家居套件-编译构建系统的使用-开源基础软件社区

static_library("TestComponent"){

   sources = [ "demo.c" ]

   include_dirs = [
       "//utils/native/lite/include",
   ]
}

单独编译目标

在组件源码和编译脚本完成之后,我们可以尝试单独编译目标。

首先我们来看一下hb的用法:

打开虚拟机,进去Openharmony的源码目录,鼠标右键选择在终端中打开,输入如下命令:

hb build -h

显示如下:

【Openharmony轻量设备开发】润和智能家居套件-编译构建系统的使用-开源基础软件社区

语法:
hb build -T 路径:目标

在上面的例子中:
语法为:

hb build -f -T //applications/sample/component_demo:TestComponent

注意:-T是要大写的。

【Openharmony轻量设备开发】润和智能家居套件-编译构建系统的使用-开源基础软件社区

【Openharmony轻量设备开发】润和智能家居套件-编译构建系统的使用-开源基础软件社区

可以看到,编译成功完成。

4、添加组件定义

作为一个组件,必须要注册到一个子系统中,Openharmony才会意识到你的存在。
具体内容可以看上一篇帖子:https://ost.51cto.com/posts/25293找到build\lite\components\applications.json

添加如下定义:

【Openharmony轻量设备开发】润和智能家居套件-编译构建系统的使用-开源基础软件社区

{
      "component":"TestComponent",
      "description":"A test component",
      "optional":"true",
      "dirs":[
        "applications/sample/component_demo"
      ],
      "targets":[
        "//applications/sample/component_demo:TestComponent"
      ],
      "adapted_kernel":["liteos_m"]
    },

添加的内容解释如下:

【Openharmony轻量设备开发】润和智能家居套件-编译构建系统的使用-开源基础软件社区

5、将组件配置到产品

找到vendor\hisilicon\hispark_pegasus\config.json,添加如下配置:

【Openharmony轻量设备开发】润和智能家居套件-编译构建系统的使用-开源基础软件社区

接着我们再来单独编译组件,这与前面编译目标的效果一样(目标就是一个组件),这样会快捷。

语法:

hb build 组件名称

在终端中输入如下命令

hb build -f TestComponent

【Openharmony轻量设备开发】润和智能家居套件-编译构建系统的使用-开源基础软件社区

编译结果如上。

这样就不用像之前那样想要编译一个组件,还需要它的路径,会更快捷方便。

6、编译产品

在轻量系统中,单独编译的目标或者是组件是不能够独立运行的,这种编译方式适合发现编译错误,但是要烧录运行的话,我们要进行固件的全量编译(hb build -f)。

接下来我们进行全量编译:
执行以下命令:

hb build -f

编译成功结果如下:

【Openharmony轻量设备开发】润和智能家居套件-编译构建系统的使用-开源基础软件社区

【Openharmony轻量设备开发】润和智能家居套件-编译构建系统的使用-开源基础软件社区

7、烧录固件

下面就到了我们熟悉的地方,烧录固件,笔者这里采用的是Hiburn烧录工具,相关细节可以看我这篇贴子:https://ost.51cto.com/posts/25292下面给出烧录成功之后的样子:

【Openharmony轻量设备开发】润和智能家居套件-编译构建系统的使用-开源基础软件社区

烧录完成后,点击disconnect,然后关闭Hiburn烧录工具。

8、运行

运行我们采用的是MobaXterm串口终端工具。相关细节可以看我这篇帖子:https://ost.51cto.com/posts/25292下面给出运行结果:

【Openharmony轻量设备开发】润和智能家居套件-编译构建系统的使用-开源基础软件社区

可以看到,成功的编译运行了刚刚的component_demo组件.总结:新增组件的案例就是按照这1-8个步骤来完成。再次附上子系统的构建模型,希望大家能有更深的理解。

【Openharmony轻量设备开发】润和智能家居套件-编译构建系统的使用-开源基础软件社区

想了解更多关于开源的内容,请访问:

51CTO 开源基础软件社区

https://ost.51cto.com

来源:51CTO 开源基础软件社区内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯