电子说
XR806是全志科技旗下子公司广州芯之联研发设计的一款支持WiFi和BLE的高集成度无线MCU芯片,支持OpenHarmony轻量设置系统。具有集成度高、硬件设计简单、BOM成本低、安全可靠等优点。可广泛满足 智能家居、智慧楼宇、工业互联、儿童玩具、电子竞赛、极客DIY等领域的无线连接需求。
XR806_OpenHarmony开发板是基于XR806芯片设计开发的参考评估,板身集成了XR806芯片、WiFi/BT双天线、供电系统、按钮及LED等,并引出了所有可用引脚,可供开发者进行方案评估、DIY或小规模产品研发使用。以下为开发板外观图([更多硬件资料地址]
开发基础环境由windows 工作台和Linux编译服务器组成。windows 工作台可以通过samba 服务或ssh 方式访问Linux编译服务器。其中windows 工作台用来烧录和代码编辑,Linux编译服务器用来编译OpenHarmony代码,为了简化步骤,Linux编译服务器推荐安装Ubuntu20.04。
鸿蒙开发next学习文档
mau123789是v直接拿取。
sudo apt-get install -y build-essential gcc g++ make zlib* libffi-dev
打开Linux编译服务器终端。
输入如下命令,查看python版本号,需使用python3.7以上版本。
python3 --version
如果低于python3.7版本,不建议直接升级,请按照如下步骤重新安装。以python3.8为例,按照以下步骤安装python。
cat /etc/issue
如果Ubuntu 版本为18+,运行如下命令。
sudo apt-get install python3.8
如果Ubuntu版本为16。
a. 安装依赖包
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
安装并升级Python包管理工具(pip3),任选如下一种方式。
sudo apt-get install python3-setuptools python3-pip -y
sudo pip3 install --upgrade pip
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python get-pip.py
打开Linux编译服务器终端。
在根目录下创建gn文件夹。
mkdir ~/gn
解压gn安装包至~/gn路径下。
tar -xvf gn-linux-x86-1717.tar.gz -C ~/gn
设置环境变量。
vim ~/.bashrc
将以下命令拷贝到.bashrc文件的最后一行,保存并退出。
export PATH=~/gn:$PATH
生效环境变量。
source ~/.bashrc
打开Linux编译服务器终端。
解压ninja安装包至~/ninja路径下。
tar -xvf ninja.1.9.0.tar -C ~/
设置环境变量。
vim ~/.bashrc
将以下命令拷贝到.bashrc文件的最后一行,保存并退出。
export PATH=~/ninja:$PATH
生效环境变量。
source ~/.bashrc
tar -zxvf gcc-arm-none-eabi-10-2020-q4-major.tar.gz -C ~/tools/
cd ~/
curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > ./repo
chmod a+x ./repo
sudo mv ./repo /usr/local/bin/
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple requests
mkdir ~/openharmony
cd ~/openharmony
repo init -u git@gitee.com:openharmony/manifest.git -b refs/tags/OpenHarmony-v3.1-Beta --no-repo-verify
repo sync -c
repo forall -c 'git lfs pull'
下载板级soc模块
soc下面是包含芯片SDK和驱动代码、第三方库适配等接口层代码。下载方法如下:
mkdir ~/xradio
cd ~/xradio
git clone git@gitee.com:openharmony-sig/device_soc_allwinner.git
因为最新的代码未在适配相应的HDF驱动,所以需要将代码回退到指定版本:d5d336941a1ba1ba3b84aebab1d7173d20968ccd
cd device_soc_allwinner
git reset --hard d5d336941a1ba1ba3b84aebab1d7173d20968ccd
将此代码拷贝到soc下并重新命名为allwinner
cp -raf device_soc_allwinner ~/openharmony/device/soc/allwinner
下载板级board模块
board主要存放板级配置,下载方法:
git clone git@gitee.com:openharmony-sig/device_board_allwinner.git
将此代码拷贝到board下并重新命名为allwinner
cp -raf device_board_allwinner ~/openharmony/device/board/allwinner
下载vendor模块
vendor存放的都是一些基于XRMCU开发的WiFi模组代码样例,下载方法:
git clone git@gitee.com:openharmony-sig/vendor_allwinner.git
将此代码拷贝到vendor下并重新命名为allwinner
cp -raf vendor_allwinner_xr806 ~/openharmony/vendor/allwinner
cd ~/openharmony
pip3 install build/lite # 此语句需要在SDK根目录下执行。
在vendor/allwinner/xradio_wifi_demo创建demo_hello_world文件夹
cd vendor/allwinner/xradio_wifi_demo/
mkdir demo_hello_world
然后创建hello_world.c 以及BUILD.gn
cd demo_hello_world
touch hello_world.c
touch BUILD.gn
在hello_world.c中添加以下代码
#include < stdio.h >
#include < string.h >
#include "ohos_init.h"
int DemoMain(int argc, char **argv)
{
printf("rnhello world!rnrn");
return 0;
}
SYS_RUN(DemoMain);
在BUILD.gn中添加以下代码
source_set("hello_world"){
sources = [
"hello_world.c"
]
}
将helloworld添加到编译中,在 device/soc/allwinner/xradio/xr806/BUILD.gn中添加以下依赖:
module_group(module_name) {
modules = [
"src",
"project",
"include",
]
configs = [
":SdkLdCconfig",
]
deps = [ "//vendor/allwinner/xradio_wifi_demo/demo_hello_world:hello_world" ]
}
hb set -root # 通过键盘选择 xradio_wifi_demo
修改编译工具链地址
cd kernel/liteos_m
make menuconfig
然后选择Compiler->Compiler type(GCC),然后选择路径一行,按回车会弹出路径的输入框,此时输入实际的工具链地址。按ESC返回,最后退出并保存配置即可。
修改配置文件中的工具链路径
device/board/allwinner/xradio/liteos_m/config.gni
device/soc/allwinner/xradio/xr806/build/Makefile
hb build 全量编译命令
hb build -f
如果编译中出现如下错误:
需要修改device/soc/allwinner/xradio/osal/include/target_config.h
// #define OS_SYS_CLOCK (SystemCoreClock)
#define OS_SYS_CLOCK 160000000
审核编辑 黄宇
全部0条评论
快来发表一下你的评论吧 !