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

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? usbout.c

?? s3c2410 基于優(yōu)龍的2410 bootloader,類似于LINUX啟動(dòng)方式的NBOOT.
?? C
字號(hào):
/****************************************************************
 NAME: usbout.c
 DESC: USB bulk-OUT operation related functions
 HISTORY:
 Mar.25.2002:purnnamu: ported for S3C2410X.
 Mar.27.2002:purnnamu: DMA is enabled.
 ****************************************************************/
#include "option.h"
#include "2410addr.h"
#include "2410lib.h"
#include "def.h"

#include "2410usb.h"
#include "usb.h"
#include "usblib.h"
#include "usbsetup.h"
#include "usbout.h"
#include "usbin.h"

extern volatile U32 downloadAddress;
extern volatile U8 *downPt;
extern volatile U32 downloadFileSize;
extern volatile U32 totalDmaCount;
extern volatile U16 checkSum;

static void RdPktEp3_CheckSum(U8 *buf,int num);

// ===================================================================
// All following commands will operate in case 
// - out_csr3 is valid.
// ===================================================================

#define CLR_EP3_OUT_PKT_READY() rOUT_CSR1_REG= ( out_csr3 &(~ EPO_WR_BITS)\
					&(~EPO_OUT_PKT_READY) ) 
#define SET_EP3_SEND_STALL()	rOUT_CSR1_REG= ( out_csr3 & (~EPO_WR_BITS)\
					| EPO_SEND_STALL) )
#define CLR_EP3_SENT_STALL()	rOUT_CSR1_REG= ( out_csr3 & (~EPO_WR_BITS)\
					&(~EPO_SENT_STALL) )
#define FLUSH_EP3_FIFO() 	rOUT_CSR1_REG= ( out_csr3 & (~EPO_WR_BITS)\
					|EPO_FIFO_FLUSH) )

// ***************************
// *** VERY IMPORTANT NOTE ***
// ***************************
// Prepare for the packit size constraint!!!

// EP3 = OUT end point. 

extern U32 UsbFunction;
extern U32 UsbState;
extern U32 UsbInLength;
extern U8 *UsbTxAddr;

U8 ep3Buf[EP3_PKT_SIZE];

void Ep3Handler(void)
{
    U8 out_csr3;
    int fifoCnt; 

/*	static int led = 0xf;
	led ^= 1;
	Led_Display(led);
*/	    
    rINDEX_REG=3;
    out_csr3=rOUT_CSR1_REG;
    
//	DbgOut("<3:%x]",out_csr3);		

    if(out_csr3 & EPO_OUT_PKT_READY)
    {   
		fifoCnt=rOUT_FIFO_CNT1_REG;
		
		if(UsbFunction)
		{				
			RdPktEp3(ep3Buf, fifoCnt);						
			CLR_EP3_OUT_PKT_READY();
			if(*(U32 *)ep3Buf==0x01234567)
			{
				UsbState    = 0x01234567;
				UsbTxAddr   = (U8 *)0x31000000;
				UsbInLength = *(U32 *)(ep3Buf+4);
				PrepareEp1Fifo();
				putch('@');
			}									
			return;
		}

		if(downloadFileSize==0)
		{
			RdPktEp3((U8 *)downPt, 8);
			
			downloadAddress= *(U32 *)downPt;
			downloadFileSize= *(U32 *)(downPt+4);
//			checkSum=0;
			downPt=(U8 *)downloadAddress;
			
			RdPktEp3_CheckSum((U8 *)downPt, fifoCnt-8); //The first 8-bytes are deleted.	    
  	    	downPt+=fifoCnt-8;  
  	    
	  	#if USBDMA
    	 	    //CLR_EP3_OUT_PKT_READY() is not executed. 
				//So, USBD may generate NAK until DMA2 is configured for USB_EP3;
     	    DisableIrq(BIT_USBD);	
      	    return;	
	  	#endif	
		}
		else
		{
		#if USBDMA    	
			DbgOut("<ERROR>");
		#endif    
		    RdPktEp3_CheckSum((U8 *)downPt,fifoCnt);
	    	downPt+=fifoCnt;  //fifoCnt=64
		}
	   	CLR_EP3_OUT_PKT_READY();
		return;
    }
   
    //I think that EPO_SENT_STALL will not be set to 1.
    if(out_csr3 & EPO_SENT_STALL)
    {   
		DbgOut("[STALL]");
	   	CLR_EP3_SENT_STALL();
   		return;
    }	
}

void RdPktEp3_CheckSum(U8 *buf,int num)
{
    int i;
    	
    for(i=0;i<num;i++)
    {
        buf[i]=(U8)rEP3_FIFO;
        checkSum+=buf[i];
    }
}


void __irq IsrDma2(void)
{
    U8 out_csr3;    
    U8 saveIndexReg=rINDEX_REG;    		
    		

    rINDEX_REG=3;
    out_csr3=rOUT_CSR1_REG;
    
    ClearPending(BIT_DMA2);	    
    
    totalDmaCount+=0x80000;

    if(totalDmaCount>=downloadFileSize)// is last?
    {
    	totalDmaCount=downloadFileSize;
			
    	ConfigEp3IntMode();
			
    	if(out_csr3& EPO_OUT_PKT_READY)
    	{
   	    	CLR_EP3_OUT_PKT_READY();
		}
        DisableIrq(BIT_DMA2);//
//        	putch('*');
        EnableIrq(BIT_USBD);//rINTMSK&=~(BIT_USBD);
//			putch('*');        	        
//        DbgOut("@");
    }
    else
    {
	    ReConfigEp3Dma(downloadAddress+totalDmaCount-8, ((downloadFileSize-totalDmaCount)>0x80000)?0x80000:(downloadFileSize-totalDmaCount));
    	while(rEP3_DMA_TTC<0xfffff)
   	    {
   	        rEP3_DMA_TTC_L=0xff;
   	        rEP3_DMA_TTC_M=0xff;
   	        rEP3_DMA_TTC_H=0xf;	    //0xfffff;
   	    }
    	
    }
    rINDEX_REG=saveIndexReg;
}


void ClearEp3OutPktReady(void)
{
    U8 out_csr3;
    rINDEX_REG=3;
    out_csr3=rOUT_CSR1_REG;
    CLR_EP3_OUT_PKT_READY();
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
婷婷丁香久久五月婷婷| 最新中文字幕一区二区三区| 91网站视频在线观看| 成人综合婷婷国产精品久久免费| 国产一区二区三区四区五区入口| 韩国视频一区二区| 国内一区二区视频| 成人免费毛片嘿嘿连载视频| 粉嫩久久99精品久久久久久夜| 精品亚洲国内自在自线福利| 韩国三级电影一区二区| 国产成人精品1024| 91麻豆国产精品久久| 欧美三级在线视频| 精品久久久影院| 国产女同性恋一区二区| 中文字幕一区二区三| 亚洲影院久久精品| 热久久久久久久| 国产91露脸合集magnet| 91九色最新地址| 日韩一级黄色大片| 国产精品色婷婷| 亚洲午夜成aⅴ人片| 麻豆精品一区二区综合av| 国产精品一区二区无线| 91麻豆文化传媒在线观看| 91精品欧美一区二区三区综合在| 日韩精品一区二区三区蜜臀| 国产精品高清亚洲| 天堂影院一区二区| 国产宾馆实践打屁股91| 欧美老年两性高潮| 国产精品无遮挡| 日韩综合小视频| 成人高清视频在线观看| 欧美一区二区女人| 国产精品免费aⅴ片在线观看| 一区二区视频在线| 国产大片一区二区| 欧美男女性生活在线直播观看| 日韩欧美在线影院| 亚洲精品国产成人久久av盗摄| 国精品**一区二区三区在线蜜桃| 色欧美片视频在线观看 | 91啪亚洲精品| 欧美岛国在线观看| 亚洲综合偷拍欧美一区色| 国产在线日韩欧美| 欧美日韩国产综合视频在线观看 | 国产不卡视频一区| 日韩三级中文字幕| 亚洲丶国产丶欧美一区二区三区| 国产91清纯白嫩初高中在线观看| 欧美一卡二卡在线观看| 一区二区三区日韩在线观看| 成人免费毛片片v| 久久一留热品黄| 麻豆精品在线播放| 在线综合视频播放| 亚洲电影一区二区| 91久久精品国产91性色tv| 国产精品乱人伦| 国产麻豆一精品一av一免费| 精品视频1区2区| 亚洲一区免费在线观看| 99久久精品国产导航| 国产精品免费免费| 成人精品视频一区二区三区| 国产三级欧美三级日产三级99| 香蕉影视欧美成人| 欧美日韩国产综合视频在线观看 | 亚洲精品一区二区三区福利| 日韩在线卡一卡二| 91精品国产美女浴室洗澡无遮挡| 亚洲第一综合色| 这里只有精品99re| 日av在线不卡| 日韩精品中文字幕在线一区| 美女一区二区三区| 2021久久国产精品不只是精品| 久久精品国产99国产精品| 欧美一区二区福利视频| 久久成人久久爱| 久久精品亚洲一区二区三区浴池| 国产一区在线精品| 国产精品不卡在线观看| 色婷婷综合久久久久中文一区二区 | 国产一区二区三区四区五区入口 | 亚洲黄色免费网站| 色狠狠色噜噜噜综合网| 亚洲欧美韩国综合色| 欧美日本一区二区| 久久精品99久久久| 中文字幕一区二区三区四区不卡 | 综合欧美一区二区三区| 91国在线观看| 麻豆91在线播放免费| 久久久久久亚洲综合影院红桃| 成人美女视频在线观看18| 亚洲精品第1页| 精品国产区一区| av在线不卡网| 日本不卡一区二区| 日本一区二区不卡视频| 欧美日韩国产免费| 风流少妇一区二区| 亚洲va韩国va欧美va精品| 久久久精品2019中文字幕之3| 一本大道av一区二区在线播放| 日韩国产精品久久久| 国产女主播视频一区二区| 欧美日韩国产首页在线观看| 国产大片一区二区| 亚洲国产一区视频| 欧美国产日韩亚洲一区| 欧美精三区欧美精三区| 国产a视频精品免费观看| 亚洲成a天堂v人片| 国产精品福利一区| 精品欧美黑人一区二区三区| 91色|porny| 国产成人精品在线看| 日韩高清一区在线| 亚洲永久免费视频| 亚洲桃色在线一区| 久久久亚洲午夜电影| 欧美精品aⅴ在线视频| 成人av片在线观看| 激情欧美一区二区| 美女视频黄久久| 亚洲r级在线视频| 亚洲人成网站在线| 中文字幕不卡的av| 久久久午夜精品理论片中文字幕| 4438x亚洲最大成人网| 色综合久久综合网欧美综合网| 岛国精品一区二区| 国产一区二区不卡| 捆绑紧缚一区二区三区视频| 亚洲高清不卡在线| 亚洲二区在线视频| 亚洲成人免费在线| 亚洲国产cao| 亚洲成人免费视频| 五月综合激情婷婷六月色窝| 亚洲精品中文在线观看| 亚洲色图制服诱惑| 中文字幕综合网| 亚洲黄色性网站| 亚洲mv在线观看| 日韩综合在线视频| 久久成人av少妇免费| 精品一区二区久久久| 国产呦精品一区二区三区网站| 精彩视频一区二区| 高清成人在线观看| 成人av在线一区二区三区| 不卡电影免费在线播放一区| 99久久er热在这里只有精品15 | 一区二区三区日本| 亚洲电影视频在线| 美女一区二区三区在线观看| 久久 天天综合| 国产精品羞羞答答xxdd| 国产99久久久精品| 色婷婷香蕉在线一区二区| 欧美综合色免费| 欧美一区二区三区爱爱| 久久久91精品国产一区二区三区| 国产精品丝袜久久久久久app| 国产精品不卡在线观看| 一区二区三区美女视频| 日本午夜一本久久久综合| 久久国产精品72免费观看| 国产精品1区2区3区| 色猫猫国产区一区二在线视频| 欧美精品一级二级三级| 久久久无码精品亚洲日韩按摩| 国产精品成人一区二区三区夜夜夜 | 亚洲欧美激情小说另类| 五月综合激情网| 国产成人8x视频一区二区| 91色porny在线视频| 欧美成人艳星乳罩| 亚洲视频每日更新| 毛片基地黄久久久久久天堂| 国产成人在线视频网址| 欧美日韩视频在线第一区| 精品国产在天天线2019| 一区二区三区精品视频| 久久99久久99| 欧美专区在线观看一区| 2017欧美狠狠色| 一区二区三区四区激情| 国产福利一区在线| 日韩三级在线免费观看| 一区二区三区**美女毛片| 国产精品一品视频| 91精品国模一区二区三区|