1 mtk8127做蓝牙耳机时的系统框图
下面是bt sco的音频通道、音频codec、ap、modem等模块的连接框图。
下图是当mtk8127做handfree client时,bt sco的音频数据流走向(红色的中空箭头表示down link的语音数据流,紫色的中空箭头表示up link的语音数据流,)
\
bt sco音频设备在内核空间对应的设备节点为:/dev/ebc.通过misc_register系统函数来注册struct miscdevice设备。
代码路径:
2 数据结构
接收循环buffer对应的数据结构,其中蓝牙mcu子系统往这个循环buffer队列中写,对应的写下标为:iPacket_w;而驱动上层read接口,则是从这个循环buffer队列中读,对应的读下标为:iPacket_r,并且这个读写下标都不是反卷的,都是线性增长,当需要使用反卷的效果时,只需要执行如下操作即可:btsco.pRX->iPacket_w/iPacket_r & SCO_RX_PACKET_MASK
typedef struct
{
kal_uin