说明一下 :现在程序移植死在 while循环里了代码如下:
BOOL S3C2440USBSER_Init (KITL_SERIAL_INFO *pSerInfo)
{
volatile S3C2440A_IOPORT_REG *g_pIOPortReg;
g_pIOPortReg = (S3C2440A_IOPORT_REG *)OALPAtoVA(S3C2440A_BASE_REG_PA_IOPORT, FALSE);
memset(&g_Info, 0, sizeof(g_Info));
memset(&USBSerInfo, 0, sizeof(USBSERKITL_INFO));
KITLOutputDebugString ("Wait for connecting\n");
KitlIoPortBase = (DWORD)pSerInfo->pAddress;
if (!KitlIoPortBase)
{
return FALSE;
}
else
{
g_pUSBDReg = (volatile S3C2440A_USBD_REG *)OALPAtoVA(KitlIoPortBase, FALSE);
// //Shoule re-plugin the usb cable
// while(1)
// {
// if(g_pUSBDReg->PMR.usb_re )
// break;
// }
g_pIOPortReg->GPGDAT &= ~0x1<<12;
g_pIOPortReg->GPGUP |= 0x1<<12;
g_pIOPortReg->GPGCON = (g_pIOPortReg->GPGCON & 0x3<<24) | 0x1<<24;
g_pUSBDReg->UIR.reset_int = 1;
WaitMS(100);
g_pIOPortReg->GPGDAT |= 0x1<<12;
S3C2440_USB_INIT();
while(USBSerInfo.dwState != KITLUSBSER_STATE_CONFIGURED)
{
if (g_pUSBDReg->UIR.reset_int)
S3C2440_USB_INIT();
g_pUSBDReg->INDEX.index = 0;
S3C2440_USB_EP0();
}
}
pSerInfo->bestSize = 64;
//KITLOutputDebugString ("-S3C2440USBSER_Kitl_Init\n");
return TRUE;
}