日韩精品另类视频-国产精品久久久久久69-成人色av一区二区-国产区极品身材在线-国产又粗又猛又爽又黄的99视频-国产人妻丝袜在线观看-色综合久久精品中文字幕-国产性情片一区二区三区-日韩avav中文字幕,色婷婷av99xx,久久久精品人妻一区三区蜜桃,国产麻豆精品视频免费福利

網(wǎng)站首頁(yè)

HOME

關(guān)于我們

ABOUT US

產(chǎn)品展示

PRODUCT

新聞中心

NEWS

成功案例

CASE

下載中心

DOWNLOAD

人才招聘

RECRUIT

在線留言

MESSAGE

聯(lián)系我們

CONTACT US

    技術(shù)文章
    聯(lián)系我們
    西安航普電子有限責(zé)任公司
    電話:029-81870107
    郵箱:hangpudianzi@163.com
    網(wǎng)址:www.fs217.com
    公司地址:西安市電子四路西京三號(hào)2號(hào)樓17層
     
     
    技術(shù)文章
    VxWorks 下PMC-FPGA板卡驅(qū)動(dòng)的開(kāi)發(fā)與研究
    更新時(shí)間:2017-09-07 12:58:12    點(diǎn)擊:1330次
    摘 要: 討論了嵌入式實(shí)時(shí)操作系統(tǒng)VxWorks的I/O系統(tǒng)及驅(qū)動(dòng)程序?qū)崿F(xiàn)的原理,并根據(jù)PMC-FPGA轉(zhuǎn)接卡的開(kāi)發(fā),詳細(xì)分析了VxWorks下PCI9030設(shè)備驅(qū)動(dòng)程序的實(shí)現(xiàn)過(guò)程及相 關(guān)代碼。同時(shí)就該驅(qū)動(dòng)程序?qū)ο到y(tǒng)性能及實(shí)時(shí)性的提高作了必要的分析和討論。
      關(guān)鍵詞: VxWorks I/O系統(tǒng) PMC-FPGA PCI9030


      隨著通信技術(shù)、計(jì)算機(jī)技術(shù)的飛速發(fā)展,嵌入式實(shí)時(shí)操作系統(tǒng)越來(lái)越廣泛地應(yīng)用到無(wú)線通信、交通、工業(yè)控制、軍事、航空航天、衛(wèi)星通信等各個(gè)領(lǐng)域。由于這些領(lǐng)域?qū)?shí)時(shí)性、可靠性要求很高,從而使得實(shí)時(shí)操作系統(tǒng)迅速發(fā)展起來(lái)。其中VxWorks是目前公認(rèn)的最出色的一種實(shí)時(shí)操作系統(tǒng)。VxWorks具有可裁減的微內(nèi)核;高效的任務(wù)管理;優(yōu)先級(jí)搶占和時(shí)間片輪轉(zhuǎn)調(diào)度;準(zhǔn)確的上下文切換;快速靈活的任務(wù)間通信等優(yōu)點(diǎn)。它已成為實(shí)際的嵌入式實(shí)時(shí)操作系統(tǒng)的工業(yè)標(biāo)準(zhǔn)和軍用標(biāo)準(zhǔn)[1]。嵌入式系統(tǒng)特別強(qiáng)調(diào)“量身定做”的原則,基于某一種特殊用途,可以針對(duì)這項(xiàng)用途開(kāi)發(fā)出截然不同的一項(xiàng)系統(tǒng),這就是所謂的客制化[2]。通常需要根據(jù)系統(tǒng)的功能、成本、尺寸及用戶需求等方面來(lái)定制合適的硬件系統(tǒng),這就要求用戶開(kāi)發(fā)自己的硬件驅(qū)動(dòng)程序。驅(qū)動(dòng)程序的開(kāi)發(fā)是系統(tǒng)開(kāi)發(fā)的重要組成部分,其性能、實(shí)時(shí)性、可靠性、指令的簡(jiǎn)練性關(guān)系著應(yīng)用系統(tǒng)的性能和可靠性,所以驅(qū)動(dòng)程序的開(kāi)發(fā)顯得至關(guān)重要。
      本文針對(duì)以PCI9030為接口控制芯片的PMC-FPGA(PCI Mezzanine Card)轉(zhuǎn)接卡的開(kāi)發(fā),論述了VxWorks下設(shè)備驅(qū)動(dòng)程序結(jié)構(gòu)及PMC-FPGA板卡驅(qū)動(dòng)程序的實(shí)現(xiàn)。
    1 VxWorks下I/O系統(tǒng)及驅(qū)動(dòng)程序
    1.1 I/O系統(tǒng)簡(jiǎn)介

      VxWorks下I/O系統(tǒng)為各種設(shè)備提供一個(gè)簡(jiǎn)單、統(tǒng)一、獨(dú)立的設(shè)備接口,VxWorks下I/O系統(tǒng)的獨(dú)特設(shè)計(jì)使其比其他I/O系統(tǒng)更快、更靈活。這是實(shí)時(shí)系統(tǒng)的一個(gè)重要特征。[3]I/O系統(tǒng)的功能是將用戶的I/O請(qǐng)求路由到合適的驅(qū)動(dòng)程序中的對(duì)應(yīng)函數(shù)。它通過(guò)一個(gè)文件描述符表來(lái)實(shí)現(xiàn)這一功能。VxWorks設(shè)備驅(qū)動(dòng)程序基本上通過(guò)I/O系統(tǒng)進(jìn)行訪問(wèn),設(shè)備驅(qū)動(dòng)程序被作為內(nèi)核過(guò)程來(lái)實(shí)現(xiàn),進(jìn)一步提高了系統(tǒng)的實(shí)時(shí)性。I/O系統(tǒng)把設(shè)備作為特殊文件進(jìn)行處理,提供了統(tǒng)一的管理、統(tǒng)一的界面和統(tǒng)一的使用方法,并把設(shè)備、文件、網(wǎng)絡(luò)通信組織成為一致的層次抽象。圖1描述了I/O系統(tǒng)與驅(qū)動(dòng)程序間的層次關(guān)系。


      VxWorks下I/O系統(tǒng)中三個(gè)主要的元素是:驅(qū)動(dòng)程序、設(shè)備和文件[3]。文件是用戶訪問(wèn)設(shè)備的統(tǒng)一接口;驅(qū)動(dòng)程序是實(shí)現(xiàn)I/O系統(tǒng)所需的七個(gè)具體基本函數(shù);設(shè)備是實(shí)際物理設(shè)備的抽象定義。
    1.2 驅(qū)動(dòng)程序的執(zhí)行邏輯
      VxWorks下I/O系統(tǒng)提供七個(gè)基本的I/O函數(shù):creat( ), delete( ), open( ), close( ), read( ), write( )及ioctl(),并將用戶的I/O請(qǐng)求路由到設(shè)備對(duì)應(yīng)的子程序。這主要是通過(guò)找到驅(qū)動(dòng)列表中對(duì)應(yīng)的驅(qū)動(dòng)號(hào)來(lái)實(shí)現(xiàn)。驅(qū)動(dòng)列表如表1所示。


      在驅(qū)動(dòng)程序中通過(guò)調(diào)用iosDrvInstall()函數(shù)將驅(qū)動(dòng)程序中的子程序(myOpen( ), myRead( )等)注冊(cè)到系統(tǒng)的設(shè)備驅(qū)動(dòng)列表中并返回一個(gè)驅(qū)動(dòng)號(hào),如表1中所示的驅(qū)動(dòng)號(hào)3。
    然后編寫(xiě)創(chuàng)建設(shè)備子程序,通常命名為xxCreate(),這要定義一個(gè)雙向鏈表的DL_NODE結(jié)構(gòu)和一個(gè)設(shè)備描述符的結(jié)構(gòu),結(jié)構(gòu)中第一個(gè)變量是DEV_HDR類型,稱為設(shè)備頭。調(diào)用iosDevAdd()函數(shù),將設(shè)備添加到設(shè)備列表中(見(jiàn)圖2)。其中有管道設(shè)備、串口設(shè)備及PCI9030設(shè)備,pmcfpga是設(shè)備名稱。


      在iosLib.h()頭文件中,對(duì)設(shè)備頭DEV_HDR定義如下:
      typedef struct 
      { DL_NODE node;           /* 設(shè)備表結(jié)點(diǎn) */
       short drvNum;          /* 設(shè)備的驅(qū)動(dòng)號(hào) */
       char * name;          /* 設(shè)備名 */
      } DEV_HDR;
      此外還要定義一個(gè)稱為設(shè)備描述符表的數(shù)據(jù)結(jié)構(gòu)來(lái)將設(shè)備和驅(qū)動(dòng)聯(lián)系起來(lái)(見(jiàn)表2)。這個(gè)設(shè)備描述符表中除了包含設(shè)備頭DEV_HDR、設(shè)備信息(包括設(shè)備號(hào)、廠商號(hào)、總線號(hào)、功能號(hào)、中斷號(hào)等)外,還可包含其他一些與設(shè)備無(wú)關(guān)的變量,如文件偏移量、布爾代碼設(shè)置的標(biāo)志等。定義如下:
      typedef struct PCI9030Device
      {DEV_HDR;
       PCI9030_INFO;
      }PCI9030_DEVICE;


      從表2中可以看出設(shè)備名是pmcfpga, 驅(qū)動(dòng)號(hào)為3,文件描述符號(hào)是2。通過(guò)調(diào)用iosDrvInstall()將驅(qū)動(dòng)程序添加到驅(qū)動(dòng)程序表并返回一個(gè)驅(qū)動(dòng)號(hào),再調(diào)用iosDevAdd()將設(shè)備描述符添加到設(shè)備列表并用設(shè)備名字(drvName)和驅(qū)動(dòng)程序號(hào)(drvNum)對(duì)DEV_HDR初始化。
      驅(qū)動(dòng)程序裝載完畢后,用戶執(zhí)行open(“/ pmfpga”, 參數(shù)2,參數(shù)3),I/O系統(tǒng)根據(jù)文件名找到設(shè)備及驅(qū)動(dòng)號(hào),并通過(guò)驅(qū)動(dòng)表找到對(duì)應(yīng)的驅(qū)動(dòng)子程序入口函數(shù)myOpen(),同時(shí)返回文件描述符號(hào)fd。以后就可根據(jù)fd執(zhí)行其他函數(shù)的操作,如:close (fd)、read (fd, 參數(shù)2,參數(shù)3)等。圖3給出了設(shè)備、驅(qū)動(dòng)程序連接的邏輯示意圖。
    2 PCI9030設(shè)備的訪問(wèn)
    2.1 PCI9030簡(jiǎn)介

      本設(shè)計(jì)的PMC轉(zhuǎn)接卡選用PLX公司的PCI9030作PCI總線的接口控制芯片,執(zhí)行PMC總線標(biāo)準(zhǔn),主要應(yīng)用于目前較為流行的一些只有PMC接口的單板機(jī)上,例如:VMIC公司生產(chǎn)的VMIVME系列;MEN公司生產(chǎn)的PowerPC單板機(jī)等。在PMC轉(zhuǎn)接卡上可以掛上FPGA、 DSP等數(shù)字處理能力較強(qiáng)的芯片以實(shí)現(xiàn)高速控制器,提高數(shù)字處理速度和運(yùn)算速度,從而進(jìn)一步滿足系統(tǒng)實(shí)時(shí)性的要求。PMC轉(zhuǎn)接卡內(nèi)部邏輯結(jié)構(gòu)如圖4所示。

     


      這里FPGA作為PCI9030接口芯片的外設(shè)掛到PCI局部總線上,主板上的CPU要從PMC接口通過(guò)PCI9030才能訪問(wèn)到外設(shè),因此需要實(shí)現(xiàn)從PCI總線通過(guò)PCI9030到局部總線的訪問(wèn),所以驅(qū)動(dòng)程序的關(guān)鍵是實(shí)現(xiàn)PCI局部總線到PCI總線的地址映射。
    2.2 訪問(wèn)PCI9030外設(shè)的實(shí)現(xiàn)
      PCI9030有一個(gè)64字節(jié)的目標(biāo)設(shè)備讀FIFO和一個(gè)128字節(jié)的PCI目標(biāo)寫(xiě)FIFO,用來(lái)實(shí)現(xiàn)PCI主設(shè)到局部總線的訪問(wèn),并允許5個(gè)地址空間去訪問(wèn)局部地址空間,它們分別是space0、space1、space2、space3和Expansion ROM。每個(gè)PCI地址空間到局部地址空間的映射關(guān)系由三個(gè)寄存器來(lái)決定: Local Address Range(局部基地址范圍)——LASxRR 及EROMRR; Local Base Address(局部基地址)——LASxBA及EROMBA; PCI Base Address(PCI基地址)——PCIBAR2、PCIBAR3、 PCIBAR4、 PCIBAR5及PCIERBAR[4]。每一個(gè)空間的映射是一一對(duì)應(yīng)的,規(guī)定space0映射到PCI BASE2, space1映射到PCI BASE3,以此類推。圖5為地址映射示意圖。


      PCI9030復(fù)位初始化時(shí)需定義一次地址空間的映射,具體實(shí)現(xiàn)方法是在E2PROM中配置好三個(gè)寄存器的值:①Range:指定PCI總線訪問(wèn)局部總線空間范圍的PCI地址位。除去最低一個(gè)字節(jié),左起第一個(gè)為1的數(shù)對(duì)應(yīng)的位就是該空間范圍。例如:配置Range=FFF00008,去掉第一個(gè)字節(jié),左起第一個(gè)1在bit20, 所以空間范圍是220=1MB。②Remap(Local Base Address):根據(jù)自己的硬件設(shè)計(jì)決定設(shè)備在局部總線的基地址,bit0必須置為1,表明允許對(duì)應(yīng)的局部空間地址映射。③Descriptor:指定局部總線的特征,包括總線寬度、讀延時(shí)、寫(xiě)延時(shí)的延時(shí)時(shí)鐘數(shù)、是否預(yù)取等。
      驅(qū)動(dòng)程序的設(shè)備初始化子程序給PCI Base Address 寄存器寫(xiě)入全1,即FFFFFFFF,然后讀回的寄存器的值就是CPU根據(jù)E2PROM中的配置分配的PCI的基地址范圍值。在VxWorks中通過(guò)調(diào)用以下兩個(gè)函數(shù)來(lái)實(shí)現(xiàn):
      pciConfigInLong(busNo,deviceNo,funcNo,PCI_CFG_BASE_ADDRESS_2,& baseAddress);
      pciConfigOutLong(busNo,deviceNo,funcNo,PCI_CFG_BASE_ADDRESS_2,& baseAddress);
      當(dāng)需要訪問(wèn)某一設(shè)備時(shí),只需要訪問(wèn)該設(shè)備占用的局部地址空間所對(duì)應(yīng)的PCI地址空間即可,一般用PCI基地址加偏移量的方式訪問(wèn),例如:PCI_READ(MEMBase2,0x04,buffer)。此外PCI9030 還提供了四個(gè)片選信號(hào),以便對(duì)多個(gè)外設(shè)進(jìn)行訪問(wèn),這四個(gè)片選信號(hào)是CS0、CS1、CS2、CS3,對(duì)應(yīng)四個(gè)片選基地址寄存器:CS0BASE, CS1BASE、CS2BASE、CS3BASE, 當(dāng)片選基地址寄存器表達(dá)的基地址與某一局部空間基地址相同且設(shè)定的地址范圍也相同時(shí),這一片選信號(hào)上所掛的設(shè)備就落在該局部空間[4]。本次設(shè)計(jì)中所用的FPGA芯片使用了CS0片選信號(hào),設(shè)計(jì)的CS0BASE基地址和范圍落在space0,這樣通過(guò)PCI BASE2 ADDRESS 就可訪問(wèn)到FPGA。
    2.3 PCI9030的中斷及控制寄存器
      PCI9030提供了兩個(gè)局部中斷引腳LINTi1和LINTi2以及中斷控制寄存器INTCSR(軟中斷)[7],用來(lái)觸發(fā)PCI中斷輸入引腳INTA#輸出有效信號(hào),向CPU申請(qǐng)中斷。同時(shí)PCI中斷引腳寄存器PCIIPR必須在E2PROM中設(shè)置為1h, 表明通過(guò)INTA#申請(qǐng)中斷。BIOS能夠?qū)NTA#路由到一個(gè)中斷控制器的中斷請(qǐng)求(IRQ)輸入,為系統(tǒng)分配一個(gè)與標(biāo)準(zhǔn)的中斷控制器8259的IRQ相應(yīng)的中斷號(hào),并由BIOS將此中斷號(hào)寫(xiě)到PCI中斷線(PCI Interrupt Line)寄存器PCIILR中。因此在寫(xiě)驅(qū)動(dòng)程序時(shí),讀取PCIILR中的值是將中斷服務(wù)子程序ISR連接到中斷控制器的關(guān)鍵。三種中斷形式的設(shè)置可在中斷控制寄存器INTCSR中配置。也可通過(guò)設(shè)置中斷控制寄存器INTCSR[6]來(lái)禁止INTA#中斷。
      通過(guò)E2PROM編程器或PLX公司的PlxMon軟件對(duì)E2PROM編程,可寫(xiě)入幾個(gè)重要寄存器的值,其中包括配置寄存器(PCI配置首區(qū)[5])、局部配置寄存器等的值。系統(tǒng)上電后自動(dòng)將這些數(shù)據(jù)從E2PROM傳到PCI9030內(nèi)部寄存器。在PCI配置寄存器00h中放置兩個(gè)重要參數(shù)Device ID(設(shè)備ID)和Vendor ID(廠商ID), 它們是表明設(shè)備身份的關(guān)鍵,在VxWorks中利用這兩個(gè)參數(shù)來(lái)調(diào)用如下函數(shù):
      pciFindDevice(PCI_VENDOR_ID, CI_DEVICE_ID, index,&busNo, &deviceNo, &funcNo) ;
      找到設(shè)備并讀取busNo(總線號(hào))、deviceNo(設(shè)備號(hào))、
    funcNo(功能號(hào))等參數(shù)后,再利用這三個(gè)參數(shù)找到PCI基地址和中斷號(hào),最后作地址映射,將基地址加到內(nèi)存管理單元MMU中。這是PCI9030設(shè)備初始化的重要步驟。
    3 VxWorks下的PCI9030驅(qū)動(dòng)程序結(jié)構(gòu)及流程
    3.1驅(qū)動(dòng)程序的框架

      前面提到在VxWorks下有七個(gè)基本I/O函數(shù),所以寫(xiě)PCI9030驅(qū)動(dòng)程序時(shí)首先要寫(xiě)PCI9030的I/O接口子程序PCI9030Open()、PCI9030Close()、PCI9030Read()等。 此外還需要寫(xiě)三個(gè)重要的程序[3]:
      PCI9030Drv()。該程序的主要工作是執(zhí)行必要的硬件初始化;通過(guò)調(diào)用iosDrvInstall()函數(shù)裝載驅(qū)動(dòng)程序到I/O系統(tǒng),連接I/O接口子程序PCI9030Open()、PCI9030Close()、PCI9030Read()等到I/O系統(tǒng);連接中斷等。
      PCI9030Create()。該程序的主要工作是將設(shè)備添加到I/O系統(tǒng),通過(guò)調(diào)用iosDevAdd()函數(shù)來(lái)實(shí)現(xiàn)。
      中斷服務(wù)子程序ISR。該程序完成寫(xiě)入中斷響應(yīng)后需要執(zhí)行的操作。
    3.2 程序流程圖
      圖6和圖7分別為設(shè)備驅(qū)動(dòng)程序PCI9030Drv()的流程圖及設(shè)備所需接口函數(shù)的框圖。

     


    3.3 部分程序代碼
      (1)sysPCI9030Init()子程序。
      void sysPCI9030Init (void)
      {設(shè)備初始化……
      pciIntConnect(INUM_TO_IVEC(((int) btRes->irq)+INT_NUM_IRQ0),(VOIDFUNCPTR)myISR,IntParameter);
                            /*連接到中斷服務(wù)子程序*/ } 
      (2)PCI9030Drv()程序,裝載驅(qū)動(dòng)程序到驅(qū)動(dòng)表并連接I/O接口函數(shù)。
      int PCI9030Drv()
      {
      int pci9030DrvNum; /*定義驅(qū)動(dòng)號(hào)*/
      pci9030DrvNum=iosDrvInstall((FUNCPTR)PCI9030open,0,
        (FUNCPTR)PCI9030open, (FUNCPTR)PCI9030close,
        (FUNCPTR)PCI9030read, (FUNCPTR)PCI9030write,0); 
      ……
      } 
      本文針對(duì)PMC-FPGA轉(zhuǎn)接板的開(kāi)發(fā)設(shè)計(jì),研究了在VxWorks下的驅(qū)動(dòng)程序的編寫(xiě)及PCI接口控制芯片PCI9030的應(yīng)用,論述了VxWorks下PCI9030驅(qū)動(dòng)程序的設(shè)計(jì)方法。由于VxWorks操作系統(tǒng)的微內(nèi)核可裁減及高效的多任務(wù)管理方式,為提高系統(tǒng)的實(shí)時(shí)性作了很大貢獻(xiàn)。又因VxWorks有豐富高效的接口函數(shù),使編程更加簡(jiǎn)單方便。I/O系統(tǒng)將設(shè)備程序作為內(nèi)核過(guò)程實(shí)現(xiàn),實(shí)時(shí)性、可靠性都得到很大提高。在硬件設(shè)計(jì)中,采用FPGA可編程邏輯門(mén)陣列芯片,通過(guò)編程實(shí)現(xiàn)硬件邏輯運(yùn)算,大大提高了運(yùn)算速度,進(jìn)一步提高了系統(tǒng)的實(shí)時(shí)性。這里設(shè)計(jì)的PMC-FPGA轉(zhuǎn)接板也為高速控制器的設(shè)計(jì)提供了硬件條件,對(duì)控制系統(tǒng)中實(shí)時(shí)性、快速性的實(shí)現(xiàn)具有現(xiàn)實(shí)意義。

    上一篇: 具有PCI和并行接口的數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)
    下一篇: VxWorks操作系統(tǒng)下ComPactPCI總線驅(qū)動(dòng)程序設(shè)計(jì)
    ?
    版權(quán)所有 ? 西安航普電子有限責(zé)任公司 未經(jīng)許可

    嚴(yán)禁復(fù)制 陜ICP備08100257號(hào) 建站/推廣/維護(hù)/安全:西安利友科技

    国产成人91精品免费网站-久99久热爱视频精品免费37-亚洲国产精品成人久久蜜臀-麻豆精品免费观看完整版 | 人人妻人人搞人人插-精品久久区视频-欧美日韩激情成人-日韩免费电影男女操操操 | 精品人妻三区四区-97人妻一二区-日韩国产中文在线视频-国产精品久久自在自线不卡 | 久久国产精品天海翼av-96久久夜色精品国产-六月丁香天天色-日韩国产中文字幕有码 | 欧美日韩一区二区中文字幕-国产精品久久久久久久久妇女-国产成人精品av在线-麻豆国产1级黄片儿免费观看 | 大香蕉伊人久久福利-日韩高清免费观看av播放-蜜桃人妻一区二区-国产一区二区淫片人妻 | 国产69精品久久久久久久久-精品人妻粉嫩av-日韩精品在线观看的网址-夜夜躁蜜桃av一区二区三区妖精 | 999久久九九精品-中文日韩免费码中文在线观看-色一区二区三区欧美-激情五月网婷婷 | 熟妇人妻中文字幕系列在线-丰满人妻熟女一区二区三区-中文字幕成人在线观看-中文字幕日韩制服另类 | 国产999精品999-麻豆成人国产一二三区-懂色av一区二区三区蜜桃-亚洲欧美国产国产一区 | 国产乱码一区二区三区四区-国产 日韩午夜-99久久人妻精品系列-亚洲深喉口爆吞精视频 | 日韩少妇一区二区三区-av黄片啊啊啊啊啊-内射中出日韩在线观看视频-91久久人澡人人添人人爽乱 | av亚州男人天堂,-超碰完全免费在线-久久久www成人免费精品-国产又粗又猛又爽又黄的视频免费 | 999精品91久久久-美女中文字幕在线观看-日本精品一区二区三区在线免费-美女中文字幕av | 久久久久亚洲国产精品-亚洲中文字幕精品免费-亚洲天堂自拍偷拍网-久久精品国产av熟女 | 亚洲一区二区视频网-嫩草av伊人如意久久-日韩av 一区二区三区四区-久久久中文字幕熟女人妻 | 天天干夜夜操免费视频-久久99久久99精品免费-玖玖在线中文字幕网-人妻精品一区一区三区蜜桃91 | 69精品久久久久粉嫩-黑人爆操亚洲人-人妻天天爽夜夜爽一-国产精品999国产 | 91麻豆国产精品91久久久久久久-麻豆精品最新国产在线-色99免费在线视频-久久久中文字幕中文字幕性 | 一本色道久久爱久久综-日韩人妻中文字幕一区二区三区-日本久久久激情-久热中文字幕精品在线 | 日韩最新在线观看视频-91人妻中文在线一区二区三区-国模福利视频在线观看-国产精品va尤物在线观看 | 精品久久久久久久一区二区8-激情五月综合aⅴ在线-97久久精品人人爽人人爽蜜臀-国产一区二区三区视频在线免费播放 | 麻豆产精国品一二三产区区-色综合久久不88-亚洲熟女一区二区三区250p-国产一区二区三区影片 | 91久久国产精品九色-91福利最新在线-91精品一区二区三区蜜桃的-日韩人妻中文字幕 | 国产成人精品视频网站-国产三级男人的天堂-蜜臀aⅴ人妻一区二区三区-国产麻豆剧传媒精品国产av | 高清在线一区二区不卡视频-国产麻豆成人av映画-婷婷在线中文字幕视频-9久精品久久综合久久超碰 | 999精品视频在线免费观看-熟女人妻久久久一区二区蜜桃-蜜臀久久精品久久久久久久久久-欧美日韩极品一区二区三区 | 久久精品国产亚洲av极品美女-日韩资源中文字幕在线-国产又大又长又黄又色又爽视频-欧美日韩一区二区区别是什么 | av亚州男人天堂,-超碰完全免费在线-久久久www成人免费精品-国产又粗又猛又爽又黄的视频免费 | 日韩av黄色在线看-国产成人av国语在线观看-91精品久久久久久久久久精品-日本久久一区二区三区高清 | 中文字幕不卡一区二区-精品女同一区二区三区免费播放-久久婷婷国产91天堂综合精品-不卡久久精品国产亚洲av不卡 | 久久躁夜夜躁日日躁-精品99视频播放在线观看-欧洲日韩视频一区二区三区-天天射天天操天天操 | 精品视频区二区三区-69精品久久精品-日韩人妻熟女中文字幕在线播放-国产麻豆精品videossex | 99精品久久久久久国产av-亚洲特老女人av毛片-日韩欧美一区二区最新-日韩有码 在线视频 | 麻豆人妻换人妻同学会-2020最新亚洲中文字幕在线不卡-精品久久久久,69国产成人精-av天堂中文最新版 | 亚洲va国产va欧美精品88-91丨九色丨农村老熟女按摩-日韩限制级影院-97人妻超碰在线免费 | 国产一区二区三区hhh-日韩人妻一区二区中文字幕-欧美精品久久久久久蜜臀999-久久综合久久综合久久综合久久综合 | 亚洲第一狼色综合区小说综合-国产亚洲精品久久久久-成人免费视频国产免费麻豆下-97乱中文字幕在线 | 久久婷婷六月综合综合-精品999免费观看-国产成人一区二区久久-精品久久一区二区 蜜桃 | 一本一道久久a久久综合蜜桃-国产精品久久久久久久久夜色-国产精品99成人免费视频-国产一区二区大片在线播放 | 欧美日韩男女视频在线观看-日韩黄色一级免费电影-国产麻豆精品在线-激情综合激情五月综合 |