请教s3c2440 + wince5.0 + sdio接口wifi Mavell 8686的问题

waterdream0820 2010-10-13 09:38:19
s3c2440 + wince5.0 + sdio接口wifi Mavell 8686
问题是InitializeWirelessConfig()函数中调用WaitForSingleObjectWithCancel()等待事件引起超时错误,进入系统后不弹wifi设置框,网络连接里面也没有出现wifi网络。如果在WaitForSingleObjectWithCancel()直接返回true,就会能搜索到网络,但是连接不成功。
跟下面这位
http://topic.csdn.net/u/20091021/15/4bf281dc-19e6-4de0-9e2d-afa9028c2d54.html的问题基本一样。
然后有个比较奇怪的是
http://blog.csdn.net/waterdream0820/archive/2010/08/30/5849766.aspx
这个帖子是我用另一款2440板,调试的wifi是成功了的。其中一样的问题,设置set4bit=1就正常了。
现在用新的2440板,也是新的bsp,不过sdhc的驱动,是从原来的移过来的。出现这个问题,设置set4bit=1也没有任何的作用。下面是调试信息下载完Firmware以后,初始化InitializeWirelessConfig出错。
sdio_IsFirmwareLoaded Returning code SUCCESS (FW_STATUS_INITIALIZED)
FW started SUCCESSFULLY
Adapter PSMODE = 0
*** set f/w permanent addr : ff ff ff ff ff ff ***
GetCmdFromQueueToExecute()
DownloadCommand()
Download command:3
********SDIODownloadPkt**********
[MRVL] * ERROR, timeout (12000 sec) for waiting HW Spec!
EXIT - Enter MrvDrvHalt
********sdio_DisableInterrupt <<return>>**********
Wait for the end of IstThread...
... done
[Marvell]+CleanUpSingleTxBuffer()Free Rx Q
Free Cmd Buf
EXIT - Leave MrvDrvHalt
INIT - Leave MrvDrvInitialize fail5

BOOL InitializeWirelessConfig(
PMRVDRV_ADAPTER Adapter
)
{
PVOID InfoBuffer = NULL;
NDIS_STATUS Status;
DWORD dwWaitStatus;

NdisFillMemory(Adapter->CurrentAddr, MRVDRV_ETH_ADDR_LEN, 0xff);
NdisFillMemory(Adapter->PermanentAddr, MRVDRV_ETH_ADDR_LEN, 0xff);

PrepareAndSendCommand(
Adapter,
HostCmd_CMD_GET_HW_SPEC,
0,
HostCmd_OPTION_USE_INT,
(NDIS_OID)0,
HostCmd_PENDING_ON_NONE,
0,
FALSE,
NULL,
NULL,
NULL,
NULL);

dwWaitStatus = WaitForSingleObjectWithCancel( Adapter, Adapter->hHwSpecEvent, ASYNC_OID_QUERY_TIMEOUT );

if ( dwWaitStatus != WAIT_OBJECT_0 )

{

DBGPRINT( DBG_CUSTOM, (L"[MRVL] * ERROR, timeout (%d sec) for waiting HW Spec!\r\n", ASYNC_OID_QUERY_TIMEOUT) );
return FALSE;

}

else

{

DBGPRINT( DBG_CUSTOM, (L"[MRVL] * Got HW Spec!\r\n") );

DBGPRINT(DBG_CUSTOM,(L"[MRVL] * PermanentAddr %02x.%02x.%02x.%02x.%02x.%02x ***\r\n",

Adapter->PermanentAddr[0],

Adapter->PermanentAddr[1],

Adapter->PermanentAddr[2],

Adapter->PermanentAddr[3],

Adapter->PermanentAddr[4],

Adapter->PermanentAddr[5]

));

}


在执行InitializeWirelessConfig的时候,出现错误前的一句,在PrepareAndSendCommand中发送了一条HostCmd_CMD_GET_HW_SPEC命令。追踪了这条命令的全过程,执行的没有问题,下载command都是正常的。但是这里面并没有SetEvent( Adapter->hHwSpecEvent )执行的地方。
然后我看了事件SetEvent( Adapter->hHwSpecEvent )的流程,这是一步步往前寻找这个事件set的源头,InitializeWirelessConfig-》WaitForSingleObjectWithCancel-》HandleHardwareSpec -》HandleCommandFinishedEvent,这部分再往前分成了几个部分,HandleMACEvent,MrvIstThread,MrvDrvCommandTimerFunction。到这里就有点模糊了,不知道哪里会去执行。也试过自己在某个位置添加etEvent( Adapter->hHwSpecEvent ),不过这样起来之后是有问题的,连不上网络,自己新建的也连不上。
不知道大家有没有遇到这方面的问题,指点一下,谢谢。
...全文
361 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
waterdream0820 2010-10-24
  • 打赏
  • 举报
回复
结贴吧。
这个东西用4.2修改过来的5.0BSP怎么也调不出来,错误依旧。中断啊,什么的都看过。最后也没弄明白什么原因。
问题也算是解决了,用标准5.0的BSP就可以了。买的板子,提供的只有4.2移植的5.0,只能说是感觉上当了。选择板子的时候要注意,该问的早点问清楚,主要是我原先也不知道4.2移植的5.0很难调。可能有解决办法,不过我是能力不够,弄不明白。
现在移植了一个标准5.0的,其他方面还有点问题。不过wifi是通了。
waterdream0820 2010-10-13
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 gooogleman 的回复:]

如果你的硬件是可以的,那么下面的这个链接资料绝对放上去就可用了!
http://www.gooogleman.com/forum.php?mod=viewthread&tid=173
[/Quote]谢谢,我看看。
gooogleman 2010-10-13
  • 打赏
  • 举报
回复
如果你的硬件是可以的,那么下面的这个链接资料绝对放上去就可用了!
http://www.gooogleman.com/forum.php?mod=viewthread&tid=173
gooogleman 2010-10-13
  • 打赏
  • 举报
回复
这个东西很简单。我找找,给你下载链接!
我直接放上去即可。
bbstr 2010-10-13
  • 打赏
  • 举报
回复
我们可以搞定这个问题,外包的话 请联系 电话13146056475 QQ:740721436
丰满 2010-10-13
  • 打赏
  • 举报
回复
学习了,顶一下,期待高手解答
waterdream0820 2010-10-13
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 gooogleman 的回复:]

如果你的硬件是可以的,那么下面的这个链接资料绝对放上去就可用了!
http://www.gooogleman.com/forum.php?mod=viewthread&tid=173
[/Quote]
我用那个还是一样的问题,不过就是多了一些错误信息

INIT - Enter DriverEntry
*** Driver version 38.p35 ***
*** Built on Oct 13 2010 13:28:10 ***
<== DriverEntry: register miniport success
INIT - Enter MrvDrvInitialize
[WiFi]: Driver Version: 38.p35
pAssoInfo = 0x3a1d64, pAssoInfo->Length = 0x3a1d64

***!!!!!!NdisReadConfiguration failed
*** SDIOInitialization FAILED! ***
[TT] SDIO initialization is failed! Quit initialization process

DeviceFolder::LoadDevice!Enumerate Found deprecated load instructions at (Drivers\BuiltIn\AFD). Driver cannot be unloaded.
USB enable interrutp
DeviceFolder::LoadDevice!Enumerate Found deprecated load instructions at (Drivers\BuiltIn\PPP). Driver cannot be unloaded.

DeviceFolder::LoadDevice!Enumerate Found deprecated load instructions at (Drivers\BuiltIn\LPCD). Driver cannot be unloaded.
DeviceFolder::LoadDevice!Enumerate Found deprecated load instructions at (Drivers\BuiltIn\DCOMSSD). Driver cannot be unloaded.
***VIB: VIB_Init
***VIB: Vibration CreateThread OK
SDHC +Init
SDHC SDHCDAllocateContext
SDHC CreateSDIOController
SDHC InterpretCapabilities
SDHCDInitialize starts
GPIO registers mapped to 580000
SDI control registers mapped to 590000

Clock & Power Management Special Register mapped to 5a0000

vm_pDMAreg

DMA Register mapped to 5b0000

SDHCDInitialize ends
SDHC SDHCDRegisterHostController
SDHC -Init
--S3C2440DISP::InitializeHardware
Lyg.p: Layout Manager successfully initialized to 2

Touch Init
Maximum Allowed Error 7:
***Vibration
SDCard insert!//这部分是sd卡检测有卡存在

MSIM: IM_ReadRegistry read KB 5

Explorer(V2.0) taskbar thread started.
INIT - Enter DriverEntry
*** Driver version 38.p35 ***
*** Built on Oct 13 2010 13:28:10 ***
<== DriverEntry: register miniport success
INIT - Enter MrvDrvInitialize
[WiFi]: Driver Version: 38.p35
pAssoInfo = 0x6e1d64, pAssoInfo->Length = 0x6e1d64

RasEntry '`USB Socket Default' Created

TempCmdArray 0 0x2c76d0 ****
TempCmdArray 1 0x2c770c ****
TempCmdArray 2 0x2c7748 ****
TempCmdArray 3 0x2c7784 ****
TempCmdArray 4 0x2c77c0 ****
TempCmdArray 5 0x2c77fc ****
TempCmdArray 6 0x2c7838 ****
Tem
pCmdArray 7 0x2c7874 ****
TempCmdArray 8 0x2c78b0 ****
TempCmdArray 9 0x2c78ec ****
TempCmdArray 10 0x2c7928 ****
TempCmdArray 11 0x2c7964 ****
TempCmdArray 12 0x2c79a0 ****
TempCmdArray 13 0x2c79dc ****
TempCmdArray 14 0x2c7a18 ****
TempCmdArray 15 0x2c7a54 ****
TempCmdArray 16 0x2c7a90 ****
TempCmdArray 17 0x2c7acc ****
TempCmdArray 18 0x2c7b08 ****
TempCmdArray 19 0x2c7b44 ****
TempCmdArray 20 0x2c7b80 ****
TempCmdArray 21 0x2c7bbc ****
TempCmdArray 22 0x2c7bf8 ****
TempCmdArray 23 0x2c7c34 ****
TempCmdArray 24 0x2c7c70 ****
TempCmdArray 25 0x2c7cac ****
TempCmdArray 26 0x2c7ce8 ****
TempCmdArray 27 0x2c7d24 ****
TempCmdArray 28 0x2c7d60 ****
TempCmdArray 29 0x2c7d9c ****
TempCmdArray 30 0x2c7dd8 ****
TempCmdArray 31 0x2c7e14 ****
TempCmdArray 32 0x2c7e50 ****
TempCmdArray 33 0x2c7e8c ****
TempCmdArray 34 0x2c7ec8 ****
TempCmdArray 35 0x2c7f04 ****
TempCmdArray 36 0x2c7f40 ****
TempCmdArray 37 0x2c7f7c ****
TempCmdArray 38 0x2c7fb8 ****
TempCmdArray 39 0x2c7ff4 ****
TempCmdArray 40 0x2c8030 ****
TempCmdArray 41 0x2c806c ****
TempCmdArray 42 0x2c80a8 ****
TempCmdArray 43 0x2c80e4 ****
TempCmdArray 44 0x2c8120 ****
TempCmdArray 45 0x2c815c ****
TempCmdArray 46 0x2c8198 ****
TempCmdArray 47 0x2c81d4 ****
TempCmdArray 48 0x2c8210 ****
TempCmdArray 49 0x2c824c ****
TempCmdArray 50 0x2c8288 ****
TempCmdArray 51 0x2c82c4 ****
TempCmdArray 52 0x2c8300 ****
TempCmdArray 53 0x2c833c ****
TempCmdArray 54 0x2c8378 ****
TempCmdArray 55 0x2c83b4 ****
TempCmdArray 56 0x2c83f0 ****
TempCmdArray 57 0x2c842c ****
TempCmdArray 58 0x2c8468 ****
TempCmdArray 59 0x2c84a4 ****
TempCmdArray 60 0x2c84e0 ****
TempCmdArray 61 0x2c851c ****
TempCmdArray 62 0x2c8558 ****
TempCmdArray 63 0x2c8594 ****
MrvReConnectTimer success
Default channel time out of range: 0, set to default(100)!
[Marvell:MrvIstThread] pAdapter->SdioIstThread=101
IstThread pri: 101

Adapter PSMODE = 0
*** set f/w permanent addr : ff ff ff ff ff ff ***
GetCmdFromQueueToExecute()
DownloadCommand()
Download command:3

[MRVL] * ERROR, timeout (12000 sec) for waiting HW Spec!
EXIT - Enter MrvDrvHalt
My god hEjectEvent event
Wait for the end of IstThread...
... done
[Marvell]+CleanUpSingleTxBuffer()Free Rx Q
Free Cmd Buf
EXIT - Leave MrvDrvHalt
INIT - Leave MrvDrvInitialize fail5

这样看来,好像是我本身的SDHC驱动有问题了?

19,503

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧