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

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

3天内不再提示

【XR806开发板试用】+4.OpenHarmony编译顺序

冬至子 来源:还没吃饭 作者:还没吃饭 2023-12-11 14:02 次阅读

大家好,今天我们来谈一谈编程时一个很有趣的话题——编译顺序。

首先呢,得看看这个"vendor/xradio/xr806/config.json",这可是个关键角色。它就像是一个交通警察,告诉编译器:“嘿,你得先编译这个,然后再编译那个。”其中的"product_name"就是交通警察手中的指挥棒,它决定了执行hb set时会出现的选项。

而"device_company"、"board"、"kernel_type"这三位则是一同决定了代码的行走路径。

当你用hb set选定了"wifi_skylark"后,就会在根目录中生成一个叫做ohos_config.json的文件。这个文件就像是一张地图,上面清楚地标明了各个代码文件应该放置的位置。这样,编译器就知道去哪里找这些代码了。

然后,当你执行hb build -f命令时,HarmonyOS的编译脚本就会从device_path中获取编译工具和编译选项,从product_path下寻找BUILD.gn文件。这个过程就像是在准备一场演出,编译工具是音响设备,编译选项是音量调节器,而BUILD.gn文件则是节目单。

BUILD.gn文件中的内容可是相当精彩的。其中build_ext_component("libSDK")就像是一个大明星,有很多依赖项需要先行准备。这些依赖项就像是它的伴舞团队和乐队,得提前到位才能确保演出的顺利进行。

同样的道理也适用于group("xr806")和ohosdemo/BUILD.gn中的内容。这些文件和文件夹都需要按照一定的顺序进行编译,才能确保整个程序的顺利运行。

最后呢,当你打开hello_demo/BUILD.gn时,你会看到import("//device/xradio/xr806/liteos_m/config.gni")这句话。这就像是在演出开始前,主持人走上台说:“感谢大家的支持,现在我们开始演出!”然后,static_library("app_hello")就像是第一个节目,闪亮登场!

你想想看,一群代码如果不按照顺序来,岂不是乱成一锅粥了?好在Harmony给我们提供了明确的编译顺序,让代码们可以乖乖排队,一个个等待被编译。

所以说啊,编译顺序可是个大学问。只有掌握了正确的顺序,才能让代码们和谐共处,共同演绎出一场精彩的程序运行秀!

以XR806_OpenHarmony为例,当你通过hb set选定wifi_skylark后,会在根目录中生成一个叫ohos_config.json的文件。这个文件里主要包括以下内容:

{
 "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"
}

然后,当你执行hb build -f时,HarmonyOS的编译脚本就会从device_path中获取编译工具和编译选项,然后从product_path下寻找BUILD.gn文件。

现在让我们看看这个BUILD.gn文件的内容:

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

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

这里有三个需要注意的地方:

1.deps关键字代表执行group("xr806")前需要先执行libSDK,也就是build_ext_component("libSDK")

2.在执行build_ext_component("libSDK")前,需要先找到ohosdemo文件夹下的BUILD.gn,并且这个文件里会有ohosdemo的定义。

3.//代表绝对路径,可以理解为根目录。比如//kernel/liteos_m代表根目录下的kernel/liteos_m文件夹。

最后,关于演示部分:

XR806_OpenHarmony串口默认配置为:波特率115200,无校验,8位数据位,1位停止位。开发板成功连接PC上对串口调试助手后按下开发板的复位按键串口输出。这段文字描述了如何配置串口以及如何通过串口输出信息

当你连接开发板到PC并使用串口调试助手进行调试时,你可以通过发送复位信号来启动应用程序,然后你将看到“Hello World!”消息输出到串口上。

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

    关注

    5

    文章

    768

    浏览量

    45858
  • 串口输出
    +关注

    关注

    0

    文章

    16

    浏览量

    7387
  • OpenHarmony
    +关注

    关注

    23

    文章

    3322

    浏览量

    15161
  • xr806
    +关注

    关注

    0

    文章

    14

    浏览量

    1252
收藏 人收藏

    评论

    相关推荐

    OpenHarmony南向嵌入式:【XR806开发板指导文档】

    XR806_OpenHarmony开发板是基于XR806芯片设计开发的参考评估,板身集成了XR806芯片、WiFi/BT双天线、供电系统、按
    的头像 发表于 04-14 09:25 418次阅读
    <b class='flag-5'>OpenHarmony</b>南向嵌入式:【<b class='flag-5'>XR806</b><b class='flag-5'>开发板</b>指导文档】

    详解OpenHarmony各部分文件在XR806上的编译顺序

    /liteos_m代表根目录下的kernel/liteos_m文件夹。最后,关于演示部分:XR806_OpenHarmony串口默认配置为:波特率115200,无校验,8位数据位,1位停止位。开发板成功连接PC上
    发表于 01-29 10:00

    XR806芯片、XR806开源鸿蒙开发板简介

    。可广泛满足 智能家居、智慧楼宇、工业互联、儿童玩具、电子竞赛、极客DIY 等领域的无线连接需求。芯片框图芯片参数XR806开源鸿蒙开发板介绍XR806开发板是基于
    发表于 11-15 17:08

    XR806芯片、XR806开源鸿蒙开发板简介

    。可广泛满足 智能家居、智慧楼宇、工业互联、儿童玩具、电子竞赛、极客DIY 等领域的无线连接需求。芯片框图芯片参数XR806开源鸿蒙开发板介绍XR806开发板是基于
    发表于 11-15 18:32

    【资料释放】全志XR806开发板全资料释放,连bomlist都给出来了

    ://www.openharmony.cn/#/supportDevices/XR8061.硬件bomlist包含核心和底板两个部分核心:底板:完整excel文档下载:
    发表于 12-06 14:06

    有哪位大神可以分享一下XR806开发板/模组的资料呢

    XR806开发板/模组的硬件包含哪几个部分?XR806开发板/模组的硬件该怎样去设计呢?
    发表于 12-28 06:51

    XR806开发板下载代码时遇到错误fatal: Cannot get该怎么办

    XR806开发板试用】下载代码时遇到如下错误 fatal: Cannot get https://gerrit.googlesource.com/git-repo/clone.bundle请问大家
    发表于 12-28 06:21

    请问大佬XR806鸿蒙开发板怎么样?

    请问大佬XR806鸿蒙开发板怎么样?
    发表于 12-29 07:06

    【直播预告】全志XR806芯片应用实战分享

    /joinXR806优秀开发例程《基于OpenHarmony的棋子分拣机》《用全志XR806开源鸿蒙开发板做一个四足行走机器狗》《【
    发表于 02-28 17:39

    【资料合集】全志XR806开发板全部资料

    3.软件SDK——OpenHarmony/鸿蒙XR806开发板支持L0(轻量设备)级别的鸿蒙系统全部代码已经从gitee开源gittee仓库链接:https://gitee.com
    发表于 03-10 14:59

    OpenHarmony开发样例】基于全志XR806开发板开发的智能门锁

    参考 连接IOT云平台指南;智能设备与数字管家应用之间的设备模型定义可以参考profile .2. 实物简介: 如上图所示,上面是XR806开发板,中间的是hcsr04超声波距离传感器,下面
    发表于 03-11 10:29

    如何下载xr806鸿蒙代码并编译

    gcc-arm-none-eabi-10-2020-q4-major-src.tar.bz2  2.2  改编译工具链路径    改成  ~/workspace/chenkunyao/xr806_openharmony2/to
    发表于 03-11 16:02

    用deepin进行xr806开发板开发

    为了防止后面一些玄学问题,就放弃在deepin上进行xr806开发了,还是老老实实的在ubuntu上吧.相同的操作,在ubuntu20是,就没有问题。由于下载源码时,正好原官方仓库不可用,就使用了临时
    发表于 11-17 10:50

    XR806开发板试用】FreeRTOS创建任务测试

    这篇来学习下,XR806开发板在FreeRTOS系统下创建两个任务测试,由于没有找到学习的文档,试着参考例程来测试。
    的头像 发表于 10-10 11:47 366次阅读
    【<b class='flag-5'>XR806</b><b class='flag-5'>开发板</b><b class='flag-5'>试用</b>】FreeRTOS创建任务测试

    全志XR806开发板原理图

    全志XR806开发板原理图
    发表于 10-19 15:11 9次下载