WinCE下WIFI模块AR6102的调试
创始人
2024-07-13 18:51:02
0

今天调试了一款SDIO的无线网卡AR6102,由于该芯片是板载的,所以写了一个应用程序,模拟无线网卡的插入拔出,然后简单修改了SDHC驱动,检测应用程序发出的模拟卡插拔的动作,并控制芯片的PWR和RST引脚。幸运的很,改完之后,就可以用了。通过应用程序模拟无线网卡的插入动作后,在超级终端看到了加载无线网卡驱动的打印信息,在控制面板的网络连接里也看到了WIFI设备,AR6K_SD1。

 

 

用于测试的无线AP是Cisco的,加密方式是WPA-Personal,根据路由器的设置,选择加密方式并输入网络密钥,如下图所示。

 

 

 

点击确定后,正常连接至无线AP,但信号强度极低,可能跟天线有关系。

 

 

连接至AP后,AR6K_SD1的IP信息如下图所示。

 

 

连接过程中的日志如下图所示。

 

 

下面简单介绍一下调试的思路。我们知道,WinCE下SD卡驱动主要由三部分组成,BusDriver、HostControllerDriver和ClientDrivers。他们三者与应用程序和操作系统的关系如下图所示。

 

 

可以看到,BusDriver是介于ClientDriver和HostControllerDriver之间的一个抽象管理层。它为ClientDriver提供了标准的API,使其能在不同的WinCE系统上运行。BusDriver的真实存在为SDBUS.dll。这部分代码由微软提供,与平台和应用无关。所以,在移植驱动的过程中无需做任何修改。

ClientDriver通过BusDriver提供的抽象接口,控制并操作SD设备。WinCE下SDIO的ClientDriver类型有Memory、BlueTooth、GPS和WIFI等几种。这部分的驱动根据设备类型不同而不同,当SD设备插入时,BusDriver根据注册表的配置,加载相应的ClientDriver。ClientDriver一般由模块厂商提供,基本不用做修改即可使用。

HostControllerDriver是BusDriver和HostController之间的一个硬件抽象层,这部分代码随着平台和芯片的不同而不同。在调试SD设备的过程中,需要做相应修改。

根据以上分析,调试AR6102的驱动时,仅仅修改了HostControllerDriver的代码,其他两个部分都没有动。实际上原厂也没有提供ClientDriver的代码,只给了DLL文件而已。
 

【编辑推荐】

  1. C#和Java骨子里是两种不同的语言
  2. Hibernate 3.5.5和3.6 Beta3同时发布
  3. Java创始人:Android只为竞争不为钱

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...