BCM4330 BlueTooth 除錯記錄
做BT的驅動已有半年的時間多了,有一定的認識,但還沒完全精通,所以用筆記來記錄自己一直以來的除錯過程。
Part 1.有時候會出現開啟藍芽打不開的現象。
答:在/system/bluetooth/bluedroid/bluetooth.c中的註冊socket時間增加時間。具體做法是在函式int bt_enable()中
for (attempt = 1000; attempt > 0; attempt--) {hci_sock = create_hci_sock();
if (hci_sock < 0) goto out;
if (!ioctl(hci_sock, HCIDEVUP, HCI_DEV_ID)) {
break;
}
close(hci_sock);
usleep(10000); // 10 ms retry delay
}
修改紅色標記的延時時間,即可解決偶爾開藍芽出現打不開的現象。
Part 2.開啟藍芽時間過長,會要16秒時間。
答:這個跟開啟藍芽載入patchram有很大的關係,由以前的兩部分載入,現在變成一部分載入
改之前:
/system/bin/brcm_patchram_plus.dat -d --enable_lpm --patchram /etc/BCM4330.hcd /dev/ttyHS0
/system/bin/brcm_patchram_plus.dat -d -baudrate 3000000 /dev/ttyHS0
改之後:
brcm_patchram_plus.dat --enable_lpm --enable_hci --patchram /etc/BCM4330.hcd /dev/ttyHS0 --baudrate 3000000 &
修改過後能穩定載入BT。
還可以修改波特率來加快載入patchram的速度。具體操作如下
在函式void proc_patchram()中新增指定的波特率:
if (use_baudrate_for_download) {
cfsetospeed(&termios, B115200);
cfsetispeed(&termios, B115200);
tcsetattr(uart_fd, TCSANOW, &termios);
}
指定載入patchram的波特率為115200.
並且在主函式main()裡要在兩次執行函式proc_reset()中間追加一次執行函式proc_baudrate(),這樣就可以確保波特率已經設定好了。
相關文章
- GDB除錯使用記錄除錯
- GitHub學習除錯記錄Github除錯
- Supervisor 安裝除錯記錄除錯
- Python 學習除錯記錄Python除錯
- FCoE測試重啟除錯記錄除錯
- [翻譯] 除錯 Rxjs(二):日誌記錄除錯JS
- 記錄一次非常麻煩的除錯除錯
- 除錯記錄:The public type must be defined in its own file除錯
- 除錯一記除錯
- MySQL儲存函式錯誤[Err] 1064的除錯記錄MySql儲存函式除錯
- MT6735平臺GPIO中斷除錯記錄除錯
- stm32學習之除錯篇踩坑記錄除錯
- 深夜除錯某瀏覽器記憶體損壞的小記錄除錯瀏覽器記憶體
- Android除錯命令收錄Android除錯
- rk3368 Android9.0 HIDL除錯記錄Android除錯
- 用“稽核物件”功能記錄檔案刪除記錄物件
- LoadRunner錄製:指令碼除錯指令碼除錯
- Kafka錯誤記錄Kafka
- mongodb 報錯記錄MongoDB
- 「EA 如何做記憶體和 C++ 除錯的」實錄記憶體C++除錯
- JSP筆記-除錯JS筆記除錯
- Chakra除錯筆記 TypedArray除錯筆記
- 記一次除錯除錯
- mysql刪除一條記錄MySql
- 刪除Oracle重複記錄Oracle
- oracle刪除重複記錄Oracle
- gdb除錯學習與實踐記錄 -- 常用命令解析1除錯
- 除錯備忘錄-SWD協議解析除錯協議
- NodeMCU入門:燒錄、除錯、聯網除錯
- 記錄錯誤並繼續執行:錯誤事件記錄子句 --轉事件
- C++錯誤記錄C++
- SpringMVC錯誤記錄SpringMVC
- 記錄Electron打包報錯
- windows10更新記錄刪除_怎樣刪除win10更新歷史記錄WindowsWin10
- 刪除不掉的資料記錄
- Mongodb原始碼分析--刪除記錄MongoDB原始碼
- 刪除重複id的記錄
- Communications--1--資料傳輸除錯記錄-bug採坑雷區除錯