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_company是hihope,product_name是rk3568,所以我们应该把我们的固件放到SDK的vendor/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"
]
}
}
}