AP6236 WiFi模块调试记录

AP6236 WiFi模块调试记录

Platform: RK3368
OS: Android 6.0
Kernel: 3.10.0

内核驱动移植

1. 更新驱动

先将供应商给的最新wifi驱动更新到kernel中:drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/

1.1 修改驱动代码,适配rk平台

修改Makefile中的WiFi配置:

diff --git a/Makefile b/Makefile
index 5beada4..fdd9e22 100644
--- a/Makefile
+++ b/Makefile
@@ -2,16 +2,17 @@
 # 1. WL_IFACE_COMB_NUM_CHANNELS must be added if Android version is 4.4 with Kernel version 3.0~3.4,
 #    otherwise please remove it.
 
-#CONFIG_BCMDHD := m
-#CONFIG_BCMDHD_SDIO := y
+CONFIG_BCMDHD := y
+CONFIG_BCMDHD_SDIO := y
 #CONFIG_BCMDHD_PCIE := y
 #CONFIG_BCMDHD_USB := y
 
-#CONFIG_BCMDHD_OOB := y
+CONFIG_BCMDHD_OOB := y
 #CONFIG_BCMDHD_CUSB := y
 CONFIG_BCMDHD_PROPTXSTATUS := y
+#CONFIG_BCMDHD_AG := y
 #CONFIG_DHD_USE_STATIC_BUF := y
-#CONFIG_VTS_SUPPORT := y
+CONFIG_VTS_SUPPORT := y
 
 CONFIG_MACH_PLATFORM := y
 #CONFIG_BCMDHD_DTS := y
@@ -25,7 +26,9 @@ DHDCFLAGS = -Wall -Wstrict-prototypes -Dlinux -DBCMDRIVER                 \
        -DMULTIPLE_SUPPLICANT -DTSQ_MULTIPLIER -DMFP                          \
        -DWL_EXT_IAPSTA                                                       \
        -DENABLE_INSMOD_NO_FW_LOAD                                            \
-       -Idrivers/net/wireless/bcmdhd -Idrivers/net/wireless/bcmdhd/include
+       -Idrivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd                    \
+       -Idrivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/include
+
 
 DHDOFILES = aiutils.o siutils.o sbutils.o bcmutils.o bcmwifi_channels.o   \
        dhd_linux.o dhd_linux_platdev.o dhd_linux_sched.o dhd_pno.o           \

修改dhd_gpio.c添加WiFi模块电源控制和sdio卡检测:

diff --git a/dhd_gpio.c b/dhd_gpio.c
index 0819d0c..25a44ba 100644
--- a/dhd_gpio.c
+++ b/dhd_gpio.c
@@ -2,6 +2,7 @@
 #include <osl.h>
 #include <dhd_linux.h>
 #include <linux/gpio.h>
+#include <linux/rfkill-wlan.h>
 
 #ifdef CUSTOMER_HW_PLATFORM
 #include <plat/sdhci.h>
@@ -64,6 +65,7 @@ dhd_wlan_set_power(int on
                }
 #endif /* BCMPCIE */
 #endif /* BUS_POWER_RESTORE */
+               rockchip_wifi_power(1);
                /* Lets customer power to get stable */
                mdelay(100);
        } else {
@@ -92,6 +94,7 @@ dhd_wlan_set_power(int on
                                return -EIO;
                        }
                }
+               rockchip_wifi_power(0);
        }
 
        return err;
@@ -116,6 +119,7 @@ static int dhd_wlan_set_carddetect(int present)
 #elif defined(BCMPCIE)
                printf("======== Card detection to detect PCIE card! ========\n");
 #endif
+               rockchip_wifi_set_carddetect(1);
        } else {
 #if defined(BCMSDIO)
                printf("======== Card detection to remove SDIO card! ========\n");
@@ -125,6 +129,7 @@ static int dhd_wlan_set_carddetect(int present)
 #elif defined(BCMPCIE)
                printf("======== Card detection to remove PCIE card! ========\n");
 #endif
+               rockchip_wifi_set_carddetect(0);
        }
 #endif /* BUS_POWER_RESTORE */
 
@@ -157,6 +162,7 @@ static int dhd_wlan_get_mac_addr(unsigned char *buf)
                bcopy(macpad, buf+6, sizeof(macpad));
        }
 #endif /* EXAMPLE_GET_MAC_VER2 */
+       err = rockchip_wifi_mac_addr(buf);
 
        return err;
 }

修改dhd_linux.c添加WiFi驱动模块加载入口和指定WiFi固件路径:

diff --git a/dhd_linux.c b/dhd_linux.c
index 936a6c8..c63333f 100644
--- a/dhd_linux.c
+++ b/dhd_linux.c
@@ -481,7 +481,7 @@ static int is_reboot = 0;
 dhd_pub_t      *g_dhd_pub = NULL;
 #endif /* defined (BT_OVER_SDIO) */
 
-atomic_t exit_in_progress = ATOMIC_INIT(0);
+static atomic_t exit_in_progress = ATOMIC_INIT(0);
 
 typedef struct dhd_if_event {
        struct list_head        list;
@@ -9915,6 +9915,8 @@ int dhd_bus_get_fw_mode(dhd_pub_t *dhdp)
        return dhd_get_fw_mode(dhdp->info);
 }
 
+extern int rkwifi_set_firmware(char *fw, char *nvram);
+
 bool dhd_update_fw_nv_path(dhd_info_t *dhdinfo)
 {
        int fw_len;
@@ -9925,6 +9927,8 @@
  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: ap6255 wifi模块是一种高性能的WI-FI和蓝牙组合芯片,广泛应用于智能家居、智能电子产品和物联网等领域。ap6255 wifi模块参考设计是一套基于此芯片的硬件和软件解决方案,可以帮助开发人员快速开发出符合市场需求的产品。下面我们来详细了解一下ap6255 wifi模块参考设计。 硬件方面,ap6255 wifi模块参考设计采用了高效低功耗的设计方案,支持多种电源管理模式,使得整个系统能够在尽可能少的能耗下工作。同时,参考设计也考虑到了模块的尺寸紧凑和易于集成,可以方便地嵌入到各种不同的设备中,并实现与其它硬件设备的高度兼容性。 软件方面,ap6255 wifi模块参考设计已经预先安装了驱动程序和系统固件,可以直接使用,不需要进行额外的配置或者编程。而且参考设计也提供了完整的开发套件和应用软件,方便开发者在功能和性能方面做出改进或者优化,并且可以快速跟进市场上的新需求和技术变化。 总之,ap6255 wifi模块参考设计是一款开发者便捷性较高的芯片开发工具,充分考虑了功能、性能和兼容性方面的需求。它可以让开发人员快速实现项目设计目标,有效降低开发成本,持续提升产品竞争力。 ### 回答2: AP6255 wifi模块是一种高效的无线通信设备,可以帮助生产厂家更加容易地实现无线网络的连接。参考设计是一种优秀的设计资源,可以帮助生产厂家快速入门,并实现对AP6255 wifi模块的使用。在参考设计中,通常会包括一个完整的系统架构,建议的电路设计图,以及相应的硬件和软件文档。通过参考设计,生产厂家可以更好地了解AP6255 wifi模块的传输速率、功耗和传输距离等性能指标,根据项目需求选择最适合的设计方案。同时,参考设计还能够提供更加细致的模块接口相关元件的列表,包括天线匹配电路、功率放大器、滤波器、调制解调器、天线等,这将有助于保证最终设计的稳定性、可靠性和性能水平。总之,AP6255 wifi模块参考设计是一种非常有价值的资源,无论是对于新手还是经验丰富的设计工程师,在设计过程中都能够起到重要的作用,使得整个设计和调试工作更加流畅和高效。 ### 回答3: AP6255是一款高度集成的WiFi和蓝牙模块,能够为嵌入式系统提供WiFi和蓝牙无线连接功能。它具有高性能、低功耗、小尺寸和易于设计的特点,适用于智能穿戴设备、智能家居、工业应用和物联网设备等多种应用场景。 在AP6255的参考设计中,主要包括四个方面的内容,即硬件设计、软件设计、调试流程和性能测试。 硬件设计方面,AP6255引脚功能与布局、天线匹配电路和电源管理等需要特别考虑,以保证模块的正常工作和最佳性能。同时,还需要根据具体应用需求进行接口扩展和外设添加等设计。 软件设计方面,需要开发适合AP6255的驱动程序和协议栈,以及应用程序接口和应用程序,以实现与外围设备和云端服务的通信和交互,同时支持安全加密和低功耗优化等功能。 调试流程方面,包括硬件和软件的调试过程,需要使用专业的调试工具和测试设备,以确保模块的正常工作和稳定性。 性能测试方面,需要测试模块的WiFi和蓝牙性能,包括信号覆盖范围、数据传输速度、功耗等指标,以评估模块的性能和可靠性。 通过以上方面的参考设计,可以帮助设计人员快速实现AP6255模块的应用设计和测试,提高系统开发效率和产品质量。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值