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

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

?? uart.c

?? 三星 s3c6400測試代碼
?? C
?? 第 1 頁 / 共 4 頁
字號:
						g_uOpClock = CalcEPLL(32,1,1,0);
						printf("EPLL = %dMhz\n",(g_uOpClock/1000000));
						// use EPLL output clock
						//SetEPLL(42, 1, 2); // Epll output - 96MHz, pll input - 12MHz
						//CLK_SRC	UART_SEL[13]  0:EPLL
						//CLK_DIV2	UART_RATIO[19:16]
						break;
					case 2:
						SYSC_ClkSrc(eMPLL_FOUT);						
						SYSC_ClkSrc(eUART_DOUTMPLL);
						Delay(100);
//						SYSC_CtrlCLKOUT(eCLKOUT_EPLLOUT,9);
						g_uOpClock = (u32)g_MPLL/2;
//						g_uOpClock = g_MPLL;
						printf("MPLL = %dMhz\n",(g_uOpClock/1000000));
						// use MPLL output clock
						//CLK_SRC	UART_SEL[13]	  1:MPLL
						//CLK_DIV2	UART_RATIO[19:16]
						break;
					default:
						SYSC_ClkSrc(eMPLL_FOUT);		
						SYSC_ClkSrc(eUART_DOUTMPLL);
						Delay(100);
//						SYSC_CtrlCLKOUT(eCLKOUT_EPLLOUT,9);
						g_uOpClock = (u32)g_MPLL/2;
//						g_uOpClock = g_MPLL;
						printf("MPLL = %dMhz\n",(g_uOpClock/1000000));
						// use EPLL output clock
						//SetEPLL(42, 1, 2); // Epll output - 96MHz, pll input - 12MHz
						//CLK_SRC	UART_SEL[13]  0:EPLL
						//CLK_DIV2	UART_RATIO[19:16]
						break;									
				}
		break;

	default :
		pUartCon->cOpClock = 0; // PCLK
		break;
	}


	// Select UART or IrDA 1.0
	printf("\n\nSelect External Interface Type\n 1. UART[D]   2. IrDA mode\n Choose : ");
	if (GetIntNum() == 2)		
		pUartCon->cSelUartIrda = 1; // IrDA mode
	else					
		pUartCon->cSelUartIrda = 0; // URAT mode

	// Set Baudrate
	printf("\n\nType the baudrate and then change the same baudrate of host, too.\n");
	printf(" Baudrate (ex 9600, 115200[D], 921600) : ");
	pUartCon->uBaudrate = GetIntNum();

	if ((s32)pUartCon->uBaudrate == -1) 
		pUartCon->uBaudrate = 115200;

	// Select UART operating mode
	printf("\n\nSelect Operating Mode\n 1. Interrupt[D]	2. DMA\n Choose : ");
	if (GetIntNum() == 2)
	{
		pUartCon->cTxMode = 2; // DMA0 mode
		pUartCon->cRxMode = 3; // DMA1 mode
	}
	else
	{	
		pUartCon->cTxMode = 1; // Int mode
		pUartCon->cRxMode = 1; // Int mode
	}

	// Select UART FIFO mode
	printf("\n\nSelect FIFO Mode (Tx/Rx[byte])\n 1. no FIFO[D]  2. Empty/1  3. 16/8   4. 32/16  5. 48/32 \n Choose : ");
	iNum = GetIntNum();
	if ( (iNum>1)&&(iNum<6) )
	{
		pUartCon->cEnableFifo = 1;
		pUartCon->cTxTrig = iNum -2;
		pUartCon->cRxTrig = iNum -2;
	}
	else 
	{
		pUartCon->cEnableFifo = 0;
	}

	// Select AFC mode enable/disable
	printf("\n\nSelect AFC Mode\n 1. Disable[D]	2. Enable\n Choose : ");
	if (GetIntNum() == 2)
	{
		pUartCon->cAfc = 1; // AFC mode enable
		printf("Select nRTS trigger level(byte)\n 1. 63[D]   2. 56   3. 48   4. 40   5. 32   6. 24   7. 16   8. 8\n Choose : ");
		iNum = GetIntNum();
		
		if ( (iNum>1)&&(iNum<9) )	
			pUartCon->cRtsTrig = iNum -1;

		else						
			pUartCon->cRtsTrig = 0; // default 63 byte
	}
	else
	{
		pUartCon->cAfc = 0; // AFC mode disable
	}
#if 1
	printf("SendBreakSignal=%d\n",pUartCon->cSendBreakSignal);
	printf("Brate = %d\n,		SelUartIrda = %d\n,		Looptest= %d\n,		Afc = %d\n,		EnFiFO = %d\n,		OpClk = %d\n,		Databit = %d\n,		Paritybit = %d\n,		Stopbit = %d\n,		Txmode = %d\n,		TxTrig = %d\n,		RxMode = %d\n,		RxTrig = %d\n,		RtsTrig = %d\n,		SendBsig = %d\n",pUartCon->uBaudrate
		,pUartCon->cSelUartIrda,
		pUartCon->cLoopTest,
		pUartCon->cAfc,
		pUartCon->cEnableFifo,
		pUartCon->cOpClock,
		pUartCon->cDataBit,
		pUartCon->cParityBit,
		pUartCon->cStopBit,
		pUartCon->cTxMode,
		pUartCon->cTxTrig,
		pUartCon->cRxMode,
		pUartCon->cRxTrig,
		pUartCon->cRtsTrig,
		pUartCon->cSendBreakSignal);
#endif

	return cCh;
}



//////////
// Function Name : UART_TxString
// Function Description : This function trasmits String through UART
// Input : ch [0~4 UART channel]
//		 str [character type string that you want to transmit, the last charater of string should be 'NULL']
// Output : NONE
// Version : v0.1

void UART_TxString(u8 ch, u8 *str)  // The last character of 'str' should be NULL
{
	volatile UART_REGS *pUartRegs;
	volatile UART_CON *pUartCon;
	u8 cTemp;
	u32 uTemp2;
	

	pUartRegs = (volatile UART_REGS *)(UART_BASE+UART_OFFSET*ch);
	pUartCon = &g_AUartCon[ch];	

	g_AisTxDone[ch] = 0;
	g_pUartTxStr[ch] = str;

	g_pFifoDebug = (u32 *)FIFO_DEBUG_BUF;
	g_uFcnt = 0;

	
	cTemp = pUartCon->cTxMode  & 3;	
	
	if ( cTemp == 1 ) // interrupt mode
	{		

		Outp32(&pUartRegs->rUintSp , (BIT_UART_MODEM|BIT_UART_TXD|BIT_UART_ERROR|BIT_UART_RXD));
		Outp32(&pUartRegs->rUintP , (BIT_UART_MODEM|BIT_UART_TXD|BIT_UART_ERROR|BIT_UART_RXD));

		uTemp2 = Inp32(&pUartRegs->rUintM);
		uTemp2 &= ~(BIT_UART_MODEM|BIT_UART_TXD|BIT_UART_ERROR|BIT_UART_RXD);	
//		uTemp2 &= ~(BIT_UART_TXD);	
		Outp32(&pUartRegs->rUintM,uTemp2);
		
		INTC_Enable(NUM_UART0);
		INTC_Enable(NUM_UART1);
		INTC_Enable(NUM_UART2);
		INTC_Enable(NUM_UART3);	

//		pUartRegs->rUintM &= ~(BIT_UART_TXD);			
	}
	else if ( cTemp==2 ) // dma mode
	{

	DMAC_InitCh(DMA0,DMA_A,&oUARTDma);
	
	switch(ch)
		{
		case 0:
				SYSC_SelectDMA(eSEL_UART0_0, 1);
       	 // Channel, LLI_Address, SrcAddr, Src Type, DstAddr, Dst Type, Transfer Width, Transfer Size, OpMode(DEMAND), Src Req, Dst Req, Burst
		DMACH_Setup(DMA_A,0x0,(u32)str,0,(u32)(&pUartRegs->rUtxh),1,BYTE,strlen((const char*)str),DEMAND,MEM,DMA0_UART0_0,SINGLE,&oUARTDma);
		break;
		case 1:
				SYSC_SelectDMA(eSEL_UART1_0, 1);
       	 // Channel, LLI_Address, SrcAddr, Src Type, DstAddr, Dst Type, Transfer Width, Transfer Size, OpMode(DEMAND), Src Req, Dst Req, Burst
		DMACH_Setup(DMA_A,0x0,(u32)str,0,(u32)(&pUartRegs->rUtxh),1,BYTE,strlen((const char*)str),DEMAND,MEM,DMA0_UART1_0,SINGLE,&oUARTDma);
		break;
		case 2:
				SYSC_SelectDMA(eSEL_UART2_0, 1);
       	 // Channel, LLI_Address, SrcAddr, Src Type, DstAddr, Dst Type, Transfer Width, Transfer Size, OpMode(DEMAND), Src Req, Dst Req, Burst
		DMACH_Setup(DMA_A,0x0,(u32)str,0,(u32)(&pUartRegs->rUtxh),1,BYTE,strlen((const char*)str),DEMAND,MEM,DMA0_UART2_0,SINGLE,&oUARTDma);
		break;
		case 3:
				SYSC_SelectDMA(eSEL_UART3_0, 1);
       	 // Channel, LLI_Address, SrcAddr, Src Type, DstAddr, Dst Type, Transfer Width, Transfer Size, OpMode(DEMAND), Src Req, Dst Req, Burst
		DMACH_Setup(DMA_A,0x0,(u32)str,0,(u32)(&pUartRegs->rUtxh),1,BYTE,strlen((const char*)str),DEMAND,MEM,DMA0_UART3_0,SINGLE,&oUARTDma);
		break;
		}

	INTC_Enable(NUM_DMA0);	
	DMACH_ClearIntPending(&oUARTDma);
	DMACH_ClearErrIntPending(&oUARTDma);



	DMACH_Start(&oUARTDma);

	}	
	
	
	
	while(!g_AisTxDone[ch]);

	// for debugging fifo 
	if ( (Inp32(&pUartRegs->rUfCon) & 1) && (cTemp == 1) ) // 1 : fifo enable 
	{
		g_pFifoDebug = (u32 *)FIFO_DEBUG_BUF;
		while(*g_pFifoDebug) // g_pFifoDebug address, Tx count, UfCon, g_uFcnt
			printf("[0x%x,%d,0x%x,%d] ", g_pFifoDebug, *g_pFifoDebug++, *g_pFifoDebug++,*g_pFifoDebug++);
	}


		INTC_Disable(NUM_UART0);
		INTC_Disable(NUM_UART1);
		INTC_Disable(NUM_UART2);
		INTC_Disable(NUM_UART3);	
		INTC_Disable(NUM_DMA0);

		
}


//////////
// Function Name : UART_RxString
// Function Description : This function receives String through UART
// Input : ch [0~4 UART channel]
// Output : g_pUartRxStr[ch] [charater type received string]
// Version : v0.1

u8* UART_RxString(u8 ch)  // The last character of input string should be '\r'. simple test code
{
	volatile UART_REGS *pUartRegs;
	volatile UART_CON *pUartCon;	
	u8 cTemp;
	u32 uTemp2;
	

	pUartRegs = (volatile UART_REGS *)(UART_BASE+UART_OFFSET*ch);
	pUartCon = &g_AUartCon[ch];	

	g_AisRxDone[ch] = 0;
	g_pUartRxStr[ch] = ( u8 *)(UART_BUF+0x200000);
	g_pUartBuf = (u8 *)(UART_BUF);
	
	g_pFifoDebug = (u32 *)FIFO_DEBUG_BUF;
	g_uFcnt = 0;

	while (Inp32(&pUartRegs->rUfStat )& 0x3f) 	//until rx fifo count 0 (fifo clear)
	{
	(u8)(Inp32(&pUartRegs->rUrxh));
	}	

		
	cTemp = pUartCon->cRxMode & 3;
	if ( cTemp == 1 ) // interrupt mode
	{			


		Outp32(&pUartRegs->rUintSp , (BIT_UART_MODEM|BIT_UART_TXD|BIT_UART_ERROR|BIT_UART_RXD));
		Outp32(&pUartRegs->rUintP , (BIT_UART_MODEM|BIT_UART_TXD|BIT_UART_ERROR|BIT_UART_RXD));

		uTemp2 = Inp32(&pUartRegs->rUintM);
		uTemp2 &= ~(BIT_UART_ERROR|BIT_UART_RXD);	
//		uTemp2 &= ~(BIT_UART_RXD);	
		Outp32(&pUartRegs->rUintM,uTemp2);

		INTC_Enable(NUM_UART0);
		INTC_Enable(NUM_UART1);
		INTC_Enable(NUM_UART2);
		INTC_Enable(NUM_UART3);




		

		
	}
	else if ( cTemp == 3 ) // dma mode
	{

		
	DMAC_InitCh(DMA0,DMA_B,&oUARTDma);
	


	switch(ch)
		{
		case 0:
				SYSC_SelectDMA(eSEL_UART0_1, 1);			
       	 // Channel, LLI_Address, SrcAddr, Src Type, DstAddr, Dst Type, Transfer Width, Transfer Size, OpMode(DEMAND), Src Req, Dst Req, Burst
		DMACH_Setup(DMA_B,0x0,(u32)(&pUartRegs->rUrxh),1,UART_BUF,0,BYTE,DMA_BUF_LEN,HANDSHAKE,DMA0_UART0_1,MEM,SINGLE,&oUARTDma);
		break;
		case 1:
				SYSC_SelectDMA(eSEL_UART1_1, 1);
       	 // Channel, LLI_Address, SrcAddr, Src Type, DstAddr, Dst Type, Transfer Width, Transfer Size, OpMode(DEMAND), Src Req, Dst Req, Burst
		DMACH_Setup(DMA_B,0x0,(u32)(&pUartRegs->rUrxh),1,UART_BUF,0,BYTE,DMA_BUF_LEN,HANDSHAKE,DMA0_UART1_1,MEM,SINGLE,&oUARTDma);
		break;
		case 2:
				SYSC_SelectDMA(eSEL_UART2_1, 1);
       	 // Channel, LLI_Address, SrcAddr, Src Type, DstAddr, Dst Type, Transfer Width, Transfer Size, OpMode(DEMAND), Src Req, Dst Req, Burst
		DMACH_Setup(DMA_B,0x0,(u32)(&pUartRegs->rUrxh),1,UART_BUF,0,BYTE,DMA_BUF_LEN,HANDSHAKE,DMA0_UART2_1,MEM,SINGLE,&oUARTDma);
		break;
		case 3:
				SYSC_SelectDMA(eSEL_UART3_1, 1);
       	 // Channel, LLI_Address, SrcAddr, Src Type, DstAddr, Dst Type, Transfer Width, Transfer Size, OpMode(DEMAND), Src Req, Dst Req, Burst
		DMACH_Setup(DMA_B,0x0,(u32)(&pUartRegs->rUrxh),1,UART_BUF,0,BYTE,DMA_BUF_LEN,HANDSHAKE,DMA0_UART3_1,MEM,SINGLE,&oUARTDma);
		break;
		}

	INTC_Enable(NUM_DMA0);
	
	DMACH_ClearIntPending(&oUARTDma);
	DMACH_ClearErrIntPending(&oUARTDma);

	DMACH_Start(&oUARTDma);

	}	

	while(!UART_GetKey())
	{
		if(g_AisRxDone[ch])
			break;
	}
		

	// for debugging fifo 
	if ( (Inp32(&pUartRegs->rUfCon) & 1) && (cTemp == 1) ) // 1 : fifo enable 
	{
		g_pFifoDebug = (u32 *)FIFO_DEBUG_BUF;
		while(*g_pFifoDebug)
			printf("[0x%x,%d,0x%x,%d] ", g_pFifoDebug, *g_pFifoDebug++, *g_pFifoDebug++,*g_pFifoDebug++);
	}

		INTC_Disable(NUM_UART0);
		INTC_Disable(NUM_UART1);
		INTC_Disable(NUM_UART2);
		INTC_Disable(NUM_UART3);	
		INTC_Disable(NUM_DMA0);

	g_pUartRxStr[ch] = ( u8 *)(UART_BUF+0x200000);

	return g_pUartRxStr[ch];
}


//////////
// Function Name : UART_WrUtxh
// Function Description : This function writes value on Utxh register
// Input : Channe [0~3]               Character[which you wants to write on Utxh register]
// Output : NONE
// Version : v0.1

void UART_WrUtxh(u32 cCh,u8 cTx)
{
	volatile UART_REGS *pUartRegs;

	pUartRegs = (volatile UART_REGS *)(UART_BASE+UART_OFFSET*cCh);

	Outp8(&pUartRegs->rUtxh,cTx);
}


//////////
// Function Name : UART_RdUrxh
// Function Description : This function reads value on Urxh register
// Input : Channe [0~3]
// Output : Urxh value
// Version : v0.1

u8 UART_RdUrxh(u32 cCh)
{
	volatile UART_REGS *pUartRegs;

	pUartRegs = (volatile UART_REGS *)(UART_BASE+UART_OFFSET*cCh);

	return Inp8(&pUartRegs->rUrxh);
}

//////////
// Function Name : UART_RxEmpty
// Function Description : This function Hold Uart until Rx FIFO empty
// Input : Channe [0~3]
// Output : Urxh value
// Version : v0.1
void UART_RxEmpty(u32 cCh)
{
	volatile UART_REGS *pUartRegs;

	pUartRegs = (volatile UART_REGS *)(UART_BASE+UART_OFFSET*cCh);


	while (Inp32(&pUartRegs->rUfStat )& 0x3f) 	//until rx fifo count 0 (fifo clear)
	{
	(u8)(Inp32(&pUartRegs->rUrxh));
	}	


}



//////////
// Function Name : UART_RdUTRSTAT
// Function Description : This function reads out UTRSTAT register
// Input : Channe [0~3]
// Output : UTRSTAT value
// Version : v0.1

u32 UART_RdUTRSTAT(u32 cCh)
{
	volatile UART_REGS *pUartRegs;

	pUartRegs = (volatile UART_REGS *)(UART_BASE+UART_OFFSET*cCh);

	return Inp32(&pUartRegs->rUtrStat);
}


//////////
// Function Name : UART_RdUFSTAT
// Function Description : This function reads out UFSTAT register(be able to check RX FIFO cnt, full bit)
// Input : Channe [0~3]
// Output : UFSTAT value
// Version : v0.1
u32 UART_RdUFSTAT(u32 cCh)
{
	volatile UART_REGS *pUartRegs;

	pUartRegs = (volatile UART_REGS *)(UART_BASE+UART_OFFSET*cCh);

	return Inp32(&pUartRegs->rUfStat);
}

//////////
// Function Name : UART_RdUMSTAT
// Function Description : This function reads out UMSTAT register(be able to check CTS signal bit)
// Input : Channe [0~3]
// Output : UMSTAT value
// Version : v0.1
u32 UART_RdUMSTAT(u32 cCh)
{
	volatile UART_REGS *pUartRegs;

	pUartRegs = (volatile UART_REGS *)(UART_BASE+UART_OFFSET*cCh);

	return Inp32(&pUartRegs->rUmStat);
}

//////////
// Function Name : UART_WrRTS
// Function Description : This function choose RTS enable signal manually
// Input : RTS [RTS_inAct/RTS_Act]
// Output : NONE
// Version : v0.1
void UART_WrRTS(u32 cCh, RTS en)
{
	volatile UART_REGS *pUartRegs;

	pUartRegs = (volatile UART_REGS *)(UART_BASE+UART_OFFSET*cCh);

	Outp32(&pUartRegs->rUmCon,en);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
天天色图综合网| 国产精品一区二区久激情瑜伽| 日本不卡一二三| 成人妖精视频yjsp地址| 欧美三级欧美一级| 亚洲视频精选在线| 国产成a人亚洲精| 91精品国产91综合久久蜜臀| 国产精品久久久久影院色老大| 久久成人久久鬼色| 欧美乱妇23p| 亚洲男人天堂av网| 色欧美乱欧美15图片| 91精品婷婷国产综合久久竹菊| 日韩精品久久理论片| 欧美猛男gaygay网站| 亚洲超碰97人人做人人爱| 欧美videossexotv100| 麻豆国产91在线播放| 一级日本不卡的影视| 91成人国产精品| 日韩高清一区在线| 亚洲品质自拍视频| 91美女在线看| 五月天精品一区二区三区| 一本一本大道香蕉久在线精品 | 狠狠色狠狠色综合系列| 国产视频一区二区在线观看| 精品精品欲导航| 日韩高清不卡在线| 91极品美女在线| 日韩理论在线观看| 不卡视频一二三| 国产欧美日韩激情| 成人午夜电影久久影院| 国产欧美一区二区三区在线老狼| 精品一区二区三区不卡 | 久久99精品久久久| 久久五月婷婷丁香社区| 国产成人啪午夜精品网站男同| 一区二区三区在线看| 一本一道波多野结衣一区二区| 午夜精品在线看| 在线播放一区二区三区| 九色综合国产一区二区三区| 国产精品三级久久久久三级| 色综合一个色综合| 国内不卡的二区三区中文字幕| 蜜臀av一区二区在线免费观看| 国产精品系列在线播放| 欧美在线观看你懂的| 亚洲综合网站在线观看| 欧美性色黄大片手机版| 天天综合网天天综合色| 91精品国产手机| 久久草av在线| 久久久久国产精品免费免费搜索| 国产成人啪午夜精品网站男同| 国产精品天美传媒沈樵| 色综合咪咪久久| 亚洲v精品v日韩v欧美v专区| 欧美一区二区久久| 国产一区二区精品在线观看| 欧美韩日一区二区三区| www.欧美精品一二区| 一区二区三区日韩在线观看| 欧美另类z0zxhd电影| 激情综合色播激情啊| 国产视频一区在线观看| 色乱码一区二区三区88| 三级一区在线视频先锋| 欧美精品一区二区三区在线播放| 国产成人av一区二区三区在线 | 91精品一区二区三区久久久久久 | 亚洲日本成人在线观看| 欧美三级韩国三级日本一级| 秋霞成人午夜伦在线观看| 久久嫩草精品久久久精品| 91美女在线看| 免费久久99精品国产| 中文字幕国产一区| 欧美日韩激情一区二区三区| 激情综合五月天| 国产精品久久久久久久久晋中 | 国产老女人精品毛片久久| 亚洲人成精品久久久久| 91精品国产欧美日韩| 成人一级视频在线观看| 亚洲一区日韩精品中文字幕| 精品电影一区二区三区| 色综合中文字幕| 精品一区二区三区久久| 亚洲欧美日韩国产手机在线| 欧美一级高清片| 成人app在线观看| 五月天欧美精品| 国产精品进线69影院| 欧美一区二区日韩| 91碰在线视频| 精品一区二区av| 亚洲激情在线播放| 久久久久久夜精品精品免费| 在线精品国精品国产尤物884a| 精品一二三四区| 亚洲成人av中文| 中文字幕一区不卡| 亚洲欧美一区二区久久| 日韩无一区二区| 色94色欧美sute亚洲13| 国产一区二区三区高清播放| 亚洲地区一二三色| 国产精品拍天天在线| 日韩亚洲国产中文字幕欧美| 91久久香蕉国产日韩欧美9色| 激情综合网天天干| 日韩在线观看一区二区| 亚洲色图制服诱惑| 日本一区二区三区四区| 日韩亚洲欧美综合| 欧美制服丝袜第一页| 成人h动漫精品一区二| 精品无人区卡一卡二卡三乱码免费卡 | gogogo免费视频观看亚洲一| 美女mm1313爽爽久久久蜜臀| 亚洲妇女屁股眼交7| 亚洲欧洲国产日本综合| 国产亚洲精品aa午夜观看| 日韩午夜在线播放| 欧美日本在线播放| 色诱视频网站一区| 国产 欧美在线| 国产自产高清不卡| 毛片不卡一区二区| 丝袜美腿高跟呻吟高潮一区| 一区二区三区波多野结衣在线观看| 国产精品人成在线观看免费| 久久婷婷一区二区三区| 欧美电影免费观看高清完整版在线观看| 欧美视频中文一区二区三区在线观看| 不卡av电影在线播放| 国产福利精品一区二区| 国产一区二区三区免费| 国产综合色视频| 精品无人码麻豆乱码1区2区| 久久国产精品99精品国产 | 亚洲欧美在线另类| 国产精品无码永久免费888| 久久精品视频免费观看| 精品国产乱码久久久久久牛牛| 日韩欧美精品在线| 日韩欧美亚洲国产另类| 日韩一区二区电影| 欧美电视剧在线看免费| 欧美一区二区视频在线观看| 欧美一区二区三区日韩视频| 欧美电影一区二区三区| 欧美久久久久免费| 欧美高清视频不卡网| 欧美日本在线观看| 欧美精品在线视频| 欧美精品久久天天躁| 日韩午夜在线观看视频| 精品国产网站在线观看| 精品国产3级a| 久久久蜜桃精品| 国产欧美一区视频| 亚洲欧美中日韩| 亚洲激情一二三区| 亚洲丰满少妇videoshd| 日产国产欧美视频一区精品| 精品伊人久久久久7777人| 国精产品一区一区三区mba桃花 | 久久国产免费看| 国产麻豆一精品一av一免费| 成人免费毛片高清视频| 成人av中文字幕| 在线亚洲一区二区| 欧美日韩一区高清| 日韩欧美一级二级| 欧美激情一区二区三区四区| 亚洲男人的天堂在线观看| 国精产品一区一区三区mba视频| 国产精品一卡二卡在线观看| 成人性生交大片免费看视频在线| 色综合久久综合| 这里只有精品视频在线观看| 2020国产精品自拍| 国产精品不卡在线| 午夜久久久久久久久| 极品少妇xxxx精品少妇偷拍| caoporen国产精品视频| 欧美三级视频在线播放| 精品电影一区二区| 亚洲欧美日韩中文字幕一区二区三区| 亚洲线精品一区二区三区八戒| 久久精品99久久久| www.亚洲免费av| 8v天堂国产在线一区二区| 久久久久久夜精品精品免费| 亚洲精品乱码久久久久久黑人 |