[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芯片适配

相关推荐
Cx330❀13 小时前
【Linux网络】网络层 IP 协议:从网段划分到内核源码解析
大数据·linux·服务器·网络·tcp/ip·性能优化·langchain
企鹅的蚂蚁13 小时前
LubanCat RK3588 实时 Linux 开发(七):YT6801 PCIe 网卡驱动移植与 vermagic 排查
linux·rk3588·linux驱动·yt6801·pcie网卡·vermagic
DYWorker00113 小时前
Linux驱动子系统:DMA子系统 —— Consumer和Provider(006)
linux·驱动开发
byte轻骑兵13 小时前
【BlueZ】 log 模块:日志系统的实现与自定义日志输出配置
linux·人工智能·bluez·电脑蓝牙·嵌入式蓝牙
探索云原生14 小时前
KubeClipper 1.7.0 发布:Operation 优化与 Kubernetes 1.37 支持
linux·docker·云原生·kubernetes·go
熊猫钓鱼>_>14 小时前
声临其境:HarmonyOS 空间音频全链路开发实战
音频·harmonyos·arkts·鸿蒙·arkui·空间·hap
一技安身14 小时前
【信创】docker-26.0.2.tgz 原理 + 完整安装
linux·运维·服务器
程曦曦14 小时前
MySQL 生产库误删 98 张表后的时间点恢复实战:从 binlog 解析到资金对账
linux·数据结构·其他·算法·ubuntu·运维开发
赵民勇15 小时前
systemd-mount命令详解
linux
H_oRIZoN_15 小时前
Linux入门DAY42【51 单片机】DS18B20 数字温度传感器完整解析(单总线原理 + 时序 + 读取流程)
linux·单片机·linux应用编程