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

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

?? sd.txt

?? SD卡源碼 讀、寫、擦等操作。。。。。。。。。。。。
?? TXT
?? 第 1 頁 / 共 2 頁
字號(hào):
    if(!Chk_CMDend(12, 1)) 
 goto STRCMD12;
    rSDICSTA=0xa00; // Clear cmd_end(with rsp)

    rSDIFSTA=rSDIFSTA&0x200; //Clear Rx FIFO Last data Ready, YH 040221


 Uart_Printf("rSDIFSTA1=0x%x\n", rSDIFSTA); //YH 040221

   rSDIFSTA=rSDIFSTA&0x200; //Clear Rx FIFO Last data Ready, YH 040221

 Uart_Printf("rSDIFSTA2=0x%x\n", rSDIFSTA); //YH 040221

    Uart_Printf("\n--End stream read test\n");
}

void Wt_Block(void)
{
    U32 mode;
    int status;
    wt_cnt=0; 
    Uart_Printf("Block write test[ Polling write ]\n"); 
 mode = 0 ;
 rSDIFSTA=rSDIFSTA|(1<<16); //復(fù)位FIFO

    if(mode!=2)
 rSDIDCON=(2<<22)|(1<<20)|(1<<17)|(Wide<<16)|(1<<14)|(3<<12)|(block<<0); 
//設(shè)置數(shù)據(jù)控制寄存器:字傳輸,塊數(shù)據(jù)傳輸,4bit數(shù)據(jù)傳輸,開始數(shù)據(jù)傳輸,數(shù)據(jù)發(fā)送模//式,共寫block個(gè)塊 

    rSDICARG=0x0; // CMD24/25地址參數(shù)

REWTCMD:
    switch(mode)
    {
 case POL:
     if(block<2) // SINGLE_WRITE,寫單塊

     {
  rSDICCON=(0x1<<9)|(0x1<<8)|0x58; //CMD24為短應(yīng)答并等待應(yīng)答,開始發(fā)

//送CMD24單塊寫命令,開始寫,產(chǎn)生RSP1

  if(!Chk_CMDend(24, 1)) //-- Check end of CMD24

      goto REWTCMD; //命令發(fā)送失敗

     }
     else // MULTI_WRITE,寫多塊

     {
 rSDICCON=(0x1<<9)|(0x1<<8)|0x59; //CMD25為短應(yīng)答并等待應(yīng)答,開發(fā)

//送CMD25多塊寫命令,開始讀寫,產(chǎn)生RSP1

   if(!Chk_CMDend(25, 1)) //-- Check end of CMD25

   goto REWTCMD; //命令發(fā)送失敗

     }
     rSDICSTA=0xa00; // 清命令和應(yīng)答結(jié)束標(biāo)志 

     while(wt_cnt<128*block)
     {
  status=rSDIFSTA;
  if((status&0x2000)==0x2000) //FIFO未滿

  {
      rSDIDAT=*Tx_buffer++;
      wt_cnt++;
   //Uart_Printf("Block No.=%d, wt_cnt=%d\n",block,wt_cnt);

  }
     }
     break;
 
 case INT:
     pISR_SDI=(unsigned)Wt_Int;
     rINTMSK = ~(BIT_SDI);
     rSDIIMSK=0x10; // Tx FIFO half int.

     if(block<2) // SINGLE_WRITE

     {
  rSDICCON=(0x1<<9)|(0x1<<8)|0x58; //sht_resp, wait_resp, dat, start, CMD24

  if(!Chk_CMDend(24, 1)) //-- Check end of CMD24

      goto REWTCMD;
     }
     else // MULTI_WRITE

     {
  rSDICCON=(0x1<<9)|(0x1<<8)|0x59; //sht_resp, wait_resp, dat, start, CMD25

  if(!Chk_CMDend(25, 1)) //-- Check end of CMD25 

      goto REWTCMD;
     }
     rSDICSTA=0xa00; // Clear cmd_end(with rsp)

     while(!TR_end);
     //while(wt_cnt<128);

     rINTMSK |= (BIT_SDI);
     TR_end=0;
     rSDIIMSK=0; // All mask

     break;
 case DMA:
     pISR_DMA0=(unsigned)DMA_end;
     rINTMSK = ~(BIT_DMA0);
  rSDIDCON=rSDIDCON|(1<<24); //YH 040227, Burst4 Enable

     rDISRC0=(int)(Tx_buffer); // Tx_buffer

     rDISRCC0=(0<<1)+(0<<0); // AHB, inc

     rDIDST0=(U32)(SDIDAT); // SDIDAT

     rDIDSTC0=(1<<1)+(1<<0); // APB, fix

     rDCON0=(1<<31)+(0<<30)+(1<<29)+(0<<28)+(0<<27)+(2<<24)+(1<<23)+(1<<22)+(2<<20)+128*block;
     //handshake, sync PCLK, TC int, single tx, single service, SDI, H/W request, 

     //auto-reload off, word, 128blk*num

     rDMASKTRIG0=(0<<2)+(1<<1)+0; //no-stop, DMA0 channel on, no-sw trigger

     
  rSDIDCON=(2<<22)|(1<<20)|(1<<17)|(Wide<<16)|(1<<15)|(1<<14)|(3<<12)|(block<<0); //YH 040220

      // Word Tx, Tx after rsp, blk, 4bit bus, dma enable, Tx start, blk num

     if(block<2) // SINGLE_WRITE

     {
  rSDICCON=(0x1<<9)|(0x1<<8)|0x58; //sht_resp, wait_resp, dat, start, CMD24

  if(!Chk_CMDend(24, 1)) //-- Check end of CMD24

      goto REWTCMD; 
     }
     else // MULTI_WRITE

     {
  rSDICCON=(0x1<<9)|(0x1<<8)|0x59; //sht_resp, wait_resp, dat, start, CMD25

  if(!Chk_CMDend(25, 1)) //-- Check end of CMD25 

      goto REWTCMD; 
     }
     rSDICSTA=0xa00; // Clear cmd_end(with rsp)

     while(!TR_end); 
     rINTMSK |= (BIT_DMA0);
     TR_end=0;
     rDMASKTRIG0=(1<<2); //DMA0 stop

     break;
 default:
     break;
    }
    
    //-- Check end of DATA

    if(!Chk_DATend()) 
 Uart_Printf("dat error\n");
 rSDIDCON=rSDIDCON&~(7<<12); //YH 040220, Clear Data Transfer mode => no operation, Cleata Data Transfer start

    rSDIDSTA=0x10; // Clear data Tx/Rx end

    if(block>1)
    {
 //--Stop cmd(CMD12)

REWCMD12: 
 rSDIDCON=(1<<18)|(1<<17)|(0<<16)|(1<<14)|(1<<12)|(block<<0); //YH 040220


 rSDICARG=0x0; //CMD12(stuff bit)

 rSDICCON=(0x1<<9)|(0x1<<8)|0x4c; //sht_resp, wait_resp, start, CMD12

 //-- Check end of CMD12

 if(!Chk_CMDend(12, 1)) 
     goto REWCMD12;
 rSDICSTA=0xa00; // Clear cmd_end(with rsp)

 //-- Check end of DATA(with busy state)

 if(!Chk_BUSYend()) 
     Uart_Printf("error\n");
 rSDIDSTA=0x08; //! Should be cleared by writing '1'.

    }
}
void Wt_Stream(void) // only for MMC, 3blk write

{
    int status, wt_cnt=0;
    if(MMC!=1)
    {
 Uart_Printf("Stream write command supports only MMC!\n");
 return;
    }
    Uart_Printf("\n[Stream write test]\n");
RECMD20:
    rSDIDCON=(2<<22)|(1<<20)|(0<<17)|(0<<16)|(1<<14)|(3<<12); // stream mode


    rSDICARG=0x0; // CMD20(addr)

    rSDICCON=(0x1<<9)|(0x1<<8)|0x54; //sht_resp, wait_resp, dat, start, CMD20

    //-- Check end of CMD25

    if(!Chk_CMDend(20, 1)) 
 goto RECMD20;
    rSDICSTA=0xa00; // Clear cmd_end(with rsp)

    while(wt_cnt<128*block)
    {
 status=rSDIFSTA;
 if((status&0x2000)==0x2000) 
     rSDIDAT=Tx_buffer[wt_cnt++];
    }
    //-- Check end of DATA

    while( rSDIFSTA&0x400 );
    Delay(10); // for the empty of DATA line(Hardware)

    rSDIDCON=(1<<20)|(0<<17)|(0<<16); //YH 040220

    rSDIDCON=rSDIDCON&~(7<<12); //YH 040220, no operation, data ready

    while( (rSDIDSTA&0x3)!=0x0 );
    if(rSDIDSTA!=0x0) 
 Uart_Printf("rSDIDSTA=0x%x\n", rSDIDSTA);
    rSDIDSTA=0xff; //Clear rSDIDSTA

STWCMD12: 
    //--Stop cmd(CMD12)

    rSDIDCON=(1<<18)|(1<<17)|(0<<16)|(1<<14)|(1<<12);

    rSDICARG=0x0; //CMD12(stuff bit)

    rSDICCON=(0x1<<9)|(0x1<<8)|0x4c; //sht_resp, wait_resp, start, CMD12

    //-- Check end of CMD12

    if(!Chk_CMDend(12, 1)) 
 goto STWCMD12;
    rSDICSTA=0xa00; // Clear cmd_end(with rsp)

    //-- Check end of DATA(with busy state)

    if(!Chk_BUSYend()) 
 Uart_Printf("error\n");
    rSDIDSTA=0x08;
    Uart_Printf("\n--End Stream write test\n");
}

int Chk_CMDend(int cmd, int be_resp)
//0: Timeout

{
    int finish0;
    if(!be_resp) // 沒有應(yīng)答信號(hào)

    {
     finish0=rSDICSTA; //讀取SDI command status register,

  while((finish0&0x800)!=0x800) // 等待命令結(jié)束

     finish0=rSDICSTA;
 rSDICSTA=finish0;// 清命令結(jié)束標(biāo)志

 return 1; //成功,返回1

    }
    else // 有應(yīng)答信號(hào)

    {
     finish0=rSDICSTA; //讀取SDI command status register,

 while( !( ((finish0&0x200)==0x200) | ((finish0&0x400)==0x400) )) //檢查超時(shí)和應(yīng)答信號(hào)

  finish0=rSDICSTA;
 if(cmd==1 | cmd==41) // CRC no check, CMD9 is a long Resp. command.

 {
     if( (finish0&0xf00) != 0xa00 ) // 命令,應(yīng)答有錯(cuò),或超時(shí)

     {
  rSDICSTA=finish0; // 清錯(cuò)誤標(biāo)志

  if(((finish0&0x400)==0x400)) // 若超時(shí),返回0

      return 0; 
         }
     rSDICSTA=finish0; // 清命令和應(yīng)答結(jié)束標(biāo)志

 }
 else // 進(jìn)行CRC效驗(yàn)

 {
     if( (finish0&0x1f00) != 0xa00 ) // CRC效驗(yàn)出錯(cuò)

     {
  Uart_Printf("CMD%d:rSDICSTA=0x%x, rSDIRSP0=0x%x\n",cmd, rSDICSTA, rSDIRSP0); //輸出對(duì)應(yīng)寄存器的值

  rSDICSTA=finish0; // 清除錯(cuò)誤標(biāo)志位

  if(((finish0&0x400)==0x400)) // 若超時(shí),返回0

      return 0; 
         }
     rSDICSTA=finish0;
 }
 return 1;
    }
}
int Chk_DATend(void)
{
    int finish;
    finish=rSDIDSTA;
    while( !( ((finish&0x10)==0x10) | ((finish&0x20)==0x20) )) 
 // 檢查數(shù)據(jù)結(jié)束和超時(shí)位

 finish=rSDIDSTA;
    if( (finish&0xfc) != 0x10 )//數(shù)據(jù)傳輸結(jié)束

    {
        Uart_Printf("DATA:finish=0x%x\n", finish);
        rSDIDSTA=0xec; //清除錯(cuò)誤標(biāo)志

        return 0;
    }
    return 1;
}
int Chk_BUSYend(void)
{
    int finish;
    finish=rSDIDSTA;
    while( !( ((finish&0x08)==0x08) | ((finish&0x20)==0x20) ))//檢查忙標(biāo)志位

 finish=rSDIDSTA;
    if( (finish&0xfc) != 0x08 )
    {
        Uart_Printf("DATA:finish=0x%x\n", finish);
        rSDIDSTA=0xf4; //清除錯(cuò)誤標(biāo)志

        return 0;
    }
    return 1;
}
void CMD0(void) //CMD0用于對(duì)SD實(shí)現(xiàn)軟件復(fù)位,不論卡處于何種狀態(tài),使SD卡處于//空閑狀態(tài),等待下一個(gè)命令的到來

{
    //-- Make card idle state 

    rSDICARG=0x0; // ,CMD0(stuff bit)

    rSDICCON=(1<<8)|0x40; // 不等待應(yīng)答信號(hào),命令開始//并再次發(fā)送CMD0 關(guān)于cmd0定義:0(start_bit)1(cmd標(biāo)志)000000(6位cmd編//碼)后面是參數(shù) (無參數(shù)就全0)

    //-- Check end of CMD0

    Chk_CMDend(0, 0); // 檢查命令是否成功發(fā)送

    rSDICSTA=0x800; // 清除命令結(jié)束標(biāo)志

}
int Chk_MMC_OCR(void)
{
    int i;

    //-- MMC卡識(shí)別的等待操作, 使卡處于空閑狀態(tài)

    for(i=0;i<100;i++) //等待的時(shí)間取決于廠商

    {
// rSDICARG=0xffc000; //CMD1(MMC OCR:2.6V~3.6V), 設(shè)置工作電壓

  rSDICARG=0xff8000; //CMD1(SD OCR:2.7V~3.6V),設(shè)置工作電壓

     rSDICCON=(0x1<<9)|(0x1<<8)|0x41; //CMD1為短應(yīng)答并等待應(yīng)答,開始發(fā)送CMD1

     //-- 檢查CMD1是否發(fā)送成功,并檢查卡狀態(tài)

// if(Chk_CMDend(1, 1) & rSDIRSP0==0x80ffc000) //31:忙狀態(tài)標(biāo)志位,0表示忙

  //0xffc000為卡的正常工作電壓范圍

 if(Chk_CMDend(1, 1) && (rSDIRSP0>>16)==0x80ff) //卡處于空閑

// if(Chk_CMDend(1, 1) & rSDIRSP0==0x80ff8000) 

 {
     rSDICSTA=0xa00; // 清除命令和應(yīng)答結(jié)束標(biāo)志位

     return 1; // 成功

 }
    }
    rSDICSTA=0xa00; //清除命令和應(yīng)答結(jié)束標(biāo)志位

    return 0; // 失敗

}
int Chk_SD_OCR(void)
{
    int i;
     //-- SD卡識(shí)別的等待操作, 使卡處于空閑狀態(tài)

for(i=0;i<50;i++) // 如果這段時(shí)間太短,SD卡的初始化可能會(huì)失敗

   {
     CMD55(); //送CMD55,表示下個(gè)命令將是特殊功能命令acmd,而非一般命令cmd

     rSDICARG=0xff8000; //ACMD41(SD OCR:2.7V~3.6V) ,設(shè)置工作電壓

// rSDICARG=0xffc000;//ACMD41(MMC OCR:2.6V~3.6V)設(shè)置工作電壓 rSDICCON=(0x1<<9)|(0x1<<8)|0x69;// ACMD41為短應(yīng)答并等待應(yīng)答,開始發(fā)

//送ACMD41,命令卡發(fā)回OCR寄存器(保存了電壓參數(shù)/busy信號(hào)等等),產(chǎn)生RSP3

    //-- 檢查ACMD41是否發(fā)送成功,并檢查卡狀態(tài) 

 if( Chk_CMDend(41, 1) & rSDIRSP0==0x80ff8000 ) //發(fā)送成功并且卡處于空閑狀態(tài)

 {
     rSDICSTA=0xa00; //清除命令和應(yīng)答結(jié)束標(biāo)志位

     return 1; //成功

 }
 Delay(200); //等待卡上電后處于空閑狀態(tài)

    }
    //Uart_Printf("SDIRSP0=0x%x\n",rSDIRSP0);

    rSDICSTA=0xa00; //清除命令和應(yīng)答結(jié)束標(biāo)志位

    return 0; // 失敗

}
int CMD55(void)
{
  //CMD55,表示下個(gè)命令將是特殊功能acmd,而非一般命令cmd 

    rSDICARG=RCA<<16; //CMD55(RCA,stuff bit)

    rSDICCON=(0x1<<9)|(0x1<<8)|0x77; //CMD55為短應(yīng)答(R1)并等待應(yīng)答,并開始發(fā)送CMD55

     //-- 檢查CMD55是成功發(fā)送

    if(!Chk_CMDend(55, 1)) 
 return 0; //出錯(cuò),返回

rSDICSTA=0xa00; ////清除命令和應(yīng)答結(jié)束標(biāo)志位

return 1;
}
int CMD13(void)//送CMD13,命令卡的當(dāng)前狀態(tài)

{
    int response0;
    rSDICARG=RCA<<16;// CMD13(RCA,stuff bit),高16位為RCA

    rSDICCON=(0x1<<9)|(0x1<<8)|0x4d;//CMD13為短應(yīng)答(R1)并等待應(yīng)答,并開始發(fā)送CMD13

    //-- Check end of CMD13

    if(!Chk_CMDend(13, 1)) //-- 檢查CMD13是成功發(fā)送

 return 0; //出錯(cuò),返回

    //Uart_Printf("rSDIRSP0=0x%x\n", rSDIRSP0);

    if(rSDIRSP0&0x100) //數(shù)據(jù)是否就緒

 //Uart_Printf("Ready for Data\n");

// else 

 //Uart_Printf("Not Ready\n");

    response0=rSDIRSP0;
    response0 &= 0x3c00;
    response0 = response0 >> 9;
    //Uart_Printf("Current Status=%d\n", response0);

    if(response0==6) //卡處于receive data state

 Test_SDI();
    rSDICSTA=0xa00; //清除命令和應(yīng)答結(jié)束標(biāo)志位

    return 1;
}
int CMD9(void)//送CMD9,命令卡發(fā)回CSD寄存器(保存了讀寫參數(shù)/卡的容量等內(nèi)容),產(chǎn)生RSP2

{
    rSDICARG=RCA<<16; // CMD9參數(shù),高16位為RCA

    rSDICCON=(0x1<<10)|(0x1<<9)|(0x1<<8)|0x49; //CMD9為長應(yīng)答并等待應(yīng)答,開始發(fā)

//送CMD9,產(chǎn)生RSP2

    Uart_Printf("\nCSD register :\n");
    //-- Check end of CMD9

    if(!Chk_CMDend(9, 1)) // 檢查命令是否成功發(fā)送

 return 0; //失敗則返回

    Uart_Printf("SDIRSP0=0x%x\nSDIRSP1=0x%x\nSDIRSP2=0x%x\nSDIRSP3=0x%x\n", rSDIRSP0,rSDIRSP1,rSDIRSP2,rSDIRSP3);
    return 1;
}
void Set_1bit_bus(void)//設(shè)置1位數(shù)據(jù)線

{
    Wide=0;
    if(!MMC)
 SetBus();
    //Uart_Printf("\n****1bit bus****\n");

}
void Set_4bit_bus(void) //設(shè)置4位數(shù)據(jù)線 

{
    Wide=1;
    SetBus();
    //Uart_Printf("\n****4bit bus****\n");

}
void SetBus(void) //設(shè)置數(shù)據(jù)線寬度

{
SET_BUS:
    CMD55(); //CMD55,表示下個(gè)命令將是特殊功能acmd,而非一般命令cmd 

    rSDICARG=Wide<<1; //數(shù)據(jù)寬度00: 1bit, 10: 4bit

rSDICCON=(0x1<<9)|(0x1<<8)|0x46; //ACMD6為短應(yīng)答(R1)并等待應(yīng)答,并開始發(fā)送

// ACMD6設(shè)置數(shù)據(jù)線寬度位4bit

    if(!Chk_CMDend(6, 1)) // 設(shè)置失敗,則重新設(shè)置

 goto SET_BUS;
    rSDICSTA=0xa00; //清除命令和應(yīng)答結(jié)束標(biāo)志位

}
void Set_Prt(void)//寫保護(hù)

{
    //-- Set protection addr.0 ~ 262144(32*16*512) 

    Uart_Printf("[Set protection(addr.0 ~ 262144) test]\n");
RECMD28:
    //--Make ACMD

    rSDICARG=0; // CMD28(addr) 

    rSDICCON=(0x1<<9)|(0x1<<8)|0x5c; //sht_resp, wait_resp, start, CMD28

    //-- Check end of CMD28

    if(!Chk_CMDend(28, 1)) 
 goto RECMD28;
    rSDICSTA=0xa00; // Clear cmd_end(with rsp)

}
void Clr_Prt(void)//清除寫保護(hù)

{
    //-- Clear protection addr.0 ~ 262144(32*16*512) 

    //Uart_Printf("[Clear protection(addr.0 ~ 262144) test]\n");

RECMD29:
    //--Make ACMD

    rSDICARG=0; // CMD29(addr)

    rSDICCON=(0x1<<9)|(0x1<<8)|0x5d; //sht_resp, wait_resp, start, CMD29

    //-- Check end of CMD29

    if(!Chk_CMDend(29, 1)) 
 goto RECMD29;
    rSDICSTA=0xa00; // Clear cmd_end(with rsp)

}

 
 
 

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
看片网站欧美日韩| 欧美影院午夜播放| 精品系列免费在线观看| 日产欧产美韩系列久久99| 午夜不卡av免费| 亚洲成人激情社区| 日韩和欧美一区二区三区| 视频一区视频二区在线观看| 亚洲va在线va天堂| 免费欧美日韩国产三级电影| 日本欧美一区二区三区乱码| 老司机精品视频线观看86| 久草精品在线观看| 国产xxx精品视频大全| 成人黄色小视频| av一二三不卡影片| 色吊一区二区三区| 欧美日韩第一区日日骚| 欧美一区二区三区视频在线| 精品国产区一区| 中文字幕免费观看一区| 亚洲天堂av老司机| 亚洲国产精品自拍| 免费高清成人在线| 国产激情视频一区二区三区欧美| 高清成人免费视频| 色婷婷综合久久久久中文一区二区| 在线影院国内精品| 欧美一级电影网站| 国产日韩欧美精品电影三级在线 | 精品国精品自拍自在线| 欧美日韩精品一二三区| 成人毛片老司机大片| 在线视频国产一区| 欧美日韩成人激情| 337p日本欧洲亚洲大胆精品| 国产xxx精品视频大全| 日韩欧美一级二级三级久久久| 972aa.com艺术欧美| 欧美精品久久99久久在免费线| 亚洲精品一区二区在线观看| 亚洲人成影院在线观看| 日韩电影在线观看电影| www.亚洲国产| 欧美久久久久久久久久| 久久午夜色播影院免费高清| 亚洲精品v日韩精品| 久久精品国产**网站演员| 成人激情免费视频| 欧美一区二区三区的| 国产精品麻豆一区二区 | 成人一道本在线| 色94色欧美sute亚洲线路一久| 欧美一区二区三区免费大片| 国产精品免费看片| 日韩精品国产欧美| www.亚洲精品| 精品国产三级a在线观看| 亚洲精品日产精品乱码不卡| 国产美女在线精品| 欧美在线免费播放| 日韩综合一区二区| 成人国产一区二区三区精品| 国产午夜精品福利| 亚洲精品精品亚洲| 国产一区二区日韩精品| 色哟哟国产精品| 精品国内二区三区| 蜜臀av性久久久久蜜臀av麻豆| 久久99最新地址| 在线观看免费亚洲| 亚洲精品久久久蜜桃| 欧美一区二区三区人| 欧美美女bb生活片| 亚洲欧美在线观看| 国产一区二区免费在线| 91精品国产日韩91久久久久久| 综合网在线视频| 懂色av一区二区三区免费看| 日韩欧美亚洲另类制服综合在线 | 国产蜜臀av在线一区二区三区| 亚洲成av人片在www色猫咪| 99re6这里只有精品视频在线观看| 精品国产乱码久久久久久久久| 一区二区三区精品| 色综合天天综合网国产成人综合天 | caoporn国产精品| 国产亚洲精品资源在线26u| 日本不卡一二三区黄网| 欧美日韩国产精品成人| 一区二区视频免费在线观看| 99久久99精品久久久久久| 国产午夜一区二区三区| 国产精品亚洲第一区在线暖暖韩国| 欧美电视剧免费全集观看| 男人的天堂亚洲一区| 欧美一区二区久久久| 亚洲第四色夜色| 欧美日韩国产一区| 性久久久久久久久久久久| 欧美三级日韩在线| 亚洲福利一二三区| 欧美日韩亚洲国产综合| 日日夜夜精品免费视频| 6080午夜不卡| 免费欧美在线视频| 国产不卡视频一区| 激情图片小说一区| 首页亚洲欧美制服丝腿| 亚洲一卡二卡三卡四卡| 亚洲欧美色综合| 日本特黄久久久高潮| 理论电影国产精品| www.欧美精品一二区| 91在线观看地址| 国产丝袜欧美中文另类| 亚洲免费观看高清完整版在线观看| 制服.丝袜.亚洲.另类.中文| 欧美一级xxx| 欧美大尺度电影在线| 在线视频综合导航| 一本色道综合亚洲| 日本道在线观看一区二区| 一本一道综合狠狠老| 欧美性色综合网| 色狠狠一区二区| 欧美一区二区在线免费播放| 91麻豆精品国产91久久久资源速度 | 色av成人天堂桃色av| 日韩精品一区二区三区在线观看| 久久免费国产精品| 国产精品传媒入口麻豆| 久久免费看少妇高潮| 欧洲精品在线观看| 91香蕉视频mp4| 日韩欧美aaaaaa| 成人综合婷婷国产精品久久 | 国产亚洲精久久久久久| 成人免费不卡视频| 亚洲一级二级三级| 精品国产乱码久久久久久影片| 成人动漫一区二区在线| 亚洲黄色免费网站| 欧美刺激脚交jootjob| 国产91清纯白嫩初高中在线观看| 亚洲精品国产无天堂网2021| 日韩欧美二区三区| av在线一区二区三区| 婷婷综合久久一区二区三区| 精品久久久久久综合日本欧美| 波多野结衣的一区二区三区| 五月激情六月综合| 欧美国产日产图区| 欧美日韩www| 成人av高清在线| 日韩av中文字幕一区二区 | 婷婷一区二区三区| 久久久91精品国产一区二区精品| 在线亚洲高清视频| 国产a区久久久| 美女mm1313爽爽久久久蜜臀| 亚洲丝袜制服诱惑| 久久理论电影网| 欧美午夜精品理论片a级按摩| 国产乱妇无码大片在线观看| 石原莉奈在线亚洲二区| 中文字幕一区二区不卡| 精品对白一区国产伦| 欧美在线视频全部完| 成人激情文学综合网| 久草在线在线精品观看| 午夜精品久久久久久久久久| 国产精品久久二区二区| 精品国产乱码久久久久久蜜臀| 欧美性色综合网| 99久久精品免费看国产免费软件| 久久99精品久久久久久| 天堂va蜜桃一区二区三区| 亚洲欧美激情插 | 中文字幕一区二区三区色视频| 精品久久久久久综合日本欧美| 欧美亚洲免费在线一区| 色综合天天综合色综合av| 国产91精品一区二区| 国产精品自拍在线| 美女视频网站黄色亚洲| 亚洲成人一区在线| 亚洲女人小视频在线观看| 国产欧美日韩激情| 久久先锋资源网| 精品国精品自拍自在线| 日韩免费在线观看| 日韩一区二区在线免费观看| 欧美日韩一级片网站| 欧美日韩一区高清| 欧美日韩精品免费观看视频| 欧美性xxxxxxxx| 欧美日韩一级视频| 欧美日韩卡一卡二| 欧美欧美欧美欧美首页|