Navigation

    全志在线开发者论坛

    • Register
    • Login
    • Search
    • Categories
    • Tags
    • 在线文档
    • 社区主页

    【XR806开发板试用】shell脚本一键配置XR806开发环境

    XR系列-无线互联
    1
    1
    162
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • q1215200171
      budbool LV 8 last edited by q1215200171

      本文是我基于官方文档整理的最新XR806开发环境搭建步骤,所有步骤都合并为几段shell脚本,可以直接复制粘贴执行。

      我的开发环境是基于Ubuntu 20.04的,目前XR806的OpenHarmony代码版本是1.0.1_release;

      每段脚本下方的注都是容易遇到坑的地方,请大家遇到问题的时候多注意。

      准备repo命令行工具

      [ "$(id -u)" == "0" ] && alias sudo=
      
      sudo apt update
      sudo apt -y install curl git python3 python3-pip
      ln -s /usr/bin/python3 /usr/bin/python
      
      # 设置pip源为阿里镜像站
      pip config set global.index-url http://mirrors.aliyun.com/pypi/simple/
      pip config set global.timeout 120
      pip config set global.trusted-host mirrors.aliyun.com
      
      # 下载repo工具
      [ -e ~/bin/ ] || mkdir ~/bin/
      curl -s https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > ~/bin/repo
      chmod +x ~/bin/repo
      pip install requests # 码云的 repo 依赖这个pip包
      echo 'export PATH=$PATH:~/bin' | tee -a ~/.bashrc
      

      注:

      repo命令行工具本身是一个python脚本,所以需要先安装python3;
      这里的repo为码云提供的版本,REPO_URL的值他们已经修改好了,不需要再修改;
      他们修改的代码依赖了requests包,因此步骤中有配置pip源和下载requests包;

      下载ARM交叉编译工具链

      # 下载 gn 压缩包
      GN_TARBALL=gn-linux-x86-1717.tar.gz
      GN_URL_PREFIX=https://repo.huaweicloud.com/harmonyos/compiler/gn/1717/linux
      curl $GN_URL_PREFIX/$GN_TARBALL > $GN_TARBALL
      
      # 下载 ninja 压缩包
      NINJA_TARBALL=ninja.1.9.0.tar
      NINJA_URL_PREFIX=https://repo.huaweicloud.com/harmonyos/compiler/ninja/1.9.0/linux
      curl $NINJA_URL_PREFIX/$NINJA_TARBALL > $NINJA_TARBALL
      
      # 下载clang 9.0 压缩包
      CLANG_TARBALL=llvm-linux-9.0.0-36191.tar
      CLANG_URL_PREFIX=https://repo.huaweicloud.com/harmonyos/compiler/clang/9.0.0-36191/linux
      curl $CLANG_URL_PREFIX/$CLANG_TARBALL > $CLANG_TARBALL
      
      # 下载 gcc-arm-none-eabi-10-2020-q4-major 压缩包
      GCC_TARBALL=gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2
      GCC_URL_PREFIX=https://armkeil.blob.core.windows.net/developer/Files/downloads/gnu-rm/10-2020q4
      curl $GCC_URL_PREFIX/$GCC_TARBALL > $GCC_TARBALL
      
      [ -e ~/tools/ ] || mkdir ~/tools/
      
      # 解压gn和ninja压缩包
      tar -C ~/tools/ -xvf $GN_TARBALL
      tar -C ~/tools/ -xvf $NINJA_TARBALL
      echo 'export PATH=$PATH:~/tools:~/tools/ninja' | tee -a ~/.bashrc
      
      # 解压clang压缩包
      tar -C ~/tools/ -xvf $CLANG_TARBALL
      echo 'export PATH=$PATH:~/tools/llvm/bin' | tee -a ~/.bashrc
      
      # 解压gcc压缩包
      tar -C ~/tools/ -xvf $GCC_TARBALL
      echo 'export PATH=$PATH:~/tools/gcc-arm-none-eabi-10-2020-q4-major/bin' | tee -a ~/.bashrc
      
      source ~/.bashrc # 生效环境变量
      

      注:

      全志在线的步骤描述里面没有写需要下载gn/ninja/clang,但是后续的hb build命令会依赖这几个命令行工具;

      下载OpenHarmony和XR806代码

      # 配置你的git作者信息
      git config --global user.email "yourname@example.com"
      git config --global user.name "Your Name"
      
      # 创建目录
      [ -e ~/xr806_openharmony ] || mkdir ~/xr806_openharmony
      cd ~/xr806_openharmony
      
      # 初始化清单仓
      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 的 device和vendor 仓到 device/xradio和vendor/xradio目录
      git clone https://gitee.com/XR806/devboard_device_allwinner_xr806.git device/xradio/
      git clone https://gitee.com/XR806/devboard_vendor_allwinner_xr806.git vendor/xradio/
      

      注:

      最后的两个仓是我从uncleli克隆的两个代码仓,因为全职在线文档中openharmony-sig组织下的代码仓暂设置访问权限为私有了,组织外部人员暂时无法访问;

      编译XR806的OpenHarmony代码

      配置项目
      第一次编译前需要执行“配置项目”的步骤。主要用于生成部分Kconfig配置和Makefile代码片段,后续编译不再需要执行这里的步骤。

      sudo apt install -y libncurses5-dev  # menuconfig 依赖的ncurses库
      
      # 进入SDK目录。
      cd device/xradio/xr806/xr_skylark/
      
      # 复制配置文件。
      cp project/demo/audio_demo/gcc/defconfig .config
      
      # 使用图形化界面确认配置。
      make menuconfig
      # 执行make menuconfig后,按方向键选择save保存后,选择exist退出即可。
      
      # 清除过程文件。
      make build_clean
      
      # 生成静态库已经自动生成头文件。
      make lib -j
      
      # 返回根目录。
      cd -
      

      安装hb命令
      第一次编译前,需要安装hb命令。后续的编译不再需要执行这里的命令。

      cd ~/xr806_openharmony
      cd build/lite
      pip install prompt_toolkit==1.0.14
      python setup.py install --user
      echo 'export PATH=$PATH:~/.local/bin' | tee -a ~/.bashrc # 将hb命令所在目录加到PATH环境变量
      source ~/.bashrc # 生效环境变量
      

      编译代码

      hb set  #回车,并选择wifi_skylark,第一次编译需要执行这个命令,执行完成后会生成ohos_config.json文件
      hb build -f # 编译代码
      

      烧录镜像

      运行device\xradio\xr806\xr_skylark\tools目录下的phoenixMC_v3.1.21014b.exe;
      编译完的镜像文件在device\xradio\xr806\xr_skylark\out目录下;
      烧录软件的使用参考全志在线的文档:固件烧录 - XR806 (aw-ol.com)
      烧录需要注意:记得勾选“硬件复位烧写模式”,否则进度到92%就会报错。

      观察日志

      XR806 OpenHarmony默认的串口配置为:波特率115200,无校验,8位数据位,1位停止位。

      使用PuTTY查看启动日志,需要在的Terminal配置中,勾选“Implicit CR in every LF”和“Implicit LF in every CR”这两个选项。

      参考链接

      参考了以下链接:

      全志在线XR806的文档:https://xr806.docs.aw-ol.com/ (aw-ol.com)
      码云临时代码仓:uncleli/devboard_device_allwinner_XR806 (gitee.com)

      文章转自极术社区:https://aijishu.com/a/1060000000291606
      作者:xusiwei1236

      1 Reply Last reply Reply Quote Share 0
      • 1 / 1
      • First post
        Last post

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

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