<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
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 = [
            "http://utils/native/lite/include"
        ]
    }
    
    • static_library中指定業務模塊的編譯結果,為靜態庫文件libmyapp.a,開發者根據實際情況完成填寫。
    • sources中指定靜態庫.a所依賴的.c文件及其路徑,若路徑中包含"http://"則表示絕對路徑(此處為代碼根路徑),若不包含"http://"則表示相對路徑。
    • 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": [
            "http://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": [
            "http://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":[] }
            ]
          },
    

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 開發板
    +關注

    關注

    25

    文章

    4441

    瀏覽量

    94182
  • 鴻蒙
    +關注

    關注

    55

    文章

    1651

    瀏覽量

    42135
  • Hi3861
    +關注

    關注

    1

    文章

    54

    瀏覽量

    6239
  • OpenHarmony
    +關注

    關注

    23

    文章

    3328

    瀏覽量

    15172
收藏 人收藏

    評論

    相關推薦

    鴻蒙OpenHarmony【輕量系統 環境搭建】 (基于Hi3861開發板

    除上述[安裝庫和工具集]和[安裝編譯工具]外,針對Hi3861開發板還需要安裝特定的編譯工具。
    的頭像 發表于 04-26 17:47 ?713次閱讀
    <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【LED外設控制】 (基于Hi3861開發板

    OpenHarmony WLAN模組基于Hi3861平臺提供了豐富的外設操作能力,包含I2C、I2S、ADC、UART、SPI、SDIO、GPIO、PWM、FLASH等
    的頭像 發表于 04-23 21:57 ?125次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OpenHarmony</b>【LED外設控制】 (基于<b class='flag-5'>Hi3861</b><b class='flag-5'>開發板</b>)

    鴻蒙OpenHarmony【小型系統編寫Hello World程序】 (基于Hi3516開發板

    下方將展示如何在單板上運行第一個應用程序,其中包括新建應用程序、編譯、燒寫、運行等步驟,最終輸出“Hello World!”。
    的頭像 發表于 04-22 21:55 ?113次閱讀
    <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>3516<b class='flag-5'>開發板</b>)

    鴻蒙OpenHarmony【輕量系統運行】 (基于Hi3861開發板

    由于Hi3861為WLAN模組,您可以在版本編譯及燒錄后,通過如下操作,使開發板實現聯網功能。
    的頭像 發表于 04-22 21:24 ?349次閱讀
    <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開發板

    DevEco Device Tool支持Hi3861V100開發板的源碼一鍵編譯功能,提供編譯工具鏈和編譯環境依賴的檢測及一鍵安裝,簡化復雜編譯環境的同時,提升了編譯的效率。
    的頭像 發表于 04-22 15:19 ?122次閱讀
    <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

    OpenHarmony開發板匯總

    滿天星系列Pegasus智能家居開發套件(HI3861系統:小熊派BearPi-HM Nano(H
    發表于 10-19 11:27

    系統:小熊派BearPi-HM Nano(HI3861

    開發板名稱(芯片型號) 小熊派BearPi-HM Nano(HI3861) 芯片架構 CPU頻率 介紹(字數請控制在200字以內) 小熊派BearPi-HM Nano外型上延續了三段式設計,搭載
    發表于 10-19 11:10

    中文編程鴻蒙Hi3861開發基礎案例之-05按鍵檢測

    中文編程鴻蒙Hi3861開發對按鍵進行輸入檢測
    的頭像 發表于 05-11 12:04 ?2553次閱讀
    中文編程<b class='flag-5'>鴻蒙</b><b class='flag-5'>Hi3861</b><b class='flag-5'>開發</b>基礎案例之-05按鍵檢測

    中文編程鴻蒙Hi3861開發基礎案例之-04八段數碼管

    中文編程鴻蒙Hi3861開發控制八段數碼管
    的頭像 發表于 05-11 11:47 ?2426次閱讀
    中文編程<b class='flag-5'>鴻蒙</b><b class='flag-5'>Hi3861</b><b class='flag-5'>開發</b>基礎案例之-04八段數碼管

    中文編程鴻蒙Hi3861開發基礎案例之-03交通紅綠燈

    中文編程鴻蒙Hi3861開發模擬交通紅綠燈亮與滅控制
    的頭像 發表于 05-11 11:27 ?1430次閱讀
    中文編程<b class='flag-5'>鴻蒙</b><b class='flag-5'>Hi3861</b><b class='flag-5'>開發</b>基礎案例之-03交通紅綠燈

    中文編程鴻蒙Hi3861開發基礎案例之-02LED燈控制

    中文編程鴻蒙Hi3861開發控制LED燈
    的頭像 發表于 05-11 09:54 ?2160次閱讀
    中文編程<b class='flag-5'>鴻蒙</b><b class='flag-5'>Hi3861</b><b class='flag-5'>開發</b>基礎案例之-02LED燈控制

    中文編程鴻蒙Hi3861開發基礎案例之-01創建新工程

    中文編程鴻蒙Hi3861開發創建新工程
    的頭像 發表于 05-11 09:53 ?2012次閱讀
    中文編程<b class='flag-5'>鴻蒙</b><b class='flag-5'>Hi3861</b><b class='flag-5'>開發</b>基礎案例之-01創建新工程

    中文編程鴻蒙Hi3861開發基礎案例之-00印出案例

    鴻蒙Hi3861中文編程開發環境安裝后,第一個案例為印出案例,即字符串格式化輸出案例,與printf使用類似,可以輸出普通字符串、整數、小數等。 B站視頻講解鏈接:https
    發表于 05-10 22:20

    中文C語言編程玩轉物聯網華為鴻蒙Hi3861開發-基礎案例合集

    繼《一套支持中文C語言編程的鴻蒙Hi3861智能硬件開發套件》發布后,中文C語言編程玩轉物聯網華為鴻蒙Hi3861
    發表于 05-08 23:50
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>