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

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

?? udc.bk

?? 君正早期ucos系統(只有早期的才不沒有打包成庫),MPLAYER,文件系統,圖片解碼,瀏覽,電子書,錄音,想學ucos,識貨的人就下吧 russblock fmradio explore set
?? BK
?? 第 1 頁 / 共 2 頁
字號:
		}else			BusNotify(handle,UDC_HIGHSPEED,0,0);		// enable USB Suspend interrupt				byte = jz_readb(USB_REG_INTRUSBE);		jz_writeb(USB_REG_INTRUSBE,byte | USB_INTR_SUSPEND);      		BusNotify(handle,UDC_RESET,0,0);			}	if(val & USB_INTR_SUSPEND)	{		BusNotify(handle,UDC_SUSPEND,0,0);				byte = jz_readb(USB_REG_INTRUSBE);		jz_writeb(USB_REG_INTRUSBE,(byte & (~USB_INTR_SUSPEND) & 7));		printf("udc suspend %x\n",byte);#ifdef USE_MIDWARE		if ( protocool_stat == CABLE_CONNECTED )		{			printf("USB uninstall ! %d \n",protocool_stat);			udcsrc.Src = SRC_UDC;			udcsrc.Event = EVENT_UNINSTALL;			protocool_stat = CABLE_DISCONNECT;			OSQPost(udcsrc.CurEvent1 , (void *)&udcid);			OSSemPost(udcsrc.CurEvent);			OSSemPend(udcsrc.CurEvent2, 0 , &err);			OSTimeDly(350);						if ( check_gpio(GPIO_UDC_DETE) )   //cable have not disconnect			{				printf("Reas power cable insert! \n");				udcsrc.Src = SRC_UDC;				udcsrc.Event = EVENT_POWER_IN;				OSQPost(udcsrc.CurEvent1 , (void *)&udcid);				OSSemPost(udcsrc.CurEvent);				OSSemPend(udcsrc.CurEvent2, 0 , &err);			}		}		else 			jz_writeb(USB_REG_POWER,0x60);   //High speed	#endif	}	if(val & 2)	{		printf("udc resume\n");	}		}void udc4740Proc (unsigned int handle){	u8	IntrUSB = 0;	u16	IntrIn = 0;	u16	IntrOut = 0;	u16 IntrDMA = 0;	PEPSTATE pep;	cli();/* Read interrupt regiters */	IntrUSB = jz_readb(USB_REG_INTRUSB);/* Check for resume from suspend mode */	if(IntrUSB != 8)		udcIntrbhandle(handle,IntrUSB);	/* Check for endpoint 0 interrupt */		IntrIn  = jz_readw(USB_REG_INTRIN);//	if(jz_readw(USB_REG_INTROUTE))	IntrOut = jz_readw(USB_REG_INTROUT);	//printf("IntrIn = %x IntrOut = %x\n",IntrIn,IntrOut);		if (IntrIn & USB_INTR_EP0) 	{		//dprintf("\nUDC EP0 operations!\n");		EP0_Handler(handle);	}		pep = GetEpState(1);	if(pep->state == CPU_WRITE)	{		if (IntrIn & 2) 		{			dprintf("\nUDC EP1 IN operation!");			EPIN_Handler(handle,pep);			//return;		}	}		IntrDMA = jz_readb(USB_REG_INTR);	//printf("IntrDMA = %x\n",IntrDMA);		if(pep->state == DMA_WRITE)	{		dprintf("dma write intr = %x\n",IntrDMA);						if(IntrDMA & 1)		{						dprintf("addr %x,count %x,cntl %x\r\n",				   jz_readl(USB_REG_ADDR1),jz_readl(USB_REG_COUNT1),jz_readl(USB_REG_CNTL1));			DMA_SendData_Finish();						if(pep->curlen != pep->totallen)			{				/*??????????????*/				printf("cur_len %d,totallen %d\r\n",pep->curlen,pep->totallen);				usb_setw(USB_REG_INTRINE,EP1_INTR_BIT);  // open ep1 in intr				pep->state = CPU_WRITE;				EPIN_Handler(handle,pep);							                    //jz_writeb(USB_REG_INDEX, 1);				//usb_setb(USB_REG_INCSR, USB_INCSR_INPKTRDY);			}else 			{				pep->state = WRITE_FINISH;				usb_clearw(USB_REG_INTRINE,EP1_INTR_BIT);  // close ep1 in intr				BusNotify(handle,UDC_PROTAL_SEND_FINISH,						   (unsigned char *)(pep->data_addr),pep->curlen);											}			//return;		}			}		pep = GetEpState(2);	if(pep->state == CPU_READ)	{				if ((IntrOut /*& IntrOutMask*/ ) & 2) 		{			dprintf("UDC EP1 OUT operation!\n");			EPOUT_Handler(handle,pep);			//return;				}	}	if(pep->state == DMA_READ)	{		if(IntrDMA == 0)			IntrDMA = jz_readb(USB_REG_INTR);		dprintf("\nDMA_REA intrDMA = %x\n",IntrDMA);				if (IntrDMA & 0x2)     //channel 2 :OUT		{			dprintf("\n INTR 2!");			DMA_ReceieveData_Finish();			if((pep->totallen % pep->fifosize) != 0)			{				usb_setw(USB_REG_INTROUTE,EP1_INTR_BIT);	//Enable Ep Out				pep->state = CPU_READ;				EPOUT_Handler(handle,pep);			}else			{				pep->state = READ_FINISH;				BusNotify(handle,UDC_PROTAL_RECEIVE_FINISH,						  (unsigned char *)(pep->data_addr),pep->curlen);			}			//return;					}	}	sti();	//dprintf("\n UDCProc finish!\n");		//return;}void GPIO_Handle(unsigned int arg){	//__gpio_ack_irq(GPIO_UDC_DETE);	__gpio_mask_irq(GPIO_UDC_DETE);	udc_irq_type |= 0x10;	OSSemPost(udcEvent);}void EnableDevice(unsigned int handle);static void GPIO_IST(void * arg){	PUDC_BUS pBus = (PUDC_BUS) arg;	unsigned int stat = 0;	unsigned int gpio_state = 0;	unsigned int count = 0;	static unsigned int judge = 0, i;	u8 byte1 , byte2 ,err;	dprintf("\n GPIO IRQ!!");	if ( cable_stat == CABLE_CONNECTED )    //connected!	{		OSTimeDly(100);		if ( check_gpio(GPIO_UDC_DETE) )  //false disconnect			return ;				if ( protocool_stat == CABLE_CONNECTED )  //info suspend		{			printf("cable USE uninstall ! \n");			udcsrc.Src = SRC_UDC;			udcsrc.Event = EVENT_UNINSTALL;			protocool_stat = CABLE_DISCONNECT;			OSQPost(udcsrc.CurEvent1 , (void *)&udcid);			OSSemPost(udcsrc.CurEvent);			OSSemPend(udcsrc.CurEvent2, 0 ,&err);		}		//Do disabledevice		cable_stat = CABLE_DISCONNECT;		udcsrc.Src = SRC_UDC;		udcsrc.Event = EVENT_POWER_OUT;		OSQPost(udcsrc.CurEvent1 , (void *)&udcid);		OSSemPost(udcsrc.CurEvent);		OSSemPend(udcsrc.CurEvent2, 0 ,&err);		BusNotify((unsigned int)pBus,UDC_REMOVE,0,0);		DisableDevice(0);		__gpio_as_irq_rise_edge(GPIO_UDC_DETE);	}	else                                    //disconnect!	{//		OSTimeDly(50);		if ( !check_gpio(GPIO_UDC_DETE) )  //false connect			return ;		//for test USB or POWER cable!!		EnableDevice(0);		for ( i = 0; i <= MAX_CABLE_DETE; i ++)		{			//sleep wait a while!			OSTimeDly(CABLE_DETE_TIME/10); 			byte1 = jz_readb(USB_REG_POWER);			byte2 = jz_readb(USB_REG_INTRUSB);			if ( ( byte1 & 0x08 )|| ( byte2 & 0x04 ) ) //reset occur!				break;			else 				printf("Wait reset time out! \n");		}//		DisableDevice(0);		cable_stat = CABLE_CONNECTED;		__gpio_as_irq_fall_edge(GPIO_UDC_DETE);		if ( i > MAX_CABLE_DETE ) //power cable!		{			printf("Power cable insert! \n");			udcsrc.Src = SRC_UDC;			udcsrc.Event = EVENT_POWER_IN;			OSQPost(udcsrc.CurEvent1 , (void *)&udcid);			OSSemPost(udcsrc.CurEvent);			OSSemPend(udcsrc.CurEvent2, 0 ,&err);			return ;		}		else                      //usb cable!!		{			udcsrc.Src = SRC_UDC;			udcsrc.Event = EVENT_USB_IN;			OSQPost(udcsrc.CurEvent1 , (void *)&udcid);			OSSemPost(udcsrc.CurEvent);			printf("USB cable insert! \n");			OSSemPend(udcsrc.CurEvent2 , 0, &err);			printf("read val %d \n",res.Val);			if ( res.Val == 1 )  //|| res.Val == 0xffff) //up layer said yes!			{//				protocool_stat = CABLE_CONNECTED;				BusNotify((unsigned int)pBus,UDC_JUDGE,0,0);			}			else           //up layer said no!			{			    printf("dddddddddddddddd \n");			    DisableDevice(0);   				protocool_stat = CABLE_DISCONNECT;				printf("As power cable insert! \n");			}		}	}	}void GPIO_IRQ_init(PUDC_BUS pBus){	int err = 0;	__gpio_as_irq_rise_edge(GPIO_UDC_DETE);	request_irq(IRQ_GPIO_UDC_DETE, GPIO_Handle, pBus);	__gpio_disable_pull(GPIO_UDC_DETE);	REG_CPM_SCR &= ~CPM_SCR_USBPHY_ENABLE;  //disable UDC_PHY	jz_writeb(USB_REG_POWER,0x60);   //High speed	}static void udcIntrHandler(unsigned int arg){	__intc_mask_irq(IRQ_UDC);	udc_irq_type |= 0x1;	//dprintf("UDC irq\r\n");	OSSemPost(udcEvent);}static void udcTaskEntry(void *arg){	u8 err;	while (1) {		OSSemPend(udcEvent, 0, &err);		dprintf("udc_irq_type = %x\r\n",udc_irq_type);				if(udc_irq_type & 0x10)		{			GPIO_IST(arg);			udc_irq_type &= ~0x10;			__gpio_unmask_irq(GPIO_UDC_DETE);		}		if(udc_irq_type & 1)		{			udc4740Proc((unsigned int)arg);			udc_irq_type &= ~0x1;			__intc_unmask_irq(IRQ_UDC);					}	}}/*   interface   */static void SetAddress(unsigned int handle,unsigned short value){	dprintf("Set address %d\r\n",value);#if 1	protocool_stat = CABLE_CONNECTED;#endif	jz_writeb(USB_REG_FADDR,value);}void EnableDevice(unsigned int handle){	__cpm_start_udc();	REG_CPM_SCR |= CPM_SCR_USBPHY_ENABLE;	jz_writeb(USB_REG_POWER,0x60);     //enable sofeconnect	__intc_unmask_irq(IRQ_UDC);	printf("Enable USB Phy!\r\n");	}static void DisableDevice(unsigned int handle){	u8 err;  	REG_CPM_SCR &= ~CPM_SCR_USBPHY_ENABLE;//	jz_writeb(USB_REG_POWER,0x00);      //disable sofeconnet!	jz_readb(USB_REG_INTRUSB);	jz_readw(USB_REG_INTRIN);	jz_readw(USB_REG_INTROUT);	udc_irq_type = 0;	OSSemSet(udcEvent,0,&err);	__intc_ack_irq(IRQ_UDC);	__cpm_stop_udc();	__intc_mask_irq(IRQ_UDC);	printf("Disable USB Phy!\r\n");}void StartTransfer(unsigned int handle,unsigned char ep,unsigned char *buf,unsigned int len){	PEPSTATE pep;	dprintf("StartTransfer ep = %x buf:%08x len = %d\r\n",ep,buf,len);	unsigned char state;	switch(ep)	{	case 0:		pep = GetEpState(0);		pep->totallen = len;		pep->curlen = 0;		pep->data_addr = (unsigned int)buf;				pep->state = CPU_WRITE;				break;	case 0x81:		pep = GetEpState(1);		pep->totallen = len;		pep->curlen = 0;		pep->data_addr = (unsigned int)buf;		usb_setw(USB_REG_INTRINE,EP1_INTR_BIT); //open ep1 in intr		if(len < pep->fifosize)		{			pep->state = CPU_WRITE;						jz_writeb(USB_REG_INDEX,1);			state =  jz_readw(USB_REG_INCSR);			if(!(state & EP_FIFO_NOEMPTY))			{				len = len > pep->fifosize ? pep->fifosize :len;				udcWriteFifo(pep,len);				usb_setw(USB_REG_INCSR, USB_INCSR_INPKTRDY);									}											}		else		{			jz_writeb(USB_REG_INDEX,1);			state =  jz_readw(USB_REG_INCSR);			pep->state = DMA_WRITE;			if(!(state & EP_FIFO_NOEMPTY))				DMA_SendData(pep);			}		break;			case 0x1:		pep = GetEpState(2);		pep->totallen = len;		pep->curlen = 0;		pep->data_addr = (unsigned int)buf;		if(len < pep->fifosize)		{						pep->state = CPU_READ;			usb_setw(USB_REG_INTROUTE,EP1_INTR_BIT);	//Enable Ep Out					}		else		{			pep->state = DMA_READ;			DMA_ReceiveData(pep);					}		break;	case 0xff:             //mean send stall!//		printf("Send Stall! %x \n",jz_readw(USB_REG_INCSR));		usb_setw( USB_REG_INCSR, 0x10);	//set stall		while( ! (jz_readw(USB_REG_INCSR) & 0x20 ) );                //wait stall sent!		usb_setw( USB_REG_INCSR, 0x60);	             //clear datatag!		usb_clearw( USB_REG_INCSR, 0x10);	             //clear sendstall		usb_clearw( USB_REG_INCSR, 0x20);	             //clear sentstall//		printf("Clear stall! %x \n",jz_readw(USB_REG_INCSR));		break;	}}void InitEndpointSuppost(unsigned int handle,unsigned char *ep,USB_ENDPOINT_TYPE ep_type,unsigned short *ep_max_pkg){	PEPSTATE pep;	if(ep_type == ENDPOINT_TYPE_CONTROL)	{		*ep = 0;		*ep_max_pkg = MAX_EP0_SIZE;			}	if(ep_type == ENDPOINT_TYPE_BULK)	{		if(*ep & 0x80)			pep = GetEpState(1);		else			pep = GetEpState(2);				*ep = pep->ep;		*ep_max_pkg = pep->fifosize;	}//	printf("ep = %x ep_type = %x epmax = %x\r\n",*ep,ep_type,pep->fifosize);	}#ifdef USE_MIDWAREstatic void GetRequest(MIDSRCDTA *dat){	dat->Val = res.Val;//	printf("Up layer get :%d \n",res.Val);}static void Response(MIDSRCDTA *dat){	res.Val = dat->Val;	printf("Up layer said :%d \n",res.Val);}#endifvoid InitUDC(PUDC_BUS pBus){	pBus->EnableDevice = EnableDevice;	pBus->SetAddress = SetAddress;	pBus->StartTransfer = StartTransfer;	pBus->InitEndpointSuppost = InitEndpointSuppost;	pBus->DisableDevice = DisableDevice;	printf("Init UDC %s %s\n",__DATE__,__TIME__);#ifdef USE_MIDWARE	udcsrc.GetRequest = GetRequest;	udcsrc.Response = Response;	udcsrc.Name = "UDC";	printf("Register Midware SRC udc! \n");	RegisterMidSrc((PMIDSRC)&udcsrc);	udcid = udcsrc.ID;//	res.Val = 0xffff;	cable_stat = CABLE_DISCONNECT;	protocool_stat = CABLE_DISCONNECT;#endif		dprintf("Init UDC\n");	USB_Version=USB_HS;	__intc_mask_irq(IRQ_UDC);	__gpio_mask_irq(GPIO_UDC_DETE);		udcEvent = OSSemCreate(0);	dprintf("UDC with DMA reset!!\r\n");	request_irq(IRQ_UDC, udcIntrHandler, 0);	GPIO_IRQ_init(pBus);	udc_reset((unsigned int)pBus);	dprintf("UDC with DMA reset finish!!\r\n");	dprintf("Create UDC Task!!\r\n");	OSTaskCreate(udcTaskEntry, (void *)pBus,		     (void *)&udcTaskStack[UDC_TASK_STK_SIZE - 1],		     UDC_TASK_PRIO);    local_pBus = pBus;//	__gpio_unmask_irq(GPIO_UDC_DETE);//	__intc_unmask_irq(IRQ_UDC);#if 1	if ( __gpio_get_pin(GPIO_UDC_DETE) == 1 )	{		__gpio_mask_irq(GPIO_UDC_DETE);		udc_irq_type |= 0x10;		OSSemPost(udcEvent);	}#endif}int UDC_DetectStatus(void){	if ( protocool_stat == CABLE_CONNECTED )		return 0;	else return 1;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲成人中文在线| 亚洲小少妇裸体bbw| 亚洲精品ww久久久久久p站| 美女一区二区在线观看| 欧美在线免费播放| 中文字幕精品一区二区三区精品| 五月激情丁香一区二区三区| 99在线视频精品| 精品久久一区二区| 婷婷夜色潮精品综合在线| 99久久精品费精品国产一区二区| 欧美r级电影在线观看| 天天射综合影视| 欧美午夜免费电影| 1024成人网| 99精品久久只有精品| 国产欧美日韩麻豆91| 国产iv一区二区三区| 国产欧美日韩中文久久| 精久久久久久久久久久| 欧美一区二区观看视频| 奇米色777欧美一区二区| 在线精品视频免费播放| 一个色在线综合| 欧日韩精品视频| 亚洲国产一二三| 欧美午夜影院一区| 亚洲成人av福利| 欧美麻豆精品久久久久久| 亚洲成人一区在线| 在线播放欧美女士性生活| 午夜av区久久| 69av一区二区三区| 精品中文字幕一区二区小辣椒| 91精品国产一区二区三区香蕉| 天堂资源在线中文精品| 日韩一区二区在线观看| 久久er99精品| 国产欧美视频一区二区| 99视频在线观看一区三区| 91在线小视频| 亚洲欧美日韩国产中文在线| 欧美性大战久久久久久久| 亚洲成年人网站在线观看| 欧美一区二区三区系列电影| 精品一区二区三区的国产在线播放| 久久毛片高清国产| 91论坛在线播放| 亚洲成人动漫在线观看| 精品国免费一区二区三区| 国产成人综合在线| 亚洲日本在线视频观看| 欧美日韩在线播放一区| 久久91精品久久久久久秒播| 国产无遮挡一区二区三区毛片日本| 国产v综合v亚洲欧| 亚洲一区二区av电影| 欧美成人性战久久| 91老司机福利 在线| 三级一区在线视频先锋 | 日韩午夜小视频| 国产在线乱码一区二区三区| 国产精品乱人伦中文| 欧美日韩一区高清| 国产一区二区在线看| 亚洲黄色av一区| 欧美一区二区三区在线观看视频| 成人免费观看男女羞羞视频| 亚洲午夜免费电影| 久久青草欧美一区二区三区| 在线免费不卡电影| 国产精品18久久久久久久久 | 国产精品情趣视频| 欧美色图免费看| 国产麻豆精品一区二区| 亚洲一区二区美女| 久久精品免费在线观看| 欧美日韩亚洲另类| 成人免费看的视频| 老司机精品视频导航| 日韩一区欧美一区| 国产婷婷一区二区| 91精品国产综合久久精品麻豆| 91在线免费看| 国产91丝袜在线播放0| 蜜臀av一级做a爰片久久| 一区二区三区四区视频精品免费| 久久亚洲精华国产精华液 | 免费一区二区视频| 亚洲午夜电影在线| 一区在线观看免费| 国产亚洲一二三区| 欧美不卡视频一区| 7777精品久久久大香线蕉| 欧洲精品一区二区三区在线观看| 成人午夜精品一区二区三区| 国产一区欧美一区| 久久国产生活片100| 日韩成人av影视| 日韩vs国产vs欧美| 日本vs亚洲vs韩国一区三区二区 | 久久老女人爱爱| 26uuu久久综合| 2023国产精品| 精品成人一区二区三区| 欧美一卡在线观看| 欧美一区二区三区色| 欧美精品一二三四| 欧美一区二区在线看| 制服丝袜中文字幕亚洲| 欧美日韩成人一区| 91精品国产品国语在线不卡| 欧美乱妇15p| 欧美一区日本一区韩国一区| 日韩午夜在线观看| 精品国产凹凸成av人网站| 日韩精品一区二区三区四区视频| 日韩视频不卡中文| 久久综合丝袜日本网| 久久精品亚洲精品国产欧美| 国产丝袜美腿一区二区三区| 国产日韩欧美一区二区三区综合| 久久久噜噜噜久久人人看| 国产精品欧美久久久久无广告| 国产精品伦一区| 亚洲女人的天堂| 日韩激情av在线| 激情深爱一区二区| 成人免费观看视频| 91福利社在线观看| 91精品一区二区三区在线观看| 日韩免费一区二区三区在线播放| 久久久久久免费网| 中文字幕一区二区不卡| 亚洲国产日产av| 精品一区二区在线视频| caoporn国产一区二区| 欧美日韩国产小视频| 日韩欧美国产综合| 国产精品无码永久免费888| 夜夜揉揉日日人人青青一国产精品| 日韩高清不卡在线| 国产·精品毛片| 欧美日韩一级二级| xnxx国产精品| 亚洲五码中文字幕| 韩日精品视频一区| 在线观看成人小视频| 精品久久久久久综合日本欧美| 日韩理论片一区二区| 日韩vs国产vs欧美| 91网站黄www| 日韩免费高清av| 亚洲女人小视频在线观看| 久久国产尿小便嘘嘘| 色综合久久久久| 精品国产网站在线观看| 一区二区三区在线免费| 久久99精品久久久久久动态图 | 日韩精品一级中文字幕精品视频免费观看 | 亚洲午夜精品网| 国产999精品久久久久久绿帽| 欧美精品乱人伦久久久久久| 亚洲欧美怡红院| 国产精品原创巨作av| 欧美高清视频不卡网| 中文字幕亚洲在| 国产精品一区二区久久不卡| 欧美色涩在线第一页| 国产精品乱码人人做人人爱| 久久99精品国产麻豆不卡| 欧美色综合网站| 国产精品不卡在线| 久久99精品网久久| 日韩一区二区在线观看视频播放| 一区2区3区在线看| 色综合久久九月婷婷色综合| 国产精品美女久久久久久久网站| 麻豆国产精品一区二区三区| 欧美揉bbbbb揉bbbbb| 亚洲女同女同女同女同女同69| 国产91色综合久久免费分享| 久久美女艺术照精彩视频福利播放| 免费黄网站欧美| 91精品欧美一区二区三区综合在| 一区二区三区精品视频在线| 99精品久久免费看蜜臀剧情介绍| 国产视频在线观看一区二区三区| 精品一区二区三区欧美| 精品国偷自产国产一区| 精品一区二区免费在线观看| 精品嫩草影院久久| 久久黄色级2电影| 精品成人一区二区三区四区| 激情六月婷婷综合| 精品福利av导航| 国产成人在线看| 中文字幕av一区二区三区免费看| 国产成人免费视频精品含羞草妖精| 国产日韩精品一区二区三区|