xl_dWZ33 · 2022年01月06日

【XR806开发板试用】环境、编译、HelloWorld

0.我的环境

1.Window

image.png

2.WSL

WSL1

3.Ubuntu

image.png

1.参考资料

XR806试用文章:https://aijishu.com/a/1060000000256653

全志在线开发者社区:https://bbs.aw-ol.com/recent?cid[]=16

XR806官方文档 :https://xr806.docs.aw-ol.com/

OpenHarmony文档:https://www.openharmony.cn/documents/

vscode操作:https://aijishu.com/a/1060000000288355

驱动下载地址:https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers

2.实物图片

2.1 正面

image.png

2.2 反面

image.png

3.工程目录结构

这是我在Windos WSL1中的Ubuntu18.04中跑完helloword后的工程目录结构,图中只标出我认识的。

根目录为 /home/xl/xr806_openharmony

image.png

4.安装环境

我是用的vscode连接wsl中的ubuntu进行操作的,参考极术社区大佬的文章:https://aijishu.com/a/1060000000288355

连接ubuntu后,进入home目录并打开控制台的效果如图:

image.png

后续命令都是在vscode中的控制台中输入

4.1 在Ubuntu中安装vim

cd ~

sudo apt-get install -y vim

4.2 备份apt-get源文件(/etc/apt/sources.list)

cd /etc/apt

sudo cp sources.list sources.list.bak.20211225

4.3 更换apt-get源为清华的源

 sudo vim /etc/apt/sources.list

/etc/apt/sources.list文件中的内容换成如下(清华的源)

# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse

# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse

4.4 更新apt-get

sudo apt-get update

注:如果更新失败,将上一步文件里的源地址中的https改为http

4.5 配置gitee信息

4.5.1 生成SSH公钥,并配置到gitee中

cd ~

ssh-keygen -t ed25519 -C "xxxxx@xxxxx.com"

cat ~/.ssh/id_ed25519.pub

#  将这串公钥配置到gitee中即可
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIC4HtFO+BQeWgU4TXV8jZYdKKVWg4ps8PIGeHxxxxxxx xxxxx@xxxxx.com

image.png

4.5.2 配置name

git config --global user.name "username"

4.5.3 配置email

# 这里的邮箱为gitee的邮箱
git config --global user.email xxxxx@xxxxx.com

5.XR806官方代码下载

5.1 安装依赖

cd ~

sudo apt-get update && sudo apt-get install gnutls-bin gcc-arm-linux-gnueabi build-essential fakeroot dpkg-dev git-lfs build-essential gcc g++ make zlib* zip xsltproc x11proto-core-dev wget vim unzip u-boot-tools tzdata texinfo ssh scons python3-minimal python3-setuptools python3-pip python3-distutils python3-apt python3.8-distutils npm nfs-kernel-server mtools mtd-utils m4 locales libxml2-utils libx11-dev libreadline-dev libgl1-mesa-dev libffi* libc6-dev-x32 libc6-dev-i386 lib32z-dev lib32ncurses5-dev gperf gnupg git-lfs git-core g++-multilib g++ flex dosfstools default-jre default-jdk curl ccache build-essential bison binutils bc genext2fs ruby

5.2 安装repo

cd ~

# 下载git-repo
git clone https://gerrit-googlesource.lug.ustc.edu.cn/git-repo

# 将git-repo添加到环境变量中
export PATH=$PATH:~/git-repo

# repo修改镜像地址为清华的
vim ~/git-repo/repo

# 第144行处,修改REPO_URL为如下:
https://mirrors.ustc.edu.cn/aosp/git-repo

image.png

5.3 下载代码

cd ~

# 创建一个目录用于存放代码
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'

5.4 下载device

cd ~/xr806_openharmony/device

git clone https://gitee.com/moldy-potato-chips/devboard_device_allwinner_xr806 xradio

5.5下载vendor

cd ~/xr806_openharmony/vendor

git clone https://gitee.com/moldy-potato-chips/devboard_vendor_allwinner_xr806 xradio

5.6 下载gcc交叉编译工具,并解压交叉编译工具,放到指定路径(~/tools/)。

cd ~

mkdir tools

cd tools

# 下载
wget https://armkeil.blob.core.windows.net/developer/Files/downloads/gnu-rm/10-2020q4/gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2

# 解压
tar -jxvf gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2 

# 最终放置的位置如下:
/home/xl/tools/gcc-arm-none-eabi-10-2020-q4-major


image.png

5.7 修改源码中两个文件中的交叉编译工具的路径

5.7.1 修改device/xradio/xr806/liteos\_m/config.gni中的board\_toolchain\_prefix为实际环境下的gcc路径。

image.png

5.7.2 修改device/xradio/xr806/xr\_skylark/gcc.mk。

image.png

5.8 下载llvm并配置

cd ~

mkdir llvm

wget https://repo.huaweicloud.com/harmonyos/compiler/clang/9.0.0-36191/linux/llvm-linux-9.0.0-36191.tar

#  解压
tar -xvf llvm-linux-9.0.0-36191.tar llvm/

# 编辑环境变量
vim ~/.bashrc

# 配置环境变量
export PATH=~/llvm/bin:$PATH

# 刷新环境变量
source ~/.bashrc

image.png

6.安装hb

6.1 运行如下命令安装hb

cd ~

python3 -m pip install --user ohos-build

6.2 设置环境变量

vim ~/.bashrc

6.3 将以下命令拷贝到.bashrc文件的最后一行,保存并退出。

export PATH=~/.local/bin:$PATH

6.4 执行如下命令更新环境变量。

source ~/.bashrc

6.5 测试hb是否安装成功

执行"hb -h",有打印以下信息即表示安装成功:

usage: hb

OHOS build system

positional arguments:
  {build,set,env,clean}
    build               Build source code
    set                 OHOS build settings
    env                 Show OHOS build env
    clean               Clean output

optional arguments:
  -h, --help            show this help message and exit

image.png

6.6 卸载hb

python3 -m pip uninstall ohos-build

7.编译程序

7.1 进入~/xr806_openharmony/device/xradio/xr806/xr_skylark目录

cd ~/xr806_openharmony/device/xradio/xr806/xr_skylark/

7.2 复制配置文件

cp project/demo/wlan_ble_demo/gcc/defconfig .config

7.3 可使用图形化界面确认配置

注意:使用这个命令时,控制台高度不能太小,不同会报错。

选择<save>后,一直下一步,下一步,最后返回首页面,选择<Exit>

make menuconfig

image.png

7.4 清除过程文件

make build_clean

7.5 生成静态库已经自动生成头文件

make lib -j

7.6 设置编译路径

cd ~/xr806_openharmony

hb set

# 在出现的图形选择界面中选择skylark

image.png

7.7 执行编译

hb build -f

编译成功如下:

image.png

生成的镜像位于~/xr806_openharmony/device/xradio/xr806/xr_skylark/out路径 下

image.png

如果执行hb build -f进行编译走到250步时报错信息如下文件中一样,则执行下面三行命令解决

📎编译报错信息build.log

sudo apt install qemu-user-static

sudo update-binfmts \
--install i386 /usr/bin/qemu-i386-static \
--magic \
'\x7fELF\x01\x01\x01\x03\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x03\x00\x01\x00\x00\x00' \
--mask \
'\xff\xff\xff\xff\xff\xff\xff\xfc\xff\xff\xff\xff\xff\xff\xff\xff\xf8\xff\xff\xff\xff\xff\xff\xff'

sudo service binfmt-support start

8.烧录固件

8.1 安装驱动

驱动下载地址:https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers

我下载的CP210x VCP Windows

image.png

下载后,解压驱动包,将开发板连接上电脑,在设备管理器将驱动安装上即可

image.png

image.png

8.2 准备烧录软件和烧录固件

我的电脑是有D盘的,D盘挂载在ubuntu里的/mnt目录下,只要把对应的软件放到/mnt下的目录中,即可在window中访问

固件我放到D盘的XR806目录下

image.png

烧录软件我放到C:\Users\xl\Desktop\XR806\devboard\_device\_allwinner\_xr806\xr806\xr\_skylark\tools目录下

image.png

8.3 开始烧录

1.选择固件

2.选择波特率

3.勾选COM口

4.点击设置

5.勾选硬件复位烧写模式

6.点击升级固件

image.png

image.png

image.png

image.png

8.4 连机测试

我使用的是缤果串口调试助手

将开发板连接上电脑

打工串口网络调试助手

将串口设置好

按开发板上的复位按钮,串口调试助手中即会出现Hello! OpenHarmony!的欢迎字样

image.png

9.Hello World

9.1 修改代码

~/xr806_openharmony/device/xradio/xr806/ohosdemo/BUILD.gn文件中的第30行中的注释放开

image.png

9.2 重新编译,烧写

重新执行第7.1 - 7.7的过程,进行编译

重新执行第8.2 - 8.3的过程,进行固件烧写

9.3 打印Hello World

重新执行第8.4的过程,即可看到打印出hello world

image.png

推荐阅读
关注数
13820
内容数
140
全志XR806开发板相关的知识介绍以及应用专栏。
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息