同学,别退出呀,我可是全网最牛逼的 Android 蓝牙分析博主,我写了上百篇蓝牙文章,请点击下面了解本专栏,进入本博主主页看看再走呗,一定不会让你后悔的,记得一定要去看主页置顶文章哦。
一、概述
在平时工作中,大家都要配置蓝牙nvram 射频参数,但是很多人只知道在什么地方改动,但并不明白代码调用逻辑,在网上也没有讲解,今天我就全面详细的讲解下。
先看蓝牙协议栈使能流程:
当在UI上打开蓝牙开关,开始ble service使能开始--》创建状态机--》调用到了协议栈
btif->.....->hci_module_start_up->hci_initiailze->getservice
接下来开始调用vendor lib 接口了,首先调用init函数,进行读取本机地址和注册回调函数。接下来会去初始化串口,和读取固件配置。首先获取到主芯片id和短距芯片id,接下来读取nvram,NVM_GetFileDesc(准备读取nvram file) -》 NVM_CmpFileVerNo (nvram版本比较)
-》 NVM_DataVerConvert (如果版本不同则回读dafault值)-》 BT_ConvertFunc