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

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

?? usblib.c

?? 2440 開發板的測試程序。包括uart,iic,lcd
?? C
字號:
/****************************************************************
 NAME: usblib.c
 DESC: S3C2440X USB library functions
 HISTORY:
 Mar.25.2002:purnnamu: ported for S3C2410X.
 Mar.27.2002:purnnamu: DMA is enabled.
 ****************************************************************/
#include <string.h>
#include "option.h"
#include "2440addr.h"
#include "2440lib.h"
#include "def.h"

#include "2440usb.h"
#include "usbmain.h"
#include "usblib.h"
#include "usbsetup.h"
#include "usbmain.h"


void ConfigUsbd( void )
{
	ReconfigUsbd();
	/*
		pISR_USBD =(unsigned)IsrUsbd;
		ClearPending(BIT_USBD);
		rINTMSK&=~(BIT_USBD);  
	*/   
	rINTMSK &= ~( BIT_USBD );
}


void ReconfigUsbd( void )
{
	// *** End point information ***
	//   EP0: control
	//   EP1: bulk in end point
	//   EP2: not used
	//   EP3: bulk out end point
	//   EP4: not used

	rPWR_REG = PWR_REG_DEFAULT_VALUE;	//disable suspend mode

	rINDEX_REG = 0;	
	rMAXP_REG = FIFO_SIZE_8;   	//EP0 max packit size = 8 
	rEP0_CSR = EP0_SERVICED_OUT_PKT_RDY | EP0_SERVICED_SETUP_END;	
	//EP0:clear OUT_PKT_RDY & SETUP_END
	rINDEX_REG = 1;
#if (EP1_PKT_SIZE==32)
	rMAXP_REG = FIFO_SIZE_32;	//EP1:max packit size = 32
#else
	rMAXP_REG = FIFO_SIZE_64;	//EP1:max packit size = 64
#endif	
	rIN_CSR1_REG = EPI_FIFO_FLUSH | EPI_CDT;	
	rIN_CSR2_REG = EPI_MODE_IN | EPI_IN_DMA_INT_MASK | EPI_BULK; //IN mode, IN_DMA_INT=masked    
	rOUT_CSR1_REG = EPO_CDT;   	
	rOUT_CSR2_REG = EPO_BULK | EPO_OUT_DMA_INT_MASK;   	

	rINDEX_REG = 2;
	rMAXP_REG = FIFO_SIZE_64;	//EP2:max packit size = 64
	rIN_CSR1_REG = EPI_FIFO_FLUSH | EPI_CDT | EPI_BULK;
	rIN_CSR2_REG = EPI_MODE_IN | EPI_IN_DMA_INT_MASK; //IN mode, IN_DMA_INT=masked    
	rOUT_CSR1_REG = EPO_CDT;   	
	rOUT_CSR2_REG = EPO_BULK | EPO_OUT_DMA_INT_MASK;   	

	rINDEX_REG = 3;
#if (EP3_PKT_SIZE==32)
	rMAXP_REG = FIFO_SIZE_32;	//EP3:max packit size = 32
#else
	rMAXP_REG = FIFO_SIZE_64;	//EP3:max packit size = 64
#endif	
	rIN_CSR1_REG = EPI_FIFO_FLUSH | EPI_CDT | EPI_BULK;
	rIN_CSR2_REG = EPI_MODE_OUT | EPI_IN_DMA_INT_MASK; //OUT mode, IN_DMA_INT=masked	
	rOUT_CSR1_REG = EPO_CDT;   	
	//clear OUT_PKT_RDY, data_toggle_bit.
	//The data toggle bit should be cleared when initialization.
	rOUT_CSR2_REG = EPO_BULK | EPO_OUT_DMA_INT_MASK;   	

	rINDEX_REG = 4;
	rMAXP_REG = FIFO_SIZE_64;	//EP4:max packit size = 64
	rIN_CSR1_REG = EPI_FIFO_FLUSH | EPI_CDT | EPI_BULK;
	rIN_CSR2_REG = EPI_MODE_OUT | EPI_IN_DMA_INT_MASK; //OUT mode, IN_DMA_INT=masked	
	rOUT_CSR1_REG = EPO_CDT;   	
	//clear OUT_PKT_RDY, data_toggle_bit.
	//The data toggle bit should be cleared when initialization.
	rOUT_CSR2_REG = EPO_BULK | EPO_OUT_DMA_INT_MASK;   	

	rEP_INT_REG = EP0_INT | EP1_INT | EP2_INT | EP3_INT | EP4_INT;
	rUSB_INT_REG = RESET_INT | SUSPEND_INT | RESUME_INT; 
	//Clear all usbd pending bits

	//EP0,1,3 & reset interrupt are enabled
	rEP_INT_EN_REG = EP0_INT | EP1_INT | EP3_INT;
	rUSB_INT_EN_REG = RESET_INT;
	ep0State = EP0_STATE_INIT;
}


void RdPktEp0( U8* buf , int num )
{
	int i;

	for ( i = 0; i < num; i++ )
	{
		buf[i] = ( U8 ) rEP0_FIFO;
	}
}


void WrPktEp0( U8* buf , int num )
{
	int i;

	for ( i = 0; i < num; i++ )
	{
		rEP0_FIFO = buf[i];
	}
}


void WrPktEp1( U8* buf , int num )
{
	int i;

	for ( i = 0; i < num; i++ )
	{
		rEP1_FIFO = buf[i];
	}
}


void WrPktEp2( U8* buf , int num )
{
	int i;

	for ( i = 0; i < num; i++ )
	{
		rEP2_FIFO = buf[i];
	}
}


void RdPktEp3( U8* buf , int num )
{
	int i;

	for ( i = 0; i < num; i++ )
	{
		buf[i] = ( U8 ) rEP3_FIFO;
	}
}


void RdPktEp4( U8* buf , int num )
{
	int i;

	for ( i = 0; i < num; i++ )
	{
		buf[i] = ( U8 ) rEP4_FIFO;
	}
}


void ConfigEp3DmaMode( U32 bufAddr , U32 count )
{
	int i;

	rINDEX_REG = 3;
	count = count & 0xfffff; //transfer size should be <1MB
	rDISRCC2 = ( 1 << 1 ) | ( 1 << 0 );
	rDISRC2 = ADDR_EP3_FIFO; //src=APB,fixed,src=EP3_FIFO
	rDIDSTC2 = ( 0 << 1 ) | ( 0 << 0 );
	rDIDST2 = bufAddr;  	 //dst=AHB,increase,dst=bufAddr
#if USBDMA_DEMAND
	rDCON2 = ( count ) |
		( 0 << 31 ) |
		( 0 << 30 ) |
		( 1 << 29 ) |
		( 0 << 28 ) |
		( 0 << 27 ) |
		( 4 << 24 ) |
		( 1 << 23 ) |
		( 0 << 22 ) |
		( 0 << 20 ); 
	//demand,requestor=APB,CURR_TC int enable,unit transfer,
	//single service,src=USBD,H/W request,autoreload,byte,CURR_TC
#else
	rDCON2 = ( count ) |
		( 1 << 31 ) |
		( 0 << 30 ) |
		( 1 << 29 ) |
		( 0 << 28 ) |
		( 0 << 27 ) |
		( 4 << 24 ) |
		( 1 << 23 ) |
		( 0 << 22 ) |
		( 0 << 20 ); 
	//handshake,requestor=APB,CURR_TC int enable,unit transfer,
	//single service,src=USBD,H/W request,autoreload,byte,CURR_TC
#endif  	  
	rDMASKTRIG2 = ( 1 << 1 ); 
	//DMA 2 on

	//rEP3_DMA_FIFO=0x40; //not needed for OUT operation. 	

	rEP3_DMA_TTC_L = 0xff;
	rEP3_DMA_TTC_M = 0xff;
	rEP3_DMA_TTC_H = 0x0f;

	rOUT_CSR2_REG = rOUT_CSR2_REG | EPO_AUTO_CLR | EPO_OUT_DMA_INT_MASK; 
	//AUTO_CLR(OUT_PKT_READY is cleared automatically), interrupt_masking.
#if USBDMA_DEMAND
	rEP3_DMA_UNIT = EP3_PKT_SIZE; //DMA transfer unit=64 bytes
	rEP3_DMA_CON = UDMA_DEMAND_MODE | UDMA_OUT_DMA_RUN | UDMA_DMA_MODE_EN; 
	// deamnd enable,out_dma_run=run,in_dma_run=stop,DMA mode enable
#else   	 
	rEP3_DMA_UNIT = 0x01; //DMA transfer unit=1byte
	rEP3_DMA_CON = UDMA_OUT_DMA_RUN | UDMA_DMA_MODE_EN;
	// deamnd disable,out_dma_run=run,in_dma_run=stop,DMA mode enable
#endif  
	//wait until DMA_CON is effective.
	rEP3_DMA_CON;
	for ( i = 0; i < 10; i++ )
		;
}


void ConfigEp3IntMode( void )
{
	rINDEX_REG = 3;

	rDMASKTRIG2 = ( 0 << 1 );  // EP3=DMA ch 2
	//DMA channel off
	rOUT_CSR2_REG = rOUT_CSR2_REG & ~( EPO_AUTO_CLR/*|EPO_OUT_DMA_INT_MASK*/ ); 
	//AUTOCLEAR off,interrupt_enabled (???)
	rEP3_DMA_UNIT = 1;	
	rEP3_DMA_CON = 0; 
	// deamnd disable,out_dma_run=stop,in_dma_run=stop,DMA mode disable
	//wait until DMA_CON is effective.
	rEP3_DMA_CON;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩美少妇| 欧美美女一区二区在线观看| 日本欧美一区二区三区乱码| 亚洲女人****多毛耸耸8| 中文字幕一区日韩精品欧美| 国产日本欧美一区二区| 国产亚洲成aⅴ人片在线观看| 日韩欧美激情在线| 欧美精品一区二区三| 欧美xxxxx裸体时装秀| 精品成人一区二区| 久久久蜜臀国产一区二区| 国产亚洲欧洲997久久综合 | 亚洲欧洲日韩一区二区三区| 久久久不卡影院| 欧美国产乱子伦| 中文字幕在线观看不卡| 亚洲综合激情另类小说区| 一区二区三区自拍| 亚洲二区视频在线| 美腿丝袜在线亚洲一区| 国产精品18久久久久久久久久久久 | 亚洲日本乱码在线观看| 亚洲五月六月丁香激情| 久久疯狂做爰流白浆xx| 国产一区二区成人久久免费影院| 成人综合日日夜夜| 欧美日韩在线三级| 久久综合狠狠综合久久综合88| 国产精品久久免费看| 亚洲国产精品久久不卡毛片 | 久久亚洲精华国产精华液| 国产精品久久久久久福利一牛影视| 一区二区三区在线视频免费| 精品写真视频在线观看| 91丝袜美腿高跟国产极品老师| 欧美日本一区二区| 亚洲国产精品av| 日韩电影在线观看网站| www.亚洲精品| 日韩色视频在线观看| 国产精品对白交换视频| 日韩—二三区免费观看av| 国产宾馆实践打屁股91| 777色狠狠一区二区三区| 日本一区二区三区国色天香| 一卡二卡欧美日韩| 高清国产午夜精品久久久久久| 欧美日韩国产免费一区二区| 国产欧美一区二区精品久导航| 亚洲成av人在线观看| 成人app在线| 久久众筹精品私拍模特| 人妖欧美一区二区| 在线视频国内自拍亚洲视频| 日本一区二区三区电影| 久久爱www久久做| 欧美午夜精品一区二区三区| 国产精品麻豆久久久| 精久久久久久久久久久| 欧美福利一区二区| 亚洲国产精品一区二区www| 99精品久久只有精品| 久久免费国产精品| 国产在线乱码一区二区三区| 欧美乱熟臀69xxxxxx| 一区二区三区在线观看动漫| 99久久婷婷国产综合精品| 国产午夜亚洲精品理论片色戒| 久久丁香综合五月国产三级网站 | 亚洲va韩国va欧美va| av一区二区三区在线| 久久精品日韩一区二区三区| 日本不卡1234视频| 欧美精品在线观看播放| 亚洲成人免费在线| 欧美日本在线看| 日韩精品电影一区亚洲| 欧美喷水一区二区| 日韩精品久久久久久| 3751色影院一区二区三区| 天天色图综合网| 91精品国产欧美一区二区 | 欧美一区二区美女| 日韩电影在线一区| 精品久久久久久久久久久院品网| 奇米精品一区二区三区在线观看一| 欧美三片在线视频观看| 亚洲观看高清完整版在线观看| 欧美三级日韩三级| 日韩一区精品字幕| 久久色.com| 波多野结衣在线一区| 亚洲乱码国产乱码精品精可以看| 一本大道久久a久久综合婷婷| 亚洲免费观看高清完整| 欧美网站大全在线观看| 免费在线观看成人| 久久久久国产精品人| 成人黄色软件下载| 亚洲高清在线精品| 欧美mv和日韩mv国产网站| 国产不卡视频一区| 一区二区三区毛片| 精品国精品国产| 99精品黄色片免费大全| 午夜精品福利在线| 亚洲国产精品高清| 69堂成人精品免费视频| 国产精品一区二区你懂的| 亚洲乱码国产乱码精品精可以看 | 国产成人在线网站| 亚洲激情第一区| 欧美xxxxx牲另类人与| 成人黄色在线网站| 美女网站色91| 亚洲女人****多毛耸耸8| 精品国产人成亚洲区| 91国偷自产一区二区开放时间 | 色综合天天性综合| 久久99这里只有精品| 亚洲人午夜精品天堂一二香蕉| 欧美高清www午色夜在线视频| 成人在线一区二区三区| 日韩av一区二区三区四区| 国产精品每日更新在线播放网址| 91精品久久久久久久91蜜桃| 一本大道av一区二区在线播放| 久久er精品视频| 日韩精品一二区| 一区二区视频在线| 国产精品美女久久福利网站| 日韩精品一区二| 欧美日韩一区成人| 91色在线porny| 国产成人无遮挡在线视频| 日韩精品一二三区| 天天亚洲美女在线视频| 亚洲精品日产精品乱码不卡| 亚洲国产精品传媒在线观看| 久久综合色8888| 日韩欧美在线观看一区二区三区| 欧美亚洲一区三区| 91国产成人在线| 色中色一区二区| 99精品欧美一区| 91亚洲大成网污www| av在线一区二区| 成人免费毛片嘿嘿连载视频| 国产成人在线色| 国精产品一区一区三区mba视频| 热久久一区二区| 免费在线看一区| 国产综合色产在线精品| 紧缚捆绑精品一区二区| 国产美女视频一区| 国产成人精品一区二区三区网站观看| 精品亚洲porn| 国产成人在线色| 不卡一区中文字幕| 精品成人佐山爱一区二区| 欧美一级艳片视频免费观看| 国产成人午夜99999| 国产黑丝在线一区二区三区| 国产成人精品免费网站| 成人中文字幕电影| 色综合久久九月婷婷色综合| 一本色道久久综合狠狠躁的推荐| 国产精品一区二区三区四区| 中文字幕av一区二区三区高| 亚洲一卡二卡三卡四卡无卡久久 | 狠狠狠色丁香婷婷综合久久五月| 99在线热播精品免费| 日韩一区二区三区观看| ...xxx性欧美| 国产 欧美在线| 日韩精品专区在线| 亚洲成a人片在线不卡一二三区 | 久久精品亚洲乱码伦伦中文| 午夜精品福利一区二区蜜股av| eeuss国产一区二区三区| 久久久精品日韩欧美| 奇米色一区二区三区四区| 欧美人妇做爰xxxⅹ性高电影| 亚洲视频一区二区免费在线观看| 国产毛片精品视频| 欧美mv日韩mv| 精品影视av免费| 日韩精品一区二区在线| 日韩电影在线看| 91精品综合久久久久久| 亚洲成a人v欧美综合天堂 | 国产不卡视频在线播放| 久久久午夜精品理论片中文字幕| 蜜桃视频免费观看一区| 3d成人动漫网站| 麻豆成人综合网| 精品国产亚洲一区二区三区在线观看| 奇米888四色在线精品| 在线不卡中文字幕|