0.我的环境
1.Window
2.WSL
WSL1
3.Ubuntu
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 正面
2.2 反面
3.工程目录结构
这是我在Windos WSL1中的Ubuntu18.04中跑完helloword后的工程目录结构,图中只标出我认识的。
根目录为 /home/xl/xr806_openharmony
4.安装环境
我是用的vscode连接wsl中的ubuntu进行操作的,参考极术社区大佬的文章:https://aijishu.com/a/1060000000288355
连接ubuntu后,进入home目录并打开控制台的效果如图:
后续命令都是在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
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
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
5.7 修改源码中两个文件中的交叉编译工具的路径
5.7.1 修改device/xradio/xr806/liteos\_m/config.gni中的board\_toolchain\_prefix为实际环境下的gcc路径。
5.7.2 修改device/xradio/xr806/xr\_skylark/gcc.mk。
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
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
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
7.4 清除过程文件
make build_clean
7.5 生成静态库已经自动生成头文件
make lib -j
7.6 设置编译路径
cd ~/xr806_openharmony
hb set
# 在出现的图形选择界面中选择skylark
7.7 执行编译
hb build -f
编译成功如下:
生成的镜像位于~/xr806_openharmony/device/xradio/xr806/xr_skylark/out
路径 下
如果执行hb build -f
进行编译走到250步时报错信息如下文件中一样,则执行下面三行命令解决
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
下载后,解压驱动包,将开发板连接上电脑,在设备管理器将驱动安装上即可
8.2 准备烧录软件和烧录固件
我的电脑是有D盘的,D盘挂载在ubuntu里的/mnt目录下,只要把对应的软件放到/mnt下的目录中,即可在window中访问
固件我放到D盘的XR806目录下
烧录软件我放到C:\Users\xl\Desktop\XR806\devboard\_device\_allwinner\_xr806\xr806\xr\_skylark\tools目录下
8.3 开始烧录
1.选择固件
2.选择波特率
3.勾选COM口
4.点击设置
5.勾选硬件复位烧写模式
6.点击升级固件
8.4 连机测试
我使用的是缤果串口调试助手
将开发板连接上电脑
打工串口网络调试助手
将串口设置好
按开发板上的复位按钮,串口调试助手中即会出现Hello! OpenHarmony!的欢迎字样
9.Hello World
9.1 修改代码
将~/xr806_openharmony/device/xradio/xr806/ohosdemo/BUILD.gn
文件中的第30行中的注释放开
9.2 重新编译,烧写
重新执行第7.1 - 7.7的过程,进行编译
重新执行第8.2 - 8.3的过程,进行固件烧写
9.3 打印Hello World
重新执行第8.4的过程,即可看到打印出hello world