gsymichae兄:
现在的状态是:加上SDIO_INTERRUPT_CHECK_ON(pController);后
在case SDHCDAckSDIOInterrupt:中打印两条SDControl.c_SDHSlotOptionHandler:SDIO INT (still)!
又进入else打印一条SDControl.c_SDHSlotOptionHandler:into else if,之后不知道进哪就死掉了(SD卡不死)
具体代码如下: case SDHCDAckSDIOInterrupt:
// acquire the lock to block the SDIO interrupt thread
ACQUIRE_LOCK(pController);
if ( ( pController->pSDMMCRegisters->stat & 0x8000 ) &&
( pController->pSDMMCRegisters->ireg & 0x0800 ) &&
pController->fSDIOEnabled )
{
RETAILMSG(1, (TEXT("SDControl.c_SDHSlotOptionHandler:SDIO INT (still)!\r\n")));
SDHCDIndicateSlotStateChange(pController->pHCContext,
0,
DeviceInterrupting);
}
else if( pController->fSDIOEnabled )
{
RETAILMSG(1, (TEXT("SDControl.c_SDHSlotOptionHandler:into else if!\r\n")));
SDIO_INTERRUPT_ON(pController);
SDIO_INTERRUPT_CHECK_ON(pController);//wx_20081122
pController->fSDIOEnabled = TRUE;
}
}
是硬件问题
估计我试的那个板子硬件上有缺陷(应该是电源问题)
把程序烧到新修改的板子里就可以上网了
非常感谢gsymichael 兄这两天帮我调试!!!