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

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

?? usbsetup.c

?? S3c2410 board with USB monitoring
?? C
?? 第 1 頁 / 共 2 頁
字號:

    	  	  case ENDPOINT_RECIPIENT:
    	  	  	 if (descSetup.bValueL == 0)
    	  	  	 {
	                       if((descSetup.bIndexL & 0x7f) == 0x00){
	                        StatusGet.Endpoint0= 1;
	                       }
	                       if((descSetup.bIndexL & 0x8f) == 0x81){
	                         StatusGet.Endpoint1= 1;
	                       }
	                       if((descSetup.bIndexL & 0x8f) == 0x03){
	                         StatusGet.Endpoint3= 1;
	                       }
                       }
    	  	  	break;

    	  	  default:
    	  	  	break;
    	  	}
    	  	CLR_EP0_OUTPKTRDY_DATAEND();
    	  	ep0State=EP0_STATE_INIT;
    	  
    	  	break;


    	  case SET_INTERFACE:
    	  	   InterfaceGet.AlternateSetting= descSetup.bValueL;
    	  	   CLR_EP0_OUTPKTRDY_DATAEND(); 
                 ep0State=EP0_STATE_INIT;
    	  	break;

    	  case SYNCH_FRAME:
    	  	ep0State=EP0_STATE_INIT;
    	  	break;

    	  //////////////////////////////////////////////////////////////

  	default:
	    DbgPrintf("[UE:SETUP=%x]",descSetup.bRequest);
    	    CLR_EP0_OUTPKTRDY_DATAEND(); //Because of no data control transfers.
	    ep0State=EP0_STATE_INIT;
	    break;
    
        }
    }
    
    switch(ep0State)
    {	
	case EP0_STATE_INIT:
	    break; 

	//=== GET_DESCRIPTOR:DEVICE ===
    	case EP0_STATE_GD_DEV_0:
            DbgPrintf("[GDD0]");
            WrPktEp0((U8 *)&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((U8 *)&descDev+0x8,8); 
            SET_EP0_IN_PKT_RDY();
            
            ep0State=EP0_STATE_GD_DEV_2;
            break;

    	case EP0_STATE_GD_DEV_2:
            DbgPrintf("[GDD2]");
            WrPktEp0((U8 *)&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((U8 *)&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((U8 *)&descConf+8,1); 
            WrPktEp0((U8 *)&descIf+0,7); 
            SET_EP0_IN_PKT_RDY();
            ep0State=EP0_STATE_GD_CFG_2;
            break;

    	case EP0_STATE_GD_CFG_2:
            DbgPrintf("[GDC2]");
            WrPktEp0((U8 *)&descIf+7,2); 
            WrPktEp0((U8 *)&descEndpt0+0,6); 
            SET_EP0_IN_PKT_RDY();
            ep0State=EP0_STATE_GD_CFG_3;
            break;

    	case EP0_STATE_GD_CFG_3:
            DbgPrintf("[GDC3]");
            WrPktEp0((U8 *)&descEndpt0+6,1); 
            WrPktEp0((U8 *)&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((U8 *)&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((U8 *)&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((U8 *)&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((U8 *)&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((U8 *)&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((U8 *)&descEndpt1+0,7); 
            SET_EP0_INPKTRDY_DATAEND();
            ep0State=EP0_STATE_INIT;            
            break;
            
////////////////////////////////////////////

         case EP0_INTERFACE_GET:
            WrPktEp0((U8 *)&InterfaceGet+0,1);
            SET_EP0_INPKTRDY_DATAEND();
            ep0State=EP0_STATE_INIT;      
         break;

 
        //=== GET_DESCRIPTOR:STRING ===

    	case EP0_STATE_GD_STR_I0:
            DbgPrintf("[GDS0_0]");
           WrPktEp0((U8 *)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((U8 *)descStr1+(ep0SubState*EP0_PKT_SIZE),EP0_PKT_SIZE); 
            	SET_EP0_IN_PKT_RDY();
            	ep0State=EP0_STATE_GD_STR_I1;
            	ep0SubState++;
            }
	    else
	    {
	    	WrPktEp0((U8 *)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((U8 *)descStr2+(ep0SubState*EP0_PKT_SIZE),EP0_PKT_SIZE); 
            	SET_EP0_IN_PKT_RDY();
            	ep0State=EP0_STATE_GD_STR_I2;
            	ep0SubState++;
            }
	    else
	    {
                DbgPrintf("[E]");
	    	WrPktEp0((U8 *)descStr2+(ep0SubState*EP0_PKT_SIZE),
	    		 sizeof(descStr2)-(ep0SubState*EP0_PKT_SIZE)); 
		SET_EP0_INPKTRDY_DATAEND();
		ep0State=EP0_STATE_INIT;     
		ep0SubState=0;
	    }
	    break;

	 case EP0_CONFIG_SET:
	 	WrPktEp0((U8 *)&ConfigSet+0,1); 
            SET_EP0_INPKTRDY_DATAEND();
            ep0State=EP0_STATE_INIT;      
            break;

        case EP0_GET_STATUS0:
	     WrPktEp0((U8 *)&StatusGet+0,1);
            SET_EP0_INPKTRDY_DATAEND();
            ep0State=EP0_STATE_INIT;      
         break;

         case EP0_GET_STATUS1:
	     WrPktEp0((U8 *)&StatusGet+1,1);
            SET_EP0_INPKTRDY_DATAEND();
            ep0State=EP0_STATE_INIT;      
         break;

         case EP0_GET_STATUS2:
	     WrPktEp0((U8 *)&StatusGet+2,1);
            SET_EP0_INPKTRDY_DATAEND();
            ep0State=EP0_STATE_INIT;      
         break;

         case EP0_GET_STATUS3:
	     WrPktEp0((U8 *)&StatusGet+3,1);
            SET_EP0_INPKTRDY_DATAEND();
            ep0State=EP0_STATE_INIT;      
         break;

         case EP0_GET_STATUS4:
	     WrPktEp0((U8 *)&StatusGet+4,1);
            SET_EP0_INPKTRDY_DATAEND();
            ep0State=EP0_STATE_INIT;      
         break;

         
	 	
     	default:
	    DbgPrintf("UE:G?D");

     	    break;
    }
}


   
    
void PrintEp0Pkt(U8 *pt)
{
    int i;
    DbgPrintf("[RCV:");
    for(i=0;i<EP0_PKT_SIZE;i++)
        DbgPrintf("%x,",pt[i]);
    DbgPrintf("]");
}




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|CONF_ATTR_SELFPOWERED;  //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一区二区三区免费野_久草精品视频
国产毛片精品一区| 经典三级视频一区| 午夜日韩在线电影| 亚洲成人午夜影院| 亚洲成人动漫在线免费观看| 午夜精品久久久久久不卡8050| 久久精品夜夜夜夜久久| 精品久久久三级丝袜| 制服丝袜亚洲播放| 精品日产卡一卡二卡麻豆| 久久亚洲精品小早川怜子| 国产欧美日韩视频一区二区| 国产精品国产馆在线真实露脸| 国产91精品在线观看| 99在线精品一区二区三区| 91丨porny丨在线| 精品国产一区二区三区久久久蜜月| 日韩不卡一区二区| 懂色av一区二区在线播放| 99久久精品免费看国产| 91精品国产综合久久久久久| 国产亚洲精品福利| 性久久久久久久久久久久| 国产成人精品一区二区三区四区 | 婷婷国产在线综合| 亚州成人在线电影| 秋霞电影一区二区| 亚洲va欧美va国产va天堂影院| 欧美日韩亚洲国产综合| 久久五月婷婷丁香社区| 日本不卡一区二区三区高清视频| 精品国产一二三| 亚洲一区二区偷拍精品| 国产高清无密码一区二区三区| 午夜伊人狠狠久久| 国产精品18久久久久久久久| 亚洲视频一区在线观看| 亚洲在线一区二区三区| 日韩精品一区二区三区视频在线观看 | 久久精品人人做人人爽97 | 亚洲国产电影在线观看| 日本不卡123| 色哟哟欧美精品| 亚洲激情中文1区| 欧美天堂一区二区三区| 麻豆成人免费电影| 欧美电影免费提供在线观看| 精品在线免费视频| 久久综合狠狠综合| 成人自拍视频在线| 国产精品电影一区二区三区| 99精品久久99久久久久| 中文字幕一区二区三区在线不卡| 日韩美女视频19| 色8久久人人97超碰香蕉987| 亚洲一区电影777| 欧美一区二区三区在线电影| 黄色资源网久久资源365| 日本一区二区动态图| 91高清在线观看| 精品在线亚洲视频| 自拍偷拍欧美精品| 911国产精品| 99久久伊人网影院| 另类小说视频一区二区| 国产精品乱人伦| 日韩亚洲欧美综合| 一本久久精品一区二区| 国产成人综合视频| 日本亚洲欧美天堂免费| 亚洲视频一二三区| 国产日韩欧美精品电影三级在线| 亚洲综合小说图片| 日韩免费在线观看| 欧美日韩一区成人| 日本乱人伦aⅴ精品| 成年人网站91| av电影天堂一区二区在线观看| 精品人在线二区三区| 欧美日韩精品久久久| 精品中文字幕一区二区| 亚洲五码中文字幕| 国产精品久久影院| 777精品伊人久久久久大香线蕉| 中文无字幕一区二区三区 | 国产不卡视频一区二区三区| 日本不卡视频在线观看| 日本亚洲视频在线| 午夜婷婷国产麻豆精品| 亚洲一区二区三区四区在线免费观看| 91丨porny丨户外露出| fc2成人免费人成在线观看播放| 久久久久一区二区三区四区| 久久久久国产免费免费| 国产精品成人网| 欧美韩日一区二区三区| 亚洲国产精品av| 亚洲精品成人天堂一二三| 视频一区欧美精品| 国产在线精品一区二区| av动漫一区二区| 欧美一区二区三区在线观看| 久久久久久久久久久久久女国产乱| 国产成人免费网站| 在线精品视频一区二区三四| 91麻豆免费看片| 欧美成人女星排名| 亚洲欧美欧美一区二区三区| 日本美女视频一区二区| 国产黄人亚洲片| 91麻豆精品国产综合久久久久久| 国产精品亚洲一区二区三区妖精| 中文字幕制服丝袜一区二区三区| 欧美亚洲国产一区二区三区| www亚洲一区| 日韩 欧美一区二区三区| 成人小视频免费观看| 精品免费国产二区三区| 亚洲精品大片www| 成人aa视频在线观看| 69精品人人人人| 亚洲第一二三四区| bt7086福利一区国产| 久久精品夜色噜噜亚洲a∨| 偷拍一区二区三区| 5858s免费视频成人| 亚洲精品乱码久久久久久| 成人av综合一区| 亚洲日本va午夜在线影院| 国产乱理伦片在线观看夜一区| 蜜臀精品一区二区三区在线观看| 一区二区三区欧美亚洲| 色婷婷综合久久久久中文| 日韩理论在线观看| 欧洲亚洲精品在线| 中文字幕在线视频一区| eeuss鲁片一区二区三区在线看| 国产成人自拍网| 国产日韩欧美精品一区| 成人污视频在线观看| 18欧美乱大交hd1984| 色成人在线视频| 午夜不卡在线视频| 精品国精品自拍自在线| 99精品欧美一区二区三区综合在线| 懂色一区二区三区免费观看| 久久精品亚洲乱码伦伦中文 | 99国产麻豆精品| 亚洲欧美日韩综合aⅴ视频| 91最新地址在线播放| 午夜国产精品一区| 国产亚洲精品bt天堂精选| 欧美在线小视频| 激情久久久久久久久久久久久久久久| 国产精品1024| 亚洲视频你懂的| 日韩丝袜美女视频| 99视频精品在线| 精品综合久久久久久8888| 亚洲人成网站色在线观看| 91精品国产综合久久精品性色| 国产女同互慰高潮91漫画| 欧美日韩国产天堂| 99久久精品99国产精品| 精彩视频一区二区三区| ...av二区三区久久精品| 欧美精品一区二区精品网| 欧美日韩精品久久久| 91国产视频在线观看| 成人三级在线视频| 国产成人av福利| 狠狠色丁香婷婷综合| 美日韩一区二区| 日本免费新一区视频| 美女www一区二区| 日韩二区三区在线观看| 日本美女一区二区| 麻豆精品蜜桃视频网站| 麻豆久久一区二区| 精品在线免费观看| 国产福利精品导航| 99视频一区二区| 欧美性大战久久久久久久蜜臀| 亚洲一区成人在线| 亚洲乱码国产乱码精品精小说| 成人高清免费观看| 成人性视频免费网站| 91视频91自| 91精品国产手机| 国产丝袜欧美中文另类| 亚洲精品老司机| 免费观看30秒视频久久| 国产成人一级电影| 欧美自拍偷拍一区| 日韩精品一区在线| 自拍av一区二区三区| 青青青爽久久午夜综合久久午夜| 国产日韩高清在线| 香蕉影视欧美成人| 国产69精品久久99不卡|