目录
一、引言
二、整体框架分析(结合实际芯片分析)
三、内核中的相关配置
四、厂家驱动分析
五、蓝牙BlueDroid协议
一、引言
之前我们简单分析过BlueDroid框架,今天来结合源码,挑重点分析一下
二、整体框架分析
具体的框架之前分析过,不熟悉的朋友可以看我这篇文章 Linux驱动学习–DRM框架介绍及基于DRM框架的HDMI开发,这里就结合源码来实际讲解一下
1、内核驱动
识别到对应类型的设备,我们这里是USB蓝牙接口的BT芯片,调用该驱动生成对应节点"/dev/ttyOx"
2、厂家提供的驱动(bluetooth.vendor.so)
主要通过操作该节点来完成底层函数(init、open、close等)
3、蓝牙通用协议
向上层提供通用接口,向下与芯片进行通讯,是bluedroid的核心层
通常位于"extern/bluetooth/bluedroid/main"目录下,最后会编译出bluetooth.default.so 动态库
其中可以指定链接的libbt-vendor.so、libbt-hci.so等动态库