国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

底層驅動移植篇-瑞芯微RK3399開發板Android7藍牙移植

發布時間:2021-12-1 10:25    發布者:就是塔塔
近期需要把藍牙(RTL8822CS 模塊)移植到迅為瑞芯微iTOP-3399 開發板,經過一段時間研究,調試,終于成功的將 wifi 功能移植到開發板上面。
迅為iTOP-3399 開發板的藍牙模塊與板卡之間的連接采用串口通信,藍牙模塊使用的是 RTL8822CS 模塊,Realtek 提供了 Android 各種版本的 driver ,porting Guid ,有了這些就為我們的移植工作做了總體性的指導。但是僅僅由 Realtek 提供的文檔是遠遠不夠的,畢竟硬件接口定義不同,內核版本也不一樣,Android 層與 Realtek 提供的代碼也有差異,這就需要我們在 Realtek 文檔的指導下,一步步完成移植工作。
移植的環境:
1.迅為iTOP-3399 開發板+ RTL8822CS 模塊
2.Android 7.0
3.搭建好編譯環境的 ubuntu16.04 64Bit 開發環境
本文檔配套資料在網盤資料“iTOP-3399 開發板\02_iTOP-3399 開發資料匯總(不含光盤內容)\13_嵌入式 Linux 開發指南(RK3399)手冊配套資料\6.Android 底層驅動\Android7 藍牙移植”目錄下。如果您移植出現問題,可以對比下修改好的文件。光盤資料【20210927】日期的 Android7 源碼是修改好支持 rtl8822cs模塊藍牙功能的。
#移植步驟
一.修改 Android 部分
1. 修改 build\core\product.mk,添加如下內容:
BOARD_HAVE_BLUETOOTH_RTK \


2.將廠商提供的 rtkbt 目錄(在網盤資料“iTOP-3399 開發板\02_iTOP-3399 開發資料匯總(不含光盤內容)\13_嵌入式 Linux 開發指南(RK3399)手冊配套資料\6.Android 底層驅動\Android7 藍牙移植\原廠資料\20200422_BT_ANDROID_7.0_RTL8822C_COEX_v1717\rtkbt”)拷貝到
/home/topeet/rk3399_7.1_industry/device/rockchip/rk3399/rtkbt,該目錄主要用于設定不同硬件平臺 board配置信息。不同的子目錄對應不同的硬件平臺,需要根據具體硬件平臺進行修改。
3.因為是 UART 接口藍牙芯片,我們需要修改/home/topeet/rk3399_7.1_industry/device/rockchip/rk3399/rtkbt/system/etc/bluetooth/rtkbt.conf 文件將BtDeviceNode 設置為正確藍牙串口設備.例如 BtDeviceNode=/dev/ttyS0


4.添加設備權限,在
/home/topeet/rk3399_7.1_industry/device/rockchip/rk3399/init.rk3399.rc 文件中添加如下內容,一定要在 on boot 下添加。
# bluetooth
# change back to bluetooth from system
chown bluetooth net_bt_stack /data/misc/bluetooth
mkdir /data/misc/bluedroid 0770 bluetooth net_bt_stack
# bluetooth LPM
chown bluetooth net_bt_stack /proc/bluetooth/sleep/lpm
chown bluetooth net_bt_stack /proc/bluetooth/sleep/btwrite
#UART device
chmod 0660 /dev/ttyS0
chown bluetooth net_bt_stack /dev/ttyS0
# rfkill
chmod 0660 /sys/class/rfkill/rfkill0/state
chmod 0660 /sys/class/rfkill/rfkill0/type
chown bluetooth net_bt_stack /sys/class/rfkill/rfkill0/state
chown bluetooth net_bt_stack /sys/class/rfkill/rfkill0/type
write /sys/class/rfkill/rfkill0/state 0
# bluetooth MAC address programming
chown bluetooth net_bt_stack ro.bt.bdaddr_path
chown bluetooth net_bt_stack /system/etc/bluetooth
chown bluetooth net_bt_stack /data/misc/bluetooth
# setprop ro.bt.bdaddr_path "/data/misc/bluetooth/bdaddr"
service dhcpcd_bnep0 /system/bin/dhcpcd -BKLG
disabled

oneshot
service dhcpcd_bnep1 /system/bin/dhcpcd -BKLG
disabled
oneshot
service dhcpcd_bnep2 /system/bin/dhcpcd -BKLG
disabled
oneshot
service dhcpcd_bnep3 /system/bin/dhcpcd -BKLG
disabled
oneshot
service dhcpcd_bnep4 /system/bin/dhcpcd -BKLG
disabled
oneshot
service dhcpcd_bt-pan /system/bin/dhcpcd -ABKL
class main
disabled
oneshot
service iprenew_bt-pan /system/bin/dhcpcd -n
class main
disabled
oneshot
#eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
service rtw_fwloader /system/bin/rtw_fwloader
class main
disabled
oneshot
service p2p_supplicant /system/bin/wpa_supplicant \
-ip2p0 -Dnl80211 -c/data/misc/wifi/p2p_supplicant.conf \
-e/data/misc/wifi/entropy.bin -N \
-iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf \
-O/data/misc/wifi/sockets \
-g@android:wpa_wlan0
class main
socket wpa_wlan0 dgram 660 wifi wifi
disabled
oneshot

service wpa_supplicant /system/bin/wpa_supplicant \
-iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf \
-O/data/misc/wifi/sockets \
-e/data/misc/wifi/entropy.bin \
-g@android:wpa_wlan0
class main
socket wpa_wlan0 dgram 660 wifi wifi
disabled
oneshot
service dhcpcd_wlan0 /system/bin/dhcpcd -aABDKL
class main
disabled
oneshot
service dhcpcd_p2p /system/bin/dhcpcd -aABKL
class main
disabled
oneshot
service iprenew_wlan0 /system/bin/dhcpcd -n
class main
disabled
oneshot
service iprenew_p2p /system/bin/dhcpcd -n
class main
disabled
oneshot


二.打補丁
我們打補丁是修改的 rtkbt 文件夾下的文件,因為 android7 默認不支持此款藍牙芯片,因此我們還需要對照補丁文件,修改 c 源碼。
補丁文件:patch/diff/system_bt.diff,修改后的參考代碼目錄:patch/code
注意:因為系統源碼可能經過修改或者定制,與制作補丁文件時有所不同。因此切勿直接覆蓋code 下面的文件。請參考 system_bt.diff 文件逐一修改。
因為修改內容眾多,限于篇幅,這里僅列舉幾個具有代表性的例子。
修改文件示例:
首先打開 system_bt.diff 文件:

首先看第 1 行:
diff --git a/Android.mk b/Android.mk
表示對比的文件是 Android.mk。a 和 b 分別代表舊目錄和新目錄。這里則為/system/bt(下同)
目錄與補丁目錄 patch/code/system/bt 目錄對比。
第 2~3 行


表示舊的文件權限為 0644,新的文件權限問 755。不過權限部分我們其實可以忽略。
第 5~7 行


其中---和+++分別代表了新舊文件,我們可以不去管他。重點是第 7 行,補丁中的塊是用來說明文件的改動情況。他們通常以@@開始,結束于另一個塊的開始或者一個新的補丁頭。表示舊文件的 1~5 行被替換為了新文件的 1~9 行。

第 8~16 行

這部分內容為具體的修改內容。對應了新文件中的 1~9 行。其中,以+行起始的行(10~13 行)表示被新增的行。如果以-號起始,則表示刪除的行。
第一小部分的修改總結而言就是,修改舊文件(Android.mk)的 1~5 行,替換為新文件的(code 目錄下 Android.mk)1~9 行。如下圖所示,紅色部分為修改替換的部分,而綠色框起來的 3~6 行是新舊文件對比后的差異部分。


新增文件示例:

如 1657~1662 行所示,基本格式同前面講的大致相同,區別是第 1160~1162 行。第 1160 行的舊文件不是具體文件了,而是/dev/null。這里的意思就是舊的目錄不存在這個文件。自然,第 1162 行的-0,0 +1,12976就表示原來的內容全部替換為新的文件。
這個修改是最為簡單的,我們只需要把 patch/code/system/bt/hci/src/hci_h5.c 中的文件直接復制到/code/system/bt/hci/src/目錄中即可。
注意:因為修改替換過程十分漫長和復雜,因此我們建議直接使用我們修改好的代碼。

三. rtk_rfkill driver 驅動
在需要用到 BT_DIS pin 來控制藍牙芯片的場合, 則需要一個 rfkill 驅動. rfkill 驅動的具體實現與平臺嚴重相關,所以如果有需要,請根據實際情況進行開發.RTK 可以提供 reference code. 注意:大多數情況下,客戶平臺之前搭配過其他家的藍牙,所以一般都已有 rfkill 驅動,只是需要將 GPIOpin 腳接到之前藍牙使用過的 pin 就可以,如果不一樣,修改一下 rfkill 驅動中 GPIO 腳即可.確認當前是否有支持藍牙的 rfkill 驅動方法如下:
cat /sys/class/rfkill/rfkill*/type
檢查是否有 bluetooth 字樣輸出,如果有,則已有 rfkill 驅動,不需要重新開發。
然后將/home/topeet/rk3399_7.1_industry/system/bt/conf 下的 Android.mk.disbale 重命名為 Android.mk。
然后將/home/topeet/rk3399_7.1_industry/hardware/libhardware/include/hardware/bluetooth.h 文件修改
為如下圖所示:



四.BT 功能配置
1.支持的 Profile 配置
修改/home/topeet/rk3399_7.1_industry/packages/apps/Bluetooth/res/values/config.xml 文件,可以按照下面的配置來關閉這幾個 Profile,如果用戶需要支持,只需把對應值設置為 true 即可

2.配置本地設備名稱
修改/home/topeet/rk3399_7.1_industry/device/rockchip/rk3399/bluetooth/bdroid_buildcfg.hBTM_DEF_LOCAL_NAME 配置項用于配置設備的名字.如果沒有這個配置項,將采用 ro.product.modelproperty 設置的名字作為設備名.



五. Porting 結束后的基本測試
修改完成后在 Android7 的 Setting APP 里面打開 Bluetooth,就可以掃描到其他藍牙設備,然后進行配對,配對完成后就可以進行文件的傳輸操作了,筆者僅測試了藍牙的文件發送與接收功能,其他的藍牙功能比如藍牙耳機,藍牙鼠標的使用均未進行測試,不過有了文件發送接收的測試基本說明了藍牙的 Porting
是 OK 的,如果您有興趣或者需求,可以移植藍牙其他更豐富的功能與應用。

迅為瑞芯微RK3399開發板:

核心板參數
尺寸:6.5*5.5cm
高度:連同連接器在內0.26cm
CPU:Rockchip RK3399 28納米HKMG制程 雙核Cortex-A72 1.8/2.0GHz;四核Cortex-A53 1.4GHz
內存:2GB 雙通道DDR3(4GB可選)
存儲:16GB EMMC
電源管理:官方推薦RK808芯片
工作電壓:3.3V供電
系統支持:Android8.1系統;Ubuntu16.04系統;Debian9系統
接口:支持雙USB3.0 Type-C接口;支持PCIe 2.1 (4 full-duplex lanes );內置低功耗MCU;8路數字麥克風陣列輸入
引角擴展:引出腳多達320個,滿足用戶各類擴展需求
多媒體        支持4K VP9 and 4K 10bits H265/H264 視頻解碼,高達60fps;1080P 多格式視頻解碼 (VC-1, MPEG-1/2/4, VP8)
運行溫度:0度至+80度區間,設備工作正常,運行良好!
應用范圍:可廣泛用于人臉識別設備、無人機、機器人、游戲終端、廣告機/一體機、金融POS類、車載控制業、云端服務、VOIP視頻會議系統、醫療類、安防/監控/警務、工控類、IoT物聯網領域、VR等近百行業應用產品。

底板參數
尺寸:19cm*12cm                     PCB板:4層
POWER:電直流電源輸入接口,12V/2A電源輸入              GPS模塊:支持(選配)
SWITCH:電源開關            WIFI/BT:雙頻2.4G/5G WIFI、Bluetooth4.1二合一模塊
HDMI接口:1路 HDMI2.0輸出接口          EDP LCD:1路
Type-C:1路 Type-C USB3.0接口,兼容OTG功能          MIPI_TX:1路
TF卡槽:1個          MIPI_TX/RX:1路
USB HOST:4路 USB2.0接口;1路 USB3.0接口;        SPDIF:光纖輸出接口
串口:2路RS232串口                  BUZZER:個蜂鳴器
網口:1路千兆以太網(10/100/1000Mbps)                  RTC:實時時鐘
IRDA:1個                  GPIO接口:20PIN,包括2路 ADC、2路I2C、 5v、3.3v電源和地
SIM卡槽:1個                  LED:3個
PHONE:支持耳機輸出                  PCIE:PCIE M.2接口
MIC:支持MIC輸入                  陀螺儀:支持
按鍵:6個                  電子羅盤:支持
4G模塊:全網通(選配)                  GPIO:20路
CAMERA接口:CAMERA 1路、MIPI CAMERA 1路        



本文地址:http://m.qingdxww.cn/thread-779731-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • 利用SAM E54 Xplained Pro評估工具包演示CAN轉USB橋接器以及基于CAN的主機和自舉程序應用程序
  • 使用SAM-IoT Wx v2開發板演示AWS IoT Core應用程序
  • 使用Harmony3加速TCP/IP應用的開發培訓教程
  • 集成高級模擬外設的PIC18F-Q71家族介紹培訓教程
  • 貿澤電子(Mouser)專區
關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 91三级在线 | 91高清国产视频 | 香蕉视频网页 | 国产精品爽爽va在线观看网站 | 四虎成人免费 | 欧美日韩一区在线观看 | 久久久久久久久久久久久久 | 91香蕉国产视频 | 久久99热精品免费观看欧美 | 男人香蕉好大好爽视频 | 欧美一区二区三区综合色视频 | 青久久 | 国产一区三区二区中文在线 | 2019天天做天天拍天天夜 | 日韩dv | 日本高清一区二区三区不卡免费 | 一区二区在线欧美日韩中文 | 95老司机免费福利 | 午夜小视频在线观看 | 成人在线精品 | 天堂网www天堂在线网 | 九九九九九热 | 免费毛片播放 | 91精品网站 | 极品美女一区二区三区视频 | 草逼视频下载 | 免费在线欧美 | 天天摸天天 | 一级毛片免费 | 色视频网站在线观看 | 久久综合九色综合桃花 | 日韩一二区 | 亚洲欧美日韩中文字幕在线 | 日韩日韩日韩日韩日韩 | 久久毛片免费看 | 欧美一区二区三 | 亚洲婷婷六月 | 手机看片日韩日韩国产在线看 | 日韩在线黄色 | 亚洲一级毛片在线观播放 | 国产极品喷水视频 |