電子產業(yè)一站式賦能平臺

PCB聯(lián)盟網

搜索
查看: 568|回復: 0
收起左側

【HarmonyOS HiSpark Wi-Fi IoT 套件試用連連載】第四篇、Hello World

[復制鏈接]

2607

主題

2607

帖子

7472

積分

高級會員

Rank: 5Rank: 5

積分
7472
跳轉到指定樓層
樓主
發(fā)表于 2020-11-2 09:56:20 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
【HarmonyOS HiSpark Wi-Fi IoT 套件試用連連載】第四篇、Hello World,   
本帖最后由 學海沙粒 于 2020-11-1 18:20 編輯



         搭建好環(huán)境并成功燒錄代碼后,開始編寫個人代碼,千里之行,從“Hello World”開始。

一、新建文件夾

         為了避免破環(huán)源代碼的完整結構,在./applications/sample/wifi-iot/app路徑下新建一個文件夾。具體操作是在VS Code中,找到上述路徑的app文件夾,鼠標放在app文件夾上,然后右擊選擇“新建文件夾”,然后在光標處輸入文件夾名稱“my_first_app”。



新建文件夾.png (37.12 KB, 下載次數: 0)

下載附件  保存到相冊  

前天 10:38 上傳         鼠標移到新建的“my_afirst_ap p”文件夾上,右鍵選擇“新建文件”,在光標指示處輸入文件名稱,此處文件名稱需要輸入完整后綴名。此處新建兩個文件,分別是hello_world.c和BUILD.gn。 hello_world.c為程序代碼,BUILD.gn為編譯腳本



新建文件.png (34.22 KB, 下載次數: 0)

下載附件  保存到相冊  

前天 10:38 上傳         新的文件夾目錄結構如下所示:




    application文件夾結構.png (23.32 KB, 下載次數: 0)

    下載附件  保存到相冊  

    前天 10:38 上傳         樹形結構:
  •   .
  • └── applications
  •     └── sample
  •       └── wifi-iot
  •         └── app
  •            │──demolink
  •            │ ──iothardware
  •            │  ── my_first_app
  •            │  │── hello_world.c
      
  •            │  └── BUILD.gn
      
  •            │ ──samgr
      
  •            │ ──startup
      
  •            └── BUILD.gn

      
二、編寫代碼

         1)在新建的hello_world.c中編寫代碼,在HelloWorld()函數中打印Hello world。 在代碼最下方,使用HarmonyOS啟動恢復模塊接口SYS_RUN()啟動程序,默認優(yōu)先級為2,SYS_RUN定義在ohos_init.h文件中 。



  • #include <stdio.h>
      
  • #include “ohos_init.h“
      
  • #include “ohos_types.h“

復制代碼         2)編寫 用于 將代碼構建成靜態(tài)庫的BUILD.gn文件。         打開./applications/sample/wifi-iot/app/my_first_app下的BUILD.gn文件,并完成如下配置。

  • static_library(“myapp“) {
      
  •     sources = [
      
  •         “hello_world.c“
      
  •     ]
      
  •     include_dirs = [
      
  •         “//utils/native/lite/include“
      
  •     ]
      
  • }

復制代碼         BUILD.gn文件由三部分內容(目標、源文件、頭文件路徑)構成,需由開發(fā)者完成填寫。   



  • static_library中指定業(yè)務模塊的編譯結果,為靜態(tài)庫文件libmyapp.a,開發(fā)者根據實際情況完成填寫。
  • sources中指定靜態(tài)庫.a所依賴的.c文件及其路徑,若路徑中包含“//“則表示絕對路徑(此處為代碼根路徑),若不包含“//“則表示相對路徑。
  • include_dirs中指定source所需要依賴的.h文件路徑(具體.h文件如下所示)。
      


包含的頭文件.png (48.79 KB, 下載次數: 0)

下載附件  保存到相冊  

昨天 17:40 上傳            3)編寫模塊BUILD.gn文件,指定需參與構建的特性模塊。          配置./applications/sample/wifi-iot/app/BUILD.gn文件,在features字段中增加索引,使目標模塊參與編譯。features字段指定業(yè)務模塊的路徑和目標,以my_first_app舉例,features字段配置如下。

  • import(“//build/lite/config/component/lite_component.gni“)
      

  •   
  • lite_component(“app“) {
      
  •     features = [
      
  •         “my_first_app:myapp“,
      
  •     ]
      
  • }

復制代碼

  • my_first_app是相對路徑,指向./applications/sample/wifi-iot/app/my_first_app/BUILD.gn。
  • myapp是目標,指向./applications/sample/wifi-iot/app/my_first_app/BUILD.gn中的static_library(“myapp“)。
      


三、輸出測試

        保存好修改的代碼,然后編譯、燒錄。重啟IoT開發(fā)板,在串口界面會顯示如下結果:   



打印輸出.png (16.76 KB, 下載次數: 0)

下載附件  保存到相冊  

昨天 18:13 上傳
回復

使用道具 舉報

發(fā)表回復

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則


聯(lián)系客服 關注微信 下載APP 返回頂部 返回列表