导航

    全志在线开发者论坛

    • 注册
    • 登录
    • 搜索
    • 版块
    • 话题
    • 在线文档
    • 社区主页

    【XR806官方开发板入门】openHarmony编译与烧录

    Wireless & Analog Series
    4
    5
    2721
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • aldfaaa
      whycan矿工-小叶 LV 7 最后由 编辑

      【XR806官方开发板入门】openHarmony编译与烧录

      非常感谢AW陈老板赠与XR806开发板~~~
      期望未来线下面基活动不会太晚.

      首先画重点:
      【严重警告】不要用全志客户服务平台Freertos v1.2版本编出来的固件烧到XR806开源鸿蒙开发板
      由于我鸽子特性, 所以前一段时间我卡在了openharmony(简称OH)开发路线上, 所以避开了官方RTOS这坑.

      OH开发路线我断断续续地摸索了2天

      • 一是文档教程分散且有多个版本(见 参考文献);
      • 二是估计OH官方库跟XR806的适配出现了一些分歧, 两者没有合并在一起.

      平台

      原生Ubuntu 20.04

      资源

      先建个文件夹, 边下载边往下看

      mkdir xradio && cd ~/xradio
      

      gn

      需要下载gn-linux-x86-1717.tar.gz工具. 链接忘了
      放到

      ~/gn目录下, 并加入环境变量
      

      工具链

      Linux: gcc-arm-none-eabi-10-2020-q4-major

      下载解压, 加不加到PATH不要紧. 因为OH依靠ninja工具构建. 只要将工具链路径(gcc-arm-none-eabi-10-2020-q4-major/arm-none-eabi/bin)加入

      特定库

      devboard_device_allwinner_xr806

      git@gitee.com:moldy-potato-chips/devboard_device_allwinner_xr806.git
      

      devboard_vendor_allwinner_xr806

      git@gitee.com:moldy-potato-chips/devboard_vendor_allwinner_xr806.git
      

      以上两个库是早期从OH库特定分支fork下来的. 个人认为可能是最新的OH官方库与xr806适配方式存在一些分歧, 所以导致官方教程的里repo sync时无法同步到特定目录(库).

      下载完之后xradio目录应该为:

      xradio
      ├── devboard_device_allwinner_xr806
      ├── devboard_vendor_allwinner_xr806
      └── gcc-arm-none-eabi-10-2020-q4-major
      

      OH

      先来看看官方教程, 然而并不能正常repo sync(21/03/06之前)

      mkdir openharmony
      cd openharmony
      repo init -u ssh://git@gitee.com/openharmony-sig/manifest.git -b OpenHarmony_1.0.1_release --no-repo-verify -m devboard_xr806.xml
      repo sync -c
      repo forall -c 'git lfs pull'   #下载部分大容量二进制文件
      

      问题出现在

      -m devboard_xr806.xml
      

      所以直接取得OpenHarmony_1.0.1_release分支OH仓即可:

      repo init -u https://gitee.com/openharmony/manifest.git -b OpenHarmony_1.0.1_release --no-repo-verify
      repo sync -c
      repo forall -c 'git lfs pull'
      

      注意xr806仅适配特定分支的OH系统.

      整合目录★★★

      以下操作是为了弥补该分支OH仓的一些差异.
      估计是OH官方仓作了一些修改没法向前兼容XR806的适配.

      # 若~/openharmony/device/xradio目录已存在, 则可备份一下.
      # 复制device库
      cp -rfa ~/xradio/devboard_device_allwinner_xr806 ~/openharmony/device/xradio
      
      # 复制vender库
      cp -rfa ~/xradio/devboard_vendor_allwinner_xr806 ~/openharmony/vendor/xradio
      

      配置工具链

      cd ~/openharmony

      修改:
      device/board/allwinner/xradio
      device/xradio/xr806/liteos_m/config.gni +37

      # Compiler prefix.
      board_toolchain_prefix = "~/xradio/gcc-arm-none-eabi-10-2020-q4-major/bin/arm-none-eabi-"
      

      修改:

      device/xradio/xr806/xr_skylark/gcc.mk

      CC_DIR := ~/xradio/gcc-arm-none-eabi-10-2020-q4-major/bin
      

      编译注意事项

      hb工具选择兼容XR806的版本

      hb是构件OHOS的python工具. 它位于openharmony/build/lite/hb.

      hb最新版本不兼容编译XR806 SDK, 所以必须使用b765e35分支的hb工具, 即对应OH仓OpenHarmony_1.0.1_release分支的版本.

      git reset --hard b765e35
      # 在openharmony目录下执行安装才会替换hb
      python3 -m pip install --user build/lite
      

      编译SDK

      编译前要包含一下要编译的程序, 比如

      ~/openharmony/device/xradio/xr806/ohosdemo/hello_demo

      需要修改一些Build.gn...
      详细见官方教程和OH仓吧...
      还有一些生成文件需要注意:

      openharmony/device/xradio/xr806/liteos_m/SDKconfig.gni
      

      编译

      hb set 然后按一下回车出现:

      a.png !imga

      选择wifi_skylark@xradio选项.
      然后

      hb build -f -c gcc
      

      见success即可.

      烧录

      记得按官方教程打上 配置里的勾勾.
      QQ图片20220319135527.png

      参考文献

      [1] XR806使用安装包方式搭建编译环境

      [2] 系统下载与编译

      1 条回复 最后回复 回复 引用 分享 3
      • xiaowenge
        DOT小文哥 LV 8 最后由 编辑

        666666 手动点赞

        1 条回复 最后回复 回复 引用 分享 0
        • M
          mysteryli LV 7 最后由 编辑

          为大佬点赞,一次成功

          1 条回复 最后回复 回复 引用 分享 0
          • B
            biubiu LV 5 最后由 编辑

            你好,我按照你的文档操作,最后build的时候出现了下图的,不知道如何解决,期待你的回复!

            032f18ec-a297-4969-861c-96631ebedb1a-image.png

            B 1 条回复 最后回复 回复 引用 分享 0
            • B
              biubiu LV 5 @biubiu 最后由 编辑

              @biubiu @aldfaaa 我换一台机器重新操作一遍跑通了,估计是我之前电脑的环境问题

              1 条回复 最后回复 回复 引用 分享 0
              • Referenced by  D Deadpersimmon 
              • Referenced by  D Deadpersimmon 
              • Referenced by  D Deadpersimmon 
              • Referenced by  D Deadpersimmon 
              • Referenced by  D Deadpersimmon 
              • 1 / 1
              • First post
                Last post

              Copyright © 2024 深圳全志在线有限公司 粤ICP备2021084185号 粤公网安备44030502007680号

              行为准则 | 用户协议 | 隐私权政策