OpenHarmony蓝牙开发一:XR806

        自从华为把开源鸿蒙(OpenHarmony)贡献给开放原子基金会(OpenAtom Foundation)后,OpenHarmony被越来越多的芯片厂商支持如泰凌微、芯之联、乐鑫、瑞芯微等等,网上众多开源鸿蒙的MPU南向开放资源,本文不妨老规矩还是从无线尤其蓝牙的角度来一探魅力。

  OpenHarmony的环境比较绕,有不少教程,权威教程见xr806/doc/1--系统下载与编译.md · uncleli/devboard_device_allwinner_XR806 - Gitee.com。故本文环境搭建会跳着讲,可参考https://zhuanlan.zhihu.com/p/694447378【XR806开发板试用】XR806与鸿蒙,简化构建环境流程 - 极术社区 - 连接开发者与智能计算生态 。先以全志XR806(芯之联被全志收购)这款BLE+WiFi芯片开头,运行效果可以直接跳到第三节,由于全志没怎么维护,分支停留在OH1.0.1,主要需要以下特定版本工具:

arm-none-eabi-gcc

10-2020-q4-major

gn

1717 (2f6bc197)

clang

10.0.1.53907

ninja

1.9.0

hb

git lfs

repo

部分工具可在华为鸿蒙系统网站Document下到。

一、环境搭建

1. repo安装

        输入“git clone git-repo - Git at Google”克隆repo,然后更换repo源为国内源,输入“vim git-repo/repo”就能能搜到“REPO_URL”可改为以下源,

中科大:https://mirrors.ustc.edu.cn/aosp/git-repo

清华:    https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/

2. 克隆开放鸿蒙源码

        这里涉及到三个仓库,如下:

OpenHarmony v1.0.1 release

OpenHarmony/manifest

XR806 device

uncleli/devboard_device_allwinner_XR806

XR806 vendor

uncleli/devboard_vendor_allwinner_XR806

依次敲如下命令:

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'

得到开放鸿蒙源码,但系统下芯片厂商的库并没有,具体在device和vendor目录下,故各自进入相应目录把对应上表仓库拷下来,但开放鸿蒙不认得仓库名,故对应全把devboard_device_allwinner_xr806和devboard_vendor_allwinner_xr806文件夹修改为xradio,

3. 工具链配置

    此时源码已经都下好了,工具链默认位置要改成用户的实际位置,具体有2处,device/xradio/xr806/liteos_m/config.gni里的board_toolchain_prefix、device/xradio/xr806/xr_skylark/gcc.mk里的CC_DIR,

二、编译烧录

1. 库编译

        输入“make menuconfig”就能配置工程,这里选择pjoject/demo/wlan_ble_demo,

2. 工程编译

        输入“cd  ../../../../”切回oh路径,输入“hb set”选择厂商工程,这里选xradio/wifi_skylark,

然后就是喜闻乐见的编译环节“hb build -f”,在xr_skylark/out目录生成了固件包括要烧录的xr_system.img,

    3. 烧录

            插入USB,会自动挂载/dev/ttyUSB0,启动烧录工具(在xr_skylark/tools目录下)通过输入“sudo ./ phoenixMC -I ../out/xr_system.img -c /dev/ttyUSB0”,

    三、运行

            到这里就能原神启动了,打开串口工具,就能看到鸿蒙的启动信息了,

    但我们的目的是验证蓝牙,这里可以看到芯片以controller的形式在工作,即需要串口或别的形式借助host来发HCI命令来让其工作,可依次输入以下shell指令:

    ble init
    
    ble name XR806
    
    ble advertise on

    就能开启2.4G射频广播,手机能看到它的信号,其它特性不一一赘述,

    四、错误

    1. Unable to load "xr806/openharmony/device/xradio/xr806/liteos_m/SDKconfig.gni

    这是官方路径写的有问题,需要修改xr_skylark/config.py文件如下图

    然后再输入“python config.py”即可xr806/liteos_m下生成SDKconfig.gni。

    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值