hi,everyone
now I have a problem.I'm trying to enumerate my usb device,but I find when I receive the first 64 bytes data from my device,I can never receive any data more,even I can't go in the ISR.
int musb_h_ep0_irq()
{
printf("__usbRegs->EPSTATUS_Arr[0].RX_COUNT=%.8x\n",__usbRegs->EPSTATUS_Arr[0].RX_COUNT);
count += __usbRegs->EPSTATUS_Arr[0].RX_COUNT;
printf("__usbRegs->EPSTATUS_Arr[0].TX_CSR=%.8x\n",__usbRegs->EPSTATUS_Arr[0].TX_CSR);
if (__usbRegs->EPSTATUS_Arr[0].TX_CSR & 0x4 )
{
printf("RXSTALL\n");
return 0x100;
}
if (__usbRegs->EPSTATUS_Arr[0].TX_CSR & 0x10 )
{
printf("ERROR\n");
return 0x10000;
}
if (__usbRegs->EPSTATUS_Arr[0].TX_CSR & 0x80 )
{
printf("NAK_TIMEOUT\n");
return 0x10000000;
}
if (count <= 18)
{
*ptr= __usbRegs->FIFO0;
if(count > 4)
*(ptr + 1) =__usbRegs->FIFO0;
printf("*ptr = %.8x,*(ptr + 1)=%.8x\n",*ptr,*(ptr + 1));
ptr += count>>2;
}
__usbRegs->EPSTATUS_Arr[0].TX_CSR |= 0x20;
return 0;
}