當藍牙控制器完成硬件重置后,協議棧需通過一系列初始化操作恢復各模塊狀態。本文深入分析
BTM_reset_complete
核心函數及其調用鏈,詳解 L2CAP 連接清理、安全模塊重置、掃描參數恢復、BLE 隱私功能初始化等關鍵流程,揭示藍牙設備在重置后如何通過標準化狀態恢復確保互操作性、隱私安全與連接能力。
一、概述
藍牙控制器重置(如硬件重啟、故障恢復)后,協議棧需完成以下核心初始化工作。
1.1 L2CAP 層連接狀態清理
l2cu_device_reset
:遍歷所有 L2CAP 鏈路控制塊(LCB),模擬物理鏈路斷開事件,強制清理殘留連接,避免邏輯鏈路與物理狀態不一致。
關鍵邏輯:通過l2c_link_hci_disc_comp
觸發鏈路斷開回調,確保所有活躍連接被正確釋放。
1.2 安全模塊與掃描參數重置
安全狀態清除:通過list_foreach
遍歷安全設備記錄,將所有設備狀態置為空閑(set_sec_state_idle
),清除配對密鑰等敏感信息。