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

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

?? uart2.c

?? 三星2410 硬件功能測試程序
?? C
字號:
#include <string.h>
#include <stdlib.h>
#include "2410addr.h"
#include "2410lib.h"
#include "def.h"
#include "uart0.h"
#include "uart2.h"

void __irq Uart2_TxInt(void);
void __irq Uart2_RxIntOrErr(void);
void __irq Uart2_TxDmaDone(void);
void __irq Uart2_RxDmaDone(void);
void __irq Uart2_RxDmaOrErr(void);
void __irq Uart2_TxFifo(void);
void __irq Uart2_RxFifoOrErr(void);

void __sub_Uart2_RxInt(void);
void __sub_Uart2_RxFifo(void);
void __sub_Uart2_RxErrInt(void);

volatile static char *uart2TxStr;
volatile static char *uart2RxStr;

//---------------------------------------UART2 test function-------------------------------------
void __irq Uart2_TxInt(void)
{
    rINTSUBMSK|=(BIT_SUB_RXD2|BIT_SUB_TXD2|BIT_SUB_ERR2);	// Just for the safety
    if(*uart2TxStr != '\0')
    {
    	WrUTXH2(*uart2TxStr++);
        ClearPending(BIT_UART2);	// Clear master pending
        rSUBSRCPND=(BIT_SUB_TXD2);
        rINTSUBMSK&=~(BIT_SUB_TXD2);	// Unmask sub int
    }
    else
    {
    	isTxInt=0;
        ClearPending(BIT_UART2);	// Clear master pending
        rSUBSRCPND=(BIT_SUB_TXD2);
        rINTMSK|=(BIT_UART2);		// Unmask sub int
    }
}

void __irq Uart2_RxIntOrErr(void)
{
    rINTSUBMSK|=(BIT_SUB_RXD2|BIT_SUB_TXD2|BIT_SUB_ERR2);
    if(rSUBSRCPND&BIT_SUB_RXD2) __sub_Uart2_RxInt();
    else __sub_Uart2_RxErrInt();

    ClearPending(BIT_UART2);
    rSUBSRCPND=(BIT_SUB_RXD2|BIT_SUB_ERR2);	// Clear Sub int pending    
    rINTSUBMSK&=~(BIT_SUB_RXD2|BIT_SUB_ERR2);    
}

void __irq Uart2_TxDmaDone(void)
{
    rDMASKTRIG3=0x0;	// Stop Dma3
    isDone=0;
    rINTMSK |= BIT_DMA3;
    ClearPending(BIT_DMA3);
}

void __irq Uart2_RxDmaDone(void)
{
    rDMASKTRIG3=0x0;	//DMA3 Channel Off
    isDone=0;
    *(uart2RxStr+5)='\0';
    rINTMSK|=(BIT_DMA3);
    ClearPending(BIT_DMA3);
}

void __irq Uart2_RxDmaOrErr(void)
{
    rINTSUBMSK|=(BIT_SUB_RXD2|BIT_SUB_TXD2|BIT_SUB_ERR2);
    if(rSUBSRCPND&BIT_SUB_RXD2) Uart_Printf("Error : UART2 Rx Interrupt is occured!!!\n");
    else __sub_Uart2_RxErrInt();

    ClearPending(BIT_UART2);
    rSUBSRCPND=(BIT_SUB_ERR2);	// Clear Sub int pending    
    rINTSUBMSK&=~(BIT_SUB_ERR2);    
}

void __irq Uart2_TxFifo(void)
{
    rINTSUBMSK|=(BIT_SUB_RXD2|BIT_SUB_TXD2|BIT_SUB_ERR2);	// Just for the safety
    while (!(rUFSTAT2 & 0x200) && (*uart2TxStr != '\0')) 	//until tx fifo full or end of string
    	WrUTXH2(*uart2TxStr++);	

    if(*uart2TxStr == '\0') 
    {
    	rINTMSK|=BIT_UART2;
        rSUBSRCPND=BIT_SUB_TXD2;	// Clear Sub int pending
        ClearPending(BIT_UART2);	// Clear master pending
    }
    else 
    {
        ClearPending(BIT_UART2);	// Clear master pending
        rSUBSRCPND=BIT_SUB_TXD2;	// Clear Sub int pending
        rINTSUBMSK&=~(BIT_SUB_TXD2);	// Unmask sub int
    }
}

void __irq Uart2_RxFifoOrErr(void)
{
    rINTSUBMSK|=(BIT_SUB_RXD2|BIT_SUB_TXD2|BIT_SUB_ERR2);
    if(rSUBSRCPND&BIT_SUB_RXD2) __sub_Uart2_RxFifo();
    else __sub_Uart2_RxErrInt();
    ClearPending(BIT_UART2);
    rSUBSRCPND=(BIT_SUB_RXD2|BIT_SUB_ERR2);
    rINTSUBMSK&=~(BIT_SUB_RXD2|BIT_SUB_ERR2);
}

void __sub_Uart2_RxInt(void)
{
    if(RdURXH2()!='\r') 
    {
    	Uart_Printf("%c",RdURXH2());
        *uart2RxStr++ =(char) RdURXH2();
    }
    else
    {
    	isRxInt=0;
    	*uart2RxStr='\0';
    	Uart_Printf("\n");
    }
}

void __sub_Uart2_RxFifo(void)
{
    while((rUFSTAT2&0x100)||(rUFSTAT2&0xf))	//During the Rx FIFO is not empty
    {
	rx_point++;
	if(rx_point<5)
		 rx_filesize |= (RdURXH2()<<(8*(rx_point-1))); // First 4-bytes mean file size
	else if(rx_point>(rx_filesize-2))	
	{
		rx_dncs |= (RdURXH2()<<(8*(1-(rx_filesize-rx_point)))); //Last 2-bytes mean checksum.
		if(rx_point==rx_filesize) rx_isdone=0;
	}
	else
		rx_checksum+=RdURXH2();
    }
}

  
void __sub_Uart2_RxErrInt(void)
{
    switch(rUERSTAT2)//to clear and check the status of register bits
    {
	case '1':
	    Uart_Printf("Overrun error\n");
	    break;
	case '2':
	    Uart_Printf("Parity error\n");
	    break;
	case '4':
	    Uart_Printf("Frame error\n");
	    break;
	case '8':
	    Uart_Printf("Breake detect\n");
	    break;
	default :
	    break;
    }
}


void Test_Uart2_Int(void)
{
    Uart_Port_Set(); 
    // Additional configuration for UART2 port
    rGPHCON&=0x3fafff;      // TXD2,RXD2

    Uart_Select(0);    
    /*********** UART2 Tx test with interrupt ***********/  
    isTxInt=1;
    uart2TxStr="ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890->UART2 Tx interrupt test is good!!!!\r\n";
    Uart_Printf("[Uart channel 2 Tx Interrupt Test]\n");

    //-------------------------------------------------------------------------------------------->
    Uart_Printf("\nConnect PC[COM1 or COM2] and UART2 of SMDK2410 with a serial cable!!! \n");
    Uart_Printf("Then, press any key........\n");
    Uart_Select(2);	// Change the uart port    
    Uart_Getch();
    //----------------------------------------->

    pISR_UART2=(unsigned)Uart2_TxInt;

    rULCON2=(0<<6)|(0<<3)|(0<<2)|(3);	// Normal,No parity,One stop bit, 8bit
    rUCON2 &= 0x400;	// For the PCLK <-> UCLK fuction
    rUCON2 |= (TX_INTTYPE<<9)|(RX_INTTYPE<<8)|(0<<7)|(0<<6)|(0<<5)|(0<<4)|(1<<2)|(1);
    //Clock,Tx:Def,Rx:Def,Rx timeout:x,Rx error int:x,Loop-back:x,Send break:x,Tx:int,Rx:int
    Uart_TxEmpty(0); //wait until tx buffer is empty.
    rINTMSK=~(BIT_UART2);
    rINTSUBMSK=~(BIT_SUB_TXD2);

    while(isTxInt);

    /*********** UART2 Rx test with interrupt ***********/
    isRxInt=1;
    uart2RxStr=(volatile char *)UARTBUFFER;
    Uart_Printf("\n[Uart channel 2 Rx Interrupt Test]:\n");
    Uart_Printf("After typing ENTER key, you will see the characters which was typed by you.");
    Uart_Printf("\nTo quit, press ENTER key.!!!\n");
    
    pISR_UART2 =(unsigned)Uart2_RxIntOrErr;

    rULCON2=(0<<6)|(0<<3)|(0<<2)|(3);	// Normal,No parity,One stop bit, 8bit
    rUCON2 &= 0x400;	// For the PCLK <-> UCLK fuction
    rUCON2 |= (TX_INTTYPE<<9)|(RX_INTTYPE<<8)|(0<<7)|(1<<6)|(0<<5)|(0<<4)|(1<<2)|(1);
    //Clock,Tx:pulse,Rx:pulse,Rx timeout:x,Rx error int:o,Loop-back:x,Send break:x,Tx:int,Rx:int

    // Clear Int Pending and Unmask
    ClearPending(BIT_UART2);
    rINTMSK=~(BIT_UART2);
    rSUBSRCPND=(BIT_SUB_RXD2|BIT_SUB_ERR2);
    rINTSUBMSK=~(BIT_SUB_RXD2|BIT_SUB_ERR2);
    
    while(isRxInt);

    rINTSUBMSK|=(BIT_SUB_RXD2|BIT_SUB_TXD2|BIT_SUB_ERR2);
    rINTMSK|=(BIT_UART2);

    Uart_Printf("%s\n",(char *)UARTBUFFER);


    //----------------------------------------------------------------------------------------->    
    Uart_Printf("\nConnect PC[COM1 or COM2] and UART0 of SMDK2410 with a serial cable!!! \n");
    Uart_Printf("Then, press any key........\n");
    Uart_Select(0);
    Uart_Getch();
    //--------------------------->


    Uart_Port_Return();
}

void Test_Uart2_Dma(void)
{
    Uart_Port_Set(); 
    // Additional configuration for UART2 port
    rGPHCON&=0x3fafff;      // TXD2,RXD2
    
    Uart_Select(0);    
    /*********** UART2 Tx test with DMA3 ***********/ 
    isDone=1;
    uart2TxStr="ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890->UART2 Tx Test by DMA3 is good!!!!\r\n";
    Uart_Printf("\n[Uart channel 2 DMA3 Tx Test]\n");
    Uart_TxEmpty(0);
    
    //-------------------------------------------------------------------------------------------->
    Uart_Printf("\nConnect PC[COM1 or COM2] and UART2 of SMDK2410 with a serial cable!!! \n");
    Uart_Printf("Then, press any key........\n");
    Uart_Select(2);	// Change the uart port    
    Uart_Getch();
    Uart_Printf("Port is changed.......\n");
    //----------------------------------------->
  
    
    pISR_DMA3  =(unsigned)Uart2_TxDmaDone;

    rULCON2=(0<<6)|(0<<3)|(0<<2)|(3);	// Normal,No parity,One stop bit, 8bit
    rUCON2 &= 0x400;	// For the PCLK <-> UCLK fuction    
    rUCON2 |= (TX_INTTYPE<<9)|(RX_INTTYPE<<8)|(0<<7)|(0<<6)|(0<<5)|(0<<4)|(2<<2)|(1);
    //Clock,Tx:Def,Rx:Def,Rx timeout:x,Rx error int:x,Loop-back:x,Send break:x,Tx:dma3,Rx:int

    /***DMA3 init***/
    rDISRC3=(U32)uart2TxStr;	// Start address
    rDISRCC3=(0<<1)|(0);		// AHB,Increment
    rDIDST3=(U32)UTXH2;			// Memory buffer Address
    rDIDSTC3=(1<<1)|(1);		// APB,Fixed
    rDCON3=(1<<31)|(0<<30)|(1<<29)|(0<<28)|(0<<27)|(0<<24)|(1<<23)|(1<<22)|(0<<20)|strlen((char*)uart2TxStr);
    //handshake, sync PCLK, TC int, single tx, single service, Uart2, H/W request,auto-reload off, Byte size Tx, Tx count value
    rINTMSK=~(BIT_DMA3);
    rDMASKTRIG3=(0<<2)|(1<<1)|(0);    //no-stop, DMA3 channel on, no-SW trigger 

    while(isDone);

    /*********** UART2 Rx test with DMA3 ***********/ 
    isDone=1;
    uart2RxStr=(char *)UARTBUFFER;
    Uart_Printf("\n[Uart channel 2 DMA3 Rx Test]\n");
    Uart_Printf("Type any five keys!!!\n");    
    Uart_Printf("Then you will see what you typed.\n");

    pISR_DMA3=(unsigned)Uart2_RxDmaDone;
    pISR_UART2=(unsigned)Uart2_RxDmaOrErr;
    
    rULCON2=(0<<6)|(0<<3)|(0<<2)|(3);	// Normal,No parity,One stop bit, 8bit
    rUCON2 &= 0x400;	// For the PCLK <-> UCLK fuction    
    rUCON2 |= (TX_INTTYPE<<9)|(RX_INTTYPE<<8)|(0<<7)|(1<<6)|(0<<5)|(0<<4)|(1<<2)|(2);
    //Clock,Tx:Def,Rx:Def,Rx timeout:x,Rx error int:o,Loop-back:x,Send break:x,Tx:int,Rx:dma3

    /***DMA3 init***/
    rDISRC3=(U32)URXH2;			// Start address
    rDISRCC3=(1<<1)|(1);		// APB,Fixed
    rDIDST3=(U32)uart2RxStr;	// Memory buffer Address
    rDIDSTC3= (0<<1)|(0);		// AHB,Increment
    rDCON3=(1<<31)|(0<<30)|(1<<29)|(0<<28)|(0<<27)|(0<<24)|(1<<23)|(1<<22)|(0<<20)|(5);
    //handshake, sync PCLK, TC int, single tx, single service, Uart2, H/W request,auto-reload off, Byte size Tx, Tx count value

    // Clear Int Pending and Unmask
    ClearPending(BIT_UART2);
    rINTMSK=~(BIT_DMA3|BIT_UART2);
    rSUBSRCPND=(BIT_SUB_RXD2|BIT_SUB_TXD2|BIT_SUB_ERR2);
    rINTSUBMSK=~(BIT_SUB_ERR2);
    rDMASKTRIG3=(0<<2)|(1<<1)|(0);    //no-stop, DMA3 channel on, no-SW trigger 

    while(isDone);

    Uart_Printf("%s\n",uart2RxStr);
    

    //----------------------------------------------------------------------------------------->    
    Uart_Printf("\nConnect PC[COM1 or COM2] and UART0 of SMDK2410 with a serial cable!!! \n");
    Uart_Printf("Then, press any key........\n");
    Uart_Select(0);
    Uart_Getch();
    //--------------------------->


    Uart_Port_Return();
}

void Test_Uart2_Fifo(void)
{
    Uart_Port_Set(); 
    // Additional configuration for UART2 port
    rGPHCON&=0x3fafff;      // TXD2,RXD2

    Uart_Select(0);
    /******* UART2 Tx FIFO test with interrupt ********/     
    Uart_Printf("[Uart channel 2 Tx FIFO Interrupt Test]\n");
    Uart_TxEmpty(0);	//wait until tx buffer is empty.
    
    //-------------------------------------------------------------------------------------------->
    Uart_Printf("\nConnect PC[COM1 or COM2] and UART2 of SMDK2410 with a serial cable!!! \n");
    Uart_Printf("Then, press any key........\n");
    Uart_Select(2);	// Change the uart port    
    Uart_Getch();
    //----------------------------------------->
    
    
    /* <Tx Trigger Level:8Byte> */    
    uart2TxStr="ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890->UART2 Tx FIFO interrupt(8byte) test is good!!!!\r\n";
    pISR_UART2=(U32)Uart2_TxFifo;
    rULCON2=(0<<6)|(0<<3)|(0<<2)|(3);	// Normal,No parity,One stop bit, 8bit
    rUCON2 &= 0x400;	// For the PCLK <-> UCLK fuction    
    rUCON2 |= (TX_INTTYPE<<9)|(RX_INTTYPE<<8)|(0<<7)|(0<<6)|(0<<5)|(0<<4)|(1<<2)|(1);
    //Clock,Tx:Def,Rx:Def,Rx timeout:x,Rx error int:x,Loop-back:x,Send break:x,Tx:int,Rx:int
    rUFCON2=(2<<6)|(1<<4)|(1<<2)|(1<<1)|(1);
    //Tx and Rx FIFO Trigger Level:8byte,Tx and Rx FIFO Reset,FIFO on
    rINTMSK=~(BIT_UART2);
    rINTSUBMSK=~(BIT_SUB_TXD2);
    Delay(500);
    rUFCON2=(2<<6)|(1<<4)|(1<<2)|(1<<1)|(0);
    //Tx and Rx FIFO Trigger Level:8byte,Tx and Rx FIFO Reset,FIFO off

    /* <Tx Trigger Level:12Byte> */    
    uart2TxStr="ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890->UART2 Tx FIFO interrupt(12byte) test is good!!!!\r\n";
    pISR_UART2=(unsigned)Uart2_TxFifo;
    rULCON2=(0<<6)|(0<<3)|(0<<2)|(3);	// Normal,No parity,One stop bit, 8bit
    rUCON2 &= 0x400;	// For the PCLK <-> UCLK fuction    
    rUCON2 |= (TX_INTTYPE<<9)|(RX_INTTYPE<<8)|(0<<7)|(0<<6)|(0<<5)|(0<<4)|(1<<2)|(1);
    //Clock,Tx:Def,Rx:Def,Rx timeout:x,Rx error int:x,Loop-back:x,Send break:x,Tx:int,Rx:int
    rUFCON2=(3<<6)|(2<<4)|(1<<2)|(1<<1)|(1);
    //Tx and Rx FIFO Trigger Level:12byte,Tx and Rx FIFO Reset,FIFO on
    rINTMSK=~(BIT_UART2);
    rINTSUBMSK=~(BIT_SUB_TXD2);
    Delay(500);
    rUFCON2=(3<<6)|(2<<4)|(1<<2)|(1<<1)|(0);
    //Tx and Rx FIFO Trigger Level:12byte,Tx and Rx FIFO Reset,FIFO off

    
    /******* UART2 Rx FIFO test with interrupt ********/     
    rx_dncs=0;
    rx_point=0;
    rx_isdone=1;
    rx_filesize=0;
    rx_checksum=0;
    Uart_Printf("[Uart channel 2 Rx FIFO Interrupt Test]\n");

    pISR_UART2=(unsigned)Uart2_RxFifoOrErr;

    rULCON2=(0<<6)|(0<<3)|(0<<2)|(3);	// Normal,No parity,One stop bit, 8bit
    rUCON2 &= 0x400;	// For the PCLK <-> UCLK fuction
    rUCON2 |= (TX_INTTYPE<<9)|(RX_INTTYPE<<8)|(1<<7)|(1<<6)|(0<<5)|(0<<4)|(1<<2)|(1);
    //Clock,Tx:Def,Rx:Def,Rx timeout:o,Rx error int:o,Loop-back:x,Send break:x,Tx:int,Rx:int
    rUFCON2=(1<<6)|(0<<4)|(1<<2)|(1<<1)|(1);
    //Tx and Rx FIFO Trigger Level:4byte,Tx and Rx FIFO Reset,FIFO on

    // Clear Int Pending and Unmask 
    ClearPending(BIT_UART2);
    rINTMSK=~(BIT_UART2);
    rSUBSRCPND=(BIT_SUB_RXD2|BIT_SUB_TXD2|BIT_SUB_ERR2);
    rINTSUBMSK=~(BIT_SUB_RXD2|BIT_SUB_ERR2);

    Uart_Printf("Download the target file[*.bin] by Uart2\n");
	
    while(rx_isdone);

    rINTMSK |= (BIT_UART2);	
    rINTSUBMSK|=(BIT_SUB_RXD2|BIT_SUB_TXD2|BIT_SUB_ERR2);

    rUFCON2=(3<<6)|(2<<4)|(1<<2)|(1<<1)|(0);
    //Tx and Rx FIFO Trigger Level:12byte,Tx and Rx FIFO Reset,FIFO off
			
    if(rx_dncs==(rx_checksum&0xffff)) 
	Uart_Printf("\nDownload test OK!!!\n");
    else 
	Uart_Printf("\nError!!!\n");


    //----------------------------------------------------------------------------------------->    
    Uart_Printf("\nConnect PC[COM1 or COM2] and UART0 of SMDK2410 with a serial cable!!! \n");
    Uart_Printf("Then, press any key........\n");
    Uart_Select(0);
    Uart_Getch();
    //--------------------------->


    Uart_Port_Return();	
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人av在线资源| 中文字幕乱码亚洲精品一区| 2023国产精华国产精品| 一区免费观看视频| 国内精品久久久久影院一蜜桃| 91麻豆123| 久久无码av三级| 日本少妇一区二区| 一本色道久久综合亚洲91| 久久精品亚洲精品国产欧美| 三级成人在线视频| 在线免费观看不卡av| 国产精品美女久久久久久| 美女在线视频一区| 欧美高清www午色夜在线视频| 综合在线观看色| 国产成人综合网| 久久青草欧美一区二区三区| 婷婷国产v国产偷v亚洲高清| 一本色道久久综合亚洲91| 精品国产伦一区二区三区免费| 亚洲成人动漫在线免费观看| 99视频一区二区三区| 国产欧美精品日韩区二区麻豆天美| 老司机免费视频一区二区三区| 欧美久久一区二区| 亚洲综合一二三区| 色久优优欧美色久优优| 亚洲欧洲国产日韩| 91久久国产最好的精华液| 国产女人水真多18毛片18精品视频| 免费精品视频在线| 日韩精品专区在线| 毛片不卡一区二区| 精品国免费一区二区三区| 久久国产精品一区二区| 欧美不卡激情三级在线观看| 亚洲国产精品久久久男人的天堂| 在线视频欧美区| 三级久久三级久久| 日韩一卡二卡三卡四卡| 六月丁香综合在线视频| 精品国产三级a在线观看| 狠狠色2019综合网| 国产午夜精品美女毛片视频| 成人精品免费视频| 亚洲另类色综合网站| 欧美午夜精品久久久久久孕妇| 亚洲高清免费观看高清完整版在线观看| 色综合久久久久久久久| 亚洲va欧美va人人爽| 欧美一区二区三区免费| 狠狠色丁香婷婷综合久久片| 亚洲国产精华液网站w| 日本韩国欧美在线| 奇米色一区二区三区四区| 久久美女艺术照精彩视频福利播放| 福利一区福利二区| 亚洲黄色尤物视频| 日韩欧美第一区| 岛国精品一区二区| 亚洲一二三区不卡| 精品国产一区二区三区不卡 | 成人久久18免费网站麻豆| 18成人在线观看| 日韩欧美中文字幕公布| 成人免费视频网站在线观看| 亚洲综合色噜噜狠狠| 日韩欧美国产精品| 91老司机福利 在线| 蜜臀久久久久久久| 成人欧美一区二区三区小说| 欧美日韩一级片网站| 国产另类ts人妖一区二区| 一区二区在线免费观看| 精品久久人人做人人爽| 99精品欧美一区二区蜜桃免费| 图片区小说区国产精品视频| 国产精品三级电影| 91精品国产综合久久福利软件| 成人高清视频免费观看| 老色鬼精品视频在线观看播放| 亚洲日本青草视频在线怡红院 | 色哟哟一区二区在线观看| 美国毛片一区二区三区| 国产精品成人一区二区三区夜夜夜| 欧美精品色综合| 91一区二区在线观看| 精品一区二区精品| 亚洲二区在线观看| 亚洲图片激情小说| 久久精品欧美一区二区三区麻豆 | 蜜臀精品久久久久久蜜臀| 欧美经典一区二区三区| 日韩三级伦理片妻子的秘密按摩| 色香蕉成人二区免费| 国产成人精品一区二区三区网站观看| 日韩av在线发布| 五月天精品一区二区三区| 亚洲精品乱码久久久久久久久 | 久久激五月天综合精品| 亚洲一区二区三区四区的| 国产精品久久久久三级| 国产欧美视频在线观看| 日韩精品在线一区| 欧美乱熟臀69xxxxxx| 欧美日韩在线免费视频| 欧美色图天堂网| 色婷婷久久久久swag精品| 成人免费视频播放| 成人性生交大片免费看在线播放| 激情六月婷婷综合| 久久99精品久久久久婷婷| 日韩av电影一区| 日本va欧美va精品发布| 蜜桃视频一区二区三区| 久久国产成人午夜av影院| 久久精品国产精品亚洲精品| 老司机精品视频线观看86| 久久精品免费观看| 国产高清不卡一区二区| 成人av电影在线| 91麻豆精品在线观看| 色噜噜狠狠色综合欧洲selulu| 91免费看`日韩一区二区| 成人av在线一区二区| 99久久免费精品高清特色大片| 91小视频在线免费看| 欧美性生活久久| 欧美一区在线视频| 亚洲精品在线三区| 久久久三级国产网站| 中文字幕免费观看一区| 中文字幕一区二区三区不卡| 夜夜爽夜夜爽精品视频| 亚洲国产欧美另类丝袜| 久久电影网电视剧免费观看| 成人影视亚洲图片在线| 色香蕉成人二区免费| 制服丝袜亚洲色图| ww亚洲ww在线观看国产| 亚洲三级在线免费观看| 人妖欧美一区二区| 国产成人在线观看免费网站| 在线观看亚洲一区| 精品久久免费看| 亚洲品质自拍视频| 蜜臀av一区二区三区| 国产·精品毛片| 欧美精品aⅴ在线视频| 欧美国产一区在线| 午夜私人影院久久久久| 国产黑丝在线一区二区三区| 欧美主播一区二区三区美女| 精品国精品国产尤物美女| 国产精品国产三级国产普通话99 | 激情综合网天天干| 成人app下载| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 韩国三级电影一区二区| 91丨九色丨国产丨porny| 5566中文字幕一区二区电影| 国产欧美精品一区二区三区四区 | 亚洲精品日韩综合观看成人91| 免费亚洲电影在线| 91丨porny丨首页| 亚洲精品一区二区三区香蕉| 一区二区久久久久| 成人禁用看黄a在线| 日韩欧美国产一二三区| 亚洲激情一二三区| 国产成a人亚洲| 精品免费国产二区三区| 亚洲综合视频在线观看| 成人高清视频在线观看| 久久视频一区二区| 日本午夜精品一区二区三区电影| 91香蕉视频污| 亚洲国产经典视频| 国产寡妇亲子伦一区二区| 精品免费视频.| 日韩电影免费在线观看网站| 欧美在线色视频| 亚洲区小说区图片区qvod| 懂色中文一区二区在线播放| 欧美电影免费观看高清完整版| 午夜私人影院久久久久| 欧美中文一区二区三区| 国产精品理伦片| 国产不卡视频在线播放| 精品国产露脸精彩对白| 免费在线观看成人| 欧美一卡在线观看| 日本不卡一二三区黄网| 欧美日韩视频在线第一区 | 亚洲欧洲综合另类在线| av中文字幕一区| 国产精品萝li| 不卡的av中国片| 最新热久久免费视频|