rk3568t蓝牙驱动移植流程

一. 概述

目标:RK3568上移植OpenHarmony 3.2适配WIFI以及相关内容。

硬件芯片:海华AW-rk3568S
芯片模组:43438A1

注:本文使用厂家蓝牙提供的固件嵌入内核的方式进行蓝牙的驱动配置

二. 修改部分

 2.1修改固件相关

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

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

在这里插入图片描述

 

 

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.2 将固件移植到开发板上

vendor/hihope/rk3568/bluetooth/BUILD.gn

 

 

2.3修改配置文件

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

}

 

 

 

这一步建立一个ohos_build_part,意思是把主机上vendor/hihope/rk3568/bluetooth/BCM43438A1.hcd这个文件,安装到开发板上的vendor/etc/firmware文件夹下,由于我们这里product_companyhihopeproduct_namerk3568,所以我们应该把我们的固件放到SDKvendor/hihope/rk3568/bluetooth下,它就会自动安装到开发板上。

 

2.4调用ohos_build_part

Device/hihope/ohos.build

 

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

{

    "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"

            ]

        }

    }

}