Пример #1
0
uint32_t USBH_OTG_ISR_Handler (USB_OTG_CORE_HANDLE *pdev)
{
  USB_OTG_GINTSTS_TypeDef  gintsts;
  uint32_t retval = 0;
  
  gintsts.d32 = 0;
  
  /* Check if HOST Mode */
  if (USB_OTG_IsHostMode(pdev))
  {
    gintsts.d32 = USB_OTG_ReadCoreItr(pdev);
    if (!gintsts.d32)
    {
      return 0;
    }
    
    if (gintsts.b.sofintr)
    {
      retval |= USB_OTG_USBH_handle_sof_ISR (pdev);
    }
    
    if (gintsts.b.rxstsqlvl)
    {
      retval |= USB_OTG_USBH_handle_rx_qlvl_ISR (pdev);
    }
    
    if (gintsts.b.nptxfempty)
    {
      retval |= USB_OTG_USBH_handle_nptxfempty_ISR (pdev);
    }
    
    if (gintsts.b.ptxfempty)
    {
      retval |= USB_OTG_USBH_handle_ptxfempty_ISR (pdev);
    }    
    
    if (gintsts.b.hcintr)
    {
      retval |= USB_OTG_USBH_handle_hc_ISR (pdev);
    }
    
    if (gintsts.b.portintr)
    {
      retval |= USB_OTG_USBH_handle_port_ISR (pdev);
    }
    
    if (gintsts.b.disconnect)
    {
      retval |= USB_OTG_USBH_handle_Disconnect_ISR (pdev);  
    }
    
    if (gintsts.b.incomplisoout)
    {
      retval |= USB_OTG_USBH_handle_IncompletePeriodicXfer_ISR (pdev);
    }
    
  }
  return retval;
}
Пример #2
0
// This function handles all USB Host Interrupts
void USBH_OTG_ISR_Handler (USB_OTG_CORE_HANDLE *pdev)
{
  USB_OTG_GINTSTS_TypeDef  gintsts;
  
  /* Check if HOST Mode : removed , always the case */

  gintsts.d32 = USB_OTG_ReadCoreItr(pdev);

  if (!gintsts.d32) { return ; }
  
  if (gintsts.b.sofintr) {
    USB_OTG_USBH_handle_sof_ISR (pdev);
  }
  
  if (gintsts.b.rxstsqlvl) {
    USB_OTG_USBH_handle_rx_qlvl_ISR (pdev);
  }
  
  if (gintsts.b.nptxfempty) {
    USB_OTG_USBH_handle_nptxfempty_ISR (pdev);
  }
  
  if (gintsts.b.ptxfempty)  {
    USB_OTG_USBH_handle_ptxfempty_ISR (pdev);
  }    
  
  if (gintsts.b.hcintr) {
    USB_OTG_USBH_handle_hc_ISR (pdev);
  }
  
  if (gintsts.b.portintr) {
    USB_OTG_USBH_handle_port_ISR (pdev);
  }
  
  if (gintsts.b.disconnect) {
    USB_OTG_USBH_handle_Disconnect_ISR (pdev);  
  }
  
  if (gintsts.b.incomplisoout) {
    USB_OTG_USBH_handle_IncompletePeriodicXfer_ISR (pdev);
  }
    
    
}
Пример #3
0
void USBH_OTG_ISR_Handler()
{
	USB_OTG_GINTSTS_TypeDef gintsts;
	uint32_t retval = 0;
	USB_OTG_CORE_HANDLE *pdev = &USB_OTG_Core;

	enter_interrupt();

	gintsts.d32 = USB_OTG_READ_REG32(&pdev->regs.GREGS->GINTSTS);
	gintsts.d32 &= USB_OTG_READ_REG32(&pdev->regs.GREGS->GINTMSK);
	if (!gintsts.d32)
	{
		exit_interrupt(0);
		return ;
	}

	if (gintsts.b.rxstsqlvl)
	{
		gintsts.b.rxstsqlvl = 0;
		USB_OTG_USBH_handle_rx_qlvl_ISR(pdev);
	}

	if (gintsts.b.nptxfempty)
	{
		gintsts.b.nptxfempty = 0;
		USB_OTG_USBH_handle_nptxfempty_ISR(pdev);
	}

	if (gintsts.b.hcintr)
	{
		gintsts.b.hcintr = 0;
		retval = USB_OTG_USBH_handle_hc_ISR(pdev);
	}

	if (!gintsts.d32)
		goto end;

	if (gintsts.b.sofintr)
	{
		USB_OTG_USBH_handle_sof_ISR(pdev);
	}

	if (gintsts.b.ptxfempty)
	{
		USB_OTG_USBH_handle_ptxfempty_ISR(pdev);
	}

	if (gintsts.b.portintr)
	{
		USB_OTG_USBH_handle_port_ISR(pdev);
	}

	if (gintsts.b.disconnect)
	{
		USB_OTG_USBH_handle_Disconnect_ISR(pdev);

	}

	if (gintsts.b.incomplisoout)
	{
		USB_OTG_USBH_handle_IncompletePeriodicXfer_ISR(pdev);
	}

	if (gintsts.b.datafsusp)
	{

	}

end: 
	exit_interrupt(retval);
}