⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 drv_usb_irq.c

📁 sparc硬件平台上的usb驱动
💻 C
字号:
/************************************************* Copyright (C), 2007, DTK Computer.     File name: drv_usb_irq.c     Author: MMI Group    Version: 1.0    Date: 2008.04.30     Description: usb module for interrupt     Others:      Function List:     History:          <author>    <time>    <version >    <desc>          Bosco Lee  08/30/04  1.0 build     this moudle *************************************************/#include "drv_usb_irq.h"extern void usb_mainthread ();usb_mainthread (){    init_usb_descriptor ();    while (1)    {	  if (usb_exit == 1)	    {		break;	    }		usbserve();	    	usb_halt ();	 //	sleep (1);    }//      pthread_mutex_unlock(&usb_mutex);    thread_usb = 0;}/*********************************************************************** ** 函数名称: void Usb_Exception(void) ** 功能描述: USB中断服务程序 			  判断中断类型 *************************************************************************/voidUsb_Exception (void){    D_UINT8 i_st;    DISABLE ();			//进入USB中断服务程序时关中断    bEPPflags.bits.in_isr = 1;    i_st = USB_ReadInterruptRegister ();	//读取PDIUSBUSB中断寄存器值    if (i_st != 0)    {	  if (i_st & SC_TRANS_DONE_BIT)	  {		USB_ClearInterruptRegister (SC_TRANS_DONE_BIT);		bEPPflags.bits.trans_done = 1;		usb_unhalt ();			frm_printf ("trans_done done");	  }	  if (i_st & SC_SUSPEND_INT_BIT)	  {		USB_ClearInterruptRegister (SC_SUSPEND_INT_BIT);		sleep(2);		frm_printf ("suspend done");	  }	  if (i_st & SC_RESUME_INT_BIT)	  {		USB_ClearInterruptRegister (SC_RESUME_INT_BIT);		sleep(2);		frm_printf ("resume done");	  }	  if (i_st & SC_RESET_EVENT_BIT)	  {	      USB_ClearInterruptRegister (SC_RESET_EVENT_BIT);				  frm_printf ("reseting ");		  bEPPflags.bits.bus_reset = 1;		  usb_unhalt ();				  }	  if (i_st & SC_SOF_RECEIVED_BIT)	  {		  USB_ClearInterruptRegister (SC_SOF_RECEIVED_BIT);		  sleep(2);		  frm_printf ("SOF done");	  }	  if (i_st & SC_NAK_SENT_INT_BIT)	  {		  USB_ClearInterruptRegister (SC_NAK_SENT_INT_BIT);		  sleep(2); 		  frm_printf ("NAK-set done");	  }    }    bEPPflags.bits.in_isr = 0;    ENABLE ();			//退出USB中断服务程序时开中断}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -