F.x · 2022年01月19日

【XR806开发板试用】系统烧写

我是在虚拟机下安装,这部分大家应该都会吧,就不过多阐述了。

环境配置
大家应该先看官方文档【XR806】

1.准备工作
安装Git
在安装git后,需git-lfs并配置用户信息。否则可能拉代码失败

git config --global user.name "yourname"
git config --global user.email "your-email-address"
git config --global credential.helper store

安装码云repo工具,可以执行如下命令
mkdir -p ~/bin
curl https://storage.googleapis.co... > ~/bin/repo
chmod a+rx ~/bin/repo

配置环境变量
如果安装了vim,则可以使用vim编辑。否则手动在~/.bashrc文件最后添加

vim ~/.bashrc
export PATH=~/bin:$PATH #如果没有安装vim,将此句添加至最后
生效环境变量
source ~/.bashrc
修改repo镜像地址,在文章基于星辰处理器的全志XR806开源鸿蒙开发板上手体验中就有相应步骤。
当直接执行repo init时候,系统会提示连接超时。
因为Repo init 默认会访问的url地址https://gerrit.googlesource.c...往往会失败;
所以我们需要替换为国内的地址https://mirrors.ustc.edu.cn/a...,在修改git-repo下载到的repo文件REPO_URL地址。

Python
a.安装python3.7+,我安装的是3.8版本,根据Ubuntu不同版本,安装python。
如果Ubuntu 版本为18+,运行如下命令。
sudo apt-get install python3.8
如果Ubuntu版本为16。需安装依赖包
sudo apt update && sudo apt install software-properties-common
b. 添加deadsnakes PPA 源,然后按回车键确认安装。
sudo add-apt-repository ppa:deadsnakes/ppa
c. 安装python3.8
sudo apt upgrade && sudo apt install python3.8
设置python和python3软链接为python3.8
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8 1
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1
LLVM
请先下载llvm工具
解压LLVM安装包至~/llvm路径下,也可以自己手动解压至对应目录下
tar -zxvf llvm.tar -C ~/
设置环境变量
如果安装了vim,则可以使用vim编辑。否则手动在~/.bashrc文件最后添加
vim ~/.bashrc
export PATH=~/llvm/bin:$PATH #如果没有安装vim,将此句添加至最后
生效环境变量
source ~/.bashrc
先安装Python 3.7.4及以上版本和pip工具,才能正常安装。
pip install --user ohos-build
设置环境变量,仿照上面设置即可
PATH="$HOME/.local/bin:$PATH"
执行"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

安装必要的库和工具
sudo apt-get install build-essential gcc g++ make zlib* libffi-dev e2fsprogs pkg-config flex bison perl bc openssl libssl-dev libelf-dev libc6-dev-amd64 binutils binutils-dev libdwarf-dev u-boot-tools mtd-utils gcc-arm-linux-gnueabi cpio device-tree-compiler
否则在后面的步骤中,会有许多错误信息,由于缺少对应的工具和库。
安装libncurses5-dev
sudo apt-get install libncurses5-dev
可能还会缺少其他组件
如果出现,对应安装即可
参考XR806编译的一些环境问题及解决

2.源码
获取源码
repo init -u https://gitee.com/openharmony... -b OpenHarmony_1.0.1_release --no-repo-verify -m devboard_xr806.xml
repo sync -c
repo forall -c 'git lfs pull'
只获取鸿蒙代码,再手动加入
repo init -u https://gitee.com/openharmony... -b OpenHarmony_1.0.1_release --no-repo-verify
XR806代码正在走合入开源鸿蒙主仓流程,这几天会暂时不可用。大家可以采用临时仓库链接:https://gitee.com/moldy-potat...

下载编译链
我们使用gcc-arm-none-eabi-10-2020-q4-major,
wget https://armkeil.blob.core.win...
解压放在指定位置,我们默认放在~/tools中,这样就不用去更改文件里面的路径。如果需要进行更改参考XR806固件编译

代码编译
首次编译工程,需要对原生库进行配置,否则无法编译通过,配置步骤如下:

cd device/xradio/xr806/xr_skylark #(1)进入原生SDK目录
cp project/demo/audio_demo/gcc/deconfig .config #(2)复制配置文件
make menuconfig #(3)图形化界面配置
make build_clean #(4)清除旧配置
make lib -j #(5)根据配置生成静态库和全局头文件
cd - #(6)返回Harmony根目录
hb set #(7)选择wifi_skylark
hb build -f #(8)编译,后续不需要重新配置
其中就是将device/xradio/xr806/xr_skylark/project/demo/audio_demo/gcc/deconfig中的配置文件内容复制在device/xradio/xr806/xr_skylark的.config 中,在进行make menuconfig 进入图形化配置文件,记得检查是否安装libncurses5-dev。进入图形化配置页面后

(1)直接选择退出,在执行make build_clean清除旧配置, make lib -j根据配置生成静态库和全局头文件,cd - 返回根目录,
hb set
(2)直接回车
(3)确定选中的是wifi_skylark,直接enter即可。
之后进行hb build -f,编译。如果出现错误,参考官方文档。

代码编写说明
请先查看文档编译顺序
如果是在编译烧录后,并没有成功运行,则可能是libcopy.py的问题。
在文件xr806_openharmony/device/xradio/xr806/xr_skylark/ohos.mk中,并没有更新路径。
文件未被更新如:

OHOSSOURCE = -Wl,--whole-archive
OHOSSOURCE += $(ROOT_PATH)/lib/ohos/libapp_console.a
OHOSSOURCE += $(ROOT_PATH)/lib/ohos/libapp_led.a
OHOSSOURCE += $(ROOT_PATH)/lib/ohos/libapp_WlanTest.a
OHOSSOURCE += -Wl,--no-whole-archive
其中是否有你需要启动的路径,如果没有可以手动添加,但最好还需找出原因。

3.固件烧录
这部分比较简单,我是直接在编译生成的固件在device/xradio/xr806/xr_skylark/out,名称为xr_system.img。
XR806的烧录固件为phoenixMC_xxxx.exe,文件位于device/xradio/xr806/xr_skylark/tools。打开后界面如下:

4.具体查看固件烧录
或者可以在Ubuntu下全流程,参考【XR806开发板试用】系列之一 - Linux环境下Ubuntu完全开发流程

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