[OpenHarmony RK3568] 蓝牙芯片适配
一、概述
本文讲述RK3568上移植OpenHarmony 3.2适配蓝牙以及相关内容。
先讲述适配的方式,后续适配系列讲完后,会出一系列详细解析相关子系统。
硬件芯片:AW-NM372S
芯片模组:43438A1
注:芯片模组对于适配来说非常重要,所有的固件版本都要根据它来适配
二、修改部分
2.1 修改对应串口
板子上硬件连接为UART3
device/board/hihope/rk3568/cfg/init.rk3568.cfg
首先修改对应的串口拥有者为blue_host
"chown blue_host blue_host /dev/ttyS3",
vendor/hihope/rk3568/bluetooth/include/bt_vendor_brcm.h
修改蓝牙框架中蓝牙对应串口
/* 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功能)的二进制数据。
{// /vendor/etc/firmware//p_name = FW_PATCHFILE_LOCATION "BCM4362A2.hcd";p_name = FW_PATCHFILE_LOCATION "BCM43438A1.hcd";if ((hw_cfg_cb.fw_fd = open(p_name, O_RDONLY)) == -1) {HILOGE("vendor lib preload failed to open [%s]", p_name);} else {/* vsc_download_minidriver */UINT16_TO_STREAM(p, HCI_VSC_DOWNLOAD_MINIDRV);*p = 0; /* parameter length */p_buf->len = HCI_CMD_PREAMBLE_SIZE;hw_cfg_cb.state = HW_CFG_DL_MINIDRIVER;xmit_bytes = bt_vendor_cbacks->xmit_cb(HCI_VSC_DOWNLOAD_MINIDRV, p_buf);}}
2.3 将固件移植到开发板上
vendor/hihope/rk3568/bluetooth/BUILD.gn
这一步建立一个ohos_build_part,意思是把主机上vendor /{product_name}/bluetooth/BCM43438A1.hcd这个文件,安装到开发板上的vendor/etc/firmware文件夹下,由于我们这里product_company是hihope,product_name是rk3568,所以我们应该把我们的固件放到SDK的vendor/hihope/rk3568/bluetooth下,它就会自动安装到开发板上。
/vendor/hihope/rk3568/bluetooth/BUILD.gn
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/hihope/build/ohos.build
这里是在构建中,加入对上面ohos_build_part的调用
{"subsystem": "rockchip_products","parts": {"rockchip_products": {"module_list": ["//device/hihope/build:products_group","//vendor/hihope/rk3568/bluetooth:libbt_vendor","//vendor/hihope/rk3568/bluetooth:BCM43438A1.hcd"]}}
}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
