一级全黄裸体免费视频_欧美高清性xxxx_加勒比av一区二区_91插插插插插插_欧美影院精品一区_亚洲精品成人图区_国产大片aaa_日韩在线观看免费_日韩不卡一区_国产又粗又猛又黄又爽

RK3588-UART

2023-06-10 18:51:30 來(lái)源:jf_30051736

打印 放大 縮小

前言

專欄總目錄本文主要講解如何關(guān)于RK3588開(kāi)發(fā)板UART的使用和調(diào)試方法,包括UART作為普通串口和控制臺(tái)兩種不同使用場(chǎng)景

一. 功能特點(diǎn)

RockchipUART (Universal Asynchronous Receiver/Transmitter) 基于16550A串口標(biāo)準(zhǔn),完整模塊支持以下功能:

支持5、6、7、8 bits數(shù)據(jù)位。支持1、1.5、2 bits停止位。支持奇校驗(yàn)和偶校驗(yàn),不支持mark校驗(yàn)和space校驗(yàn)。支持接收FIFO和發(fā)送FIFO,一般為32字節(jié)或者64字節(jié)。支持最高4M波特率,實(shí)際支持波特率需要芯片時(shí)鐘分頻策略配合。支持中斷傳輸模式和DMA傳輸模式。 支持硬件自動(dòng)流控,RTS+CTS。

二、代碼位置

Linuxkernel 中,使用8250串口通用驅(qū)動(dòng),以下為主要驅(qū)動(dòng)文件:

drivers/tty/serial/8250/8250_core.c # 8250串口驅(qū)動(dòng)核心


(相關(guān)資料圖)

drivers/tty/serial/8250/8250_dw.c # Synopsis DesignWare 8250串口驅(qū)動(dòng)

drivers/tty/serial/8250/8250_dma.c # 8250串口DMA驅(qū)動(dòng)

drivers/tty/serial/8250/8250_port.c # 8250串口端口操作

drivers/tty/serial/8250/8250_early.c # 8250串口early console驅(qū)動(dòng)

SDK中提供的UART默認(rèn)配置已經(jīng)使用了8250驅(qū)動(dòng)我們就不需要修改

三、硬件原理圖

串口功能的硬件上比較簡(jiǎn)單,這是只附上調(diào)試串口的原理圖

四、設(shè)備樹(shù)配置

rk平臺(tái)的設(shè)備樹(shù)修改路徑都是在kernel\\arch\\arm64\\boot\\dts\\rockchip下面,具體哪個(gè)文件根據(jù)對(duì)應(yīng)開(kāi)發(fā)板來(lái)決定,通常描述設(shè)備硬件配置在rkxxxx.dtsi中,比如在rk3588s.dtsi中:

uart2: serial@feb50000 {compatible = "rockchip,rk3588-uart", "snps,dw-apb-uart";reg = < 0x0 0xfeb50000 0x0 0x100 >;interrupts = < GIC_SPI 333 IRQ_TYPE_LEVEL_HIGH >;clocks = < &cru SCLK_UART2 >, < &cru PCLK_UART2 >;clock-names = "baudclk", "apb_pclk";reg-shift = < 2 >;reg-io-width = < 4 >;dmas = < &dmac0 10 >, < &dmac0 11 >;pinctrl-names = "default";pinctrl-0 = < &uart2m1_xfer >;status = "disabled";};

4.1作為普通串口

假入我們想使用w3開(kāi)發(fā)板上40PIN上的uart7

我們?cè)赿ts可以使用如下配置打開(kāi)

&uart7 {status = "okay";pinctrl-names = "default";pinctrl-0 = < &uart7m1_xfer >;};

4.2作為調(diào)試串口

Rockchip UART作為控制臺(tái),使用fiq_debugger流程。

在dts中fiq_debugger節(jié)點(diǎn)配置如下。由于fiq_debugger和普通串口互斥,在使能fiq_debugger節(jié)點(diǎn)后必須禁用對(duì)應(yīng)的普通串口uart節(jié)點(diǎn)。

chosen: chosen {bootargs = "earlycon=uart8250,mmio32,0xfe660000 console=ttyFIQ0";};fiq-debugger {compatible = "rockchip,fiq-debugger";rockchip,serial-id = < 2 >;rockchip,wake-irq = < 0 >;/* If enable uart uses irq insteadof fiq */rockchip,irq-mode-enable = < 1 >;rockchip,baudrate = < 1500000 >; /* Only 115200 and 1500000 */interrupts = < GIC_SPI 252 IRQ_TYPE_LEVEL_LOW >;pinctrl-names = "default";pinctrl-0 = < &uart2m0_xfer >;status = "okay";};&uart2 {status = "disabled";};
rockchip,serial-id:使用的UART編號(hào)。修改serial-id到不同UART,fiq_debugger設(shè)備也會(huì)注冊(cè)成ttyFIQ0設(shè)備。 rockchip,irq-mode-enable:配置為1使用irq中斷,配置為0使用fiq中斷。interrupts:配置的輔助中斷,保持默認(rèn)即可。pinctrl-0:使用的串口引腳rockchip,baudrate:波特率配置

五、串口相關(guān)問(wèn)題

5.1設(shè)備注冊(cè)

普通串口設(shè)備將會(huì)根據(jù)dts中的aliase來(lái)對(duì)串口進(jìn)行編號(hào),對(duì)應(yīng)注冊(cè)成ttySx設(shè)備。注冊(cè)的節(jié)點(diǎn)為/dev/ttyS4,命名規(guī)則是通過(guò)dts中的aliases來(lái)的。

aliases {serial0 = &uart0;serial1 = &uart1;serial2 = &uart2;serial3 = &uart3;}

對(duì)應(yīng)uart0注冊(cè)為ttyS0,uart0注冊(cè)為ttyS1,如果需要把uart3注冊(cè)成ttyS1,可以進(jìn)行以下修改

serial1 = &uart3;  serial3 = &uart1;

5.2控制臺(tái)打印相關(guān)

Rockchip UART打印通常包括DDR階段、Miniloader階段、TF-A (Trusted Firmware-A)階段、OP-TEE階段、Uboot階段和Kernel階段,我們平時(shí)主要關(guān)注的是uboot階段和kernel階段的打印,在這兩個(gè)階段我們可以嘗試關(guān)閉所有打印或切換所有打印到其他UART,RK平臺(tái)默認(rèn)的調(diào)試串口是uart2_m0這一組引腳,假如現(xiàn)在我將打印換成其他串口,可以嘗試以下做法。

5.2.1DDR Loader修改方法

DDR Loader中關(guān)閉或切換打印,需要修改DDR Loader中的UART打印配置,修改文件rkbin/tools/ddrbin_param.txt中的以下參數(shù):

uart id= # UART控制器id,配置為0xf為關(guān)閉打印

uart iomux= # 復(fù)用的IOMUX引腳 uart

baudrate= # 115200 or 1500000

修改完成后,使用以下命令重新生成ddr.bin固件。

./ddrbin_tool ddrbin_param.txt rk3588_ddr_lp4_2112MHz_lp5_2736MHz_v1.09.bin

5.2.2Uboot修改方法

Uboot中關(guān)閉打印,需要在menuconfig中,打開(kāi)配CONFIG_DISABLE_CONSOLE,保存到.config文件

Uboot中切換打印,由傳參機(jī)制決定,不需要進(jìn)行額外修改。uboot解析傳參機(jī)制相關(guān)代碼在arch/arm/mach-rockchip/board.c的board_init_f_init_serial()函數(shù)中。

5.2.3kernel修改方法

去掉打印需要在menuconfig中,關(guān)閉配置CONFIG_SERIAL_8250_CONSOLE。

Device Drivers --->

Character devices --->

Serial drivers --->

[ ]Console on 8250/16550 and compatible serial port

在dts配置中找到類似以下內(nèi)容,并去掉UART基地址和console相關(guān)配置參數(shù)

chosen: chosen {bootargs = "earlycon=uart8250,mmio32,0xfeb50000 console=ttyFIQ0 irqchip.gicv3_pseudo_nmi=0 root=PARTUUID=614e0000-0000 rw rootwait";};

將0xfeb50000 console=ttyFIQ0 去掉,然后找到fiq-debugger節(jié)點(diǎn),修改serial-id為0xffffffff,去掉UART引腳復(fù)用相關(guān)配置。注意,需要保持fiqdebugger節(jié)點(diǎn)使能,保持fiq-debugger流程系統(tǒng)才能正常啟動(dòng)

fiq_debugger: fiq-debugger {compatible = "rockchip,fiq-debugger";rockchip,serial-id = < 0xffffffff >;rockchip,wake-irq = < 0 >;/* If enable uart uses irq instead of fiq */rockchip,irq-mode-enable = < 1 >;rockchip,baudrate = < 1500000 >;  /* Only 115200 and 1500000 */interrupts = < GIC_SPI 423 IRQ_TYPE_LEVEL_LOW >;status = "okay";};

切換打印串口例如將Kernel打印從UART2切換到UART3,在dts配置中找到類似以下內(nèi)容,將UART基地址由UART2改為UART3.

bootargs = "earlycon=uart8250,mmio32,0xfe670000 console=ttyFIQ0";

0xfe670000是UART3基地址,然后找到fiq-debugger節(jié)點(diǎn),修改serial-id為3,修改UART3引腳復(fù)用配置pinctrl-0 = <&uart3m0_xfer>。注意,同時(shí)需要將切換為打印串口的UART3作為普通串口的節(jié)點(diǎn)禁用。

六、串口測(cè)試

在開(kāi)發(fā)板上跑一套應(yīng)用程序,可以發(fā)送數(shù)據(jù),可以接收數(shù)據(jù),測(cè)試方法可以短接TX_RX

#include < stdio.h >#include < stdlib.h >#include < errno.h >#include < unistd.h >#include < fcntl.h >#include < string.h >#include < termio.h >#include < time.h >#include < pthread.h >int read_data(int fd, void *buf, int len);int write_data(int fd, void *buf, int len);int setup_port(int fd, int baud, int databits, int parity, int stopbits);void print_usage(char *program_name);pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;pthread_cond_t data_ready = PTHREAD_COND_INITIALIZER;int data_available = 0;void *read_thread(void *arg) {    int fd = *(int *)arg;    char buffer[1024]; // 存儲(chǔ)讀取的數(shù)據(jù)    while (1) {        int bytes_read = read_data(fd, buffer, sizeof(buffer));        if (bytes_read > 0) {            printf("Read Thread: Read %d bytes: %s\\n", bytes_read, buffer);        } else {            // 處理讀取錯(cuò)誤或設(shè)備關(guān)閉的情況            break;        }    }        pthread_exit(NULL);}void *write_thread(void *arg) {    int fd = *(int *)arg;char input[1024]; // 存儲(chǔ)用戶輸入的數(shù)據(jù)    while (1) {        printf("Enter data to write (or "q" to quit): ");        fgets(input, sizeof(input), stdin);        if (strcmp(input, "q\\n") == 0 || strcmp(input, "Q\\n") == 0) {            // 用戶輸入 "q" 或 "Q",退出循環(huán)            break;        }        int len = strlen(input);        int bytes_written = write_data(fd, input, len);        if (bytes_written > 0) {            printf("Write Thread: Wrote %d bytes: %s\\n", bytes_written, input);        }    }        pthread_exit(NULL);}int main(int argc, char *argv[]) //./a.out /dev/ttyS4 115200 8 0 1{    int fd;    int baud;    int len;    int count;    int i;    int databits;    int stopbits;    int parity;    if (argc != 6) {        print_usage(argv[0]);        return 1;    }     baud = atoi(argv[2]);    if ((baud < 0) || (baud > 921600)) {        fprintf(stderr, "Invalid baudrate!\\n");        return 1;    }     databits = atoi(argv[3]);    if ((databits < 5) || (databits > 8)) {        fprintf(stderr, "Invalid databits!\\n");        return 1;    }     parity = atoi(argv[4]);    if ((parity < 0) || (parity > 2)) {        fprintf(stderr, "Invalid parity!\\n");        return 1;    }     stopbits = atoi(argv[5]);    if ((stopbits < 1) || (stopbits > 2)) {        fprintf(stderr, "Invalid stopbits!\\n");        return 1;    }      fd = open(argv[1], O_RDWR, 0);    if (fd < 0) {        fprintf(stderr, "open < %s > error %s\\n", argv[1], strerror(errno));        return 1;    }     if (setup_port(fd, baud, databits, parity, stopbits)) {        fprintf(stderr, "setup_port error %s\\n", strerror(errno));        close(fd);        return 1;    }pthread_t read_tid, write_tid;    int ret;    // 創(chuàng)建讀取線程    ret = pthread_create(&read_tid, NULL, read_thread, &fd);    if (ret != 0) {        fprintf(stderr, "Failed to create read thread\\n");        return 1;    }    // 創(chuàng)建寫入線程    ret = pthread_create(&write_tid, NULL, write_thread, &fd);    if (ret != 0) {        fprintf(stderr, "Failed to create write thread\\n");        return 1;    }    // 等待讀取線程和寫入線程結(jié)束    pthread_join(read_tid, NULL);    pthread_join(write_tid, NULL);    close(fd);     return 0;}static int baudflag_arr[] = {    B921600, B460800, B230400, B115200, B57600, B38400,    B19200,  B9600,   B4800,   B2400,   B1800,  B1200,    B600,    B300,    B150,    B110,    B75,    B50};static int speed_arr[] = {    921600,  460800,  230400,  115200,  57600,  38400,    19200,   9600,    4800,    2400,    1800,   1200,    600,     300,     150,     110,     75,     50};int speed_to_flag(int speed){    int i;     for (i = 0;  i < sizeof(speed_arr)/sizeof(int);  i++) {        if (speed == speed_arr[i]) {            return baudflag_arr[i];        }    }     fprintf(stderr, "Unsupported baudrate, use 9600 instead!\\n");    return B9600;}static struct termio oterm_attr;int setup_port(int fd, int baud, int databits, int parity, int stopbits){    struct termio term_attr;         if (ioctl(fd, TCGETA, &term_attr) < 0) {        return -1;    }         memcpy(&oterm_attr, &term_attr, sizeof(struct termio));     term_attr.c_iflag &= ~(INLCR | IGNCR | ICRNL | ISTRIP);    term_attr.c_oflag &= ~(OPOST | ONLCR | OCRNL);    term_attr.c_lflag &= ~(ISIG | ECHO | ICANON | NOFLSH);    term_attr.c_cflag &= ~CBAUD;    term_attr.c_cflag |= CREAD | speed_to_flag(baud);         term_attr.c_cflag &= ~(CSIZE);    switch (databits) {        case 5:            term_attr.c_cflag |= CS5;            break;         case 6:            term_attr.c_cflag |= CS6;            break;         case 7:            term_attr.c_cflag |= CS7;            break;         case 8:        default:            term_attr.c_cflag |= CS8;            break;    }         switch (parity) {        case 1:              term_attr.c_cflag |= (PARENB | PARODD);            break;         case 2:              term_attr.c_cflag |= PARENB;            term_attr.c_cflag &= ~(PARODD);            break;         case 0:          default:            term_attr.c_cflag &= ~(PARENB);            break;    }          switch (stopbits) {        case 2:              term_attr.c_cflag |= CSTOPB;            break;         case 1:          default:            term_attr.c_cflag &= ~CSTOPB;            break;    }     term_attr.c_cc[VMIN] = 1;    term_attr.c_cc[VTIME] = 0;     if (ioctl(fd, TCSETAW, &term_attr) < 0) {        return -1;    }     if (ioctl(fd, TCFLSH, 2) < 0) {        return -1;    }     return 0;}  int read_data(int fd, void *buf, int len){    int count;    int ret;     ret = 0;    count = 0;     //while (len > 0) {     ret = read(fd, (char*)buf + count, len);    if (ret < 1) {        fprintf(stderr, "Read error %s\\n", strerror(errno));        //break;    }     count += ret;    len = len - ret;     //}     *((char*)buf + count) = 0;    return count;}  int write_data(int fd, void *buf, int len){    int count;    int ret;     ret = 0;    count = 0;     while (len > 0) {         ret = write(fd, (char*)buf + count, len);        if (ret < 1) {            fprintf(stderr, "Write error %s\\n", strerror(errno));            break;        }         count += ret;        len = len - ret;    }     return count;}void print_usage(char *program_name){    fprintf(stderr,            "*************************************\\n"            "  A Simple Serial Port Test Utility\\n"            "*************************************\\n\\n"            "Usage:\\n  %s < device > < baud > < databits > < parity > < stopbits > \\n"            "       databits: 5, 6, 7, 8\\n"            "       parity: 0(None), 1(Odd), 2(Even)\\n"            "       stopbits: 1, 2\\n"            "Example:\\n  %s /dev/ttyS4 115200 8 0 1\\n\\n",            program_name, program_name           );}

運(yùn)行效果如下:

審核編輯:湯梓紅

關(guān)鍵詞:

責(zé)任編輯:ERM523

相關(guān)閱讀

国产无套丰满白嫩对白| 麻豆传媒视频在线观看免费| 西西44rtwww国产精品| 国产91在线免费| 亚洲人成啪啪网站| 亚洲一区二区三区四区在线| 久久精品国产亚洲aⅴ| 蜜桃国内精品久久久久软件9| 成人免费在线| 男女无套免费网站| 亚洲爱爱天堂| 国产综合久久久久久| 国产综合无码一区二区色蜜蜜| 中国动漫在线观看完整版免费| 欧美hdxxx| 日日狠狠久久偷偷综合色| a天堂中文在线观看| 九九热精品视频在线| 亚洲精品久久久久久久久久| www.91香蕉视频| 日本天堂影院在线视频| 中文幕av一区二区三区佐山爱| 欧美国产一区二区三区激情无套| 国产在线不卡一卡二卡三卡四卡| 欧美无人高清视频在线观看| 欧美老女人在线视频| 亚洲精品色婷婷福利天堂| 欧美精品粉嫩高潮一区二区| 欧美国产日产韩国视频| a级国产乱理论片在线观看99| 国产v亚洲v天堂无码久久久| 中国女人做爰视频| av亚洲天堂网| 一区二区三区黄色片| 午夜一区二区三区四区| 国产91视频一区| 中文字幕高清视频| 日本一线产区和二线产区| 亚洲欧美成人影院| 亚洲男人第一av| yy1111111| 天堂av8在线| 99热在线这里只有精品| 在线视频不卡一区二区| 久久新电视剧免费观看| 亚洲国产欧美一区二区丝袜黑人 | 91av久久久| 国模大尺度私拍在线视频| 成人在线黄色| jvid福利写真一区二区三区| 亚洲国产精品电影| 四虎一区二区| 久久久久亚洲视频| 暖暖视频在线免费观看| 亚洲影视综合| 亚洲影院理伦片| 久久av.com| 精品久久sese| 人人人妻人人澡人人爽欧美一区| av一线二线| 欧美爱爱视频| 国产三级欧美三级日产三级99| 欧美精品一区二区三区一线天视频 | 国产精品xvideos88| 精品日本高清在线播放| 国产精品视频看看| 国产精品国产三级国产aⅴ9色| 在线看片第一页欧美| 日韩电影视频免费| 精品国产露脸精彩对白 | av日韩国产| 最新国产露脸在线观看| 成人在线播放| 91av久久| 高清成人在线| 成人51免费| 在线视频第一页| 中文字幕日韩三级片| 性欧美丰满熟妇xxxx性久久久| 欧美极品jizzhd欧美仙踪林| 久久精品国产露脸对白| 一起草最新网址| 97人妻精品一区二区三区免费| 老司机午夜免费福利| 免费a在线观看播放| 一级在线观看视频| 69精品久久久| 亚洲高清视频免费观看| 亚洲a视频在线| 亚州欧美色图| 你懂的网站在线播放| 欧美18—20岁hd第一次| 最新亚洲人成网站在线观看| 95在线视频| 欧美伦理91| 国产一区二区三区免费在线| 日韩精品a在线观看91| 日韩情爱电影在线观看| 亚洲国产免费看| 六月婷婷色综合| 成人午夜激情在线| 综合分类小说区另类春色亚洲小说欧美| 亚洲一区二区三区中文字幕在线| 在线视频你懂得一区| 亚洲精品ady| 欧美成年人在线观看| 日韩免费黄色av| 国产欧美日韩一区二区三区| 少妇熟女一区二区| 中文字幕国产传媒| 无码人妻精品一区二区三应用大全| 日本黄色免费片| 亚洲天堂aaa| 日韩欧美在线综合| 美女黄a一级视频| 888av在线| 国产精品久久久久永久免费看| 又黄又爽在线观看| 免费毛片在线看片免费丝瓜视频 | 欧美精品xx| 小次郎av收藏家| eeuss影院在线播放| a欧美人片人妖| 天天射狠狠干| 蜜桃免费在线| 国产成人77亚洲精品www| 欧美热在线视频精品999| 亚洲一区二区毛片| 国产清纯在线一区二区www| 色婷婷综合在线| 亚洲视频在线观看| 国产欧美日韩中文字幕在线| 亚洲国产午夜伦理片大全在线观看网站| h无码动漫在线观看| 欧美极品jizzhd欧美仙踪林| 亚洲 欧美 日韩 综合| 日韩美女黄色片| 亚洲日本色图| 亚欧精品一区| 男人皇宫亚洲男人2020| 欧美日韩伦理在线免费| 国产米奇在线777精品观看| 亚洲国产综合在线| 亚洲性线免费观看视频成熟| 国产在线日韩在线| 亚洲自拍偷拍网址| 成人黄色片免费| 精品国产av无码| 99久久久久久久| 99色在线播放| 久久青草伊人| 羞羞答答成人影院www| 成人91在线观看| 欧美日本高清视频在线观看| 欧美激情久久久| 国产97在线|日韩| 麻豆中文字幕在线观看| 中国黄色a级片| 99在线观看免费| 天天做天天摸天天爽天天爱| www.51av欧美视频| 久久一区二区中文字幕| 91在线精品秘密一区二区| 3d成人h动漫网站入口| 日韩av电影手机在线| 国产精品传媒毛片三区| 特级丰满少妇一级| 国产一级免费视频| 嫩草影院懂你的影院| 大桥未久在线播放| 欧美黄色精品| 亚洲免费观看高清完整版在线| 亚洲人线精品午夜| 玖玖玖精品中文字幕| 又黄又爽的网站| 久久久91视频| 在线播放黄网| 成人影院大全| 国产精品一区2区3区| 福利一区二区三区视频在线观看| 美日韩精品视频| 色8久久人人97超碰香蕉987| 亚州成人av在线| 日韩网站在线免费观看| 国产无码精品在线播放| 好好的日comwww| 精品影院一区| 久久亚洲影视| 亚洲视频你懂的| 精品呦交小u女在线| 久久青青草原一区二区| 伊人网综合视频| 中文字幕少妇| 青春草免费在线视频| 欧美三级午夜理伦三级中文幕| 亚洲女同ⅹxx女同tv| 欧美成人官网二区| 国产日韩二区| 日韩视频在线观看免费视频| 麻豆精品视频在线原创| 免费高潮视频95在线观看网站| 久久久亚洲一区| 51精品秘密在线观看| 超碰97人人人人人蜜桃| 欧美韩国日本在线| 一级α片免费看刺激高潮视频| 黄页视频在线免费观看| 精品美女视频| 亚洲一区二区高清| 国产精品成av人在线视午夜片| 亚洲精品成人在线播放| 美女脱光衣服与内衣内裤一区二区三区四区 | 日韩精品视频中文在线观看| 欧美日韩综合另类| 成年人二级毛片| 成人网址大全| 妖精一区二区三区精品视频 | 女人让男人操自己视频在线观看| 久久男女视频| 欧美精品一区二区三区四区| 亚洲国产精品视频一区| 精品无码m3u8在线观看| 国产特级淫片免费看| 精品久久中文| 色综合视频一区二区三区高清| 91免费看片网站| 你懂得在线观看| 成人丁香基地| 久久综合国产| 欧洲一区二区av| 欧洲亚洲一区二区| 欧美国产成人精品一区二区三区| 在线观看av片| 国产中文一区| 欧美精品一区二区三区视频| 国产精品一色哟哟| 中文字幕乱码av| 久久白虎精品| 亚洲精品黄色| 精品国产百合女同互慰| 亚洲综合在线播放| 黑鬼狂亚洲人videos| 午夜影院免费播放| 欧美日韩国内| 亚洲风情亚aⅴ在线发布| 国产av人人夜夜澡人人爽麻豆 | 国产91网红主播在线观看| 国风产精品一区二区| 中文字幕久久熟女蜜桃| av网站免费在线观看| 国产制服丝袜一区| 欧美美女15p| 婷婷五月精品中文字幕| yy111111少妇嫩草影院| 久久性感美女视频| 精品免费视频.| 国产裸体舞一区二区三区| 伊人色综合久久久天天蜜桃| 亚洲婷婷噜噜| 91在线精品一区二区| 国产精品视频公开费视频| 四虎影院中文字幕| 黄上黄在线观看| 国产乱国产乱300精品| 性欧美长视频免费观看不卡| 黄色一级片一级片| 国产大片在线免费观看| 精品在线播放免费| 91国内精品久久| 懂色av懂色av粉嫩av| 免费在线毛片网站| av网站一区二区三区| 91嫩草免费看| 亚洲免费视频二区| 欧美暴力调教| 欧美色videos| 免费人成在线观看视频播放| √天堂资源中文www| 伦理一区二区| 亚洲成avwww人| 手机在线国产视频| 国产精品黄页网站在线播放免费| 国产婷婷精品| 91精品国产高清自在线| 国产成人无码aa精品一区| 26uuu亚洲电影在线观看| 国产精品色婷婷久久58| 日本精品二区| www四虎com| 91精品啪在线观看国产81旧版| 亚洲美女av电影| 一本色道久久综合亚洲精品图片| 国产永久免费高清在线观看| www欧美成人18+| 久久精品中文字幕一区二区三区| www.超碰在线.com| 嗯用力啊快一点好舒服小柔久久| 6080午夜不卡| 一级做a免费视频| 91短视频在线| 99久久精品费精品国产一区二区| 国产另类自拍| 亚洲欧美一区二区三| 日本不卡电影| 中文字幕视频在线免费欧美日韩综合在线看 | 国产视频1区2区| 成人国产激情| 欧美一区二区在线播放| 青青草原国产在线视频| 特黄特色特刺激视频免费播放| 韩国三级中文字幕hd久久精品| 91精品久久久久久久久| 亚洲国产精品18久久久久久| 国产精品亚洲片在线播放| 中文字幕在线国产精品| 免费在线视频观看| 日韩欧乱色一区二区三区在线 | 四虎精品欧美一区二区免费| 午放福利视频在线播放| 日本美女一区二区三区| 91在线无精精品一区二区| 黄片毛片在线看| 日韩制服诱惑| 国产一区二区精品| 91免费电影网站| 亚洲小说春色综合另类网蜜桃| 在线中文一区| 国产精品99久久久久久www| 99久久夜色精品国产亚洲| 精品久久91| 欧美极品欧美精品欧美视频| 日韩在线播放中文字幕| 亚洲精品一级二级三级| 欧美成人午夜激情在线| 波多野结衣不卡| 在线看成人短视频| 欧美成人免费一级人片100| 少妇久久久久久久| 国产精品日韩精品中文字幕| 欧美一区二区三区性视频| 成人在线一级片| 欧美在线va视频| 精品亚洲夜色av98在线观看| 麻豆影视在线播放| 日韩欧美黄色| 57pao国产成人免费| 高h调教冰块play男男双性文| 亚洲国产综合在线观看| 国产亚洲人成a一在线v站| 国产一区二区99| 欧美亚洲高清| 国产精品极品美女在线观看免费 | 日韩av网址在线| 国产性70yerg老太| 在线一级成人| 国产精品第一页在线| 翔田千里精品久久一区二| 激情综合色综合久久综合| 咪咪色在线视频| 午夜成在线www| 欧美色另类天堂2015| 国产精品1000部啪视频| 国产精品毛片无码| 久久亚洲精品中文字幕冲田杏梨| 亚洲一级片免费看| 亚洲私拍自拍| 青娱乐国产91| 水中色av综合| 欧美探花视频资源| 国产三级国产精品国产国在线观看| 老汉色老汉首页av亚洲| 日本精品久久久久久久| 欧美日韩在线精品成人综合网| 成人中文字幕合集| 欧在线一二三四区| 蜜桃视频m3u8在线观看| 日韩亚洲第一页| 天堂网av2014| 国产不卡视频在线播放| 777久久久精品一区二区三区| 免费av在线网站| 亚洲精品福利视频| 一级片视频播放| 蜜桃精品在线观看| 亚洲精品国产suv一区88| 在线免费看av| 日韩激情在线视频| 国产免费叼嘿网站免费| 麻豆91精品91久久久的内涵| 日韩精品一区在线视频| 欧美性xxxxx极品视频| 国产乱理伦片在线观看夜一区| 国产视频九色蝌蚪| 黄页在线观看免费| 日韩在线观看网站| 亲爱的老师6电影韩剧| 欧美国产精品一区二区| 国产毛片毛片毛片毛片毛片毛片| 波多野结衣欧美| 亚洲最大福利网站|