搜索
bottom↓
回复: 16

发现RealTouch的WIFI驱动的一个BUG。导致搜索时间太长!

[复制链接]

出0入0汤圆

发表于 2013-3-19 22:12:40 | 显示全部楼层 |阅读模式
移植了RealTouch的WIFI驱动,搜索一次需要几分钟的时间。觉得奇怪,安卓手机搜一次秒杀,电脑也只要5秒钟。研究了一天发现RealTouch的WIFI驱动的一个小BUG导致的。改了之后现在搜索秒杀了,(实际上是500ms)。

SCAN_RESP: Scanned  4
Scan: Chan(  2), Radio(0), Mode(0,0), Dur(100)
Scan: Chan(  3), Radio(0), Mode(0,0), Dur(100)
Scan: Chan(  4), Radio(0), Mode(0,0), Dur(100)
Scan: Chan(  5), Radio(0), Mode(0,0), Dur(100)
send CMD: 0x6, len 51, Number 8
send:0x06 0x00 0x33 0x00 0x08 0x00 0x00 0x00 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x01 0x01 0x20 0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x64 0x00 0x00 0x03 0x00 0x00 0x00 0x00 0x64 0x00 0x00 0x04 0x00 0x00 0x00 0x00 0x64 0x00 0x00 0x05 0x00 0x00 0x00 0x00 0x64 0x00

0x06 0x00 0x33 0x00 0x08 0x00 0x00 0x00 _HostCmd_DS_COMMAND
0x01 CMD_BSS_TYPE_BSS
0x00 0x00 0x00 0x00 0x00 0x00 BSSID
0x01 0x01 CHANLIST
0x20 0x00 length

0x00 0x02 0x00 0x00 0x00 0x00 0x64 0x00 _ChanScanParamSet_t
0x00 0x03 0x00 0x00 0x00 0x00 0x64 0x00 _ChanScanParamSet_t
0x00 0x04 0x00 0x00 0x00 0x00 0x64 0x00 _ChanScanParamSet_t
0x00 0x05 0x00 0x00 0x00 0x00 0x64 0x00 _ChanScanParamSet_t

typedef struct
{
    u8 PassiveScan:1;
    u8 DisableChanFilt:1;
    u8 Reserved_2_7:6;
} ChanScanMode_t;
typedef struct _ChanScanParamSet_t
{
    u8 RadioType;
    u8 ChanNumber;
    ChanScanMode_t ChanScanMode;
    u16 MinScanTime;
    u16 MaxScanTime;
}ChanScanParamSet_t;

发现这个数据和结构体的长度不一样
0x00 0x02 0x00 0x00 0x00 0x00 0x64 0x00 _ChanScanParamSet_t
然后用sizeof测试一下,发现sizeof(_ChanScanParamSet_t)=8.
最后发现原来是结构体对齐的原因导致的。而实际上正确的命令应该是
                                        |MaxScanTime|
0x00 0x02 0x00 0x00 0x00   0x64 0x00         对比错误的命令:
0x00 0x02 0x00 0x00 0x00   0x00 0x64     0x00
发现MaxScanTime由原来的0x0064(100ms)变成了0x6400(25.6s)。这才导致了每次的搜索时间长的上几分钟。(令我奇怪的是这条命令竟然还能被执行。)
解决方法就是加上__packed修饰,让结构体按照字节对齐就可以了。
typedef __packed struct
{
    u8 PassiveScan:1;
    u8 DisableChanFilt:1;
    u8 Reserved_2_7:6;
} ChanScanMode_t;

/** ChanScanParamSet_t */
typedef __packed struct _ChanScanParamSet_t
{
    u8 RadioType;
    u8 ChanNumber;
    ChanScanMode_t ChanScanMode;
    u16 MinScanTime;
    u16 MaxScanTime;
} ChanScanParamSet_t;

现在搜索就是一眨眼的时间,连接也是这样快。

阿莫论坛20周年了!感谢大家的支持与爱护!!

该献的血还是要献的。你不献他不献。难道让我去献? --- 出自坛友:lovejp1981

出0入134汤圆

发表于 2013-3-19 22:16:04 | 显示全部楼层
精神可嘉

出0入0汤圆

 楼主| 发表于 2013-3-19 22:24:06 | 显示全部楼层
elecfun 发表于 2013-3-19 22:16
精神可嘉

我技术很烂,就是有BC般的激情。

出0入4汤圆

发表于 2013-3-19 22:48:27 | 显示全部楼层
这个要赞一个!

出0入0汤圆

发表于 2013-10-17 13:23:07 | 显示全部楼层
追随着楼主的脚步做wifi小四轴,也走到这里发现了这个问题,感谢楼主付出的艰辛和努力,希望得到RealTouch驱动补完更多的帮助

出0入0汤圆

发表于 2013-10-28 09:56:40 来自手机 | 显示全部楼层
必须支持   mark

出0入0汤圆

发表于 2013-12-11 14:12:45 | 显示全部楼层
mark, 坚持就是胜利

出0入0汤圆

发表于 2013-12-26 15:55:57 | 显示全部楼层
支持一个,楼主精神可嘉!

出0入8汤圆

发表于 2014-1-1 23:57:37 来自手机 | 显示全部楼层
mark                  

出0入0汤圆

发表于 2014-1-19 13:34:06 | 显示全部楼层
希望官方能修正这个BUG

出0入0汤圆

发表于 2014-1-21 14:36:45 | 显示全部楼层
88W8686太老了,现在看到有MT5931的Linux驱动,看看春节期间是否能够完成移植,还需要看看LPC4088的SD/MMC是否能够驱动起来(MT5931是SDIO接口的)

出0入0汤圆

发表于 2014-7-15 13:56:49 | 显示全部楼层
赞!改了之后果然秒连!

出0入0汤圆

发表于 2014-7-23 23:59:45 | 显示全部楼层
加油

出0入0汤圆

发表于 2014-7-24 00:05:33 | 显示全部楼层
ffxz 发表于 2014-1-21 14:36
88W8686太老了,现在看到有MT5931的Linux驱动,看看春节期间是否能够完成移植,还需要看看LPC4088的SD/MMC ...

请问你的5931开始了吗?

出0入0汤圆

发表于 2014-7-30 07:00:58 | 显示全部楼层
edmundchang8 发表于 2014-7-24 00:05
请问你的5931开始了吗?

5931取消了,换新的RW009,一个SPI WiFi网卡,可以SoftAP、Station同时存在,2.0.0 beta版本开始包括相应的驱动。

出0入0汤圆

发表于 2014-7-30 16:04:59 | 显示全部楼层
ffxz 发表于 2014-7-30 07:00
5931取消了,换新的RW009,一个SPI WiFi网卡,可以SoftAP、Station同时存在,2.0.0 beta版本开始包括相应 ...

期待中

出0入0汤圆

发表于 2014-8-12 01:36:23 | 显示全部楼层
ffxz 发表于 2014-1-21 14:36
88W8686太老了,现在看到有MT5931的Linux驱动,看看春节期间是否能够完成移植,还需要看看LPC4088的SD/MMC ...

你好,请问一下有没有RDA5990的驱动啊?我看到这个芯片好便宜哦,不知道是否会有驱动呢?
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-9-1 18:14

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表