0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

鸿蒙OpenHarmony【轻量系统编写“Hello World”程序】 (基于Hi3861开发板)

jf_46214456 来源:jf_46214456 作者:jf_46214456 2024-04-21 21:44 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

编写“Hello World”程序

下方将通过修改源码的方式展示如何编写简单程序,输出“Hello world”。请在下载的源码目录中进行下述操作。

前提条件

已参考鸿蒙开发指导文档:[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]

操作步骤

搜狗高速浏览器截图20240326151450.png

  1. 确定目录结构。
    开发者编写业务代码时,务必先在./applications/sample/wifi-iot/app路径下新建一个目录(或一套目录结构),用于存放业务源码文件。
    例如:在app下新增业务my_first_app,其中hello_world.c为业务代码,BUILD.gn为编译脚本,具体规划目录结构如下:

    .
    └── applications
        └── sample
            └── wifi-iot
                └── app
                    └── my_first_app
                      │── hello_world.c
                      └── BUILD.gn
    
  2. 编写业务代码。
    新建./applications/sample/wifi-iot/app/my_first_app下的hello_world.c文件,在hello_world.c中新建业务入口函数HelloWorld,并实现业务逻辑。并在代码最下方,使用OpenHarmony启动恢复模块接口SYS_RUN()启动业务。(SYS_RUN定义在ohos_init.h文件中)

    #include < stdio.h >
    #include "ohos_init.h"
    #include "ohos_types.h"
    
    void HelloWorld(void)
    {
        printf("[DEMO] Hello world.n");
    }
    SYS_RUN(HelloWorld);
    
  3. 编写用于将业务构建成静态库的BUILD.gn文件。
    新建./applications/sample/wifi-iot/app/my_first_app下的BUILD.gn文件,并完成如下配置。
    如步骤1所述,BUILD.gn文件由三部分内容(目标、源文件、头文件路径)构成,需由开发者完成填写。

    static_library("myapp") {
        sources = [
            "hello_world.c"
        ]
        include_dirs = [
            "//utils/native/lite/include"
        ]
    }
    
    • static_library中指定业务模块的编译结果,为静态库文件libmyapp.a,开发者根据实际情况完成填写。
    • sources中指定静态库.a所依赖的.c文件及其路径,若路径中包含"//"则表示绝对路径(此处为代码根路径),若不包含"//"则表示相对路径。
    • include_dirs中指定source所需要依赖的.h文件路径。
  4. 添加新组件。
    修改文件build/lite/components/applications.json,添加组件hello_world_app的配置,如下所示为applications.json文件片段,"##start##"和"##end##"之间为新增配置("##start##"和"##end##"仅用来标识位置,添加完配置后删除这两行):

    icon-note.gif说明: 本章节操作是以OpenHarmony-v3.1-Release版本为例进行操作的,该版本中,组件配置文件为build/lite/components/applications.json;若源码版本大于等于OpenHarmony 3.2 Beta2时,组件配置文件为build/lite/components/communication.json。

    {
      "components": [
        {
          "component": "camera_sample_communication",
          "description": "Communication related samples.",
          "optional": "true",
          "dirs": [
            "applications/sample/camera/communication"
          ],
          "targets": [
            "//applications/sample/camera/communication:sample"
          ],
          "rom": "",
          "ram": "",
          "output": [],
          "adapted_kernel": [ "liteos_a" ],
          "features": [],
          "deps": {
            "components": [],
            "third_party": []
          }
        },
    ##start##
        {
          "component": "hello_world_app",
          "description": "hello world samples.",
          "optional": "true",
          "dirs": [
            "applications/sample/wifi-iot/app/my_first_app"
          ],
          "targets": [
            "//applications/sample/wifi-iot/app/my_first_app:myapp"
          ],
          "rom": "",
          "ram": "",
          "output": [],
          "adapted_kernel": [ "liteos_m" ],
          "features": [],
          "deps": {
            "components": [],
            "third_party": []
          }
        },
    ##end##
        {
          "component": "camera_sample_app",
          "description": "Camera related samples.",
          "optional": "true",
          "dirs": [
            "applications/sample/camera/launcher",
            "applications/sample/camera/cameraApp",
            "applications/sample/camera/setting",
            "applications/sample/camera/gallery",
            "applications/sample/camera/media"
          ],
    
  5. 修改单板配置文件。
    修改文件vendor/hisilicon/hispark_pegasus/config.json,新增hello_world_app组件的条目,如下所示代码片段为applications子系统配置,"##start##"和"##end##"之间为新增条目("##start##"和"##end##"仅用来标识位置,添加完配置后删除这两行):

    {
            "subsystem": "applications",
            "components": [
    ##start##
              { "component": "hello_world_app", "features":[] },
    ##end##
              { "component": "wifi_iot_sample_app", "features":[] }
            ]
          },
    

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 开发板
    +关注

    关注

    26

    文章

    6422

    浏览量

    120917
  • 鸿蒙
    +关注

    关注

    60

    文章

    3019

    浏览量

    46178
  • Hi3861
    +关注

    关注

    1

    文章

    64

    浏览量

    7681
  • OpenHarmony
    +关注

    关注

    33

    文章

    3974

    浏览量

    21361
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    基于凌羽派的OpenHarmony北向应用开发Hello World 示例应用

    本示例是基于 OpenHarmony 开发的第一个简单应用,用于展示如何创建、构建和部署一个基本的应用程序。 环境配置如下所示: API:18 SDK
    发表于 02-25 11:25

    基于凌羽派的OpenHarmony北向应用开发Hello World 示例应用

    本示例是基于OpenHarmony开发的第一个简单应用,用于展示如何创建、构建和部署一个基本的应用程序。环境配置如下所示:API:18SDK:OpenHarmony-v5.
    的头像 发表于 02-25 10:23 335次阅读
    基于凌羽派的<b class='flag-5'>OpenHarmony</b>北向应用<b class='flag-5'>开发</b>:<b class='flag-5'>Hello</b> <b class='flag-5'>World</b> 示例应用

    触觉智能Purple Pi OH开发板率先适配OpenHarmony6.0 Release,鸿蒙明星开发板

    2025年9月19日,在官网上线开源鸿蒙OpenHarmony6.0Release仅13天,触觉智能宣布旗下PurplePiOH开发板成功完成OpenHarmony6.0Release
    的头像 发表于 10-29 08:00 1095次阅读
    触觉智能Purple Pi OH<b class='flag-5'>开发板</b>率先适配<b class='flag-5'>OpenHarmony</b>6.0 Release,<b class='flag-5'>鸿蒙</b>明星<b class='flag-5'>开发板</b>

    触觉智能RK3576开发板OpenHarmony开源鸿蒙系统USB控制传输功能示例

    本文介绍OpenHarmony开源鸿蒙系统的USB控制传输功能实现及相关代码示例,基于触觉智能RK3576开发板PurplePiOH2演示。Open
    的头像 发表于 09-30 16:31 1814次阅读
    触觉智能RK3576<b class='flag-5'>开发板</b><b class='flag-5'>OpenHarmony</b>开源<b class='flag-5'>鸿蒙</b><b class='flag-5'>系统</b>USB控制传输功能示例

    迅为Hi3516CV610开发板强劲内核-海思Hi3516CV610核心

    迅为Hi3516CV610开发板强劲内核-海思Hi3516CV610核心
    的头像 发表于 09-30 15:19 2586次阅读
    迅为<b class='flag-5'>Hi</b>3516CV610<b class='flag-5'>开发板</b>强劲内核-海思<b class='flag-5'>Hi</b>3516CV610核心<b class='flag-5'>板</b>

    【项目实战】基于Hi3861鸿蒙智能小车(循迹、超声波避障、远程控制、语音控制、4G定位)有教程代码

    入门鸿蒙物联网找不到“落地”项目——要么功能简单练不到核心,要么资料零散易半途而废。本次【项目实战】聚焦基于Hi3861鸿蒙智能小车,整合了循迹、超声波避障、远程控制、语音交互和4G定位等功能
    的头像 发表于 09-10 17:13 1522次阅读
    【项目实战】基于<b class='flag-5'>Hi3861</b>的<b class='flag-5'>鸿蒙</b>智能小车(循迹、超声波避障、远程控制、语音控制、4G定位)有教程代码

    【汇思博SEEK100开发板试用体验】在开发板鸿蒙OS搭建QT开发环境

    应用所需的功能逻辑。比如与开发板的硬件功能进行交互,若要调用开发板的摄像头功能,可通过相关的 Qt 多媒体库结合鸿蒙系统提供的摄像头接口进行开发
    发表于 08-24 18:34

    触觉智能RK3506开发板通过OpenHarmony 5.1 XTS认证,引领鸿蒙开发新标杆!

    触觉智能作为瑞芯微专业方案商与开源鸿蒙南向硬件厂家,旗下RK3506开发板及其核心(模组)通过OpenHarmony5.1XTS认证!这一消息犹在行业内引起了广泛关注,标志着触觉智能
    的头像 发表于 08-14 23:49 1969次阅读
    触觉智能RK3506<b class='flag-5'>开发板</b>通过<b class='flag-5'>OpenHarmony</b> 5.1 XTS认证,引领<b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b>新标杆!

    尝鲜开源鸿蒙6.0?试试明星开发板Purple Pi OH

    6月19日,开源鸿蒙官方发布了OpenHarmony6.0Beta1版本,触觉智能紧随其后,率先在PurplePiOH开发板进行适配
    的头像 发表于 07-11 18:42 1781次阅读
    尝鲜开源<b class='flag-5'>鸿蒙</b>6.0?试试明星<b class='flag-5'>开发板</b>Purple Pi OH

    【Milk-V Duo S 开发板免费体验】2 - 安装编译环境并测试Hello world!

    感谢电子发烧友和Milk-V提供的评测机会。 引言 前面已经简单介绍了Milk-V DuoS 开发板,今天来安装一下交叉编译开发环境。本地使用的是Windows 中 WSL 安装的 Ubuntu
    发表于 07-07 21:18

    开鸿开发板深度体验:从开源鸿蒙开发到AI场景实践

    的KaihongBoard-3588S-SBC和KaihongBoard-3576-SBC被评为“2025OpenHarmony明星开发板”,可实现设备快速开源鸿蒙化升级、分布式互联协同、弹性部署等能力。
    的头像 发表于 07-03 17:03 1988次阅读
    开鸿<b class='flag-5'>开发板</b>深度体验:从开源<b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b>到AI场景实践

    【润开鸿HH-SCDAYU800A开发板试用体验】Hello World

    Studio 5.1,而我们的开发板系统OpenHarmony 4.1.7.5。这样会导致始终找不到设备 No Devices。 后来查到得用DevEco Studio 4.1版本,并且安装
    发表于 07-01 00:52

    开源鸿蒙开发必备!OpenHarmony替换Full SDK全攻略

    本文介绍开源鸿蒙OpenHarmony替换FullSDK的方法,演示设备为触觉智能PurplePiOH鸿蒙开发板获取FullSD
    的头像 发表于 06-06 18:11 1032次阅读
    开源<b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b>必备!<b class='flag-5'>OpenHarmony</b>替换Full SDK全攻略

    触觉智能鸿蒙开发板率先通过OpenHarmony5.0认证(生态产品兼容性证书)

    触觉智能PurplePiOH鸿蒙开发板继4.1版本XTS认证火速出圈后,再次狂飙!成功通过OpenHarmony5.0ReleaseXTS认证,成为首批开放原子基金会生态产品之一。这一认证标志着其在
    的头像 发表于 06-06 17:54 1442次阅读
    触觉智能<b class='flag-5'>鸿蒙</b><b class='flag-5'>开发板</b>率先通过<b class='flag-5'>OpenHarmony</b>5.0认证(生态产品兼容性证书)

    贝启BQ3568HM 开发板被选用为 OpenHarmony 明星开发板

    经开放原子开源基金会OpenHarmony社区官方测评评选,贝启科技BQ3568HM开源鸿蒙开发板被正式选用为OpenHarmony明星开发板
    的头像 发表于 05-25 00:22 1725次阅读
    贝启BQ3568HM <b class='flag-5'>开发板</b>被选用为 <b class='flag-5'>OpenHarmony</b> 明星<b class='flag-5'>开发板</b>