chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

嵌入式Android調(diào)試避坑:AP6256藍(lán)牙正常WiFi失效?原來是通道選錯(cuò)了!

jf_44130326 ? 來源:Linux1024 ? 2026-02-02 17:16 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

嵌入式Android開發(fā)的朋友,大概率遇到過這樣的迷惑場景WiFi /藍(lán)牙二合一模塊(比如常見的AP6XXX系列),藍(lán)牙能正常連接,WiFi卻死活打不開——點(diǎn)擊開啟WiFi”毫無反應(yīng),日志里還一堆報(bào)錯(cuò)。最近調(diào)試RK3576+Android14+AP6256模塊時(shí),就踩了這個(gè)坑,最后發(fā)現(xiàn)竟是通信通道選錯(cuò)導(dǎo)致的。今天就結(jié)合這個(gè)案例,帶大家搞懂WiFi /藍(lán)牙的工作邏輯、調(diào)試手段和開發(fā)注意事項(xiàng),下次遇到類似問題能快速破局。

一、調(diào)試案例:AP6256冰火兩重天

先交代下調(diào)試環(huán)境:

?主控:RK3576Rockchip中端處理器,常用于物聯(lián)網(wǎng)、工業(yè)設(shè)備)

?系統(tǒng):Android 14

?模塊:AP6256Broadcom旗下WiFi /藍(lán)牙二合一模塊,支持2.4G WiFi +藍(lán)牙5.0

1.現(xiàn)象:藍(lán)牙正常,WiFi “躺平

?藍(lán)牙:能搜索到設(shè)備、正常配對連接,log中無報(bào)錯(cuò);

?WiFi:點(diǎn)擊開啟WiFi”按鈕,進(jìn)度條走完后又自動(dòng)關(guān)閉,上層log報(bào)錯(cuò):

E android.hardware.bluetooth@1.0-service: maybe there is no usb wifi or sdio or pcie wifi, set default wifi module Broadcom APXXX: Permission denied

wKgZPGkanJiAeqpMAAIJzncK2Ic697.png

?內(nèi)核log更關(guān)鍵,直接暴露了通道問題:

[dhd] ======== Card detection to detect PCIE card! ========

[dhd] No Broadcom or Synaptics PCI device enumerated!

[dhd] dhd_wifi_platform_load_pcie: dhd_bus_register failed err=-1

[dhd] _dhd_module_init: Failed to load the driver, try cnt 1

wKgZPGkanJiAAy-4AABBbI2KBjg565.png

2.排查:為什么WiFi會走PCIE通道?

先看DTS(設(shè)備樹)配置,理論上AP6256WiFi應(yīng)走SDIO通道(模塊手冊明確支持SDIO 3.0,不支持PCIE):

wKgZPGkanJiAS1unAABVXuBonGw310.pngDTS配置沒問題,那問題在哪?

翻到BoardConfig.mk(編譯配置文件),發(fā)現(xiàn)一行隱藏配置

#原來默認(rèn)啟用了PCIE WiFi配置,驅(qū)動(dòng)優(yōu)先檢測PCIE通道

PRODUCT_KERNEL_CONFIG += pcie_wifi.config

3.解決:禁用PCIE通道,讓WiFiSDIO

直接注釋掉這行配置,重新編譯燒錄:

#禁用PCIE WiFi配置,避免驅(qū)動(dòng)優(yōu)先檢測不支持的通道

# PRODUCT_KERNEL_CONFIG += pcie_wifi.config

再次查看內(nèi)核log,WiFi成功走SDIO通道加載:

[dhd] dhd_wifi_platform_load: Enter

[dhd] wifi_platform_set_power =1, delay: 200 msec//電源使能

[WLAN_RFKILL]: wifi turn on power [GPIO54-1]//電源引腳置高

[dhd] wifi_platform_bus_enumerate device present 1// SDIO設(shè)備識別成功

[dhd] [wlan0] wl_android_wifi_on:g_wifi_on=1// WiFi開啟成功

WiFi終于能正常開啟并連接網(wǎng)絡(luò),問題解決!

二、基礎(chǔ)知識:WiFi /藍(lán)牙模塊怎么對話主控?

很多人調(diào)試時(shí)只看配置,卻不懂模塊的工作邏輯,遇到問題容易慌。這里用AP6256為例,講清楚嵌入式AndroidWiFi /藍(lán)牙的核心通信原理。

1.二合一模塊的分工:共享硬件,獨(dú)立通道

AP6XXX系列(如AP6256、AP6356)是典型的“WiFi +藍(lán)牙二合一模塊,內(nèi)部集成了WiFi芯片、藍(lán)牙芯片和電源管理單元,但與主控(如RK3576)的通信通道是獨(dú)立的:

功能

通信通道

用途

速率

WiFi

SDIO/PCIE

傳輸高速數(shù)據(jù)(如上網(wǎng)、投屏)

SDIO 3.0100Mbps)、PCIE1Gbps+

藍(lán)牙

UART

傳輸?shù)退贁?shù)據(jù)(如配對、傳文件)

UART 115200bps~1Mbps

關(guān)鍵結(jié)論:藍(lán)牙正常說明UART通道配置正確,WiFi失效大概率是通道(SDIO/PCIE)或電源控制出問題——這也是本次案例的核心邏輯。

2.模塊的控制信號GPIO開關(guān)

除了通信通道,模塊還需要3個(gè)關(guān)鍵GPIO引腳與主控交互,這3個(gè)引腳配置錯(cuò)了,模塊也無法工作:

?poweren(電源使能):主控通過該引腳給模塊供電(高電平=供電,低電平=斷電),DTSWIFI,poweren_gpio需與硬件一致;

?reset(復(fù)位):模塊異常時(shí),主控通過該引腳復(fù)位模塊(通常低電平復(fù)位,復(fù)位后置高),AP6256的復(fù)位引腳在sdio_pwrseq中配置;

?wake(喚醒):模塊主動(dòng)通知主控(如WiFi收到數(shù)據(jù)、藍(lán)牙被搜索到),DTSWIFI,host_wake_irq就是這個(gè)功能,需配置正確的中斷觸發(fā)方式(如GPIO_ACTIVE_HIGH)。

3.驅(qū)動(dòng)的角色:翻譯官

主控與模塊的通信需要翻譯官”——驅(qū)動(dòng)程序:

?WiFi驅(qū)動(dòng):Broadcom模塊用dhd驅(qū)動(dòng)(如本次案例中的bcmdhd驅(qū)動(dòng)),Realtek模塊用rtl8189ftv等;

?藍(lán)牙驅(qū)動(dòng):通常是bt_uartUART通道)或bt_hciHCI通道),負(fù)責(zé)處理藍(lán)牙協(xié)議棧與硬件的交互;

?驅(qū)動(dòng)加載失敗的常見原因:通道不匹配(如PCIE驅(qū)動(dòng)加載SDIO模塊)、驅(qū)動(dòng)版本不兼容(Android14需適配新驅(qū)動(dòng)接口)。

三、實(shí)用調(diào)試手段:按這5步,定位問題不迷路

遇到WiFi /藍(lán)牙問題,不要盲目改配置,按日志通道→GPIO→驅(qū)動(dòng)權(quán)限的流程排查,90%的問題能解決。

1.日志分析法:抓準(zhǔn)關(guān)鍵信息

日志是調(diào)試的眼睛,但要區(qū)分上層日志(應(yīng)用/服務(wù))和內(nèi)核日志(驅(qū)動(dòng)/硬件):

?上層日志:查應(yīng)用層錯(cuò)誤(如權(quán)限、服務(wù)啟動(dòng)失?。?/span>

#過濾WiFi和藍(lán)牙相關(guān)日志

logcat -s "android.hardware.bluetooth" "wifi" "wificond"

關(guān)鍵報(bào)錯(cuò):Permission denied(權(quán)限問題)、No such file or directory(設(shè)備文件缺失,通道未識別)。

?內(nèi)核日志:查驅(qū)動(dòng)/硬件問題(如通道檢測、GPIO狀態(tài))

#過濾WiFi/藍(lán)牙/驅(qū)動(dòng)關(guān)鍵詞

dmesg | grep -E "wifi|dhd|wlan|BT|sdio|pcie"

關(guān)鍵報(bào)錯(cuò):No PCI device enumeratedPCIE通道不支持)、wifi_platform_set_power failed(電源引腳配置錯(cuò))。

2.通道檢測:確認(rèn)路通不通

通信通道是模塊與主控的橋梁,先確認(rèn)通道是否識別:

?SDIO通道:查看SDIO設(shè)備是否存在(AP6256WiFiSDIO

ls /sys/bus/sdio/devices/

#正常應(yīng)顯示類似“mmc11”的設(shè)備(mmc1SDIO控制器

?PCIE通道:查看PCIE設(shè)備(高端模塊如AP6398PCIE

lspci#dmesg | grep PCI

#無輸出說明無PCIE設(shè)備,模塊不支持PCIE

?UART通道:查看藍(lán)牙對應(yīng)的UART設(shè)備

ls /dev/ttyS*#藍(lán)牙通常用ttyS4、ttyS5

#結(jié)合DTSuart_rts_gpios配置,確認(rèn)UART設(shè)備正確

3. GPIO狀態(tài)驗(yàn)證:開關(guān)是否按對

GPIO是模塊的電源開關(guān)復(fù)位按鈕,配置對了但電平錯(cuò)了,模塊也無法工作。以本次案例的poweren_gpiogpio1 RK_PC6)為例:

1.計(jì)算GPIO編號RK芯片的GPIO編號公式為「引腳組編號*32 +組內(nèi)引腳號」。

比如gpio1 RK_PC6gpio1是第1組(從0開始),RK_PC6是組內(nèi)第14個(gè)引腳(PC0=8,PC1=9...PC6=14),所以編號= 1*32 +14=46?

(不同芯片引腳編號規(guī)則可能不同,需查芯片手冊,比如RK3576GPIO1 PC6對應(yīng)GPIO54,以實(shí)際手冊為準(zhǔn))。

2.查看GPIO電平

#進(jìn)入GPIO目錄

cd /sys/class/gpio/

#導(dǎo)出GPIO(若未導(dǎo)出)

echo 54 > export

#查看電平(1=高電平,0=低電平,poweren需為1

cat gpio54/value

4.驅(qū)動(dòng)加載檢查:翻譯官在不在

驅(qū)動(dòng)沒加載,通道再通也沒用。檢查驅(qū)動(dòng)加載情況:

?WiFi驅(qū)動(dòng)Broadcom模塊查dhd,Realtekrtl

lsmod | grep dhd#正常應(yīng)顯示dhd模塊

#若未加載,檢查內(nèi)核配置:CONFIG_BCMDHD=y

?藍(lán)牙驅(qū)動(dòng):查bt相關(guān)模塊

lsmod | grep bt#正常應(yīng)顯示bt_uart、bt_hci

5.權(quán)限排查:Android高版本必查

Android 10 +默認(rèn)啟用SELinux(強(qiáng)制模式),權(quán)限不足會導(dǎo)致模塊無法訪問設(shè)備文件:

?臨時(shí)關(guān)閉SELinux(驗(yàn)證是否是權(quán)限問題):

setenforce 0#切換為寬容模式(permissive

?若關(guān)閉后WiFi正常,說明是SELinux權(quán)限問題,需添加規(guī)則(如允許wifi服務(wù)訪問SDIO設(shè)備):

device/rockchip/rk3576/sepolicy/vendor/目錄下添加規(guī)則文件,允許wifi_hal訪問/sys/bus/sdio/devices。

四、開發(fā)注意事項(xiàng):避免踩坑的“5個(gè)必須

調(diào)試是事后補(bǔ)救,開發(fā)時(shí)做好這5點(diǎn),能減少80%WiFi /藍(lán)牙問題。

1. DTS配置必須硬軟對齊

DTS硬件描述文件,每一個(gè)參數(shù)都要與硬件schematic(原理圖)完全匹配:

?模塊類型wifi_chip_type = "ap6256"(不能錯(cuò)寫為ap6255/ap6356,否則驅(qū)動(dòng)加載錯(cuò));

?GPIO引腳poweren_gpio、host_wake_irq必須與原理圖一致(比如原理圖中WiFi電源接gpio1 PC6,DTS不能寫gpio2 PC6);

?電源序列sdio_pwrseqpost-power-on-delay-ms(延遲時(shí)間)需參考模塊手冊(AP6256建議200ms,太短模塊未就緒,太長啟動(dòng)慢)。

2.通道配置必須匹配模塊特性

先查模塊手冊,確認(rèn)WiFi支持的通道(SDIO/PCIE),再禁用不支持的通道:

?低端模塊(如AP6256、AP6212):通常只支持SDIO,需禁用PCIE配置(如注釋pcie_wifi.config);

?高端模塊(如AP6398AP6498):支持PCIE,需禁用SDIO配置,同時(shí)在DTS中添加PCIE相關(guān)節(jié)點(diǎn)。

3.驅(qū)動(dòng)必須版本兼容

Android版本與驅(qū)動(dòng)版本必須匹配,否則會出現(xiàn)接口不兼容:

?Android 12+:需使用支持“WiFi HAL 1.5”的驅(qū)動(dòng)(如bcmdhd版本≥1.367.33);

?內(nèi)核版本:驅(qū)動(dòng)需適配內(nèi)核版本(如本次案例用Linux 6.1內(nèi)核,驅(qū)動(dòng)需編譯為6.1版本)。

4.硬件必須前期驗(yàn)證

很多問題不是軟件配置錯(cuò),而是硬件沒接對:

?電源電壓AP62563.3V供電,若接5V會燒毀模塊,接2.5V會供電不足;

?引腳焊接SDIO引腳(如DATA0~DATA3、CLK)虛焊會導(dǎo)致設(shè)備識別失??;

?復(fù)位時(shí)序:模塊上電后需等待復(fù)位完成(通常100~200ms),再初始化通道,否則會識別失敗。

5. SELinux必須提前配置

Android高版本(10+SELinux默認(rèn)enforcing模式,需提前添加模塊所需權(quán)限:

?WiFi:允許wifi_hal訪問/sys/bus/sdio/、/dev/wlan0;

?藍(lán)牙:允許bluetooth服務(wù)訪問/dev/ttyS*UART設(shè)備);

?推薦做法:開發(fā)初期用setenforce 0驗(yàn)證權(quán)限問題,再將規(guī)則固化到SELinux策略中。

五、總結(jié):調(diào)試的核心是定位方向

這次AP6256的調(diào)試,沒有復(fù)雜的代碼修改,只是注釋了一行配置,但關(guān)鍵在于從日志中定位到通道問題。很多人調(diào)試時(shí)容易陷入盲目改配置的誤區(qū),卻忽略了先看日志定方向,再查硬軟匹配度的基本邏輯。

最后給大家一個(gè)調(diào)試口訣:

藍(lán)牙正常看WiFi,通道優(yōu)先查日志;SDIO/PCIE分清楚,GPIO電平要記住;驅(qū)動(dòng)版本別忽略,權(quán)限問題別糊涂。

下次遇到WiFi /藍(lán)牙問題,不妨按這個(gè)思路走一遍,大概率能快速找到問題所在。你在調(diào)試中還遇到過哪些奇葩問題?歡迎在評論區(qū)分享,一起避坑~



聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5208

    文章

    20620

    瀏覽量

    336671
  • 藍(lán)牙
    +關(guān)注

    關(guān)注

    119

    文章

    6379

    瀏覽量

    179235
  • WIFI
    +關(guān)注

    關(guān)注

    82

    文章

    5529

    瀏覽量

    214297
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    RK3588-WIF/BT調(diào)試AP6256

    RK3588-WIF/BT調(diào)試AP6256
    的頭像 發(fā)表于 06-10 10:33 ?6884次閱讀
    RK3588-WIF/BT<b class='flag-5'>調(diào)試</b>之<b class='flag-5'>AP6256</b>

    【HZ-RK3568開發(fā)板免費(fèi)體驗(yàn)】--藍(lán)牙通訊

    開發(fā)板搭載了AP6256 模塊具有藍(lán)牙功能。 源代碼在合眾恒躍提供的rk356x_linux_sdk/AP6256-BSA 目錄下。 1.登陸開發(fā)板,切換到根目錄的 bt_bsa 目錄
    發(fā)表于 08-10 22:26

    AP6256 wifi模塊無法上電怎么解決?

    interface [wlan0]MAC: 40:d9:5a:2e:02:86 [12.692139] [12.700076] [dhd] [wlan0] wl_android_wifi
    發(fā)表于 03-14 15:36

    原來是升職了

    {:7:}我之前還納悶分類版主是什么,原來是包括了下面好幾個(gè)版塊。今天上版主交流區(qū)才剛看到調(diào)整通知(兩個(gè)月前的,呵呵)。怎么沒收到通知呢?每次我都是直奔單片機(jī)版塊的。本人主要是使用單片機(jī)和DSP的,還沒系統(tǒng)地學(xué)過ARM和嵌入式,還希望有才之士毛遂自薦,過來助我一臂之力。
    發(fā)表于 08-05 10:40

    藍(lán)牙 wifi嵌入式

    有誰在上海做藍(lán)牙 wifi 嵌入式或射頻開發(fā)方向的啊? 能否交個(gè)朋友, 請教一下
    發(fā)表于 06-16 11:22

    AP6xxx系列Pin to Pin高性能WiFi模塊應(yīng)用參考原理圖

    6452 AP6251UAP6234 AP6255 AP6335 AP6256 AP6441AP6181
    發(fā)表于 07-06 16:35

    分享一些嵌入式系統(tǒng)編程中內(nèi)存操作相關(guān)的指南

    嵌入式系統(tǒng)的編程中,內(nèi)存操作是我們常用到的,但往往也是易錯(cuò)的地方,怎么避免呢,今天給大家分享一些相關(guān)的指南。數(shù)據(jù)指針...
    發(fā)表于 12-17 07:18

    常見的雙通道嵌入式無線AP模塊有哪些?

    QCA9531芯片具有哪些功能特性?常見的雙通道嵌入式無線AP模塊有哪些?
    發(fā)表于 12-27 07:13

    RK3288 android5.1增加AP6256調(diào)試wifi藍(lán)牙發(fā)現(xiàn)不可用怎么解決?

    RK3288 android5.1增加AP6256調(diào)試wifi藍(lán)牙發(fā)現(xiàn)不可用怎么解決?
    發(fā)表于 03-03 06:36

    如何新增wifi模塊ap6256

    如何新增wifi模塊ap6256?
    發(fā)表于 03-03 06:59

    怎樣在RK3288 Android7.1 5.1上增加AP6256 WI-FI Bluetooth呢

    怎樣在RK3288 Android7.1 5.1上增加AP6256 WI-FI Bluetooth呢?有哪些添加步驟?
    發(fā)表于 03-03 07:23

    替代正基AP6256WIFI6模塊YM5411簡介

    正基AP6256是一款非常通用的WIFI5模組,在許多RK方案商的BOOM里面都有這個(gè)料。這個(gè)模組采用的主控是新思SYN43456這個(gè)芯片,隨著市場競爭壓力,很多客戶渴望方案降成。 國內(nèi)模組廠采用
    發(fā)表于 11-23 17:27

    嵌入式系統(tǒng)的遠(yuǎn)程調(diào)試

      1 基本方法   圖1(a)是傳統(tǒng)的嵌入式調(diào)試方法:主機(jī)PC通過串口與從機(jī)嵌入式系統(tǒng)相連,接收從嵌入式系統(tǒng)發(fā)來的調(diào)試信息并向
    發(fā)表于 08-30 10:23 ?1318次閱讀
    <b class='flag-5'>嵌入式</b>系統(tǒng)的遠(yuǎn)程<b class='flag-5'>調(diào)試</b>

    AP6330單通道11ac雙頻藍(lán)牙wifi模塊芯片資料下載.pdf

    AP6330單通道11ac雙頻藍(lán)牙wifi模塊芯片資料下載.pdf
    發(fā)表于 05-25 15:33 ?59次下載

    AP6256 WIFI模塊中文版規(guī)格書

    AMPAK Technology AP6256 是一個(gè)完全的 Wi-Fi 和藍(lán)牙功能模塊,具有無縫漫游功能和高級安全性,還可以與不同供應(yīng)商的符合 SISO 標(biāo)準(zhǔn)的 802.11a/b/g/n/ac
    發(fā)表于 07-16 11:40 ?17次下載