久久精品在这里_成人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欧美一区二区三区
国产精品一级黄| 日韩精品一区二区三区外面| 国产精品加勒比| 色综合久久久久综合体桃花网| 久久久久久久久久美女| 免费在线看一区| 国产精品国产亚洲精品看不卡15| 91黄色在线观看| 亚洲六月丁香色婷婷综合久久| 成人高清视频在线观看| 色综合久久久久久久| 国产女同性恋一区二区| 国产91在线|亚洲| 色综合天天综合色综合av| 国产精品免费av| 粉嫩13p一区二区三区| 亚洲午夜精品久久久中文影院av | 99久久99久久免费精品蜜臀| 91久久精品一区二区二区| 亚洲精品国产精品乱码不99| 91情侣在线视频| 日韩欧美成人午夜| 国产原创一区二区三区| 色94色欧美sute亚洲线路一ni| 一区二区三区高清在线| 久久99精品久久久久久久青青日本| 精品国产一区二区在线观看| 国产伦精品一区二区三区免费迷 | 色哟哟国产精品| 亚洲午夜一区二区三区| 精品国产中文字幕| 国产精品五月天| 999国内精品视频在线| 精品盗摄一区二区三区| 国产传媒一区在线| 56国语精品自产拍在线观看| 精品一区二区三区在线观看国产 | 欧美国产成人在线| 91黄在线观看| 久久精品免费在线观看| 91成人免费观看| 精品动漫一区二区三区在线观看| 国产毛片精品国产一区二区三区| 欧美综合亚洲图片综合区| 毛片av中文字幕一区二区| 色噜噜狠狠色综合欧洲selulu| 日本中文字幕一区二区有限公司| 亚洲精品在线视频观看| 三级一区在线视频先锋 | 精品精品欲导航| 成人妖精视频yjsp地址| 欧美电影免费观看高清完整版 | 欧美日本免费一区二区三区| 开心九九激情九九欧美日韩精美视频电影 | 肉丝袜脚交视频一区二区| 一区二区三区精品国产| 日本不卡的三区四区五区| 欧美日韩电影在线| 波多野结衣中文字幕一区| 久久久久久久久久看片| 久99久视频| 亚洲午夜精品在线| 欧美午夜精品免费| 成人免费视频视频在线观看免费| 久久久久久免费| 久久99精品久久久久久久久久| 一区二区视频在线| 91久久精品一区二区三| 风间由美一区二区三区在线观看| 久久人人97超碰com| 好吊色欧美一区二区三区四区| 亚洲一区欧美一区| 精品视频1区2区| 91美女片黄在线| 亚洲卡通欧美制服中文| 色噜噜狠狠色综合中国| 成人va在线观看| 亚洲男人的天堂在线观看| 一级二级三级欧美| 国产传媒欧美日韩成人| 欧美国产一区二区| 亚洲一区二区不卡视频| 豆国产96在线|亚洲| 国产精品国产自产拍高清av| 亚洲综合五月天| 成人爽a毛片一区二区免费| 最新国产成人在线观看| 欧美色综合久久| 97超级碰碰| 日本亚洲电影天堂| 国产性色一区二区| 色婷婷激情综合| 99蜜桃在线观看免费视频网站| 午夜视频一区二区| 久久婷婷国产综合国色天香| 涩涩涩999| av资源网一区| 视频一区国产视频| 国产欧美一区二区精品久导航| 亚洲欧美国产一区二区| 9i在线看片成人免费| 无码av免费一区二区三区试看 | 亚洲成人你懂的| 欧美成人精精品一区二区频| 日本午夜精品一区二区| 成人亚洲精品久久久久软件| 亚洲综合激情小说| 久久这里只有精品6| 一本一道久久a久久精品综合蜜臀| 99视频在线精品| 男人的天堂久久精品| 国产精品网站在线观看| 欧美日韩视频在线第一区| 久久福利电影| 国产成人av在线影院| 五月天国产精品| 国产精品麻豆网站| 日韩一区二区影院| 色综合天天天天做夜夜夜夜做| 国产精品污www一区二区三区| 久草在线在线精品观看| 一区二区在线观看av| 国产欧美一区二区三区在线看蜜臀| 欧美在线制服丝袜| 日日夜夜精品网站| 国产精品久久久久久免费观看| 国产麻豆精品95视频| 婷婷开心久久网| 亚洲男女毛片无遮挡| 久久午夜老司机| 欧美日本一区二区三区四区| 亚洲激情图片| 国产伦精品一区二区三区四区免费 | 国产精品人人做人人爽人人添| 欧美日韩久久一区二区| 亚洲欧美日韩综合一区| 久久精品日韩| 99久久精品国产一区| 国产精品99久久久久久久女警| 日韩精品91亚洲二区在线观看 | 精品免费二区三区三区高中清不卡| 国产91对白在线观看九色| 蜜臀av性久久久久蜜臀aⅴ流畅| 亚洲精品免费在线| 中文字幕一区二| 中文久久乱码一区二区| 国产午夜精品一区二区三区嫩草 | 欧美一区二区大片| 91久久奴性调教| 中文网丁香综合网| 日本一区免费看| 精品乱色一区二区中文字幕| 波多野结衣久草一区| 不卡的av电影| 成人sese在线| 不卡av在线网| 9久草视频在线视频精品| 国产成a人亚洲| 国产一区二区调教| 国产尤物一区二区| 国产在线精品一区二区三区不卡| 欧美a级理论片| 久久国产精品免费| 黄网站免费久久| 国产呦萝稀缺另类资源| 国产一区二区三区在线观看免费视频 | 亚洲高清视频在线观看| 午夜精品一区二区在线观看的| 欧美一区亚洲二区| 日韩电影在线播放| 亚洲欧洲精品在线观看| 亚洲在线欧美| 欧美性受极品xxxx喷水| 欧美欧美欧美欧美首页| 欧美一区二区女人| 久久综合狠狠综合久久综合88 | 成人av中文| 久久久久久九九九九| 欧美综合激情| 亚洲欧洲精品一区二区| 日本乱人伦一区| 欧美一区欧美二区| 久久久久国色av免费看影院| 国产精品麻豆99久久久久久| 亚洲视频免费在线| 亚洲高清不卡在线| 精品在线免费视频| 盗摄精品av一区二区三区| 99久久久精品免费观看国产| 好吊妞www.84com只有这里才有精品| 久久久www免费人成黑人精品| 亚洲黄色一区二区三区| 欧美日韩国产综合视频在线观看 | 一区二区三区资源| 日韩国产精品久久久久久亚洲| 韩国精品在线观看| 91丝袜国产在线播放| 欧美连裤袜在线视频| 在线视频你懂得一区二区三区| 日韩一本二本av|