《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于華邦W90P710的嵌入式Linux串口驅(qū)動的實現(xiàn)方法
基于華邦W90P710的嵌入式Linux串口驅(qū)動的實現(xiàn)方法
來源:微型機與應(yīng)用2011年第24期
肖鐵航
(深圳市拓邦自動化科技股份有限公司,廣東 深圳518108)
摘要: 基于華邦W90P710處理器的Linux內(nèi)核應(yīng)用,詳細介紹了Linux串口驅(qū)動的實現(xiàn)方法。同時對Linux文件系統(tǒng)操作入口函數(shù)及內(nèi)核的編譯做了詳細的說明。
Abstract:
Key words :

摘  要: 基于華邦W90P710處理器的Linux內(nèi)核應(yīng)用,詳細介紹了Linux串口驅(qū)動的實現(xiàn)方法。同時對Linux文件系統(tǒng)操作入口函數(shù)及內(nèi)核的編譯做了詳細的說明。
關(guān)鍵詞: ARM;Linux;UART;文件系統(tǒng);串口驅(qū)動程序

嵌入式Linux是一種很受歡迎的操作系統(tǒng),具有開放源碼、不存在黑箱技術(shù)、內(nèi)核小、功能強大、運行穩(wěn)定、效率高、易于定制裁減等特點[1],廣泛應(yīng)用于工控產(chǎn)品。很多工控產(chǎn)品需要和外部設(shè)備進行信息交換,而串口通信是最簡單快捷的實現(xiàn)方法。在不同的工控產(chǎn)品中,由于對所選用的串口元件或者串口通信的數(shù)據(jù)格式、波特率等有不同的需求,需要對串口驅(qū)動進行開發(fā)。華邦W90P710采用ARM的ARM7TDMI微處理器核心,采用?滋CLinux-2.4.20內(nèi)核,支持4組通用異步接收發(fā)送口(UART),下面基于華邦W90P710的串口驅(qū)動詳細分析串口驅(qū)動的實現(xiàn)方法,實現(xiàn)嵌入式設(shè)備通過串口對外通信。
1 華邦W90P710 UART介紹
    華邦W90P710支持4組UART,串口的控制主要通過以下寄存器實現(xiàn)[2]:
    (1)行寄存器(UART_LCR):設(shè)置數(shù)據(jù)位長度、奇偶校驗、停止位數(shù)。
    (2)波特率除數(shù)寄存器(UART_DLL、UART_DLM):波特率發(fā)生器的公式為:BaudOut=crystal clock/16×[Divisor +2],Divisor為當(dāng)前波特率。
    (3)Modem控制寄存器(UART_MCR):控制RTS、CTS等信號。
    (4)FIFO控制寄存器(UART_FCR):設(shè)置FIFO的長度,復(fù)位FIFO等控制。
    (5)接收超時寄存器(UART_TOR):收到首個字節(jié)后接收器啟動本超時,之后每收到一個字節(jié)后都會重置該值,在此超時時間內(nèi)不再收到數(shù)據(jù)時,接收器會產(chǎn)生一個接收中斷。
    (6)中斷控制器(UART_IER):設(shè)置接收、發(fā)送、行中斷等。
    在使用RXDn、TXDn前必須對GPIO進行配置,使能RXDn、TXDn,串口才可正常運行。GPIO配置對應(yīng)表如表1所示。

2 Linux系統(tǒng)驅(qū)動介紹
    設(shè)備驅(qū)動程序是操作系統(tǒng)內(nèi)核和機器硬件之間的接口。設(shè)備驅(qū)動程序為應(yīng)用程序屏蔽了硬件的細節(jié),這樣在應(yīng)用程序看來,硬件設(shè)備只是一個設(shè)備文件,應(yīng)用程序可以像操作普通文件一樣對硬件設(shè)備進行操作。同時,設(shè)備驅(qū)動程序是內(nèi)核的一部分[3]。圖1所示為設(shè)備驅(qū)動程序接口流程圖。

    Linux系統(tǒng)的設(shè)備分為字符設(shè)備、塊設(shè)備和網(wǎng)絡(luò)設(shè)備三種。字符設(shè)備是指存取時沒有緩存的設(shè)備,只能順序讀寫。典型的字符設(shè)備包括鼠標、鍵盤、串行口等;塊設(shè)備一般都有緩存來支持,并且塊設(shè)備必須能夠支持隨機存取。塊設(shè)備主要包括硬盤設(shè)備、CD-ROM等;網(wǎng)絡(luò)設(shè)備在Linux系統(tǒng)中用做專門的處理,Linux的網(wǎng)絡(luò)系統(tǒng)主要是基于BSD Unix的socket機制[4]。
3 串口驅(qū)動程序詳細介紹
    一般來說,Linux的設(shè)備驅(qū)動程序包括驅(qū)動程序的注冊和注銷、設(shè)備的打開和釋放、設(shè)備的讀寫操作、設(shè)備的控制操作、設(shè)備的中斷和輪詢處理等功能。下面就這些功能對串口驅(qū)動進行詳細說明。
    (1)串口設(shè)備的數(shù)據(jù)結(jié)構(gòu)包括串口參數(shù)接收發(fā)送緩沖區(qū)等。串口參數(shù)包括波特率、數(shù)據(jù)位、數(shù)據(jù)起始位、奇偶校驗、串口類型、發(fā)送緩沖區(qū)、接收緩沖區(qū)等,每個串口對應(yīng)一個如下的數(shù)據(jù)結(jié)構(gòu):
    typedef struct{
        int  bps;
        int  databits;
        int  stopbits;
        int  parity;
        int  siotype;        //串口參數(shù)
        int  openflag;
        int  recvTrigTimeout;
        SIO_D_SEND_BUFFER    *pSendBuf;//發(fā)送緩沖區(qū)
        SIO_D_RECV_BUFFER    *pRecvBuf;//接收緩沖區(qū)
        struct fasync_struct *fasync_queue;
        wait_queue_head_t    read_wait;
    }serial_dev;
    static serial_dev serial_device;
    (2)文件系統(tǒng)操作入口函數(shù)對應(yīng)文件操作函數(shù)read ()、write()、ioctl()、open()、close()。
    struct file_operations serial_fops = {
        owner:        THIS_MODULE,
        poll:            serial_poll,
        read:        serial_read,
        write:        serial_write,
        ioctl:        serial_ioctl,
        open:        serial_open,
        release:    serial_release,
    };
    (3)驅(qū)動程序注冊和注銷。驅(qū)動程序在應(yīng)用前,需要在模塊初始化時將設(shè)備注冊到系統(tǒng)設(shè)備表中;不再使用時,將設(shè)備從系統(tǒng)中卸除。注冊包括初始化定時器、初始化串口數(shù)據(jù)結(jié)構(gòu)serial_device和字符設(shè)備注冊。注銷時直接調(diào)用設(shè)備注銷函數(shù)[5]。
    int __init topbandserial1_init(void)
    {
        init_timer(&timer);//初始化定時器結(jié)構(gòu)
        memset(&serial_device, 0, sizeof(serial_device));
        result=register_chrdev(SERIAL1_MAJOR, "serial1",
&serial_fops);
        …
    }
    (4)串口設(shè)備打開包括分配串口的接收發(fā)送緩沖區(qū)及中斷注冊[5]。
    static int serial_open(struct inode *inode, struct file *filp)
    {
      dev->pRecvBuf = kmalloc(sizeof(SIO_D_RECV_BUFFER), GFP_KERNEL);
      request_irq(INT_UART1,serial_interrupt,SA_SHIRQ,
"TopbandSerial1",&serial_device);
      …
    }
    (5)串口設(shè)備釋放包括釋放內(nèi)存空間、注銷中斷和刪除定時器[5]。
    static int serial_release(struct inode *inode, struct file *flip)
    {
        serial_dev *dev = flip->private_data;//釋放內(nèi)存空間
        kfree(dev->fasync_queue);
        CSR_WRITE(COM_IER_1, 0x00); /* 中斷禁止 */
        free_irq(INT_UART1, dev); //注銷中斷
        del_timer(&timer);//刪除定時器
        MOD_DEC_USE_COUNT;
        dev->openflag = 0;
        …
    }
    (6)串口讀數(shù)據(jù)是指返回接收緩沖區(qū)中已收到的數(shù)據(jù)。讀取數(shù)據(jù)有兩種方式,阻塞方式和非阻塞方式。阻塞方式[6]中用戶程序執(zhí)行讀操作時如果沒有數(shù)據(jù)可讀,即讓read()操作等待直到數(shù)據(jù)可讀;非阻塞方式中當(dāng)用戶執(zhí)行讀操作時,不論串口是否接收到數(shù)據(jù),設(shè)備驅(qū)動xxx_read()函數(shù)會立刻返回,read()函數(shù)系統(tǒng)調(diào)用也隨即返回。
    static int serial_read(struct file *filp, char *buf, size_t
count, loff_t *f_pos)
    {
            if(filp->f_flags & O_NONBLOCK)/非阻塞方式讀取
            retsts = serial_nonblock_read(dev,buf,count);
        else    /*阻塞方式讀取*/
            retsts = serial_block_read(dev,buf,count);    
        …
    }
    (7)串口寫數(shù)據(jù)包括把數(shù)據(jù)存放在發(fā)送緩沖區(qū)、啟動硬件發(fā)送及發(fā)送中斷。當(dāng)發(fā)送第一個字節(jié)后,硬件會產(chǎn)生發(fā)送中斷,剩下的數(shù)據(jù)將在中斷處理程序中發(fā)送。
    static int serial_write(struct file *filp, const char *buf,
size_t count, loff_t *f_pos)
    {
    copy_from_user(&pSendBuf->frameData[pSendBuf->
bufWritex].data[0],buf, count);
        CSR_WRITE(CMBOARD_GPIO_DATAOUT1,status1);
    enable_tx_interrupt_1();
        …
    }
    (8)串口控制包括設(shè)置串口波特率、奇偶校、停止位等,還可以定義其他特殊的控制。應(yīng)用程序通過ioctl()調(diào)用把串口的參數(shù)傳遞給驅(qū)動程序,驅(qū)動程序再通過對硬件串口控制寄存器進行設(shè)置,來滿足應(yīng)用層用戶要求。
    static int serial_ioctl(struct inode *inode, struct file *flip,
unsigned int cmd, unsigned long arg)
    {
        switch(cmd){
                case SERIAL_IOC_BPS:
                    …
                    break;
                case SERIAL_IOC_SENDBUF:
                    …
                    break;
            }
    }
    (9)中斷處理包括對接收中斷、發(fā)送中斷、異常中斷的處理。讀取中斷寄存器的狀態(tài),根據(jù)不同的中斷類型分別處理。當(dāng)收到數(shù)據(jù)時,硬件會產(chǎn)生接收中斷,驅(qū)動程序把串口的數(shù)據(jù)讀取出來,放在接收緩沖區(qū)中,直到所有數(shù)據(jù)讀取完成;當(dāng)發(fā)送數(shù)據(jù)時,硬件會產(chǎn)生發(fā)送中斷,驅(qū)動程序把發(fā)送緩沖區(qū)的數(shù)據(jù)發(fā)送出去,直到所有數(shù)據(jù)發(fā)送完成;當(dāng)串口接收或發(fā)送發(fā)生異常時,會產(chǎn)生異常中斷,驅(qū)動程序根據(jù)情況把串口重新初始化,以便串口恢復(fù)正常。
    static void serial_interrupt(int irq, void * dev_id,
struct pt_regs *regs)
    {
        status = CSR_READ(COM_IIR_1);
        while(status & UART_IIR_STATUS_NO) == 0) 
        {
            switch(status)
            {
                case UART_IIR_STATUS_RDA:
                  case UART_IIR_STATUS_TOUT:
                      receive_chars(dev,status);
                      break;
                  case UART_IIR_THRE:    
                      transmit_chars(dev);
                      break;
              }
              status = CSR_READ(COM_IIR_1);
          }
  }
    (10)定時器處理。中斷接收程序只負責(zé)把數(shù)據(jù)讀取到緩沖區(qū),并沒有指示緩沖區(qū)的數(shù)據(jù)可被用戶使用,這時需要在超時程序中把可用標志置上,當(dāng)用戶調(diào)用read()函數(shù)時就可把接收緩沖區(qū)的數(shù)據(jù)返回。
    static void serial_timer(unsigned long dummy)
    {
        …
        serial_device.pRecvBuf->frameData
[serial_device.pRecvBuf->bufWritex].finished = 1;
        mod_timer(&timer,jiffies+2);/* 20 ms 進一次 */
    }

 


    通過以上幾個函數(shù)的處理,實現(xiàn)了串口的驅(qū)動。
4 驅(qū)動程序編譯進Linux內(nèi)核
    以下以UART1為例,介紹驅(qū)動程序編譯進Linux內(nèi)核的過程,步驟如下:
    (1)添加主次設(shè)備號。
    主次設(shè)備號用來標識一個具體設(shè)備。主設(shè)備號用于標識設(shè)備類型,每種類型的設(shè)備需要一個對應(yīng)的設(shè)備驅(qū)動程序。一個主設(shè)備可以有多個具體的設(shè)備與之對應(yīng)。次設(shè)備號用于區(qū)分使用同種驅(qū)動程序的同類設(shè)備中多個不同的設(shè)備實例[7]。
    在W90P710-?滋Clinux/?滋Clinux-dist\linux-2.4.x/include/
linux目錄下的major.h中定義主設(shè)備號,添加如下代碼:
    #define SERIAL1_MAJOR  230
    在W90P710-?滋Clinux/?滋Clinux-dist/vendors/Winbond/W90P710目錄下的makefile中建立設(shè)備主次設(shè)備號(主設(shè)備號為230,次設(shè)備號為1),添加如下代碼:
    serial1,c,230,1 \
    (2)在W90P710-?滋Clinux/?滋Clinux-dist/linux-2.4.x/drivers/char目錄下的makefile中添加如下代碼:
    obj-$(CONFIG_TOPBAND_SERIAL1)+=w90p710_serial_1.o
    (3)在W90P710-?滋Clinux/?滋Clinux-dist/linux-2.4.x/drivers/char目錄下的config.in字符設(shè)備段中添加如下代碼:
    #if [ "$CONFIG_TOPBAND_SERIAL1" = "y" ]; then
          bool 'Topband serial1 support' CONFIG_TOPBAND_
SERIAL1
    #fi
    (4)在W90P710-?滋Clinux/?滋Clinux-dist目錄下運行make menuconfig,在menuconfig的字符設(shè)備選項中可以看見剛剛添加的“CONFIG_TOPBAND_SERIAL1”選項,選上該項。使用make dep、 make clean、make三個命令編譯Linux內(nèi)核,生成內(nèi)核文件linux.bin[8]。
    (5)在W90P710-?滋Clinux/romdisk/dev目錄下創(chuàng)建設(shè)備文件,    輸入命令:
    mknod serial1 c 230 1
    生成設(shè)備文件“serial1”,應(yīng)用程序通過使用“/dev/ serial1”這個設(shè)備文件名就可對串口進行操作。
    最后編寫簡單的串口測試程序,編譯生成鏡像文件;再把鏡像文件romfs.img和內(nèi)核文件linux.bin下載到開發(fā)板,把開發(fā)板的串口和PC機相連,PC機端使用串口調(diào)試工具發(fā)送測試數(shù)據(jù),開發(fā)板能正確收發(fā)數(shù)據(jù)。
    本文按驅(qū)動程序的功能詳細介紹了W90P710微處理器實現(xiàn)串口驅(qū)動的方法,串口驅(qū)動程序是很典型的字符設(shè)備驅(qū)動程序,其他字符設(shè)備驅(qū)動和串口的實現(xiàn)方法是相同的,這對開發(fā)其他字符設(shè)備驅(qū)動程序有一定的借鑒作用。
參考文獻
[1] 李巖,榮盤祥.基于S3C44BOX嵌入式μClinux系統(tǒng)原理及應(yīng)用[M].北京:清華大學(xué)出版社,2005.
[2] W90P710CD/W90P710CDG16/32-bit ARM microcontroller Product Data Sheet[Z].Winbond Electronics Corporation,2006:330-350.
[3] 劉天時,強新建,王瑞,等.ARM7嵌入式開發(fā)基礎(chǔ)實驗[M].北京:北京航空航天大學(xué)出版社,2007.
[4] 鄭靈祥.嵌入式接口技術(shù)與Linux驅(qū)動開發(fā)[M].北京:北京航空航天大學(xué)出版社,2010.
[5] W90P710 system library user’s manual[Z].Winbond Electronics Corporation,2006:9-11.
[6] 崔更申,孫安青.ARM嵌入式系統(tǒng)開發(fā)與實踐[M].北京:中國電力出版社,2008.
[7] 宋寶華.Linux設(shè)備驅(qū)動開發(fā)詳解[M].北京:人民郵電出版社,2008.
[8] W90P710 ?滋Clinux user’s manual[Z].Winbond Electronics Corporation,2005:10-13.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
主站蜘蛛池模板: 久久国产欧美日韩精品 | 中文日韩v日本国产 | 国产精品入口麻豆 | 国产精品人人爽 | 国产香港明星裸体xxxx视频 | 成人a在线观看 | 狠狠色丁香久久综合网 | 全肉高h后宫gl | 国产精品久久久久久久久免费丝袜 | 中文字幕在线免费97 | 精品一区二区三区久久久 | 国产一区二区三区在线视频 | www久久久久久久久久 | 久久国产免费直播 | 国产精品久久久久久久泡妞 | 麻豆黄色影院 | 又黄又爽又色的免费软件 | 久久偷窥视频 | 欧美三日本三级少妇三2023 | 日本公与丰满熄理论在线播放 | 中文毛片无遮挡高潮免费 | 人妻中出无码一区二区三区 | 91区| 成人涩涩软件 | 国产香蕉尹人视频在线 | 亚洲一区二区中文 | 色婷婷影院 | 免费看日韩毛片 | 精品www日韩熟女人妻 | 亚洲成a人片777777久久 | 给我免费的视频在线观看 | 国产成年人免费视频 | 中文字幕人妻丝袜乱一区三区 | 熟妇人妻无乱码中文字幕真矢织江 | 动漫av网站免费观看 | 天天爱天天做天天大综合 | 国产剧情演绎av | 91丨九色丨蝌蚪最新地址 | 国产精品区在线 | 日韩视频免费在线观看 | 欧美裸体精品 | 亚洲精品无人区 | 国精产品一区一区三区免费完 | 国产一区二区三区久久 | 国产免费叼嘿网站免费 | 超碰人人澡 | 国产精品videossex国产高清 | 日韩毛片在线视频 | 欧美 日韩 国产 成人 在线 91 | 美女av网站 | 日韩超碰在线 | 久久久久久久性潮 | 欧美中文字幕一区二区三区 | 好了av四色综合无码 | 免费一级大片 | 女人真人毛片全免费看 | 黄色精品在线观看 | 正在播放老肥熟妇露脸 | 精品国产91久久久久久 | 99免费观看| 亚洲裸体视频 | 99国产一区二区 | 青青草手机视频在线观看 | 亚洲精品资源 | 失禁大喷潮在线播放 | 国产男女猛烈无遮挡免费网站 | 黄色片在线免费观看视频 | 日本免费区 | 欧美老熟妇牲交 | 国产山村乱淫老妇av色播 | 亚洲v不卡ww在线 | 日韩一级在线 | 成人亚洲精品久久久久软件 | 成人精品gif动图一区 | 国产毛片毛片毛片 | 产乳奶水文h男男喂奶 | 久久免费福利 | 午夜精品久久久久久久久久久久 | 精品国产自在精品国产浪潮 | 亚洲成av人片一区二区密柚 | 国产精品爽爽久久久久久蜜臀 | 一区不卡在线 | 少妇粉嫩小泬喷水视频www | 日韩三级毛片 | 色婷婷精品久久二区二区蜜臂av | 欧美综合久久 | 99激情| 91视频中文| 亚洲一区二区高潮无套美女 | 久久机热精品 | 亚洲午夜在线播放 | 色乱码一区二区三在线看 | 欧美精品www | 国产精品永久在线观看 | 女同性久久产国女同久久98 | 国产精品蜜 | 亚洲视频五区 | 免看一级片 | 国产偷窥熟女精品视频 | 国产日韩欧美自拍 | 无码人妻少妇伦在线电影 | 91精品久久久久久久久中文字幕 | 国产夫妇肉麻对白 | 暖暖成人免费视频 | 欧美中文视频 | 91av在线播放视频 | 免费观看久久 | 日本系列第一页 | 自拍偷拍色 | 色偷偷av男人的天堂 | 欧美日韩一区二区三区精品 | 久久青青草原国产毛片 | sm捆绑一区二区三区 | 免费激情 | 日本久久不卡 | 国产精品男人天堂 | 一区二区三区四区五区在线视频 | 日韩av手机在线观看 | 北条麻妃青青久久 | 精品久久成人 | 丰满熟女人妻中文字幕免费 | 欧美日韩一卡二卡三卡 | 久久99精品久久久大学生 | 永久免费不卡在线观看黄网站 | 蜜桃久久精品成人无码av | 色婷婷综合久久久久中文一区二区 | 一本色道久久亚洲精品加勒比 | 欧美成人福利视频 | 国产综合自拍 | 中文字幕mv | 日本少妇翘臀啪啪无遮挡动漫 | 校园春色自拍偷拍 | 日韩成人欧美 | 日日躁夜夜躁人人揉av五月天 | 久久综合丁香 | 日韩精品在线观看免费 | 国产无遮挡猛进猛出免费软件 | 国产精品香蕉在线的人 | 欧美粗大猛烈老熟妇 | 欧洲亚洲女同hd | 色婷婷久 | 中日韩精品视频在线观看 | 日韩三级中文 | 欧美日韩一区二区三区在线 | 高清国产一区二区 | 深爱激情综合网 | 色综合久久久久久 | 国产欧美日韩综合精品二区 | 国产精品久久久久久久久久影院 | 禁断一区二区三区在线 | 国产精品777 | 国产毛片又黄又爽 | 日韩成人动漫在线观看 | 国产一级一片免费播放放a 国产一级一片射内视频 | 白浆影院 | 一级做a爰片欧美激情床 | 欧美久久久精品 | 青草av久久免费一区 | 中文字幕久久av | 95视频在线 | 人妻少妇被粗大爽.9797pw | 亚洲精品美女视频 | 欧美黄色影院 | 理论片毛片 | 日韩精品一区二区三区视频播放 | 久久影视传媒 | 孕妇怀孕高潮潮喷视频孕妇 | www男人天堂 | 久久精品亚洲a | 国产精品亚洲精品日韩已满 | 99无码熟妇丰满人妻啪啪 | 日韩av中文字幕在线播放 | 亚色网站 | 中文字幕久久久久人妻中出 | 免费av在线网站 | 亚洲国产精品无码久久久秋霞1 | 国产精品igao为爱做激情 | 麻豆av在线| 亚洲综合在线网 | 黑人好猛厉害爽受不了好大撑 | 日本激情小视频 | 免费在线观看黄色 | 久久久久久中文字幕 | 中文字幕在线国产 | 亚洲精品国产精品国自产网站 | 国产一区二区黄色 | 在线久| 秋霞在线中文字幕 | 亚洲一卡2卡三卡四卡精品 曰批免费视频播放免费 | 精品在线播放视频 | 欧美成人黑人xx视频免费观看 | 91禁蘑菇在线看 | 无码人妻一区二区三区精品视频 | 亚洲国产精品久久精品怡红院 | 亚洲天堂bt| 愉拍自拍第43页免费 | 丁香五月亚洲综合在线 | 国产成人免费看 | 黄色在线视频网址 | 亚洲精品456在线播放dvd | 国产伦精品一区三区视频 | av免费网站 | 欧美三级在线播放 | 中文字幕女优 | 古装淫片在线观看 | 成人在线免费视频观看 | 亚洲国产精品成人久久蜜臀 | 国产一级淫片a视频免费观看 | 成码无人av片在线观看网站 | 激情床戏视频女人叫国语 | 日本xxxx18 | 中文字幕第二区 | 少妇人妻偷人精品无码视频新浪 | 久久不卡影院 | 超碰免费公开 | 99成人在线观看 | 99黄色网| 特黄一级淫片 | 国产女爽爽精品视频天美传媒 | √天堂8在线网 | 热99在线观看 | 熟妇好大好深好满好爽 | 国产精品久久久久久超碰 | 99精品国产99久久久久久白柏 | 欧美一级片在线观看 | 免费少妇荡乳情欲视频 | 青青青在线视频 | √新版天堂资源在线资源 | fee性满足he牲bbw | 久久这里有精品视频 | 干干操操| 丰满少妇弄高潮了www | 欧美人禽杂交狂配 | 3d成人动漫在线观看 | 午夜成人1000部免费视频 | 日本爽快片100色毛片 | 香蕉视频ww | 久久青草免费视频 | 国产午夜久久 | 女人与拘做受全过程免费视频 | 欧美成人乱码一区二区三区 | 性色高清xxxxx厕所偷窥 | www国产亚洲精品久久麻豆 | 一本色道久久精品 | 精品二三区 | 性欧美最猛 | 午夜无码人妻av大片色欲 | 先锋av在线资源 | 青青草视频在线观看免费 | 在线播放日韩av | 麻豆一区二区在我观看 | 天堂欧美城网站网址 | 最新天堂资源在线 | 永久免费精品视频网站 | 国产一级视频 | 无码国产精品一区二区免费3p | 欧美成人免费一区二区三区视频 | 免费成人激情视频 | 8×8x拔擦拔擦在线视频网站 | 亚洲aⅴ久久精品 | 欧美在线免费观看视频 | 日韩美女一级片 | 国产精品女主播 | 国产福利在线观看视频 | 天天操夜夜干 | 3344国产精品免费看 | 亚洲第一页中文字幕 | 久久精精品久久久久噜噜 | 日本韩国欧美一区 | 亚洲一本之道 | 欧美又粗又大xxxxbbbb疯狂 | 中文在线中文资源 | 波多野结衣精品一区二区三区 | 午夜久久| 真实国产乱子伦视频 | 激情综合啪啪 | 国产成人午夜精品 | 久久久www成人免费精品 | 欧美精品一区在线观看 | 国产欧美日韩久久 | 国产精品久久久久久久久久精爆 | 在线观看特色大片免费网站 | 日韩人妻无码一区二区三区 | 亚洲精品无码高潮喷水在线 | 男女猛烈xx00免费视频试看 | 亚洲午夜无码久久 | 在线观看a级片 | 无遮无挡三级动态图 | 国产精品视频一区二区噜噜 | 昭和冢本农村中文字幕 | 美女野外找人搭讪啪啪 | 色综合色综合色综合色欲 | 国产在线看黄 | 免费av影片 | 国产两女互慰高潮视频在线观看 | 中文字幕亚洲日本 | www男人的天堂 | 18禁美女裸体网站无遮挡 | 韩国甜性涩爱 | 国产一线二线在线观看 | 日韩毛片免费无码无毒视频观看 | 亚洲成av人片在www色猫咪 | 黄色中文字幕在线观看 | 日本毛片视频 | 久久夜色精品国产欧美乱极品 | 天天爽夜夜爽视频 | 亚洲黄色a级片 | 午夜性视频国产牛牛视频 | 一区二区不卡免费视频 | 欧美三根一起进三p | 51久久| 亚洲黄色自拍 | 亚洲码无人客一区二区三区 | 中字av在线| 中文字幕人妻无码一夲道 | 亚洲高清在线观看视频 | 天天操夜夜操 | 久久久青 | 欧美成人免费观看全部 | 国产色视频一区二区三区qq号 | 国产精品日韩在线 | 亚洲天堂国产 | 天干天干天啪啪夜爽爽av小说 | 亚洲精品国产精品乱码不卡√香蕉 | 欧美精品一区二区三区久久久竹菊 | 欧美韩一区二区三区 | 国产盗摄一区二区三区 | 黄色一级在线播放 | 久草在线视频精品 | 九九热在线播放 | 一级黄色免费大片 | 国产精品自拍视频 | 久久精品国产导航 | 国产在线精品一区二区中文 | 69日本xxxxxxxxx30| 日韩视频一区二区三区在线观看 | 国产精品一区一区 | 亚洲色图网友自拍 | 久久综合五月丁香六月丁香 | 不卡日韩 | 亚洲春色av无码专区在线播放 | 国产中文字幕一区二区 | 国产成人精品亚洲日本在线观看 | 亚洲日韩av无码一区二区三区人 | 久久riav| 成人性生交大片免费看r视频 | 国模裸体无码xxxx视频 | 99精产国品一二三产区区别麻豆 | 中文字幕剧情av | 日韩 在线 中文 制服一区 | 色视频免费在线观看 | 亚洲精品中文字幕久久久久下载 | www婷婷色| 少妇一级淫片免费 | 女女les互磨高潮国产精品 | 公么大龟弄得我好舒服秀婷视频 | 国产娇喘精品一区二区三区图片 | 麻豆精品一区二区三区 | 伊人影院在线视频 | 精品人妻一区二区三区四区在线 | 国产欧美综合一区二区三区 | 香蕉视频在线网站 | 久久精品片 | 日韩在线精品成人av在线 | 精品视频国产香蕉尹人视频 | 亚洲精品高清国产一久久 | 亚洲精品一区二区冲田杏梨 | av网址有哪些| 涩涩综合| 精品午夜福利无人区乱码一区 | 性感美女一区 | 国产美女又黄又爽又色视频免费 | 天天做天天干 | 大蜜桃臀偷拍系列在线观看 | 97国产在线 | 91素人约啪 | 国产又粗又硬又猛的免费视频 | 成人香蕉视频 | 在线a亚洲视频播放在线观看 | 一本大道东京热无码视频 | 免费高清成人 | 日韩人妻无码免费视频一区二区三区 | 丁香综合网 | 人妻一本久道久久综合久久鬼色 | 久热av在线 | 国产又大又粗又猛又爽的视频 | 4hu最新网址 | 中文字幕在线资源 | 1024精品一区二区三区日韩 | 免费性色视频 | 99啪啪| 久久久久久久久久久久 | 天堂成人网 | 艳妇乳肉豪妇荡乳 | 校园春色综合 | 国产在线观看免费麻豆 | 亚洲日本乱码一区二区三区 | 337p日本欧洲亚洲大胆精蜜臀 | 91黄色免费视频 | 亚洲一区福利视频 | 亚洲精品蜜桃 | 51久久精品夜色国产麻豆 | 性视频毛茸茸 | 国产成人av综合色 | 91看片在线 | 天堂网视频在线 | 久久人人爽人人爽人人片av高清 | 欧色av| 香蕉视频链接 | 大肉大捧一进一出好爽视频 | 人妻一本久道久久综合久久鬼色 | 国产精品视频999 | 日韩性色视频 | 九九在线观看视频 | 性折磨bdsm欧美激情另类 | 国产99久久久国产精品免费看 | 婷婷国产一区二区三区 | 四虎在线永久免费观看 | 亚洲ooo欧洲1 | 国产大屁股喷水视频在线观看 | 欧美交换配乱吟粗大在线观看 | 999一个人免费看ww | 四虎色网 | 欧美日韩免费在线观看 | 97精品在线视频 | 性一爱一性一乱 | 成人做爰69片免费看网站色戒 | 韩日av在线播放 | 亚洲尻逼| а天堂中文地址在线 | 97久久国产 | 亚洲国产黄 | 亚洲精品白浆高清久久久久久 | 草草影院在线观看 | 精东av在线 | 亚洲人精品午夜射精日韩 | 男人狂躁女人爽的尖叫的免费视频 | 蜜臀久久99精品久久久无需会员 | 亚洲精选网站 | 99热国产在线 | 麻豆av一区二区三区久久 | 国产女人18毛片水真多1kt∧ | 精品一区二区日韩 | 国产日韩在线免费观看 | 日本特黄一级片 | 激情福利网 | 久久国产精品视频一区 | 一区二区三区四区中文字幕 | 大陆极品少妇内射aaaaaa | 女人解开乳罩给男人吃奶 | 91国偷自产中文字幕久久 | 一区二区三区国产在线 | 97久久精品无码一区二区天美 | 97久久精品国产一区二区三区 | 波多野结衣中文字幕久久 | 91精品一线二线三线 | 愉拍自拍第169页 | 国产精品久久欧美久久一区 | 久久久久久久久久久久久久久久久久久久 | 日韩久久视频 | 成人毛片18女人毛片 | 人与善性猛交xxxx视频 | 国产成人tv| а天堂中文地址在线 | av最新网| 视频福利在线 | 国产麻豆天美果冻无码视频 | 亚洲午夜无码毛片av久久京东热 | 欧美亚洲一级片 | 亚洲一区二区三区国产精华液 | 日本欧美一本 | 免费福利小视频 | 亚洲精品国产一区二区 | 久久久无码精品亚洲日韩按摩 | 久久久久久国产精品久久 | 中文字幕免费在线看线人动作大片 | 一区二区国产精品精华液 | 成在人线av无码免费 | 国产精品人人爽人人爽 | 国产大片一区 | 色婷婷av一区二区三区大白胸 | 台湾成人毛片 | 在线播放黄色网址 | 精品无码久久久久久国产 | 午夜爱爱免费视频体验区 | 久久久久久亚洲国产精品 | 欧洲极品少妇 | 久久久久麻豆v国产精华液好用吗 | 偷拍亚洲视频 | 午夜在线一区 | 人人妻人人添人人爽欧美一区 | 天天综合天天综合 | 欧美日韩视频 | 日韩一区欧美二区 | 亚洲精品久久久久中文字幕m男 | 午夜影院在线视频 | 一本视频在线 | 麻豆精品视频在线观看 | 成人午夜在线观看 | 国产精品天天狠天天看 | 亚洲精品人成无码中文毛片 | 丰满少妇69激情啪啪无 | 亚洲精品网站在线观看你懂的 | 性欧美一级 | 日本强伦姧人妻一区二区 | 黄色欧美网站 | 日韩不卡在线观看 | 三日本三级少妇三级99 | 日日摸天天爽天天爽视频 | 色欲综合久久中文字幕网 | 亚洲一区二区三区小说 | 中文字幕一区二区三区乱码不卡 | www国产亚洲精品久久网站 | 亚洲第一成年人网站 | 在线观看网站黄 | 精品视频在线观看一区二区 | 天堂а√中文在线官网 | 大尺度激情吻胸视频 | julia中文字幕久久亚洲蜜臀 | 黄色中文视频 | 中文字幕免费播放 | av成人天堂| 美女黄色真播 | 酒店大战丝袜高跟鞋人妻 | 亚洲cb精品一区二区三区 | 狠狠狠色 | 岛国av在线播放 | 夜夜精品无码一区二区三区 | 婷婷另类小说 | 国产精品黄色av | 欧产日产国产精品视频 | 成人自拍av | 亚洲精品网站在线 | 一二三国产精品 | 亚洲色丰满少妇高潮18p | 日本大尺度吃奶做爰过程 | 精品国产一区二区三区四区 | 中文无码一区二区三区在线观看 | av在线伊人 | 黄色日本网站 | 久久精品成人免费国产片桃视频 | 2021中文字幕在线观看 | 国产吞精囗交免费视频网站 | 八区精品色欲人妻综合网 | 国产美女在线精品免费观看 | 国产黄色网址在线观看 | 欧美日韩aa | 在线一级片 | 成人污污视频在线观看 | 天天拍夜夜添久久精品大 | 毛片在哪看 | 婷婷五月小说 | 97久久人人超碰国产精品 | 国产黄色片在线观看 | 亚洲综合av色婷婷 | 名人明星三级videos | 亚洲码国产精品高潮在线 | 日韩精品一区二区三区亚洲综合 | 成人丝袜激情一区二区 | 亚洲一区二区自拍偷拍 | 在线亚洲成人 | 日韩欧美高清dvd碟片 | 午夜美女国产毛片福利视频 | 精品国产乱码久久久久夜 | 最新中文字幕久久 | 天堂视频免费看 | 欧美专区中文字幕 | 日韩精品免费一区二区在线观看 | 久久久精品午夜免费不卡 | 女人抽搐喷水高潮国产精品 | 99精品视频在线 | 狠狠色噜噜狠狠狠8888米奇 | 日韩一区二区三区免费视频 | 欧美性精品 | 黄a大片av永久免费 亚洲欧美高清一区二区三区 | www887色视频免费 | 男人天堂网在线 | www浪潮avcom | 久久精品国产一区二区三区不卡 | 欧美日韩在线视频免费 | 久久99热精品 | 天天草夜夜骑 | 国产91打白嫩光屁屁网站 | 日韩视频一区二区 | 亚洲我射av | 黄色爱爱视频 | 亚洲日本va午夜在线电影 | www美色吧com| 丝袜捆绑调教午夜一区二区 | www色91| 日本丰满大乳乳奶 | 综合无码一区二区三区 | 国产精品呻吟久久av凹凸 | 综合久久久久久久 | 国产床戏无遮挡免费观看网站 | 人人看人人做 | 久久久久久久性 | 蜜臀av性久久久蜜臀av流畅 | 国产精品亚洲精品一区二区三区 | 久久精品久久综合 | 中文av在线天堂 | 欧美另类z0z变态 | 欧美三级一级 | 超碰人人干人人 | 91精品成人久久 | 欧美亚洲在线观看 | 久久h | 熟女毛毛多熟妇人妻aⅴ在线毛片 | 欧美精品亚洲精品日韩精品 | 久久亚洲中文字幕不卡一二区 | 台湾色综合 | 无码人妻精一区二区三区 | 52avavjizz亚洲精品 | 一边摸一边抽搐一进一出视频 | 麻豆视频在线免费观看 |