Linux Bluetooth内核分析
Linux提供了对Bluetooth的支持,核心代码位于net/bluetooth
1. 初始化
主要由subsys_initcall调用函数bt_init()来完成
bt_init() -> bt_sysfs_init() -> sock_register(&bt_sock_family_ops) -> hci_sock_init() -> l2cap_init() -> sco_init()
bt_sock_family_ops包含了蓝牙套接字创建函数bt_sock_create()
hci_sock_initl(),2cap_init(),sco_init()则分别完成了hci/l2cap/sco类型传输协议的初始化
之后,module_init函数(Down Shows)初始化rfcomm/bnep/cmtp/hidp类型传输协议的初始化(avdtp未实现)
rfcomm_init(), bnep_init(), cmtp_init(), hidp_init()
2. hci部分
HCI, 主机控制接口(Host Controller Interface), 是蓝牙协议栈的重要部分, 相应的规范位于Core Version 4.1的Part E
HCI提供了对控制器的统一的命令接口,用来沟通Host和Module(Control),它的位置比较特殊,如下图所示
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。