0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

【XR806開發(fā)板試用】+4.OpenHarmony編譯順序

冬至子 ? 來源:還沒吃飯 ? 作者:還沒吃飯 ? 2023-12-11 14:02 ? 次閱讀

大家好,今天我們來談一談編程時(shí)一個(gè)很有趣的話題——編譯順序。

首先呢,得看看這個(gè)"vendor/xradio/xr806/config.json",這可是個(gè)關(guān)鍵角色。它就像是一個(gè)交通警察,告訴編譯器:“嘿,你得先編譯這個(gè),然后再編譯那個(gè)?!逼渲械?product_name"就是交通警察手中的指揮棒,它決定了執(zhí)行hb set時(shí)會(huì)出現(xiàn)的選項(xiàng)。

而"device_company"、"board"、"kernel_type"這三位則是一同決定了代碼的行走路徑。

當(dāng)你用hb set選定了"wifi_skylark"后,就會(huì)在根目錄中生成一個(gè)叫做ohos_config.json的文件。這個(gè)文件就像是一張地圖,上面清楚地標(biāo)明了各個(gè)代碼文件應(yīng)該放置的位置。這樣,編譯器就知道去哪里找這些代碼了。

然后,當(dāng)你執(zhí)行hb build -f命令時(shí),HarmonyOS的編譯腳本就會(huì)從device_path中獲取編譯工具和編譯選項(xiàng),從product_path下尋找BUILD.gn文件。這個(gè)過程就像是在準(zhǔn)備一場(chǎng)演出,編譯工具是音響設(shè)備,編譯選項(xiàng)是音量調(diào)節(jié)器,而BUILD.gn文件則是節(jié)目單。

BUILD.gn文件中的內(nèi)容可是相當(dāng)精彩的。其中build_ext_component("libSDK")就像是一個(gè)大明星,有很多依賴項(xiàng)需要先行準(zhǔn)備。這些依賴項(xiàng)就像是它的伴舞團(tuán)隊(duì)和樂隊(duì),得提前到位才能確保演出的順利進(jìn)行。

同樣的道理也適用于group("xr806")和ohosdemo/BUILD.gn中的內(nèi)容。這些文件和文件夾都需要按照一定的順序進(jìn)行編譯,才能確保整個(gè)程序的順利運(yùn)行。

最后呢,當(dāng)你打開hello_demo/BUILD.gn時(shí),你會(huì)看到import("http://device/xradio/xr806/liteos_m/config.gni")這句話。這就像是在演出開始前,主持人走上臺(tái)說:“感謝大家的支持,現(xiàn)在我們開始演出!”然后,static_library("app_hello")就像是第一個(gè)節(jié)目,閃亮登場(chǎng)!

你想想看,一群代碼如果不按照順序來,豈不是亂成一鍋粥了?好在Harmony給我們提供了明確的編譯順序,讓代碼們可以乖乖排隊(duì),一個(gè)個(gè)等待被編譯。

所以說啊,編譯順序可是個(gè)大學(xué)問。只有掌握了正確的順序,才能讓代碼們和諧共處,共同演繹出一場(chǎng)精彩的程序運(yùn)行秀!

以XR806_OpenHarmony為例,當(dāng)你通過hb set選定wifi_skylark后,會(huì)在根目錄中生成一個(gè)叫ohos_config.json的文件。這個(gè)文件里主要包括以下內(nèi)容:

{
 "root_path": "/home/workspace/Harmony_XR806",
 "board": "xr806",
 "kernel": "liteos_m",
 "product": "wifi_skylark",
 "product_path": "/home/workspace/Harmony_XR806/vendor/xradio/xr806",
 "device_path": "/home/workspace/Harmony_XR806/device/xradio/xr806/liteos_m"
}

然后,當(dāng)你執(zhí)行hb build -f時(shí),HarmonyOS的編譯腳本就會(huì)從device_path中獲取編譯工具和編譯選項(xiàng),然后從product_path下尋找BUILD.gn文件。

現(xiàn)在讓我們看看這個(gè)BUILD.gn文件的內(nèi)容:

build_ext_component("libSDK") {
  exec_path = rebase_path(".", root_build_dir)
  outdir = rebase_path("$root_out_dir")
  command = "./build.sh ${outdir}"
  deps = [
      "http://kernel/liteos_m:kernel",       #(3)
      "os:liteos_glue",
      "adapter/hals:adapter",
      "adapter/console:app_console",
      "ohosdemo:ohosdemo",              #(2)
  ]
}

group("xr806") {
    deps = [
        ":libSDK"       #(1)
    ]
}

這里有三個(gè)需要注意的地方:

1.deps關(guān)鍵字代表執(zhí)行g(shù)roup("xr806")前需要先執(zhí)行l(wèi)ibSDK,也就是build_ext_component("libSDK")。

2.在執(zhí)行build_ext_component("libSDK")前,需要先找到ohosdemo文件夾下的BUILD.gn,并且這個(gè)文件里會(huì)有ohosdemo的定義。

3.//代表絕對(duì)路徑,可以理解為根目錄。比如//kernel/liteos_m代表根目錄下的kernel/liteos_m文件夾。

最后,關(guān)于演示部分:

XR806_OpenHarmony串口默認(rèn)配置為:波特率115200,無(wú)校驗(yàn),8位數(shù)據(jù)位,1位停止位。開發(fā)板成功連接PC上對(duì)串口調(diào)試助手后按下開發(fā)板的復(fù)位按鍵串口輸出。這段文字描述了如何配置串口以及如何通過串口輸出信息。

當(dāng)你連接開發(fā)板到PC并使用串口調(diào)試助手進(jìn)行調(diào)試時(shí),你可以通過發(fā)送復(fù)位信號(hào)來啟動(dòng)應(yīng)用程序,然后你將看到“Hello World!”消息輸出到串口上。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 調(diào)節(jié)器
    +關(guān)注

    關(guān)注

    5

    文章

    810

    瀏覽量

    46219
  • 串口輸出
    +關(guān)注

    關(guān)注

    0

    文章

    16

    瀏覽量

    7451
  • OpenHarmony
    +關(guān)注

    關(guān)注

    25

    文章

    3555

    瀏覽量

    15770
  • xr806
    +關(guān)注

    關(guān)注

    0

    文章

    14

    瀏覽量

    1305
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    XR806開發(fā)板適用】基于多源信息融合的糧食霉變檢測(cè)系統(tǒng)設(shè)計(jì)

    XR806開發(fā)板具有強(qiáng)大的數(shù)據(jù)處理和傳輸能力,廣泛應(yīng)用于物聯(lián)網(wǎng)和嵌入式系統(tǒng)開發(fā)
    的頭像 發(fā)表于 10-27 17:06 ?801次閱讀
    【<b class='flag-5'>XR806</b><b class='flag-5'>開發(fā)板</b>適用】基于多源信息融合的糧食霉變檢測(cè)系統(tǒng)設(shè)計(jì)

    基于全志XR806開發(fā)板的家用環(huán)境監(jiān)測(cè)傳感器設(shè)計(jì)

    本文來自全志XR806開發(fā)板評(píng)測(cè)活動(dòng)文章,作者使用XR806開發(fā)板制作一個(gè)簡(jiǎn)單的家用環(huán)境監(jiān)測(cè)傳感器,可以獲取當(dāng)前的溫度、濕度、氣壓、海拔這四個(gè)參數(shù),同時(shí)能夠通過外部的屏幕實(shí)時(shí)顯示刷新。
    的頭像 發(fā)表于 12-03 10:20 ?571次閱讀
    基于全志<b class='flag-5'>XR806</b><b class='flag-5'>開發(fā)板</b>的家用環(huán)境監(jiān)測(cè)傳感器設(shè)計(jì)

    如何使用XR806開發(fā)板來設(shè)計(jì)一個(gè)糧食霉變檢測(cè)系統(tǒng)?

    XR806開發(fā)板具有強(qiáng)大的數(shù)據(jù)處理和傳輸能力,廣泛應(yīng)用于物聯(lián)網(wǎng)和嵌入式系統(tǒng)開發(fā),
    的頭像 發(fā)表于 01-05 17:30 ?686次閱讀
    如何使用<b class='flag-5'>XR806</b><b class='flag-5'>開發(fā)板</b>來設(shè)計(jì)一個(gè)糧食霉變檢測(cè)系統(tǒng)?

    OpenHarmony南向嵌入式:【XR806開發(fā)板指導(dǎo)文檔】

    XR806_OpenHarmony開發(fā)板是基于XR806芯片設(shè)計(jì)開發(fā)的參考評(píng)估,身集成了XR806
    的頭像 發(fā)表于 04-14 09:25 ?683次閱讀
    <b class='flag-5'>OpenHarmony</b>南向嵌入式:【<b class='flag-5'>XR806</b><b class='flag-5'>開發(fā)板</b>指導(dǎo)文檔】

    XR806芯片、XR806開源鴻蒙開發(fā)板簡(jiǎn)介

    ??蓮V泛滿足 智能家居、智慧樓宇、工業(yè)互聯(lián)、兒童玩具、電子競(jìng)賽、極客DIY 等領(lǐng)域的無(wú)線連接需求。芯片框圖芯片參數(shù)XR806開源鴻蒙開發(fā)板介紹XR806開發(fā)板是基于
    發(fā)表于 11-15 17:08

    XR806芯片、XR806開源鴻蒙開發(fā)板簡(jiǎn)介

    ??蓮V泛滿足 智能家居、智慧樓宇、工業(yè)互聯(lián)、兒童玩具、電子競(jìng)賽、極客DIY 等領(lǐng)域的無(wú)線連接需求。芯片框圖芯片參數(shù)XR806開源鴻蒙開發(fā)板介紹XR806開發(fā)板是基于
    發(fā)表于 11-15 18:32

    【資料釋放】全志XR806開發(fā)板全資料釋放,連bomlist都給出來了

    ://www.openharmony.cn/#/supportDevices/XR8061.硬件bomlist包含核心和底板兩個(gè)部分核心:底板:完整excel文檔下載:
    發(fā)表于 12-06 14:06

    XR806開發(fā)板下載代碼時(shí)遇到錯(cuò)誤fatal: Cannot get該怎么辦

    XR806開發(fā)板試用】下載代碼時(shí)遇到如下錯(cuò)誤 fatal: Cannot get https://gerrit.googlesource.com/git-repo/clone.bundle請(qǐng)問大家
    發(fā)表于 12-28 06:21

    【資料合集】全志XR806開發(fā)板全部資料

    3.軟件SDK——OpenHarmony/鴻蒙XR806開發(fā)板支持L0(輕量設(shè)備)級(jí)別的鴻蒙系統(tǒng)全部代碼已經(jīng)從gitee開源gittee倉(cāng)庫(kù)鏈接:https://gitee.com
    發(fā)表于 03-10 14:59

    OpenHarmony開發(fā)樣例】基于全志XR806開發(fā)板開發(fā)的智能門鎖

    參考 連接IOT云平臺(tái)指南;智能設(shè)備與數(shù)字管家應(yīng)用之間的設(shè)備模型定義可以參考profile .2. 實(shí)物簡(jiǎn)介: 如上圖所示,上面是XR806開發(fā)板,中間的是hcsr04超聲波距離傳感器,下面
    發(fā)表于 03-11 10:29

    如何下載xr806鴻蒙代碼并編譯?

    gcc-arm-none-eabi-10-2020-q4-major-src.tar.bz2  2.2  改編譯工具鏈路徑    改成  ~/workspace/chenkunyao/xr806_openharmony2/to
    發(fā)表于 03-11 16:02

    用deepin進(jìn)行xr806開發(fā)板開發(fā)

    為了防止后面一些玄學(xué)問題,就放棄在deepin上進(jìn)行xr806開發(fā)了,還是老老實(shí)實(shí)的在ubuntu上吧.相同的操作,在ubuntu20是,就沒有問題。由于下載源碼時(shí),正好原官方倉(cāng)庫(kù)不可用,就使用了臨時(shí)
    發(fā)表于 11-17 10:50

    XR806開發(fā)板試用】留言功能開發(fā)

    XR806開源鴻蒙開發(fā)板是一款基于XR806芯片設(shè)計(jì),高度集成WiFi/BLE/常用外設(shè),可供開發(fā)者進(jìn)行方案評(píng)估、DIY或小規(guī)模產(chǎn)品研發(fā),可廣泛應(yīng)用于智能家居、智能樓宇、智能城市和工業(yè)
    的頭像 發(fā)表于 10-08 10:58 ?535次閱讀

    XR806開發(fā)板試用】FreeRTOS創(chuàng)建任務(wù)測(cè)試

    這篇來學(xué)習(xí)下,XR806開發(fā)板在FreeRTOS系統(tǒng)下創(chuàng)建兩個(gè)任務(wù)測(cè)試,由于沒有找到學(xué)習(xí)的文檔,試著參考例程來測(cè)試。
    的頭像 發(fā)表于 10-10 11:47 ?563次閱讀
    【<b class='flag-5'>XR806</b><b class='flag-5'>開發(fā)板</b><b class='flag-5'>試用</b>】FreeRTOS創(chuàng)建任務(wù)測(cè)試

    全志XR806開發(fā)板原理圖

    全志XR806開發(fā)板原理圖
    發(fā)表于 10-19 15:11 ?11次下載