[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"
            ]
        }
    }
}


 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: openharmony-rk3568是一个基于RK3568芯片的开源操作系统,它支持多种设备,包括智能家居、智能电视、智能音箱等。它的设计目标是提供一个安全、稳定、高效的操作系统,同时支持多种应用程序和开发工具。它的开源性质使得开发者可以自由地修改和定制系统,以满足不同的需求。 ### 回答2: OpenHarmony是一个开源的分布式操作系统,可以支持多种硬件平台,而RK3568是一款较新的高性能芯片,两者的结合可以为用户带来更好的操作体验。 首先,OpenHarmony可以将不同的硬件设备以及网络连接在一起,形成一种分布式的系统架构,将数据、计算和存储等资源分散处理,从而提高系统的效率和安全性。而RK3568作为一款高性能芯片,拥有强大的处理能力和图形处理能力,可以为OpenHarmony提供更快速、更稳定的运行环境,同时还可以实现更丰富的用户体验。 同时,OpenHarmony的分布式架构使得它可以支持多种应用场景,例如智能家居、智慧城市、智慧交通等领域,而RK3568的高性能和强大的图形处理能力,则可以为这些应用场景提供更好的支持和优化,从而实现更好的用户体验和效果。 总之,OpenHarmonyRK3568的结合,可以为用户提供更快速、更稳定、更安全、更丰富的操作体验,为智能化的未来应用场景提供更好的支持和优化。 ### 回答3: OpenHarmony-RK3568是一款基于鲲鹏架构的开源操作系统,针对高性能应用而设计。其核心使用了华为自主研发的鸿蒙内核,结合了物联网、人工智能、云计算等多种技术,可快速实现设备快速开发和低成本生产。 该操作系统基于RK3568芯片,是一款高性能的处理器,其支持多种语言和多媒体压缩编解码功能,可实现流畅的视频播放和游戏体验。OpenHarmony-RK3568不仅用于家庭娱乐设备,还可用于工业控制、智能家居等行业。 相比于其他操作系统,OpenHarmony-RK3568是一个开放的平台,可充分利用华为丰富的资源和技术优势,灵活应用于各种不同的场景。此外,华为还为开发者提供了详细的开发文档、SDK和开发工具,帮助他们快速开发应用程序和系统服务,打造自己的智能设备生态系统。 总的来说,OpenHarmony-RK3568是一款高性能、灵活开放的操作系统,为设备制造商和开发者提供了不同的可能性。它将带来更好的用户体验和更低的开发成本,是未来智能设备行业的重要一环。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值