精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

嵌入式算法之CRC校驗算法

開發(fā) 前端 算法
數(shù)據(jù)傳輸過程中差錯不可避免,接收方在收到數(shù)據(jù)后,先對數(shù)據(jù)的準確性進行校驗,異常數(shù)據(jù)特殊處理。校驗的方式有很多,常見的有CRC循環(huán)冗余校驗。

[[350334]]

數(shù)據(jù)傳輸過程中差錯不可避免,接收方在收到數(shù)據(jù)后,先對數(shù)據(jù)的準確性進行校驗,異常數(shù)據(jù)特殊處理。校驗的方式有很多,常見的有CRC循環(huán)冗余校驗。CRC算法檢錯能力強,效率高,是信息通信領(lǐng)域最為普遍的校驗方式。CRC校驗算法應(yīng)用廣,且實現(xiàn)算法簡單,但其背后的涉及的糾錯碼的代數(shù)理論,不是一般人可以理解的。所以,在不理解循環(huán)校驗原理的基礎(chǔ)上,貿(mào)然分析算法流程是不明智的,根據(jù)源碼倒推實現(xiàn)流程,也不會明白為什么要這樣執(zhí)行?一般關(guān)注CRC以應(yīng)用為主,以及為什么都是CRC16算法,得出的結(jié)果卻不同。本文的意圖只是這個。

1、CRC定義

假設(shè)要發(fā)送996這個數(shù)字,將其除以7余數(shù)為2,發(fā)送時將996-2合并后發(fā)出,接收方按同樣運算判斷數(shù)據(jù)包是否正確。同樣的源數(shù)據(jù),因為除數(shù)不同而余數(shù)不同。CRC算法也是因為類似原理。

CRC算法中參數(shù)解釋如下:

1、除法定為模2除法

2、除數(shù)定為多項式,如x^16+x^12+x^5+1(0x1021) 2^16+2^12+2^5+2^0=65536+4096+32+1= 69665=0x11021 。依據(jù)不可描述的標準,多項式最高位和最低位必須為1,所以一般簡化為0x1021,忽略最高位,記為Poly。

3、因為多項式長度不同,一般分為CRC8、CRC16和CRC32,因為模2除法簡化為異或和移位操作,其初始值為Init。

4、還有三個參數(shù)

RefIn:待測數(shù)據(jù)的每個字節(jié)是否按位反轉(zhuǎn),TRUE或FALSE。

RefOut:在計算后之后,異或輸出之前,整個數(shù)據(jù)是否按位反轉(zhuǎn),TRUE或FALSE。

XorOut:計算結(jié)果與此參數(shù)異或后得到最終的CRC值。但是任何數(shù)與0異或還是它本身,所以該值為0時可以忽略。

5、因為多項式Poly,初始值等差異,CRC有不同的版本。理論上是多項式是可以隨意定義的,但是通用的標準多項式是經(jīng)過數(shù)學推導(dǎo)的,盡可能的保證不同的數(shù)據(jù)求出的CRC值不相同。

6、參考https://crccalc.com/ 的定義,不同場景使用不同的多項式。

2、CRC算法與模板

通用版的CRC算法如下:

CRC8

  1. //以CRC-8/ITU為參考 
  2. unsigned char CRC8(unsigned char *data, unsigned int len) 
  3.     unsigned char i; 
  4.     unsigned char poly = 0x07;//與表中的Poly列對應(yīng) 
  5.     unsigned char init = 0x00;//與表中的Init列對應(yīng) 
  6.  
  7.     unsigned char wChar = 0; 
  8.  
  9.     while (len--) 
  10.     { 
  11.         wChar = *(data++); 
  12.  
  13.         //RefIn為TRUE時執(zhí)行,FALSE時刪除 
  14.         //InvertUint8(&wChar,&wChar); 
  15.  
  16.         init ^= wChar; 
  17.         for( i = 0;i < 8;i++) 
  18.         { 
  19.             if(init & 0x80) 
  20.             { 
  21.                 init = (init << 1) ^ poly; 
  22.             } 
  23.             else 
  24.             { 
  25.                 init = init << 1; 
  26.             } 
  27.         } 
  28.     } 
  29.  
  30.     //RefOut為TRUE時執(zhí)行,FALSE時刪除 
  31.     //InvertUint8(&init,&init); 
  32.  
  33.     //與XorOut進行異或,若為0時執(zhí)行或不執(zhí)行沒有區(qū)別 
  34.     init=init^0x55; 
  35.  
  36.     return (init); 
  37.  

CRC16

  1. //以CRC-16/X-25為參考 
  2. unsigned short CRC16(unsigned char *data, unsigned int len) 
  3.     unsigned char i; 
  4.     unsigned short poly = 0x1021;//與表中的Poly列對應(yīng) 
  5.     unsigned short init = 0xFFFF;//與表中的Init列對應(yīng) 
  6.     unsigned char wChar = 0; 
  7.  
  8.     while (len--) 
  9.     { 
  10.         wChar = *(data++); 
  11.  
  12.         //RefIn為TRUE時執(zhí)行,FALSE時刪除 
  13.         InvertUint8(&wChar,&wChar); 
  14.  
  15.         init ^= (wChar << 8); 
  16.         for( i = 0;i < 8;i++) 
  17.         { 
  18.             if(init & 0x8000) 
  19.             { 
  20.                 init = (init << 1) ^ poly; 
  21.             } 
  22.             else 
  23.             { 
  24.                 init = init << 1; 
  25.             } 
  26.         } 
  27.     } 
  28.  
  29.     //RefOut為TRUE時執(zhí)行,FALSE時刪除 
  30.     InvertUint16(&init,&init); 
  31.  
  32.     //與XorOut進行異或,若為0時執(zhí)行或不執(zhí)行沒有區(qū)別 
  33.     init=init^0xFFFF; 
  34.  
  35.     return (init); 

CRC8和CRC16,根據(jù)不同版本的參數(shù)差異,查表,將模板里的參數(shù)改為對應(yīng)值,即可得出對應(yīng)版本的CRC值。其中涉及到數(shù)據(jù)反轉(zhuǎn)的代碼如下:

  1. void InvertUint8(unsigned char *DesBuf, unsigned char *SrcBuf) 
  2.     int i; 
  3.     unsigned char temp = 0; 
  4.  
  5.     for(i = 0; i < 8; i++) 
  6.     { 
  7.         if(SrcBuf[0] & (1 << i)) 
  8.         { 
  9.             temp |= 1 << (7 - i); 
  10.         } 
  11.     } 
  12.     *DesBuf = temp
  13.  
  14. void InvertUint16(unsigned short *DesBuf, unsigned short *SrcBuf) 
  15.     int i; 
  16.     unsigned short temp = 0; 
  17.  
  18.     for(i = 0; i < 16; i++) 
  19.     { 
  20.         if(SrcBuf[0] & (1 << i)) 
  21.         { 
  22.             temp |= 1 << (15 - i); 
  23.         } 
  24.     } 
  25.     *DesBuf = temp

3、查表

針對上面的代碼,求解CRC移位異或運算的循環(huán)體,對時間要求較高的場景,可以提前計算生成數(shù)值表,以空間換時間。

  1. //以CRC-8/ITU為例,生成數(shù)組查表 
  2. void creatTable(void) 
  3.     unsigned char i,init; 
  4.     unsigned short j; 
  5.     for(j=0;j<=255;j++) 
  6.     { 
  7.         if(j%16==0) 
  8.         { 
  9.             printf("\r\n"); 
  10.         } 
  11.  
  12.         init=j; 
  13.         for( i = 0;i < 8;i++) 
  14.         { 
  15.             if(init & 0x80) 
  16.             { 
  17.                 init = (init << 1) ^ 0x07;//以實際poly為準; 
  18.             } 
  19.             else 
  20.             { 
  21.                 init = init << 1; 
  22.             } 
  23.         } 
  24.         printf("0x%02X,", init); 
  25.     } 

確定poly后,假設(shè)init為0-255,求出256個參數(shù),轉(zhuǎn)為一維數(shù)組。如上,以CRC-8/ITU為例,生成數(shù)組如下:

  1. unsigned char crcTable[]={  
  2. 0x00,0x07,0x0E,0x09,0x1C,0x1B,0x12,0x15,0x38,0x3F,0x36,0x31,0x24,0x23,0x2A,0x2D,  
  3. 0x70,0x77,0x7E,0x79,0x6C,0x6B,0x62,0x65,0x48,0x4F,0x46,0x41,0x54,0x53,0x5A,0x5D,  
  4. 0xE0,0xE7,0xEE,0xE9,0xFC,0xFB,0xF2,0xF5,0xD8,0xDF,0xD6,0xD1,0xC4,0xC3,0xCA,0xCD,  
  5. 0x90,0x97,0x9E,0x99,0x8C,0x8B,0x82,0x85,0xA8,0xAF,0xA6,0xA1,0xB4,0xB3,0xBA,0xBD,  
  6. 0xC7,0xC0,0xC9,0xCE,0xDB,0xDC,0xD5,0xD2,0xFF,0xF8,0xF1,0xF6,0xE3,0xE4,0xED,0xEA,  
  7. 0xB7,0xB0,0xB9,0xBE,0xAB,0xAC,0xA5,0xA2,0x8F,0x88,0x81,0x86,0x93,0x94,0x9D,0x9A,  
  8. 0x27,0x20,0x29,0x2E,0x3B,0x3C,0x35,0x32,0x1F,0x18,0x11,0x16,0x03,0x04,0x0D,0x0A,  
  9. 0x57,0x50,0x59,0x5E,0x4B,0x4C,0x45,0x42,0x6F,0x68,0x61,0x66,0x73,0x74,0x7D,0x7A,  
  10. 0x89,0x8E,0x87,0x80,0x95,0x92,0x9B,0x9C,0xB1,0xB6,0xBF,0xB8,0xAD,0xAA,0xA3,0xA4,  
  11. 0xF9,0xFE,0xF7,0xF0,0xE5,0xE2,0xEB,0xEC,0xC1,0xC6,0xCF,0xC8,0xDD,0xDA,0xD3,0xD4,  
  12. 0x69,0x6E,0x67,0x60,0x75,0x72,0x7B,0x7C,0x51,0x56,0x5F,0x58,0x4D,0x4A,0x43,0x44,  
  13. 0x19,0x1E,0x17,0x10,0x05,0x02,0x0B,0x0C,0x21,0x26,0x2F,0x28,0x3D,0x3A,0x33,0x34,  
  14. 0x4E,0x49,0x40,0x47,0x52,0x55,0x5C,0x5B,0x76,0x71,0x78,0x7F,0x6A,0x6D,0x64,0x63,  
  15. 0x3E,0x39,0x30,0x37,0x22,0x25,0x2C,0x2B,0x06,0x01,0x08,0x0F,0x1A,0x1D,0x14,0x13,  
  16. 0xAE,0xA9,0xA0,0xA7,0xB2,0xB5,0xBC,0xBB,0x96,0x91,0x98,0x9F,0x8A,0x8D,0x84,0x83,  
  17. 0xDE,0xD9,0xD0,0xD7,0xC2,0xC5,0xCC,0xCB,0xE6,0xE1,0xE8,0xEF,0xFA,0xFD,0xF4,0xF3, }; 

原來的直接計算改為查表,如下:

  1. //以CRC-8/ITU為參考 
  2. unsigned char CRC8(unsigned char *data, unsigned int len) 
  3.     unsigned char i; 
  4.     unsigned char poly = 0x07;//與表中的Poly列對應(yīng) 
  5.     unsigned char init = 0x00;//與表中的Init列對應(yīng) 
  6.  
  7.     unsigned char wChar = 0; 
  8.  
  9.     while (len--) 
  10.     { 
  11.         wChar = *(data++); 
  12.  
  13.         //RefIn為TRUE時執(zhí)行,FALSE時刪除 
  14.         //InvertUint8(&wChar,&wChar); 
  15.  
  16.         init ^= wChar; 
  17.  
  18. /************************************************************/ 
  19. #if 1 
  20.  
  21.         init=crcTable[init];//查表,空間換時間 
  22. #else 
  23.         for( i = 0;i < 8;i++) 
  24.         { 
  25.             if(init & 0x80) 
  26.             { 
  27.                 init = (init << 1) ^ poly; 
  28.             } 
  29.             else 
  30.             { 
  31.                 init = init << 1; 
  32.             } 
  33.         } 
  34. #endif 
  35. /************************************************************/ 
  36.     } 
  37.  
  38.     //RefOut為TRUE時執(zhí)行,FALSE時刪除 
  39.     //InvertUint8(&init,&init); 
  40.  
  41.     //與XorOut進行異或,若為0時執(zhí)行或不執(zhí)行沒有區(qū)別 
  42.     init=init^0x55; 
  43.  
  44.     return (init); 

對于CRC16也可以使用查表法。

本文轉(zhuǎn)載自微信公眾號「嵌入式系統(tǒng)」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請聯(lián)系嵌入式系統(tǒng)公眾號。

 

責任編輯:武曉燕 來源: 嵌入式系統(tǒng)
相關(guān)推薦

2021-11-05 22:47:44

冒泡排序選擇插入

2022-03-10 08:59:59

傅里葉變換算法系統(tǒng)

2023-03-26 12:41:46

2020-11-03 09:55:33

嵌入式算法夾角

2021-11-29 07:43:08

大數(shù)據(jù)存儲算法

2013-07-25 09:32:26

OpenGL ESAndroid4.3

2022-11-24 11:15:49

IoTLinux設(shè)備樹機制

2011-01-14 13:13:23

嵌入式Linux開發(fā)

2009-12-09 10:12:28

嵌入式Linux

2009-07-17 16:06:59

ARM嵌入式開發(fā)

2009-12-16 15:41:40

嵌入式Linux入門

2009-12-17 10:33:05

嵌入式Linux

2011-04-18 11:34:34

嵌入式軟件測試

2011-06-17 08:59:27

QT Embedded Arm

2023-01-15 17:57:01

2009-11-30 16:54:28

微軟

2023-04-27 07:06:18

2020-04-22 11:51:41

物聯(lián)網(wǎng)嵌入式編程IOT

2009-12-23 16:52:26

Linux自學嵌入式

2009-04-23 10:38:27

InnoDB存儲引擎嵌入式
點贊
收藏

51CTO技術(shù)棧公眾號

亚洲综合小说| yiren22亚洲综合| 成人美女视频在线观看18| 久久人人爽人人爽人人片av高清| 亚洲国产果冻传媒av在线观看| 影音成人av| 亚洲午夜影视影院在线观看| 欧美一级片免费观看| 国产免费黄色网址| 亚洲欧美成人| 九九热视频这里只有精品| 亚洲永久无码7777kkk| 欧美少妇激情| 欧美视频一二三| 精品日韩在线播放| 邻居大乳一区二区三区| 国产高清精品久久久久| 欧洲一区二区视频| 免费在线观看黄视频| 激情婷婷综合| 亚洲国产天堂久久综合| 国产福利在线免费| 一区二区三区短视频| 亚洲欧美色综合| 日本不卡一区二区三区视频| 亚洲精品成av人片天堂无码| 蜜桃av一区二区三区电影| 韩国视频理论视频久久| 欧美一级特黄高清视频| 亚洲老女人视频免费| 日韩欧美亚洲国产另类 | 欧美精品97| 亚洲视频axxx| 少妇精品一区二区| 综合中文字幕| 制服丝袜中文字幕亚洲| 亚洲成色www.777999| 天堂中文在线播放| 亚洲高清久久久| 日韩成人午夜影院| 成码无人av片在线观看网站| 国产精品欧美经典| 四虎影视永久免费在线观看一区二区三区 | 亚洲精品久久一区二区三区777 | 日韩欧美电影一区| а 天堂 在线| 日韩久久99| 欧美日韩午夜精品| 爱情岛论坛成人| 国产精品高清乱码在线观看| 色综合久久中文字幕| 日本一区二区黄色| 欧美freesex黑人又粗又大| 亚洲成a人片在线观看中文| 激情图片qvod| 天堂av在线电影| 亚洲激情欧美激情| 成人免费a级片| 欧美巨大xxxx做受沙滩| 亚洲伊人伊色伊影伊综合网| 伊人再见免费在线观看高清版 | 六月婷婷中文字幕| 成人免费黄色大片| 精品综合久久久| 男人的天堂在线免费视频| 久久综合狠狠综合| 日韩av不卡在线播放| 国产精品久久久久一区二区国产 | 中日韩在线视频| 二区三区在线观看| 一区二区三区免费| 无码专区aaaaaa免费视频| 最近高清中文在线字幕在线观看1| 欧美午夜无遮挡| 免费涩涩18网站入口| 亚洲一区av| 精品国产凹凸成av人网站| 中国特级黄色大片| 香蕉一区二区| 少妇久久久久久| 欧美精品xxxxx| 亚洲自啪免费| 国产一区视频在线播放| www.我爱av| 久久无码av三级| 亚洲第一精品区| 黑人极品ⅴideos精品欧美棵| 婷婷久久综合九色国产成人| 亚洲视频在线a| 欧美一区在线观看视频| 日韩精品中文字幕在线| 免费91在线观看| 亚洲黄色av| 国产噜噜噜噜久久久久久久久| 99热这里只有精| 91看片淫黄大片一级在线观看| 亚洲精品成人a8198a| 色在线视频网| 欧美日韩在线播放一区| 国产性生活毛片| 欧美日韩国产传媒| 欧美黄色片在线观看| 加勒比在线一区| 国产呦萝稀缺另类资源| 麻豆亚洲一区| 成年人网站在线| 在线精品观看国产| 日本性生活一级片| 91亚洲国产| 欧美亚洲成人xxx| 一本色道久久综合无码人妻| 99久久精品情趣| 在线视频亚洲自拍| 波多野结衣亚洲| 欧美大胆人体bbbb| 亚洲综合第一区| 亚洲在线电影| 国产嫩草一区二区三区在线观看 | 久久久久久久久久久91| 无码人妻丰满熟妇区五十路| 国产不卡高清在线观看视频| 亚洲不卡中文字幕| 美女100%一区| 亚洲精品不卡在线| 免费视频一二三区| 久久国产福利国产秒拍| 欧美日产一区二区三区在线观看| 波多野结衣精品| 欧美一区二区精品在线| 午夜激情福利电影| 美女一区二区三区| 欧洲亚洲一区二区| a欧美人片人妖| 精品一区二区三区四区| 日韩少妇裸体做爰视频| 国产不卡在线视频| 免费看日b视频| www欧美在线观看| 日韩中文字幕视频在线观看| 樱花视频在线免费观看| 久久精品日产第一区二区三区高清版| 日本福利视频一区| 国产成人福利av| 欧美激情在线一区| 成人免费公开视频| 亚洲精品高清视频在线观看| 在线观看日本www| 天天做天天爱天天综合网| 国产欧美一区二区| 精品自拍一区| 制服丝袜日韩国产| 手机av在线看| 国产suv精品一区二区三区| 伊人网在线免费| 精品视频国内| 欧美激情视频网| 黄色一级a毛片| 午夜精品久久久久久久99樱桃| 91丨porny丨对白| 国产一区二区三区成人欧美日韩在线观看 | 污污的网站18| 五月天久久久| 国产精华一区二区三区| 538在线观看| 亚洲视频专区在线| 亚洲视频在线免费播放| ㊣最新国产の精品bt伙计久久| 激情在线观看视频| 国产综合婷婷| 久久亚洲综合网| av在线不卡精品| 欧美xxxx18国产| 人妻无码中文字幕免费视频蜜桃| 精品久久香蕉国产线看观看gif| 人妻少妇精品视频一区二区三区| 美女国产一区| 一区二区视频在线播放| 麻豆国产一区二区三区四区| 97av在线影院| 中文字幕在线观看日本| 欧美成人女星排行榜| 中文字幕第15页| 中文字幕巨乱亚洲| 日本一区二区三区在线免费观看| 亚洲福利电影| 四虎影院一区二区三区| 亚洲视频国产| 国产精品极品尤物在线观看 | 国产精品成人aaaaa网站| 四虎久久免费| 欧美精品一区二区三区蜜臀| 成人a v视频| 一二三四区精品视频| 久久精品国产亚洲av久| 国产美女av一区二区三区| 国产一区二区三区精彩视频| 久久精品欧美一区| 久久亚洲高清| 亚洲国产视频二区| 国产成人福利视频| 激情图片在线观看高清国产| 一区二区三区视频在线| 亚洲免费国产视频| 欧美日韩国产一区二区三区地区| 国产无遮挡又黄又爽| 国产精品热久久久久夜色精品三区| 成人做爰69片免费| 麻豆精品在线观看| 漂亮人妻被中出中文字幕| 亚洲影视一区| 日韩高清专区| 青青草久久爱| 成人xxxxx色| 9999在线精品视频| 国产精品精品视频| 手机在线观看av| 欧美激情伊人电影| 中文字幕中文字幕在线十八区| 亚洲欧洲av一区二区| 国精品人妻无码一区二区三区喝尿| 欧美色图天堂网| 一级黄色av片| 色欲综合视频天天天| 国产无遮挡又黄又爽在线观看| 亚洲欧美综合色| 国产激情av在线| 欧美精彩视频一区二区三区| 亚洲综合自拍网| 粉嫩一区二区三区性色av| 久久成年人网站| 精品一区二区免费在线观看| 亚洲一区二区蜜桃| 日日摸夜夜添夜夜添精品视频| 日本男女交配视频| 欧美黄在线观看| 天天爱天天做天天操| 日韩精品欧美激情一区二区| 日本黑人久久| 视频一区欧美| 日本高清不卡三区| 妖精视频一区二区三区| 久久亚洲高清| 国产日产精品一区二区三区四区的观看方式 | 手机看片福利盒子久久| 日韩国产高清影视| 热久久精品免费视频| 日韩电影在线一区二区三区| 妺妺窝人体色www在线观看| 日本伊人色综合网| 亚洲综合av在线播放| 久久99精品久久久| 久久综合在线观看| 国产精品888| 国产精品成人免费一区久久羞羞| 成人免费毛片嘿嘿连载视频| 国产69视频在线观看| 9l国产精品久久久久麻豆| 亚洲国产精品自拍视频| 95精品视频在线| xxxxx在线观看| 国产精品无人区| jizz亚洲少妇| 亚洲国产aⅴ天堂久久| 精品在线播放视频| 在线精品亚洲一区二区不卡| 午夜视频网站在线观看| 88在线观看91蜜桃国自产| 国产高清精品软件丝瓜软件| 精品国产乱码久久久久久久久| 天天干天天舔天天射| 亚洲天堂成人在线| 黄网站视频在线观看| 欧美精品videossex性护士| 涩涩视频在线| 国产狼人综合免费视频| 日韩精品免费视频一区二区三区| 国产精品视频500部| 亚洲理论电影片| 香蕉精品视频在线| 136国产福利精品导航网址| 国产熟女高潮视频| 精品一区二区国语对白| 高清中文字幕mv的电影| 久久精品这里都是精品| 亚洲最大的黄色网址| 五月综合激情网| 中文字幕在线2018| 亚洲а∨天堂久久精品喷水| 九色视频在线播放| 成人444kkkk在线观看| 国产777精品精品热热热一区二区| 国产ts一区二区| 91精品丝袜国产高跟在线| 欧美日韩在线不卡一区| 自拍视频亚洲| 日韩av播放器| 高清av一区二区| 欧美美女性生活视频| 欧美日韩午夜剧场| 国产情侣激情自拍| 亚洲欧美日韩中文在线制服| 1024在线播放| 国产免费一区二区三区在线能观看 | 日本污视频网站| 午夜日韩在线观看| 国产一区二区在线播放视频| 精品爽片免费看久久| av大片在线| 国产精品美女免费看| 北条麻妃在线一区二区免费播放 | 免费看黄色aaaaaa 片| 亚洲免费大片在线观看| 国产美女www爽爽爽| 亚洲国产中文字幕在线观看| 成码无人av片在线观看网站| 国产精品免费久久久久久| 噜噜噜狠狠夜夜躁精品仙踪林| 在线观看一区二区三区三州| 久久婷婷麻豆| 日本三级日本三级日本三级极| 自拍偷拍欧美激情| 国产偷人爽久久久久久老妇app| 亚洲成**性毛茸茸| 色呦呦在线免费观看| 亚洲一区二区久久久久久久| 精品精品99| 波多野结衣家庭教师视频| 成人一级黄色片| a在线视频播放观看免费观看| 欧美日韩一卡二卡三卡| 搞黄视频免费在线观看| 欧美资源在线观看| 婷婷亚洲精品| 欧美a v在线播放| 不卡视频免费播放| 国产精品6666| 亚洲成人av在线| 都市激情久久综合| 国产精品久久久久久久久久久久午夜片 | 精品亚洲精品| www.av毛片| 99久久精品免费观看| 日韩免费av片| 日韩电影中文字幕一区| 98色花堂精品视频在线观看| 国产精品乱码视频| 在线不卡欧美| 国产中文字幕一区二区| 精品magnet| 久久经典视频| 国产精品视频大全| 天天影视欧美综合在线观看| 又色又爽又黄视频| 一区二区三区在线播放| 蜜臀av午夜精品| 97色伦亚洲国产| 国产毛片一区二区三区| av丝袜天堂网| 亚洲免费在线观看视频| 亚洲AV无码国产精品午夜字幕| 久久久久久久久久av| 欧美精品中文| 免费看污污网站| 亚洲色图视频网站| 蜜桃视频在线观看www| 欧美一二三视频| 成人av二区| 手机看片国产精品| 婷婷开心激情综合| 成人在线观看网站| 亚洲一区二区久久久久久| 日韩视频二区| 欧洲性xxxx| 欧美电影免费观看完整版| 欧美freesex黑人又粗又大| 亚洲激情图片| 成人国产亚洲欧美成人综合网| 啦啦啦免费高清视频在线观看| 国产亚洲人成网站在线观看| 国产精品一区二区三区www| 久久久久99精品成人片| 久久久91精品国产一区二区三区| 国产精品免费无遮挡| 97在线观看免费| 91亚洲国产| 99久久人妻无码中文字幕系列| 在线观看中文字幕不卡| 色老头在线观看| 欧美性bbwbbwbbwhd| 国产乱码精品一区二区三区忘忧草| 国产又大又黑又粗免费视频| 国产午夜精品一区二区三区| 精品一区二区三区亚洲| 国产亚洲综合视频| 亚洲日本在线a| 欧美xxx.com| 国产99在线免费| 蜜桃视频一区二区三区在线观看 | 国产cdts系列另类在线观看| 久久久久网址|