天天看點

#夏日挑戰賽#【FFH】DevEcoDeviceTool實戰源碼擷取到HelloWorld【FFH】DevEco Device Tool 實戰從源碼擷取到Hello World(輕量系統)

[本文正在參加星光計劃3.0–夏日挑戰賽]

【FFH】DevEco Device Tool 實戰從源碼擷取到Hello World(輕量系統)

前言

還未了解DevEco Device Tool 的可以先看這兩篇文章:

DevEco Device Tool一站式內建開發環境搭建

DevEco Device Tool裝置開發全流程概述

官方使用文檔:

https://device.harmonyos.com/cn/docs/documentation/guide/service_introduction-0000001050166905

前面已經介紹了使用DevEco Device Tool裝置開發的全流程,這次我将會以hispark_pegasus(Hi3861)為例,使用OpenHarmony-v3.1-Release輕量系統實戰從源碼擷取到編寫Hello World的裝置開發流程。

開發環境

開發闆:hispark_pegasus(Hi3861)

OpenHarmony版本:OpenHarmony-v3.1-Release

DevEco Device Tool:Windows+Ubuntu混合開發環境

建立工程

源碼擷取

提供以下三種配置方式,這裡我選擇第二種。

  1. 可以選擇下載下傳OpenHarmony3.1release 全量代碼并按如圖配置好SOC,開發闆等資訊。
    #夏日挑戰賽#【FFH】DevEcoDeviceTool實戰源碼擷取到HelloWorld【FFH】DevEco Device Tool 實戰從源碼擷取到Hello World(輕量系統)
  2. 想快速體驗的還是建議選擇Openharmony已有樣例WLAN連接配接類産品即hispark_pegasus的發行版源碼,很快就能下完。
    #夏日挑戰賽#【FFH】DevEcoDeviceTool實戰源碼擷取到HelloWorld【FFH】DevEco Device Tool 實戰從源碼擷取到Hello World(輕量系統)
    選擇後會自動配置開發闆資訊,點選确認進入下一步。
    #夏日挑戰賽#【FFH】DevEcoDeviceTool實戰源碼擷取到HelloWorld【FFH】DevEco Device Tool 實戰從源碼擷取到Hello World(輕量系統)
  3. 已有OpenHarmony 3.1release全量代碼也可以直接在工程配置添加新的開發闆,添加完後點選儲存。
    #夏日挑戰賽#【FFH】DevEcoDeviceTool實戰源碼擷取到HelloWorld【FFH】DevEco Device Tool 實戰從源碼擷取到Hello World(輕量系統)

1,2種方法選擇完畢後會彈出新的視窗進行下載下傳源碼,等待源碼下載下傳完成。

#夏日挑戰賽#【FFH】DevEcoDeviceTool實戰源碼擷取到HelloWorld【FFH】DevEco Device Tool 實戰從源碼擷取到Hello World(輕量系統)

編譯

進入工程配置,檢查工具鍊,确實工具鍊則點選安裝。

#夏日挑戰賽#【FFH】DevEcoDeviceTool實戰源碼擷取到HelloWorld【FFH】DevEco Device Tool 實戰從源碼擷取到Hello World(輕量系統)

安裝完成後如下:

#夏日挑戰賽#【FFH】DevEcoDeviceTool實戰源碼擷取到HelloWorld【FFH】DevEco Device Tool 實戰從源碼擷取到Hello World(輕量系統)

點選Build進行編譯,很快即完成編譯

#夏日挑戰賽#【FFH】DevEcoDeviceTool實戰源碼擷取到HelloWorld【FFH】DevEco Device Tool 實戰從源碼擷取到Hello World(輕量系統)

燒錄

将開發闆連接配接到電腦,若被虛拟機攔截,選擇連接配接到主機。

檢視Ubuntu與本地計算機的連接配接狀态,點選Connect,輸入虛拟機password。

#夏日挑戰賽#【FFH】DevEcoDeviceTool實戰源碼擷取到HelloWorld【FFH】DevEco Device Tool 實戰從源碼擷取到Hello World(輕量系統)

再次回到工程配置頁面,選擇Hi3861,找到upload_port,配置好序列槽号,upload_protocol是它的燒錄工具,upload_partitions是待燒錄的檔案,預設即可。

#夏日挑戰賽#【FFH】DevEcoDeviceTool實戰源碼擷取到HelloWorld【FFH】DevEco Device Tool 實戰從源碼擷取到Hello World(輕量系統)

現在就可以點選Upload進行燒錄,根據提示,按下開發闆reset鍵

#夏日挑戰賽#【FFH】DevEcoDeviceTool實戰源碼擷取到HelloWorld【FFH】DevEco Device Tool 實戰從源碼擷取到Hello World(輕量系統)

燒錄成功

#夏日挑戰賽#【FFH】DevEcoDeviceTool實戰源碼擷取到HelloWorld【FFH】DevEco Device Tool 實戰從源碼擷取到Hello World(輕量系統)

實戰HelloWorld

以上沒問題後,就可以開始嘗試寫我們的第一個demo了。

  1. 确定目錄結構

    在./applications/sample/wifi-iot/app 路徑下建立一個目錄/my_first_app,用于存放業務源碼檔案。在該目錄下建立hello_world.c ,和BUILD.gn檔案。其中 hello_world.c 為業務代碼,BUILD.gn 為編

    譯腳本,具體規劃目錄結構如下

    #夏日挑戰賽#【FFH】DevEcoDeviceTool實戰源碼擷取到HelloWorld【FFH】DevEco Device Tool 實戰從源碼擷取到Hello World(輕量系統)

    2.編寫業務代碼

    在 hello_world.c 中建立業務入口函數 HelloWorld,并實作業務邏輯。并在代碼最下方,

    使用 HarmonyOS 啟動恢複子產品接口 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 檔案。

在my_first_app/BUILD.gn下編寫目标、源檔案、頭檔案路徑等配置,如下:

static_library("myapp"){
    sources=[
        "hello_world.c"
    ]
    include_dirs=[
        "//utils/native/liteos/include"
    ]
}
           
  1. 編寫子產品 BUILD.gn 檔案,指定需參與建構的特性子產品。

    配置./applications/sample/wifi-iot/app/BUILD.gn 檔案,也就是和my_first_app同級下的BUILD.gn檔案,在 features 字段中增加索引,使目标子產品參與編譯。features 字段指定業務子產品的路徑和目标,添加:

"my_first_app:myapp",
           
#夏日挑戰賽#【FFH】DevEcoDeviceTool實戰源碼擷取到HelloWorld【FFH】DevEco Device Tool 實戰從源碼擷取到Hello World(輕量系統)
  1. 按之前的步驟進行編譯燒錄。
  2. 打開序列槽,按一下開發闆的reset鍵,檢視輸出。
    #夏日挑戰賽#【FFH】DevEcoDeviceTool實戰源碼擷取到HelloWorld【FFH】DevEco Device Tool 實戰從源碼擷取到Hello World(輕量系統)
    成功輸出Hello World!

後記

以上就是使用DevEco Device Tool 進行Hi3861開發闆裝置開發的流程,全程都是在vscode上進行的。短短幾步就能實作學習幾章内容才能搞完的操作,對比起傳統開發方式隻能說有手就行,我直接吹爆。

#夏日挑戰賽#【FFH】DevEcoDeviceTool實戰源碼擷取到HelloWorld【FFH】DevEco Device Tool 實戰從源碼擷取到Hello World(輕量系統)

手裡有開發闆的現在就可以試試,官方文檔中也有各種開發闆的開發教程,希望這篇文章能幫到大家。

繼續閱讀