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

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

3天内不再提示

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

jf_46214456 来源:jf_46214456 作者:jf_46214456 2024-05-16 18:15 次阅读

编写“Hello World”程序

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

  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
    

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

  1. 编写业务代码。
    新建./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);
    
  2. 编写用于将业务构建成静态库的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文件路径。
  3. 添加新组件。
    修改文件build/lite/components/communication.json,添加组件hello_world_app的配置,如下所示为communication.json文件片段,"##start##"和"##end##"之间为新增配置("##start##"和"##end##"仅用来标识位置,添加完配置后删除这两行):

{
      "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"
          ],
          
`HarmonyOS与OpenHarmony鸿蒙文档籽料:mau123789是v直接拿`

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

  1. 修改单板配置文件。
    修改文件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":[] }
            ]
          },
    

审核编辑 黄宇

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

    关注

    8

    文章

    599

    浏览量

    28736
  • 开发板
    +关注

    关注

    25

    文章

    4609

    浏览量

    95130
  • 鸿蒙
    +关注

    关注

    55

    文章

    2118

    浏览量

    42274
  • Hi3861
    +关注

    关注

    1

    文章

    58

    浏览量

    6280
  • OpenHarmony
    +关注

    关注

    24

    文章

    3481

    浏览量

    15424
收藏 人收藏

    评论

    相关推荐

    鸿蒙OpenHarmony【轻量系统运行】 (基于Hi3861开发板

    由于Hi3861为WLAN模组,您可以在版本编译及烧录后,通过如下操作,使开发板实现联网功能。
    的头像 发表于 04-23 09:50 479次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>OpenHarmony</b>【轻量<b class='flag-5'>系统</b>运行】 (基于<b class='flag-5'>Hi3861</b><b class='flag-5'>开发板</b>)

    鸿蒙OpenHarmony【集成三方SDK】 (基于Hi3861开发板

    OpenHarmony致力于打造一套更加开放完善的IoT生态系统,为此OpenHarmony规划了一组目录,用于将各厂商的SDK集成到OpenHarmony中。本文档基于
    的头像 发表于 04-24 15:11 623次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>OpenHarmony</b>【集成三方SDK】 (基于<b class='flag-5'>Hi3861</b><b class='flag-5'>开发板</b>)

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

    源码],创建RK3568开发板的源码工程。 示例目录 拉取openharmony项目代码,在代码根目录创建sample子系统文件夹,在子系统目录下创建
    的头像 发表于 04-24 17:32 420次阅读
    <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【轻量系统 环境搭建】 (基于Hi3861开发板

    除上述[安装库和工具集]和[安装编译工具]外,针对Hi3861开发板还需要安装特定的编译工具。
    的头像 发表于 04-26 17:47 1076次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>OpenHarmony</b>【轻量<b class='flag-5'>系统</b> 环境搭建】 (基于<b class='flag-5'>Hi3861</b><b class='flag-5'>开发板</b>)

    鸿蒙OpenHarmony【轻量系统 烧录】 (基于Hi3861开发板

    针对Hi3861开发板,除了DevEco Device Tool
    的头像 发表于 05-10 16:59 656次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>OpenHarmony</b>【轻量<b class='flag-5'>系统</b> 烧录】 (基于<b class='flag-5'>Hi3861</b><b class='flag-5'>开发板</b>)

    鸿蒙OpenHarmony【轻量系统 运行】 (基于Hi3861开发板

    由于Hi3861为WLAN模组,您可以在版本编译及烧录后,通过如下操作,使开发板实现联网功能。
    的头像 发表于 05-10 16:38 465次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>OpenHarmony</b>【轻量<b class='flag-5'>系统</b> 运行】 (基于<b class='flag-5'>Hi3861</b><b class='flag-5'>开发板</b>)

    盘点那些硬件+项目学习套件:Hi3861鸿蒙开发板及入门常见问题解答

    ,一个是鸿蒙应用开发,一个是鸿蒙设备开发。我们的Hi3861鸿蒙
    发表于 02-01 16:55

    Hi3861开发板介绍

    FLASH,352KB RAM。在编写业务代码时,需注意资源使用效率。开发板规格表 1 Hi3861 WLAN模组规格清单[td]规格类型规格清单通用规格1×1 2.4GHz频段(ch1~ch14
    发表于 09-21 15:15

    【汇总】OpenHarmony系统开发目录和个人感悟

    ,演变到了现在的3.1版本。于是决定重新开启篇章,针对3.0以上的版本,写一系列的文章。开发板:润和Hi3861开发套件适合人群:刚入门想学习OpenHarmony
    发表于 01-20 09:04

    OpenHarmony与小型系统入门概述

    。 本文将介绍如何基于Windows+Ubuntu环境进行OpenHarmony开发开发板 本文基于以下两款典型开发板进行开发介绍 :
    发表于 05-06 15:48

    OpenHarmony设备Hi3861芯片开发板启动流程分析

    OpenHarmony设备Hi3861芯片开发板启动流程分析引言OpenHarmony作为一
    发表于 08-18 11:35

    基于鸿蒙系统+Hi3861的WiFi小车开发

    本文简单介绍鸿蒙系统 + Hi3861 的WiFi小车开发,适用于开发润和Hi3861
    的头像 发表于 03-03 09:31 5055次阅读
    基于<b class='flag-5'>鸿蒙</b><b class='flag-5'>系统</b>+<b class='flag-5'>Hi3861</b>的WiFi小车<b class='flag-5'>开发</b>

    自制Hi3861开发板(附原理图和电路图)

    OpenHarmony的发展已经进入了新的阶段,逐步把重点向富设备开发方向。OpenHarmony 3.x的各大特性也是针对富设备来的,但是仍然支持轻量设备,如Hi3861芯片设备。于
    的头像 发表于 04-14 10:23 8724次阅读
    自制<b class='flag-5'>Hi3861</b><b class='flag-5'>开发板</b>(附原理图和电路图)

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

    下方将通过修改源码的方式展示如何编写简单程序,输出“Hello world”。请在下载的源码目录中进行下述操作。
    的头像 发表于 04-21 21:44 131次阅读
    <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'>Hi3861</b><b class='flag-5'>开发板</b>)

    鸿蒙OpenHarmony【LED外设控制】 (基于Hi3861开发板

    OpenHarmony WLAN模组基于Hi3861平台提供了丰富的外设操作能力,包含I2C、I2S、ADC、UART、SPI、SDIO、GPIO、PWM、FLASH等
    的头像 发表于 04-23 21:57 342次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>OpenHarmony</b>【LED外设控制】 (基于<b class='flag-5'>Hi3861</b><b class='flag-5'>开发板</b>)