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

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

3天内不再提示

鸿蒙OpenHarmony【小型系统编写“Hello World”程序】 (基于Hi3516开发板)

jf_46214456 来源:jf_46214456 作者:jf_46214456 2024-04-22 21:55 次阅读

编写“Hello World”程序

下方将展示如何在单板上运行第一个应用程序,其中包括新建应用程序、编译、烧写、运行等步骤,最终输出“Hello World!”。

前提条件

已参考[创建工程并获取源码],创建Hi3516开发板的源码工程。
鸿蒙开发指导文档:[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]

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

示例目录

示例完整目录如下:
HarmonyOSOpenHarmony鸿蒙文档籽料:mau123789是v直接拿

applications/sample/hello
│── BUILD.gn
└── src
    └── helloworld.c

开发步骤

请在源码目录中通过以下步骤创建“Hello World”应用程序。

  1. 新建目录及源码。
    新建applications/sample/hello/src/helloworld.c目录及文件,代码如下所示,用户可以自定义修改打印内容(例如:修改OHOS为World)。当前应用程序可支持标准C及C++的代码开发。

    #include < stdio.h >
    
    int main(int argc, char **argv)
    {
        printf("nn");
        printf("nttHello OHOS!n");
        printf("nnn");
    
        return 0;
    }
    
  2. 新建编译组织文件。
    新建applications/sample/hello/BUILD.gn文件,内容如下所示:

    import("//build/lite/config/component/lite_component.gni")
    lite_component("hello-OHOS") {
      features = [ ":helloworld" ]
    }
    executable("helloworld") {
      output_name = "helloworld"
      sources = [ "src/helloworld.c" ]
    }
    
  3. 添加新组件。
    修改文件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/hello"
          ],
          "targets": [
            "//applications/sample/hello:hello-OHOS"
          ],
          "rom": "",
          "ram": "",
          "output": [],
          "adapted_kernel": [ "liteos_a" ],
          "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"
          ],
    
  4. 修改单板配置文件。
    修改文件vendor/hisilicon/hispark_taurus/config.json,新增hello_world_app组件的条目,如下所示代码片段为applications子系统配置,"##start##"和"##end##"之间为新增条目("##start##"和"##end##"仅用来标识位置,添加完配置后删除这两行):

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

审核编辑 黄宇

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

    关注

    25

    文章

    4638

    浏览量

    95298
  • 鸿蒙
    +关注

    关注

    55

    文章

    2246

    浏览量

    42319
  • HarmonyOS
    +关注

    关注

    79

    文章

    1943

    浏览量

    29573
  • OpenHarmony
    +关注

    关注

    24

    文章

    3499

    浏览量

    15472
收藏 人收藏

    评论

    相关推荐

    鸿蒙OpenHarmony【标准系统编写Hello World程序】 (基于RK3568开发板

    源码],创建RK3568开发板的源码工程。 示例目录 拉取openharmony项目代码,在代码根目录创建sample子系统文件夹,在子系统目录下创建
    的头像 发表于 04-24 17:32 440次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>OpenHarmony</b>【标准<b class='flag-5'>系统编写</b>“<b class='flag-5'>Hello</b> <b class='flag-5'>World</b>”<b class='flag-5'>程序</b>】 (基于RK3568<b class='flag-5'>开发板</b>)

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

    下方将通过修改源码的方式展示如何编写简单程序,输出“Hello world”。请在下载的源码目录中进行下述操作。
    的头像 发表于 05-16 18:15 752次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>OpenHarmony</b>【轻量<b class='flag-5'>系统</b> <b class='flag-5'>编写</b>“<b class='flag-5'>Hello</b> <b class='flag-5'>World</b>”<b class='flag-5'>程序</b>】 (基于<b class='flag-5'>Hi</b>3861<b class='flag-5'>开发板</b>)

    鸿蒙OpenHarmony小型系统 编写Hello World程序】 (基于Hi3516开发板

    展示如何在单板上运行第一个应用程序,其中包括新建应用程序、编译、烧写、运行等步骤,最终输出“Hello World!”。
    的头像 发表于 05-10 16:26 493次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>OpenHarmony</b>【<b class='flag-5'>小型</b><b class='flag-5'>系统</b> <b class='flag-5'>编写</b>“<b class='flag-5'>Hello</b> <b class='flag-5'>World</b>”<b class='flag-5'>程序</b>】 (基于<b class='flag-5'>Hi3516</b><b class='flag-5'>开发板</b>)

    鸿蒙OpenHarmony小型系统 烧录】(基于Hi3516开发板

    针对Hi3516DV300开发板,除了DevEco Device Tool(操作方法请参考烧录))外,还可以使用HiTool进行烧录。
    的头像 发表于 04-28 15:03 983次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>OpenHarmony</b>【<b class='flag-5'>小型</b><b class='flag-5'>系统</b> 烧录】(基于<b class='flag-5'>Hi3516</b><b class='flag-5'>开发板</b>)

    鸿蒙OpenHarmony南向:【Hi3516标准系统入门(命令行方式)】

    小型系统外,Hi3516DV300开发板还支持标准系统。此章节简要介绍如何使用命令行在Hi3516
    的头像 发表于 05-08 09:26 587次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>OpenHarmony</b>南向:【<b class='flag-5'>Hi3516</b>标准<b class='flag-5'>系统</b>入门(命令行方式)】

    请问在海思Hi3516开发板上能跑鸿蒙liteos吗

    请问在海思Hi3516开发板上能跑鸿蒙liteos吗
    发表于 03-02 15:18

    OpenHarmony2.0 一站式编译烧录Hi3516(3518))小型系统

    Tool v2.2 Beta1环境下,十几分钟完成了Hi3516小型系统的编译烧录,基本可以满足学习和产品开发的需求。2.OpenHarmony
    发表于 07-30 06:58

    OpenHarmony2.0 Hi3516系列资料下载合集(源码编译+烧录)

    build -f(执行编译)经过1个半小时后编译成功2、OpenHarmony2.0 Hi3516系列标准系统源码编译及烧录1、请连接好电脑和待烧录开发板,以
    发表于 03-24 10:52

    OpenHarmony3.0上编译C控制Hi3516开发板的LED闪烁

    框架能力有限。 设备硬件开发还是需要 C,所以这篇文章,将在标准系统下编译 C 控制 Hi3516 开发板的 LED 闪烁。 环境准备 3.0 源码下载: re
    的头像 发表于 09-28 09:42 3415次阅读
    <b class='flag-5'>OpenHarmony</b>3.0上编译C控制<b class='flag-5'>Hi3516</b><b class='flag-5'>开发板</b>的LED闪烁

    基于Hi3516开发板的智能猫眼设计

    本Demo是基于Hi3516开发板,使用开源OpenHarmony开发的RTSP协议流媒体应用,达到将Hi3516
    的头像 发表于 03-30 10:30 2772次阅读

    如何在鸿蒙开发板上输出Hello World

    HarmonyOS 开发快速入门:鸿蒙开发板上输出 Hello World
    的头像 发表于 01-15 16:03 1277次阅读

    OpenHarmony鸿蒙南向开发案例:【智能猫眼(基于3516开发板)】

    基于Hi3516开发板,使用开源OpenHarmony开发的RTSP协议流媒体应用。达到将Hi3516
    的头像 发表于 04-19 22:01 295次阅读
    <b class='flag-5'>OpenHarmony</b><b class='flag-5'>鸿蒙</b>南向<b class='flag-5'>开发</b>案例:【智能猫眼(基于<b class='flag-5'>3516</b><b class='flag-5'>开发板</b>)】

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

    下方将通过修改源码的方式展示如何编写简单程序,输出“Hello world”。请在下载的源码目录中进行下述操作。
    的头像 发表于 04-21 21:44 139次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>OpenHarmony</b>【轻量<b class='flag-5'>系统编写</b>“<b class='flag-5'>Hello</b> <b class='flag-5'>World</b>”<b class='flag-5'>程序</b>】 (基于<b class='flag-5'>Hi</b>3861<b class='flag-5'>开发板</b>)

    鸿蒙OpenHarmony小型系统编译】 (基于Hi3516开发板

    DevEco Device Tool支持Hi3516DV300开发板的源码一键编译功能,提供编译工具链和编译环境依赖的检测及一键安装,简化复杂编译环境的同时,提升了编译的效率。
    的头像 发表于 04-23 15:53 299次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>OpenHarmony</b>【<b class='flag-5'>小型</b><b class='flag-5'>系统编</b>译】 (基于<b class='flag-5'>Hi3516</b><b class='flag-5'>开发板</b>)

    鸿蒙OpenHarmony小型系统运行案例】 (基于Hi3516开发板

    在完成Hi3516DV300的烧录后,还需要设置BootLoader引导程序,才能运行OpenHarmony系统
    的头像 发表于 04-23 21:00 209次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>OpenHarmony</b>【<b class='flag-5'>小型</b><b class='flag-5'>系统</b>运行案例】 (基于<b class='flag-5'>Hi3516</b><b class='flag-5'>开发板</b>)