亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? usbsetup.c

?? USB-TEST是USB通信的例子
?? C
?? 第 1 頁 / 共 2 頁
字號:
       }
   }
    
    switch(ep0State)
    {	
		case EP0_STATE_INIT:
		    break; 
		// GET_DESCRIPTOR:DEVICE
    	case EP0_STATE_GD_DEV_0:
            DbgPrintf("[GDD0]");
            WrPktEp0((UINT8T *)&descDev+0,8); 					//EP0_PKT_SIZE
            SET_EP0_IN_PKT_RDY();
            ep0State=EP0_STATE_GD_DEV_1;
            break;
    	case EP0_STATE_GD_DEV_1:
            DbgPrintf("[GDD1]");
            WrPktEp0((UINT8T *)&descDev+0x8,8); 
            SET_EP0_IN_PKT_RDY();
            
            ep0State=EP0_STATE_GD_DEV_2;
            break;
    	case EP0_STATE_GD_DEV_2:
            DbgPrintf("[GDD2]");
            WrPktEp0((UINT8T *)&descDev+0x10,2);   				//8+8+2=0x12
            SET_EP0_INPKTRDY_DATAEND();
            ep0State=EP0_STATE_INIT;
            break;

        //=== GET_DESCRIPTOR:CONFIGURATION+INTERFACE+ENDPOINT0+ENDPOINT1 ===
        //Windows98 gets these 4 descriptors all together by issuing only a request.
        //Windows2000 gets each descriptor seperately.
    	case EP0_STATE_GD_CFG_0:
            DbgPrintf("[GDC0]");
            WrPktEp0((UINT8T *)&descConf+0,8); 					//EP0_PKT_SIZE
            SET_EP0_IN_PKT_RDY();
            ep0State=EP0_STATE_GD_CFG_1;
            break;
    	case EP0_STATE_GD_CFG_1:
            DbgPrintf("[GDC1]");
            WrPktEp0((UINT8T *)&descConf+8,1); 
            WrPktEp0((UINT8T *)&descIf+0,7); 
            SET_EP0_IN_PKT_RDY();
            ep0State=EP0_STATE_GD_CFG_2;
            break;
    	case EP0_STATE_GD_CFG_2:
            DbgPrintf("[GDC2]");
            WrPktEp0((UINT8T *)&descIf+7,2); 
            WrPktEp0((UINT8T *)&descEndpt0+0,6); 
            SET_EP0_IN_PKT_RDY();
            ep0State=EP0_STATE_GD_CFG_3;
            break;
    	case EP0_STATE_GD_CFG_3:
            DbgPrintf("[GDC3]");
            WrPktEp0((UINT8T *)&descEndpt0+6,1); 
            WrPktEp0((UINT8T *)&descEndpt1+0,7); 
            SET_EP0_IN_PKT_RDY();
            ep0State=EP0_STATE_GD_CFG_4;            
            break;
    	case EP0_STATE_GD_CFG_4:
            DbgPrintf("[GDC4]");
            //zero length data packit 
            SET_EP0_INPKTRDY_DATAEND();
            ep0State=EP0_STATE_INIT;            
            break;

        // GET_DESCRIPTOR:CONFIGURATION ONLY 
    	case EP0_STATE_GD_CFG_ONLY_0:
            DbgPrintf("[GDCO0]");
            WrPktEp0((UINT8T *)&descConf+0,8); 					//EP0_PKT_SIZE
            SET_EP0_IN_PKT_RDY();
            ep0State=EP0_STATE_GD_CFG_ONLY_1;
            break;
    	case EP0_STATE_GD_CFG_ONLY_1:
            DbgPrintf("[GDCO1]");
            WrPktEp0((UINT8T *)&descConf+8,1); 
            SET_EP0_INPKTRDY_DATAEND();
            ep0State=EP0_STATE_INIT;            
            break;

        // GET_DESCRIPTOR:INTERFACE ONLY 
    	case EP0_STATE_GD_IF_ONLY_0:
            DbgPrintf("[GDI0]");
            WrPktEp0((UINT8T *)&descIf+0,8); 
            SET_EP0_IN_PKT_RDY();
            ep0State=EP0_STATE_GD_IF_ONLY_1;
            break;
    	case EP0_STATE_GD_IF_ONLY_1:
            DbgPrintf("[GDI1]");
            WrPktEp0((UINT8T *)&descIf+8,1); 
            SET_EP0_INPKTRDY_DATAEND();
            ep0State=EP0_STATE_INIT;            
            break;

        // GET_DESCRIPTOR:ENDPOINT 0 ONLY 
    	case EP0_STATE_GD_EP0_ONLY_0:
            DbgPrintf("[GDE00]");
            WrPktEp0((UINT8T *)&descEndpt0+0,7); 
            SET_EP0_INPKTRDY_DATAEND();
            ep0State=EP0_STATE_INIT;            
            break;
            
        // GET_DESCRIPTOR:ENDPOINT 1 ONLY 
    	case EP0_STATE_GD_EP1_ONLY_0:
            DbgPrintf("[GDE10]");
            WrPktEp0((UINT8T *)&descEndpt1+0,7); 
            SET_EP0_INPKTRDY_DATAEND();
            ep0State=EP0_STATE_INIT;            
            break;
 
        // GET_DESCRIPTOR:STRING  
    	case EP0_STATE_GD_STR_I0:
            DbgPrintf("[GDS0_0]");
		    WrPktEp0((UINT8T *)descStr0, 4 );  
		    SET_EP0_INPKTRDY_DATAEND();
		    ep0State=EP0_STATE_INIT;     
		    ep0SubState=0;
		    break;
		case EP0_STATE_GD_STR_I1:
            DbgPrintf("[GDS1_%d]",ep0SubState);
            if( (ep0SubState*EP0_PKT_SIZE+EP0_PKT_SIZE)<sizeof(descStr1) )
            {
            	WrPktEp0((UINT8T *)descStr1+(ep0SubState*EP0_PKT_SIZE),EP0_PKT_SIZE); 
            	SET_EP0_IN_PKT_RDY();
            	ep0State=EP0_STATE_GD_STR_I1;
            	ep0SubState++;
           }
		    else
		    {
		    	WrPktEp0((UINT8T *)descStr1+(ep0SubState*EP0_PKT_SIZE),
		    		 sizeof(descStr1)-(ep0SubState*EP0_PKT_SIZE)); 
				SET_EP0_INPKTRDY_DATAEND();
				ep0State=EP0_STATE_INIT;     
				ep0SubState=0;
		   }
		    break;

		case EP0_STATE_GD_STR_I2:
            DbgPrintf("[GDS2_%d]",ep0SubState);
            if( (ep0SubState*EP0_PKT_SIZE+EP0_PKT_SIZE)<sizeof(descStr2) )
            {
            	WrPktEp0((UINT8T *)descStr2+(ep0SubState*EP0_PKT_SIZE),EP0_PKT_SIZE); 
            	SET_EP0_IN_PKT_RDY();
            	ep0State=EP0_STATE_GD_STR_I2;
            	ep0SubState++;
           }
		    else
		    {
                DbgPrintf("[E]");
		    	WrPktEp0((UINT8T *)descStr2+(ep0SubState*EP0_PKT_SIZE),
		    		 sizeof(descStr2)-(ep0SubState*EP0_PKT_SIZE)); 
				SET_EP0_INPKTRDY_DATAEND();
				ep0State=EP0_STATE_INIT;     
				ep0SubState=0;
		   }
		    break;
     	default:
		    DbgPrintf("UE:G?D");
	    	    break;
   }
}

/*********************************************************************************************
* name:		PrintEp0Pkt
* func:		Print the Ep0's packet 
* para:		UINT8T *pt	--	pointer to Ep0's packet
* ret:		none
* modify:
* comment:		
*********************************************************************************************/
void PrintEp0Pkt(UINT8T *pt)
{
    int i;
    DbgPrintf("[RCV:");
    for(i=0;i<EP0_PKT_SIZE;i++)
        DbgPrintf("%x,",pt[i]);
    DbgPrintf("]");
}

/*********************************************************************************************
* name:		InitDescriptorTable
* func:		Initialization of USB Descriptor Table 
* para:		none 
* ret:		none
* modify:
* comment:		
*********************************************************************************************/
void InitDescriptorTable(void)
{	
    //Standard device descriptor
    descDev.bLength=0x12;										//EP0_DEV_DESC_SIZE=0x12 bytes    
    descDev.bDescriptorType=DEVICE_TYPE;         
    descDev.bcdUSBL=0x10;
    descDev.bcdUSBH=0x01;										//Ver 1.10
    descDev.bDeviceClass=0xFF;									//0x0          
    descDev.bDeviceSubClass=0x0;          
    descDev.bDeviceProtocol=0x0;          
    descDev.bMaxPacketSize0=0x8;         
    descDev.idVendorL=0x45;
    descDev.idVendorH=0x53;
    descDev.idProductL=0x34;
    descDev.idProductH=0x12;
    descDev.bcdDeviceL=0x00;
    descDev.bcdDeviceH=0x01;
    descDev.iManufacturer=0x1;									//index of string descriptor
    descDev.iProduct=0x2;										//index of string descriptor 
    descDev.iSerialNumber=0x0;
    descDev.bNumConfigurations=0x1;

    //Standard configuration descriptor
    descConf.bLength=0x9;    
    descConf.bDescriptorType=CONFIGURATION_TYPE;         
    descConf.wTotalLengthL=0x20;								//<cfg desc>+<if desc>+<endp0 desc>+<endp1 desc>
    descConf.wTotalLengthH=0;
    descConf.bNumInterfaces=1;
	//dbg    descConf.bConfigurationValue=2;  why 2? There's no reason.
    descConf.bConfigurationValue=1;  
    descConf.iConfiguration=0;
    descConf.bmAttributes=CONF_ATTR_DEFAULT;					//bus powered only.
    descConf.maxPower=25;										//draws 50mA current from the USB bus.          

    //Standard interface descriptor
    descIf.bLength=0x9;    
    descIf.bDescriptorType=INTERFACE_TYPE;         
    descIf.bInterfaceNumber=0x0;
    descIf.bAlternateSetting=0x0;								
    descIf.bNumEndpoints=2;										//# of endpoints except EP0
    descIf.bInterfaceClass=0xff;								//0x0 ?
    descIf.bInterfaceSubClass=0x0;  
    descIf.bInterfaceProtocol=0x0;
    descIf.iInterface=0x0;

    //Standard endpoint0 descriptor
    descEndpt0.bLength=0x7;    
    descEndpt0.bDescriptorType=ENDPOINT_TYPE;         
    descEndpt0.bEndpointAddress=1|EP_ADDR_IN;					// 2400Xendpoint 1 is IN endpoint.
    descEndpt0.bmAttributes=EP_ATTR_BULK;
    descEndpt0.wMaxPacketSizeL=EP1_PKT_SIZE;					//64
    descEndpt0.wMaxPacketSizeH=0x0;
    descEndpt0.bInterval=0x0;									//not used

    //Standard endpoint1 descriptor
    descEndpt1.bLength=0x7;    
    descEndpt1.bDescriptorType=ENDPOINT_TYPE;         
    descEndpt1.bEndpointAddress=3|EP_ADDR_OUT;					// 2400X endpoint 3 is OUT endpoint.
    descEndpt1.bmAttributes=EP_ATTR_BULK;
    descEndpt1.wMaxPacketSizeL=EP3_PKT_SIZE;					//64
    descEndpt1.wMaxPacketSizeH=0x0;
    descEndpt1.bInterval=0x0;									//not used 
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本一区二区视频在线| 久久99精品国产麻豆婷婷| 日韩电影在线观看一区| 欧美午夜影院一区| 婷婷丁香激情综合| 2017欧美狠狠色| 精品成人在线观看| 国产很黄免费观看久久| 一区二区三区日韩在线观看| 欧美精品第1页| 中文文精品字幕一区二区| 亚洲一区二区四区蜜桃| 欧美一区二区三区视频在线观看| 国产精品色哟哟网站| 久久久久久夜精品精品免费| 欧美无人高清视频在线观看| 欧美做爰猛烈大尺度电影无法无天| 久久久国产精华| 国产亚洲欧洲997久久综合| 99在线精品一区二区三区| 天天影视涩香欲综合网| 免费成人在线观看| 亚洲精品日韩一| 久久精品夜夜夜夜久久| 国产精品国产精品国产专区不片| 麻豆精品视频在线观看免费| 欧美色窝79yyyycom| 欧美久久久久久蜜桃| 日韩一级完整毛片| 91视频观看免费| av一区二区不卡| 麻豆国产欧美日韩综合精品二区| 亚洲日本va午夜在线电影| 日韩电影网1区2区| 精品久久五月天| 欧美午夜精品免费| 成人av动漫网站| 国产精品麻豆网站| 欧美视频一区在线| 国产精品一级在线| 麻豆成人久久精品二区三区小说| 中文字幕亚洲不卡| 久久久久免费观看| 一区二区三区精品久久久| 免费精品视频在线| 无码av中文一区二区三区桃花岛| 亚洲国产精品黑人久久久| 久久综合狠狠综合久久激情| 91精品午夜视频| 欧美日韩精品欧美日韩精品一 | 成人免费福利片| 国内精品免费**视频| 亚洲国产欧美另类丝袜| 日本美女视频一区二区| 欧美日韩久久久久久| 国产午夜精品久久久久久免费视 | 欧美日韩国产不卡| 久久久久久久久免费| 亚洲.国产.中文慕字在线| 亚洲综合清纯丝袜自拍| 亚洲欧洲国产专区| 激情综合网av| 国产suv精品一区二区三区| 国产乱码字幕精品高清av| 国产精品系列在线播放| 91麻豆精品国产91久久久久 | 欧美成人video| 91精品91久久久中77777| 懂色一区二区三区免费观看 | 日韩视频国产视频| 一区二区三区加勒比av| aa级大片欧美| 欧美国产精品专区| 一区二区三区在线视频免费观看| 一区二区三区四区视频精品免费 | 日韩久久免费av| 91精品婷婷国产综合久久| 亚洲伦在线观看| 视频一区免费在线观看| 在线视频你懂得一区| 欧美人牲a欧美精品| 日本vs亚洲vs韩国一区三区二区| 日本免费在线视频不卡一不卡二| 久久精品免费观看| 国内精品国产成人| 精品国产乱码久久久久久闺蜜| 国产欧美日本一区二区三区| 国产一区二区精品久久91| 91在线观看地址| 亚洲精品国产一区二区三区四区在线| 性久久久久久久| 国产91精品欧美| 国产精品电影院| 在线视频你懂得一区| 久久久影院官网| 风间由美一区二区三区在线观看| 欧美伊人久久大香线蕉综合69| 精品国产一区二区三区不卡| 国产专区欧美精品| 国产亚洲精品7777| 蜜臀av在线播放一区二区三区| 欧美日韩电影在线| 欧美韩国日本不卡| 99精品久久免费看蜜臀剧情介绍| 九色综合狠狠综合久久| av在线不卡网| 亚洲精品国产高清久久伦理二区| 麻豆成人久久精品二区三区小说| 色综合视频一区二区三区高清| 成人黄色av电影| 日韩精品一区二区三区中文精品| 亚洲一区二区偷拍精品| 日韩欧美精品在线| 91影视在线播放| 日本免费新一区视频| 国产精品超碰97尤物18| 日韩一区二区三区免费看| 国产乱码精品一区二区三| 洋洋av久久久久久久一区| 精品国产免费视频| 精品视频123区在线观看| 精品久久久久久久久久久久久久久久久| 国产成人在线看| 一区二区三区四区精品在线视频 | 国产成人一区二区精品非洲| 国产精品久久久久婷婷二区次| 激情文学综合丁香| 亚洲人成网站影音先锋播放| 欧美成人伊人久久综合网| 五月综合激情网| 国产精品国产三级国产有无不卡| 国产99久久久精品| 奇米精品一区二区三区在线观看| 欧美美女喷水视频| www.色综合.com| 国产九色精品成人porny| 国产人久久人人人人爽| 国产麻豆精品视频| 午夜视频在线观看一区二区三区| 欧美一区二区三区四区久久| 欧美日韩国产免费一区二区| 亚洲成人免费电影| 中文字幕亚洲精品在线观看| av在线不卡观看免费观看| 韩国成人精品a∨在线观看| 日本伊人午夜精品| 亚洲成av人片www| 一区二区欧美在线观看| 亚洲综合激情另类小说区| 色婷婷久久99综合精品jk白丝| 亚洲人成精品久久久久| 国产精品丝袜一区| 在线免费观看一区| 日本久久一区二区三区| 捆绑调教一区二区三区| 国产日产欧美一区| 国产欧美日韩精品a在线观看| 91免费国产在线| www.色精品| 色激情天天射综合网| 裸体一区二区三区| 国产精品成人一区二区三区夜夜夜| 欧美图片一区二区三区| 91麻豆精品视频| 国产成人av影院| 精品一区二区日韩| 麻豆一区二区在线| 精品一二线国产| 国产一区二区三区av电影| 国产一区二区三区美女| 国产精品视频一二| 最近日韩中文字幕| 亚洲福利国产精品| 日本亚洲三级在线| 亚洲女厕所小便bbb| 一级特黄大欧美久久久| 五月婷婷综合网| 麻豆91在线播放| jiyouzz国产精品久久| 免费欧美日韩国产三级电影| 中文字幕中文字幕一区二区| 亚洲天堂成人网| 午夜一区二区三区在线观看| 蜜桃久久久久久| 国产99精品国产| 欧美日韩黄色一区二区| 成人晚上爱看视频| 色婷婷综合激情| 粉嫩高潮美女一区二区三区| 一本一本大道香蕉久在线精品 | 韩国视频一区二区| 丰满白嫩尤物一区二区| 精品视频一区二区不卡| 91麻豆成人久久精品二区三区| 国产成a人亚洲| 欧美日韩精品高清| 国产精品国产自产拍高清av| 青青草成人在线观看| 日韩精品色哟哟| 午夜私人影院久久久久|