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

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

?? extdma.c

?? SMDK官方測試源代碼
?? C
字號:
#include <string.h>
#include "2410addr.h"
#include "2410lib.h"
#include "option.h"
#include "def.h"

void _Dma0XdreqHandshakeUnit8bit(void);	    //SET_XDREQ16()
void _Dma0XdreqHandshakeUnit16bit(void);    //SET_XDREQ16()
void _Dma0XdreqHandshakeUnit32bit(void);    //SET_XDREQ16()
void _Dma0XdreqHandshakeBurst16bit(void);   //SET_XDREQ16()

void _Dma0XdreqDemandUnit16bit(void);	    //SET_XDREQDm()
void _Dma0XdreqDemandBurst16bit(void);	    //SET_XDREQDm()

void _Dma0XdreqWholeUnit16bit(void);	    //SET_XDREQ1()
void _Dma0XdreqWholeBurst16bit(void);	    //SET_XDREQ1()


#define BUS8		(0)
#define BUS16		(1)
#define BUS32		(2)

//GPG9  = DMAMODE0
//GPG10 = DMAMODE1
//GPG8  = nDMASTART

#define SET_XDREQ16()	rGPGDAT=(rGPGDAT&~(3<<9))|(0x1<<9)    //xxx01xxx handshake
#define SET_XDREQ1()	rGPGDAT=(rGPGDAT&~(3<<9))|(0x2<<9)    //xxx10xxx whole
#define START_XDREQ()	{rGPGDAT=(rGPGDAT&~(1<<8))|(0x0<<8);\
			rGPGDAT=(rGPGDAT&~(1<<8))|(0x1<<8);} //xxx1xxx -> xxx0xxx -> xxx1xxx
#define SET_XDREQDm()	rGPGDAT=(rGPGDAT&~(3<<9))|(0x3<<9)    //xxx11xxx demand
//DMAMODE[1:0]:	01b= 16 time requests   
//		10b= one time request
//		11b= demand request

volatile int isDma0Done;

//Verilog code for data bus pins of the EPM7032AE
//assign data[3:0] = (!nGCS && !nOE ) ? wdata:4'bz;


void __irq IsrDma0Done(void)
{
    ClearPending(BIT_DMA0);
    isDma0Done=1;
}


void Test_Dma0Xdreq(void)
{
    U32 savePLLCON,saveCLKDIVN;


    rINTMSK=BIT_ALLMSK;
    pISR_DMA0=(U32)IsrDma0Done;
    rINTMSK=~(BIT_DMA0);

    saveCLKDIVN=rCLKDIVN;
    savePLLCON=rMPLLCON;

    Uart_TxEmpty(0);
    ChangeClockDivider(1,1);	    // 1:2:4 
    ChangeMPllValue(0x5c,0x4,0x1);  //Fin=12MHz FCLK=100MHz
    Uart_Init(25000000,115200);

    rGPBCON=(rGPBCON & (~(0xf<<18))) | (0xa<<18);   //GPB9=nXDACK0, GPB10=nXDREQ0
    //rMISCCR=(rMISCCR & (~(0xf<<4))) | (0x3<<4);   // reset value = nRSTCON bit is high
    rMISCCR=0x330;	//HCLK
    rGPHCON=(rGPHCON & (~(0x3<<18))) | (0x2<<18);   //GPH9=CLKOUT0
    
    rGPGDAT &= (0x9<<8);    // DMAMODE[1:0]=00
    rGPGDAT |= (0x1<<8);    // nDMASTART=1;
    rGPGCON=(rGPGCON & (~(0x3f<<16))) | (0x15<<16);   //GPG8=nDMASTART,GPG9=DMAMODE0,GPG10=DMAMODE1

    Uart_Printf("Test Menu for Dma0 nXDREQ/nXDACK\n");
    Uart_Printf("1: Single/handshake/unit/8bit   src:GCS0(16)  dst:SDRAM(32)\n");
    Uart_Printf("2: Single/handshake/unit/16bit  src:GCS0(16)  dst:SDRAM(32)\n");
    Uart_Printf("3: Single/handshake/unit/32bit  src:GCS0(16)  dst:SDRAM(32)\n");
    Uart_Printf("4: Single/handshake/burst/16bit src:GCS0(16)  dst:SDRAM(32)\n");
    Uart_Printf("5: Whole/handshake/unit/16bit   src:GCS0(16)  dst:SDRAM(32)\n");
    Uart_Printf("6: Whole/handshake/burst/16bit  src:GCS0(16)  dst:SDRAM(32)\n");
//    Uart_Printf("7: Single/Demand/unit/16bit     src:GCS0(16)  dst:SDRAM(32)\n");
//    Uart_Printf("8: Single/Demand/burst/16bit    src:GCS0(16)  dst:SDRAM(32)\n");
    Uart_Printf("Select the item?\n");

    switch(Uart_Getch())
    {
    case '1':
    	_Dma0XdreqHandshakeUnit8bit();
    	break;
    case '2':
    	_Dma0XdreqHandshakeUnit16bit();
    	break;
    case '3':
    	_Dma0XdreqHandshakeUnit32bit();
    	break;
    case '4':
    	_Dma0XdreqHandshakeBurst16bit();
    	break;
    case '5':
    	_Dma0XdreqWholeUnit16bit();
    	break;
    case '6':
    	_Dma0XdreqWholeBurst16bit();
    	break;
/*    case '7':
	_Dma0XdreqDemandUnit16bit();
	break;
    case '8':
	_Dma0XdreqDemandBurst16bit();
	break;*/
    default:
    	break;
    }
    rINTMSK=BIT_ALLMSK;

    Uart_TxEmpty(0);
    rCLKDIVN=saveCLKDIVN;
    rMPLLCON=savePLLCON;
    Uart_Init(0,115200);
}

void _Dma0XdreqHandshakeUnit8bit(void)
{
    int i;
    static U8 *bufDst;
    
    Uart_Printf("[Dma0,Single,handShake,unit,8bit Test,B0->SDRAM]\n");
    //Uart_Printf("NOTE:Ignore bit[3:0]!!\n");//?????

    bufDst=(U8 *)0x31000000;//Non cacheable area

    for(i=0;i<16;i++)
	bufDst[i]=0;
    
    isDma0Done=0;

    rDISRC0=(int)(0x0);	// B0
    rDISRCC0=(0<<1)+(0<<0);	// AHB, inc
    rDIDST0=(U32)(bufDst);	// bufDst
    rDIDSTC0=(0<<1)+(0<<0);	// AHB, inc
    rDCON0=(1<<31)+(1<<30)+(1<<29)+(0<<28)+(0<<27)+(0<<24)+(1<<23)+(1<<22)+(0<<20)+16;
    //handshake, sync HCLK, TC int, single tx, single service, nXDREQ0, H/W request, 
    //auto-reload off, byte, 16
    rDMASKTRIG0=(0<<2)+(1<<1)+0;    //no-stop, DMA2 channel on, no-sw trigger 


    SET_XDREQ16();
    START_XDREQ();
    
    while(isDma0Done==0);
    
    for(i=0;i<16;i++)
	Uart_Printf( "%2x,",*((U8 *)0x0+i) );
    Uart_Printf("\n");
    for(i=0;i<16;i++)
	Uart_Printf("%2x,",bufDst[i]);
}

void _Dma0XdreqHandshakeUnit16bit(void)
{
    int i;
    static U16 *bufDst;

    Uart_Printf("[Dma0,Single,HandShake,unit,16bit Test,B0->SDRAM]\n");

    bufDst=(U16 *)0x31000000;//Non cacheable area

    for(i=0;i<16;i++)//{bufSrc[i]=i;bufDst[i]=0;}
	bufDst[i]=0;
    
    isDma0Done=0;

    rDISRC0=(int)(0x0);		// B0
    rDISRCC0=(0<<1)+(0<<0);	// AHB, inc
    rDIDST0=(U32)(bufDst);	// bufDst
    rDIDSTC0=(0<<1)+(0<<0);	// AHB, inc
    rDCON0=(1<<31)+(1<<30)+(1<<29)+(0<<28)+(0<<27)+(0<<24)+(1<<23)+(1<<22)+(1<<20)+16;
    //handshake, sync HCLK, TC int, single tx, single service, nXDREQ0, H/W request, 
    //auto-reload off, half word, 16hw
    rDMASKTRIG0=(0<<2)+(1<<1)+0;    //no-stop, DMA2 channel on, no-sw trigger 
    SET_XDREQ16();
    START_XDREQ();
    
    while(isDma0Done==0);

    for(i=0;i<16;i++)
	Uart_Printf("%4x,",*((U16 *)0x0+i));
    Uart_Printf("\n");
    for(i=0;i<16;i++)
	Uart_Printf("%4x,",*((U16 *)bufDst+i));
}

void _Dma0XdreqHandshakeUnit32bit(void)
{
    int i;
    static U32 *bufDst;

    Uart_Printf("[Dma0,HandShake,unit,32bit Test,B0->SDRAM]\n");

    bufDst=(U32 *)0x31000000;//Non cacheable area

    for(i=0;i<16;i++)
	bufDst[i]=0;
    
    isDma0Done=0;

    rDISRC0=(int)(0x0);		// B0
    rDISRCC0=(0<<1)+(0<<0);	// AHB, inc
    rDIDST0=(U32)(bufDst);	// bufDst
    rDIDSTC0=(0<<1)+(0<<0);	// AHB, inc
    rDCON0=(1<<31)+(1<<30)+(1<<29)+(0<<28)+(0<<27)+(0<<24)+(1<<23)+(1<<22)+(2<<20)+16;
    //handshake, sync HCLK, TC int, single tx, single service, nXDREQ0, H/W request, 
    //auto-reload off, word, 16w
    rDMASKTRIG0=(0<<2)+(1<<1)+0;    //no-stop, DMA2 channel on, no-sw trigger 
    
    SET_XDREQ16();
    START_XDREQ();
    
    while(isDma0Done==0);    	
    for(i=0;i<16;i++)
    {
    	Uart_Printf("%8x,",*((U32 *)0+i));
    	if(i%8==7)
	    Uart_Printf("\n");
    }
    
    for(i=0;i<16;i++)
    {
    	Uart_Printf("%8x,",bufDst[i]);
    	if(i%8==7)
	    Uart_Printf("\n");
    }
}

void _Dma0XdreqHandshakeBurst16bit(void)
{
    int i;
    static U16 *bufDst;

    Uart_Printf("[Dma0,HandShake,burst,16bit Test,B0->SDRAM]\n");

    bufDst=(U16 *)0x31000000;//Non cacheable area
    for(i=0;i<64;i++)
	bufDst[i]=0;
    
    isDma0Done=0;
    
    rDISRC0=(int)(0x0);		// B0
    rDISRCC0=(0<<1)+(0<<0);	// AHB, inc
    rDIDST0=(U32)(bufDst);	// bufDst
    rDIDSTC0=(0<<1)+(0<<0);	// AHB, inc
    rDCON0=(1<<31)+(1<<30)+(1<<29)+(1<<28)+(0<<27)+(0<<24)+(1<<23)+(1<<22)+(1<<20)+16;
    //handshake, sync HCLK, TC int, burst tx, single service, nXDREQ0, H/W request, 
    //auto-reload off, half-word, 64hw
    rDMASKTRIG0=(0<<2)+(1<<1)+0;    //no-stop, DMA2 channel on, no-sw trigger 

    SET_XDREQ16();
    START_XDREQ();
    
    while(isDma0Done==0);

    for(i=0;i<64;i++)
    {
	Uart_Printf("%4x,",*((U16 *)0x0+i));
	if(i%8==7)
	    Uart_Printf("\n");
    }
    Uart_Printf("\n");
    for(i=0;i<64;i++)
    {
	Uart_Printf("%4x,",*((U16 *)bufDst+i));
	if(i%8==7)Uart_Printf("\n");
    }
}

void _Dma0XdreqWholeUnit16bit(void)
{
    int i;
    static U16 *bufDst;


    Uart_Printf("[Dma0,Whole,HandShake,unit,16bit Test,B0->SDRAM]\n");
    
    bufDst=(U16 *)0x31000000;//Non cacheable area
    for(i=0;i<16;i++)
	bufDst[i]=0;
    
    isDma0Done=0;

    rDISRC0=(int)(0x0);		// B0
    rDISRCC0=(0<<1)+(0<<0);	// AHB, inc
    rDIDST0=(U32)(bufDst);	// bufDst
    rDIDSTC0=(0<<1)+(0<<0);	// AHB, inc
    rDCON0=(1<<31)+(1<<30)+(1<<29)+(0<<28)+(1<<27)+(0<<24)+(1<<23)+(1<<22)+(1<<20)+16;
    //handshake, sync HCLK, TC int, unit tx, whole service, nXDREQ0, H/W request, 
    //auto-reload off, half-word, 16hw
    rDMASKTRIG0=(0<<2)+(1<<1)+0;    //no-stop, DMA2 channel on, no-sw trigger 

    SET_XDREQ1();
    START_XDREQ();
    
    while(isDma0Done==0);

    for(i=0;i<16;i++)
    {
	Uart_Printf("%4x,",*((U16 *)0x0+i));
	if(i%8==7)
	    Uart_Printf("\n");
    }
    Uart_Printf("\n");
    for(i=0;i<16;i++)
    {
	Uart_Printf("%4x,",*((U16 *)bufDst+i));
	if(i%8==7)Uart_Printf("\n");
    }
}



void _Dma0XdreqWholeBurst16bit(void)
{
    int i;
    static U16 *bufDst;

    Uart_Printf("[Dma0,whole,burst,16bit Test,B0->SDRAM]\n");

    bufDst=(U16 *)0x31000000;//Non cacheable area
    for(i=0;i<64;i++)
	bufDst[i]=0;
    
    isDma0Done=0;

    rDISRC0=(int)(0x0);		// B0
    rDISRCC0=(0<<1)+(0<<0);	// AHB, inc
    rDIDST0=(U32)(bufDst);	// bufDst
    rDIDSTC0=(0<<1)+(0<<0);	// AHB, inc
    rDCON0=(1<<31)+(1<<30)+(1<<29)+(1<<28)+(1<<27)+(0<<24)+(1<<23)+(1<<22)+(1<<20)+16;
    //handshake, sync HCLK, TC int, burst tx, whole service, nXDREQ0, H/W request, 
    //auto-reload off, half-word, 64hw
    rDMASKTRIG0=(0<<2)+(1<<1)+0;    //no-stop, DMA2 channel on, no-sw trigger 

    SET_XDREQ1();
    START_XDREQ();
    
    while(isDma0Done==0);
    
    for(i=0;i<64;i++)
    {
	Uart_Printf("%4x,",*((U16 *)0x0+i));
	if(i%8==7)
	    Uart_Printf("\n");
    }
    Uart_Printf("\n");

    for(i=0;i<64;i++)
    {
    	Uart_Printf("%4x,",bufDst[i]);
    	if(i%8==7)Uart_Printf("\n");
    }
}

// Demand test OK!! with another logic
void _Dma0XdreqDemandUnit16bit(void)
{
    int i;
    static U16 *bufDst;

    Uart_Printf("[Dma0,Single,Demand,unit,16bit Test,B0->SDRAM]\n");
    
    bufDst=(U16 *)0x31000000;//Non cacheable area
    for(i=0;i<16;i++)
	bufDst[i]=0;
    
    isDma0Done=0;

    rDISRC0=(int)(0x0);		// B0
    rDISRCC0=(0<<1)+(0<<0);	// AHB, inc
    rDIDST0=(U32)(bufDst);	// bufDst
    rDIDSTC0=(0<<1)+(0<<0);	// AHB, inc
    rDCON0=(0<<31)+(1<<30)+(1<<29)+(0<<28)+(0<<27)+(0<<24)+(1<<23)+(1<<22)+(1<<20)+16;
    //Demand, sync HCLK, TC int, unit tx, single service, nXDREQ0, H/W request, 
    //auto-reload off, half-word, 16hw
    rDMASKTRIG0=(0<<2)+(1<<1)+0;    //no-stop, DMA2 channel on, no-sw trigger 

    SET_XDREQDm();
    START_XDREQ();
    
    while(isDma0Done==0);

    for(i=0;i<16;i++)
    {
	Uart_Printf("%4x,",*((U16 *)0x0+i));
	if(i%8==7)
	    Uart_Printf("\n");
    }
    Uart_Printf("\n");
    for(i=0;i<16;i++)
    {
	Uart_Printf("%4x,",*((U16 *)bufDst+i));
	if(i%8==7)Uart_Printf("\n");
    }
}


void _Dma0XdreqDemandBurst16bit(void)
{
    int i;
    static U16 *bufDst;

    Uart_Printf("[Dma0,whole,burst,16bit Test,B0->SDRAM]\n");

    bufDst=(U16 *)0x31000000;//Non cacheable area
    for(i=0;i<64;i++)
	bufDst[i]=0;
    
    isDma0Done=0;

    rDISRC0=(int)(0x0);		// B0
    rDISRCC0=(0<<1)+(0<<0);	// AHB, inc
    rDIDST0=(U32)(bufDst);	// bufDst
    rDIDSTC0=(0<<1)+(0<<0);	// AHB, inc
    rDCON0=(0<<31)+(1<<30)+(1<<29)+(1<<28)+(0<<27)+(0<<24)+(1<<23)+(1<<22)+(1<<20)+16;
    //Demand, sync HCLK, TC int, burst tx, single service, nXDREQ0, H/W request, 
    //auto-reload off, half-word, 64hw
    rDMASKTRIG0=(0<<2)+(1<<1)+0;    //no-stop, DMA2 channel on, no-sw trigger 

    SET_XDREQDm();
    START_XDREQ();
    
    while(isDma0Done==0);
    
    for(i=0;i<64;i++)
    {
	Uart_Printf("%4x,",*((U16 *)0x0+i));
	if(i%8==7)
	    Uart_Printf("\n");
    }
    Uart_Printf("\n");

    for(i=0;i<64;i++)
    {
    	Uart_Printf("%4x,",bufDst[i]);
    	if(i%8==7)Uart_Printf("\n");
    }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本三级韩国三级欧美三级| 欧美午夜一区二区三区免费大片| 日韩免费福利电影在线观看| 天天操天天色综合| 3atv一区二区三区| 日韩国产欧美三级| 国产亚洲精品资源在线26u| 国产精品1024久久| 亚洲精品国产一区二区三区四区在线| 色综合久久久久综合99| 亚洲一区国产视频| 欧美电影免费观看高清完整版| 激情综合色综合久久| 欧美激情一区二区三区四区 | 国产精品三级av在线播放| 不卡高清视频专区| 亚洲午夜av在线| 久久久噜噜噜久久人人看| 99精品一区二区三区| 香蕉影视欧美成人| 国产亚洲视频系列| 欧美日韩综合在线| 国产在线观看一区二区| 自拍偷拍欧美精品| 精品日产卡一卡二卡麻豆| eeuss国产一区二区三区| 天堂久久一区二区三区| 久久精品在线免费观看| 欧美午夜电影在线播放| 国产福利电影一区二区三区| 婷婷六月综合网| 国产精品色哟哟网站| 欧美一区二区三区在线观看| 成人午夜视频网站| 日本视频免费一区| 一区二区三区在线观看国产| 精品国产三级a在线观看| 色噜噜偷拍精品综合在线| 国产一区激情在线| 亚洲大片免费看| 亚洲欧洲国产专区| 欧美精品一区二区三区四区 | 亚洲一区二区不卡免费| 久久综合久久99| 制服视频三区第一页精品| 国产成人免费视频网站高清观看视频 | jlzzjlzz欧美大全| 久久99国产精品久久99| 亚洲欧美综合网| 久久综合丝袜日本网| 欧美日韩一区二区三区四区五区| 国产成人亚洲综合色影视| 日本不卡免费在线视频| 亚洲一区二区三区视频在线播放| 国产精品婷婷午夜在线观看| 精品欧美乱码久久久久久1区2区| 在线精品视频一区二区三四| 成人免费高清视频在线观看| 久久精品72免费观看| 丝袜脚交一区二区| 亚洲一级在线观看| 亚洲蜜臀av乱码久久精品| 中文子幕无线码一区tr| 久久久久久久久一| 337p日本欧洲亚洲大胆色噜噜| 欧美人牲a欧美精品| 欧美性大战久久| 欧美在线观看一二区| 91在线云播放| 91碰在线视频| 91成人在线精品| 日本高清不卡视频| 色婷婷精品久久二区二区蜜臂av | www.成人网.com| 国产不卡在线视频| 国产成人自拍在线| 99riav久久精品riav| a级高清视频欧美日韩| 99国产精品久久| 91在线看国产| 在线区一区二视频| 欧洲国产伦久久久久久久| 91尤物视频在线观看| 91蜜桃传媒精品久久久一区二区| 91一区二区三区在线观看| 91免费观看国产| 91精品91久久久中77777| 欧美性受极品xxxx喷水| 91精品国产综合久久久久久久 | 色噜噜狠狠成人中文综合| 91天堂素人约啪| 欧美亚洲综合一区| 欧美一区二区免费观在线| 精品国产一区二区三区四区四| 久久网站热最新地址| 中文字幕av不卡| 亚洲韩国精品一区| 日韩高清不卡一区二区三区| 久久精品国产一区二区三| 国产成人av影院| 93久久精品日日躁夜夜躁欧美| 精品视频1区2区| 欧美一区二区三区的| 久久久99精品免费观看| 亚洲美女视频一区| 日韩av不卡在线观看| 成人免费高清在线观看| 欧美视频一区二| 久久综合av免费| 亚洲欧美色图小说| 蜜桃久久久久久| 99久久精品免费看国产| 欧美精品少妇一区二区三区 | 中文乱码免费一区二区| 亚洲一区二区成人在线观看| 激情六月婷婷久久| 91国在线观看| 2020日本不卡一区二区视频| 亚洲欧洲国产日韩| 精品一区二区三区免费播放| 91在线小视频| 久久精品男人的天堂| 午夜精品久久一牛影视| 懂色av一区二区在线播放| 欧美日韩一区二区三区不卡| 国产日韩欧美精品一区| 亚洲第一在线综合网站| 不卡免费追剧大全电视剧网站| 欧美一区二区免费| 有码一区二区三区| 福利一区福利二区| 日韩午夜精品视频| 亚洲乱码中文字幕| 国产99一区视频免费| 欧美一区二区三区啪啪| 一区二区三区在线观看视频| 国产成人av电影| 日韩精品一区二区在线| 亚洲已满18点击进入久久| 成人黄页在线观看| 久久综合久久综合亚洲| 日韩黄色小视频| 在线观看视频一区二区欧美日韩| 国产性做久久久久久| 精品一区二区三区视频| 91精品国产91综合久久蜜臀| 亚洲综合激情另类小说区| 成人avav影音| 精品成a人在线观看| 捆绑变态av一区二区三区| 欧美午夜免费电影| 亚洲精品国产精品乱码不99| 国产成人av电影| 欧美国产精品劲爆| 国产伦精一区二区三区| 精品蜜桃在线看| 蜜桃久久久久久久| 日韩欧美区一区二| 久久97超碰国产精品超碰| 91精品国产黑色紧身裤美女| 日韩中文字幕91| 在线不卡中文字幕播放| 午夜久久久久久久久| 欧美肥妇free| 天堂成人免费av电影一区| 欧美日韩国产不卡| 日本sm残虐另类| 日韩一区二区三区在线观看| 日韩国产欧美在线视频| 日韩一区二区免费高清| 麻豆精品一区二区综合av| 日韩视频免费观看高清完整版| 日本91福利区| 久久毛片高清国产| 国产白丝网站精品污在线入口| 日本一区二区三区国色天香 | 91激情在线视频| 亚洲大型综合色站| 日韩女优av电影| 国产真实乱子伦精品视频| 337p粉嫩大胆噜噜噜噜噜91av | 99re热这里只有精品免费视频| 国产精品视频免费看| 97久久人人超碰| 亚洲一区二区三区精品在线| 91精品啪在线观看国产60岁| 久久精品国产免费| 日本一区二区视频在线观看| 99久久精品国产观看| 亚洲一级不卡视频| 日韩欧美综合一区| 粉嫩av一区二区三区粉嫩| 伊人婷婷欧美激情| 欧美一二三四在线| 粉嫩av一区二区三区粉嫩| 亚洲午夜日本在线观看| 精品福利在线导航| 91热门视频在线观看| 麻豆精品一区二区综合av| 国产精品美女久久久久久久网站|