久久精品在这里_成人99免费视频_国产激情视频一区二区在线观看_国产伦精品一区二区三区免费 _亚洲午夜免费福利视频_色狠狠色狠狠综合_av在线综合网_91毛片在线观看_欧美视频一区二区在线观看_极品美女销魂一区二区三区免费_国产亚洲欧美激情_在线免费观看不卡av_日韩不卡一区二区三区_91精品国产麻豆国产自产在线_亚洲国产精品一区二区久久恐怖片_a4yy欧美一区二区三区

以文本方式查看主題

-  曙海教育集團(tuán)論壇  (http://www.rfoamep.cn/bbs/index.asp)
--  VxWorks 應(yīng)用開發(fā)  (http://www.rfoamep.cn/bbs/list.asp?boardid=38)
----  VxWorks 下PMC-FPGA板卡驅(qū)動(dòng)的開發(fā)與研究  (http://www.rfoamep.cn/bbs/dispbbs.asp?boardid=38&id=1944)

--  作者:wangxinxin
--  發(fā)布時(shí)間:2010-12-1 11:00:24
--  VxWorks 下PMC-FPGA板卡驅(qū)動(dòng)的開發(fā)與研究
摘 要: 討論了嵌入式實(shí)時(shí)操作系統(tǒng)VxWorks的I/O系統(tǒng)及驅(qū)動(dòng)程序?qū)崿F(xiàn)的原理,并根據(jù)PMC-FPGA轉(zhuǎn)接卡的開發(fā),詳細(xì)分析了VxWorks下PCI9030設(shè)備驅(qū)動(dòng)程序的實(shí)現(xiàn)過程及相 關(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)越來越廣泛地應(yīng)用到無(wú)線通信、交通、工業(yè)控制、軍事、航空航天、衛(wèi)星通信等各個(gè)領(lǐng)域。由于這些領(lǐng)域?qū)?shí)時(shí)性、可靠性要求很高,從而使得實(shí)時(shí)操作系統(tǒng)迅速發(fā)展起來。其中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)用途開發(fā)出截然不同的一項(xiàng)系統(tǒng),這就是所謂的客制化[2]。通常需要根據(jù)系統(tǒng)的功能、成本、尺寸及用戶需求等方面來定制合適的硬件系統(tǒng),這就要求用戶開發(fā)自己的硬件驅(qū)動(dòng)程序。驅(qū)動(dòng)程序的開發(fā)是系統(tǒng)開發(fā)的重要組成部分,其性能、實(shí)時(shí)性、可靠性、指令的簡(jiǎn)練性關(guān)系著應(yīng)用系統(tǒng)的性能和可靠性,所以驅(qū)動(dòng)程序的開發(fā)顯得至關(guān)重要。
  本文針對(duì)以PCI9030為接口控制芯片的PMC-FPGA(PCI Mezzanine Card)轉(zhuǎn)接卡的開發(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ù)。它通過一個(gè)文件描述符表來實(shí)現(xiàn)這一功能。VxWorks設(shè)備驅(qū)動(dòng)程序基本上通過I/O系統(tǒng)進(jìn)行訪問,設(shè)備驅(qū)動(dòng)程序被作為內(nè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)系。

圖片點(diǎn)擊可在新窗口打開查看


  VxWorks下I/O系統(tǒng)中三個(gè)主要的元素是:驅(qū)動(dòng)程序、設(shè)備和文件[3]。文件是用戶訪問設(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)的子程序。這主要是通過找到驅(qū)動(dòng)列表中對(duì)應(yīng)的驅(qū)動(dòng)號(hào)來實(shí)現(xiàn)。驅(qū)動(dòng)列表如表1所示。

圖片點(diǎn)擊可在新窗口打開查看


  在驅(qū)動(dòng)程序中通過調(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。
然后編寫創(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è)備列表中(見圖2)。其中有管道設(shè)備、串口設(shè)備及PCI9030設(shè)備,pmcfpga是設(shè)備名稱。

圖片點(diǎn)擊可在新窗口打開查看


  在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)來將設(shè)備和驅(qū)動(dòng)聯(liá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;

圖片點(diǎn)擊可在新窗口打開查看


  從表2中可以看出設(shè)備名是pmcfpga, 驅(qū)動(dòng)號(hào)為3,文件描述符號(hào)是2。通過調(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),并通過驅(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è)備的訪問
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所示。

圖片點(diǎn)擊可在新窗口打開查看

 

圖片點(diǎn)擊可在新窗口打開查看


  這里FPGA作為PCI9030接口芯片的外設(shè)掛到PCI局部總線上,主板上的CPU要從PMC接口通過PCI9030才能訪問到外設(shè),因此需要實(shí)現(xiàn)從PCI總線通過PCI9030到局部總線的訪問,所以驅(qū)動(dòng)程序的關(guān)鍵是實(shí)現(xiàn)PCI局部總線到PCI總線的地址映射。
2.2 訪問PCI9030外設(shè)的實(shí)現(xiàn)
  PCI9030有一個(gè)64字節(jié)的目標(biāo)設(shè)備讀FIFO和一個(gè)128字節(jié)的PCI目標(biāo)寫FIFO,用來實(shí)現(xiàn)PCI主設(shè)到局部總線的訪問,并允許5個(gè)地址空間去訪問局部地址空間,它們分別是space0、space1、space2、space3和Expansion ROM。每個(gè)PCI地址空間到局部地址空間的映射關(guān)系由三個(gè)寄存器來決定: 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為地址映射示意圖。

圖片點(diǎn)擊可在新窗口打開查看


  PCI9030復(fù)位初始化時(shí)需定義一次地址空間的映射,具體實(shí)現(xiàn)方法是在E2PROM中配置好三個(gè)寄存器的值:①Range:指定PCI總線訪問局部總線空間范圍的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í)、寫延時(shí)的延時(shí)時(shí)鐘數(shù)、是否預(yù)取等。
  驅(qū)動(dòng)程序的設(shè)備初始化子程序給PCI Base Address 寄存器寫入全1,即FFFFFFFF,然后讀回的寄存器的值就是CPU根據(jù)E2PROM中的配置分配的PCI的基地址范圍值。在VxWorks中通過調(diào)用以下兩個(gè)函數(shù)來實(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)需要訪問某一設(shè)備時(shí),只需要訪問該設(shè)備占用的局部地址空間所對(duì)應(yīng)的PCI地址空間即可,一般用PCI基地址加偏移量的方式訪問,例如:PCI_READ(MEMBase2,0x04,buffer)。此外PCI9030 還提供了四個(gè)片選信號(hào),以便對(duì)多個(gè)外設(shè)進(jì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,這樣通過PCI BASE2 ADDRESS 就可訪問到FPGA。
2.3 PCI9030的中斷及控制寄存器
  PCI9030提供了兩個(gè)局部中斷引腳LINTi1和LINTi2以及中斷控制寄存器INTCSR(軟中斷)[7],用來觸發(fā)PCI中斷輸入引腳INTA#輸出有效信號(hào),向CPU申請(qǐng)中斷。同時(shí)PCI中斷引腳寄存器PCIIPR必須在E2PROM中設(shè)置為1h, 表明通過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)寫到PCI中斷線(PCI Interrupt Line)寄存器PCIILR中。因此在寫驅(qū)動(dòng)程序時(shí),讀取PCIILR中的值是將中斷服務(wù)子程序ISR連接到中斷控制器的關(guān)鍵。三種中斷形式的設(shè)置可在中斷控制寄存器INTCSR中配置。也可通過設(shè)置中斷控制寄存器INTCSR[6]來禁止INTA#中斷。
  通過E2PROM編程器或PLX公司的PlxMon軟件對(duì)E2PROM編程,可寫入幾個(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ù)來調(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ù),所以寫PCI9030驅(qū)動(dòng)程序時(shí)首先要寫PCI9030的I/O接口子程序PCI9030Open()、PCI9030Close()、PCI9030Read()等。 此外還需要寫三個(gè)重要的程序[3]:
  PCI9030Drv()。該程序的主要工作是執(zhí)行必要的硬件初始化;通過調(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),通過調(diào)用iosDevAdd()函數(shù)來實(shí)現(xiàn)。
  中斷服務(wù)子程序ISR。該程序完成寫入中斷響應(yīng)后需要執(zhí)行的操作。
3.2 程序流程圖
  圖6和圖7分別為設(shè)備驅(qū)動(dòng)程序PCI9030Drv()的流程圖及設(shè)備所需接口函數(shù)的框圖。

圖片點(diǎn)擊可在新窗口打開查看

 

圖片點(diǎn)擊可在新窗口打開查看


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)接板的開發(fā)設(shè)計(jì),研究了在VxWorks下的驅(qū)動(dòng)程序的編寫及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)核過程實(shí)現(xiàn),實(shí)時(shí)性、可靠性都得到很大提高。在硬件設(shè)計(jì)中,采用FPGA可編程邏輯門陣列芯片,通過編程實(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í)意義。


久久精品在这里_成人99免费视频_国产激情视频一区二区在线观看_国产伦精品一区二区三区免费 _亚洲午夜免费福利视频_色狠狠色狠狠综合_av在线综合网_91毛片在线观看_欧美视频一区二区在线观看_极品美女销魂一区二区三区免费_国产亚洲欧美激情_在线免费观看不卡av_日韩不卡一区二区三区_91精品国产麻豆国产自产在线_亚洲国产精品一区二区久久恐怖片_a4yy欧美一区二区三区
日本不卡一二三区黄网| 一级女性全黄久久生活片免费| 亚洲色图自拍| 青青草成人激情在线| 日本成人三级| 在线观看日本一区| 在线视频精品一区| 欧美做爰猛烈大尺度电影无法无天| 日本精品一级二级| 欧美乱妇20p| 2020国产精品久久精品美国| 国产欧美一区二区精品忘忧草| **欧美大码日韩| 亚洲一区二区在线观看视频| 无吗不卡中文字幕| 国产精品一区三区| 动漫精品视频| 青青草国产精品| 欧美亚洲高清一区| 精品va天堂亚洲国产| 亚洲色图视频网| 蜜臀精品久久久久久蜜臀| 国产精品18久久久久久久久 | 在线观看国产日韩| 538prom精品视频线放| 国产日韩精品久久久| 亚洲图片有声小说| 国产精品中文有码| 韩国成人一区| 欧洲人成人精品| 26uuu国产电影一区二区| 亚洲免费资源在线播放| 久久精品国产久精国产爱| 99国产精品久| 在线观看欧美亚洲| 国产亚洲一本大道中文在线| 五月天激情综合网| 91蝌蚪porny| 91精品办公室少妇高潮对白| 亚洲精品在线观看网站| 亚洲电影在线播放| 99综合电影在线视频| 亚洲一区二区三区免费观看| 亚洲精品一线二线三线无人区| 亚洲国产综合色| 9i在线看片成人免费| 影音先锋欧美资源| 国产午夜亚洲精品午夜鲁丝片| 日本免费新一区视频| 国产精品久久久久久亚洲伦| 日本道免费精品一区二区三区| 欧美一区欧美二区| 欧美tickle裸体挠脚心vk| 亚洲另类中文字| 国产盗摄一区二区三区| 激情小说网站亚洲综合网| 欧美在线播放高清精品| 中文字幕一区二区三区视频| 精品制服美女丁香| 久久99欧美| 精品乱码亚洲一区二区不卡| 午夜亚洲福利老司机| 国产高清自拍99| 91精品国产品国语在线不卡| 亚洲123区在线观看| 精品欧美一区二区精品久久| 日韩小视频在线观看专区| 天天综合日日夜夜精品| 国产精品一区二区三区在线观| 欧美精品99久久久**| 午夜视频在线观看一区二区三区| 91免费版黄色| 日韩美女一区二区三区四区| 日韩av在线播放中文字幕| 蜜桃日韩视频| 国产丝袜美腿一区二区三区| 国产老肥熟一区二区三区| 色噜噜狠狠一区二区三区果冻| 亚洲欧美另类图片小说| 999在线观看免费大全电视剧| 91麻豆精品国产91久久久久| 日韩福利电影在线| 亚洲精品乱码久久久久久蜜桃91 | 国产精品性做久久久久久| 色88888久久久久久影院按摩| 一区二区三区蜜桃| 久久av一区二区三区漫画| 久久久精品tv| 成人激情综合网站| 91精品国产高清一区二区三区 | 国精品**一区二区三区在线蜜桃| 日本一区二区三区www| 中文字幕欧美日韩一区| 波波电影院一区二区三区| 日韩一区二区电影在线| 国产精品 欧美精品| 欧美一区二区在线观看| 国产成人综合在线观看| 7799精品视频| 东方aⅴ免费观看久久av| 精品欧美久久久| 99久久精品免费看国产| 久久久精品欧美丰满| 国产精品免费一区二区三区在线观看 | 日本黄色一区二区| 日韩成人午夜精品| 91国偷自产一区二区三区观看 | 欧美日韩国产精品成人| 国产综合一区二区| 欧美精品在线观看一区二区| 国产精品99久久久久| 精品国产成人在线影院| 91免费版黄色| 亚洲乱码精品一二三四区日韩在线| 国产中文一区二区| 一区二区三区免费观看| 91国产丝袜在线播放| 国产精品2024| 欧美国产激情一区二区三区蜜月| 国产麻豆一区二区三区在线观看| 亚洲免费看黄网站| 中文有码久久| 国产美女av一区二区三区| 日韩美女主播在线视频一区二区三区| 91在线观看下载| 尤物av一区二区| 91福利资源站| a在线欧美一区| 日韩久久一区二区| 一本大道久久a久久精二百| 国产呦萝稀缺另类资源| 久久亚洲综合色一区二区三区| 国产伦精品一区二区三区照片| 亚洲男女毛片无遮挡| 欧洲一区二区三区免费视频| 成人激情黄色小说| 亚洲女女做受ⅹxx高潮| 日本精品视频一区二区三区| 成人激情动漫在线观看| 亚洲精品自拍动漫在线| 欧美亚洲综合一区| 91欧美一区二区| 亚洲一本大道在线| 欧美一区二区三区男人的天堂| 国产精品高清一区二区三区| 日韩高清电影一区| www成人在线观看| 日韩少妇中文字幕| 成人午夜激情影院| 亚洲亚洲精品在线观看| 欧美mv和日韩mv国产网站| 日韩福利一区二区三区| 丁香婷婷深情五月亚洲| 一区二区在线观看视频 | 国产日韩欧美激情| 亚洲一区二区三区色| 不卡的av电影| 日本欧美一区二区三区乱码| 欧美精品一区二区三区视频| 日韩欧美在线观看强乱免费| 国产乱人伦偷精品视频不卡 | 日韩中文字幕不卡| 精品对白一区国产伦| 亚洲视频导航| 国产精品久久久久久久久久久久午夜片| 日韩高清在线电影| 国产精品蜜臀在线观看| 欧美精品一级二级三级| 日韩免费av一区二区三区| 99久久99久久精品国产片果冻 | 欧美精品一区二区久久婷婷| 一区二区三区四区视频在线 | 在线精品亚洲一区二区不卡| 国产美女在线精品免费观看| 国产另类ts人妖一区二区| 一区二区三区四区在线免费观看| 日韩免费一区二区| 色欲综合视频天天天| 久久久久久欧美精品色一二三四| 国产成人免费av在线| 亚洲成年人网站在线观看| 亚洲国产成人私人影院tom| 欧美一级欧美三级在线观看 | 在线免费视频一区二区| 精品麻豆av| 成人动漫在线观看视频| 成人午夜激情片| 国内成人精品2018免费看| 日韩激情一区二区| 亚洲人一二三区| 中文字幕乱码久久午夜不卡| 欧美成人精品二区三区99精品| 欧美伊人久久久久久久久影院| 欧美一区二区福利| 激情视频一区二区| 国产精品毛片va一区二区三区| 99国产精品久久久久| 成人av在线一区二区三区| 国产一级精品在线| 久久99国产精品久久99|