[OpenHarmony RK3568] (三)蓝牙芯片适配

一、概述

本文讲述RK3568上移植OpenHarmony 3.2适配蓝牙以及相关内容。
先讲述适配的方式,后续适配系列讲完后,会出一系列详细解析相关子系统。

硬件芯片:AW-NM372S

芯片模组:43438A1

注:芯片模组对于适配来说非常重要,所有的固件版本都要根据它来适配

二、修改部分

2.1 修改对应串口

板子上硬件连接为UART3

device/board/hihope/rk3568/cfg/init.rk3568.cfg

首先修改对应的串口拥有者为blue_host

json 复制代码
"chown blue_host blue_host /dev/ttyS3",

vendor/hihope/rk3568/bluetooth/include/bt_vendor_brcm.h

修改蓝牙框架中蓝牙对应串口

c 复制代码
/* Device port name where Bluetooth controller attached */
#ifndef BLUETOOTH_UART_DEVICE_PORT
#define BLUETOOTH_UART_DEVICE_PORT "/dev/ttyS3" /* maguro */
#endif

2.2 修改固件相关

vendor/hihope/rk3568/bluetooth/src/hardware.c

同样修改蓝牙框架中,对应的蓝牙固件名(注:hcd文件是蓝牙固件,可以理解为host controll driver,需要找供应商提供)该文件包含Android设备用于初始化组件(如蓝牙适配器或WiFi功能)的二进制数据。

C 复制代码
void hw_config_cback(void *p_mem)
{ 
...
// /vendor/etc/firmware
    //p_name = FW_PATCHFILE_LOCATION "BCM4362A2.hcd";
    p_name = FW_PATCHFILE_LOCATION "BCM43438A1.hcd";
 ...   
}

2.3 将固件移植到开发板上

vendor/hihope/rk3568/bluetooth/BUILD.gn

这一步建立一个ohos_build_part,意思是把主机上vendor/ p r o d u c t c o m p a n y / {product_company}/ productcompany/{product_name}/bluetooth/BCM43438A1.hcd这个文件,安装到开发板上的vendor/etc/firmware文件夹下,由于我们这里product_company是hihope,product_name是rk3568,所以我们应该把我们的固件放到SDK的vendor/hihope/rk3568/bluetooth下,它就会自动安装到开发板上。

复制代码
ohos_prebuilt_etc("BCM43438A1.hcd") {
  source = "//vendor/${product_company}/${product_name}/bluetooth/BCM43438A1.hcd"
  install_images = [ vendor_base_dir ]
  relative_install_dir = "firmware"
  part_name = "rockchip_products"
  install_enable = true
}

device/board/hihope/rk3568/ohos.build

这里是在构建中,加入对上面ohos_build_part的调用

json 复制代码
{
    "subsystem": "rockchip_products",
    "parts": {
        "rockchip_products": {
            "module_list": [
                "//device/board/hihope/${device_name}:rk3568_group",
                "//vendor/hihope/${product_name}/bluetooth:libbt_vendor",
                "//vendor/hihope/${product_name}/bluetooth:BCM4362A2.hcd",
                "//vendor/hihope/${product_name}/bluetooth:BCM43438A1.hcd"
            ],
            "test_list": [
                "//kernel/linux/build/test:linuxkerneltest"
            ]
        }
    }
}

下一篇:[OpenHarmony RK3568](四)WIFI芯片适配

相关推荐
tan77º13 分钟前
【项目】分布式Json-RPC框架 - 项目介绍与前置知识准备
linux·网络·分布式·网络协议·tcp/ip·rpc·json
CC__xy2 小时前
04 类型别名type + 检测数据类型(typeof+instanceof) + 空安全+剩余和展开(运算符 ...)简单类型和复杂类型 + 模块化
开发语言·javascript·harmonyos·鸿蒙
正在努力的小河3 小时前
Linux设备树简介
linux·运维·服务器
荣光波比3 小时前
Linux(十一)——LVM磁盘配额整理
linux·运维·云计算
LLLLYYYRRRRRTT3 小时前
WordPress (LNMP 架构) 一键部署 Playbook
linux·架构·ansible·mariadb
轻松Ai享生活4 小时前
crash 进程分析流程图
linux
大路谈数字化5 小时前
Centos中内存CPU硬盘的查询
linux·运维·centos
luoqice6 小时前
linux下查看 UDP Server 端口的启用情况
linux
倔强的石头_7 小时前
【Linux指南】动静态库与链接机制:从原理到实践
linux
赏点剩饭7787 小时前
linux中的hostpath卷、nfs卷以及静态持久卷的区别
linux·运维·服务器