This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

how to clear the RXPKTRDY bit in the HOST_CSR0 register?

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;
}