久久精品在这里_成人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欧美一区二区三区
国产精品无遮挡| av免费观看久久| 国产免费久久精品| 日韩免费在线观看| 欧美一级精品在线| 精品久久久久av影院| 精品久久国产老人久久综合| 欧美va亚洲va在线观看蝴蝶网| 日韩一区二区在线播放| 精品免费99久久| 欧美激情在线看| 亚洲欧美电影院| 亚洲二区在线观看| 久久丁香综合五月国产三级网站| 国内精品久久久久影院一蜜桃| 国产成人精品亚洲日本在线桃色 | 亚洲乱码日产精品bd| 亚洲欧美另类小说| 亚洲成人精品影院| 国内成人精品2018免费看| 不卡的av网站| 欧洲亚洲一区| 欧美色综合影院| 久久久久久久精| 亚洲影视在线播放| 精品中文字幕一区二区小辣椒| av在线一区二区| 欧美另类一区| 欧美精品久久99久久在免费线| 久久婷婷久久一区二区三区| 一区二区三区四区亚洲| 久久精品99国产国产精| 91无套直看片红桃| 日本一区美女| 制服丝袜亚洲色图| 一区在线观看免费| 精品一区二区三区在线观看| 51国偷自产一区二区三区| 日韩欧美视频第二区| 欧美日韩1区2区| 国产精品嫩草影院com| 日本欧美一区二区| 成人午夜在线免费| 欧美大香线蕉线伊人久久| 欧美亚洲综合色| 久久天堂av综合合色蜜桃网| 亚洲成av人片在线| 91入口在线观看| 一区二区三区偷拍| 久久精品网站免费观看| 日韩精品亚洲专区| 5566中文字幕一区二区| 日本乱码高清不卡字幕| 中文字幕免费在线观看视频一区| 日产精品久久久久久久性色 | 久久久久久国产精品免费免费| 色婷婷亚洲婷婷| 国产日产精品一区| 蜜桃av一区二区| 国产精品欧美久久| 欧美日韩www| 日韩伦理av电影| 成人免费的视频| 一本久道久久综合| 国产欧美精品在线观看| 久久成人av少妇免费| 日本一区网站| 国产精品美女久久久久aⅴ| 国内成+人亚洲+欧美+综合在线| 久久99精品久久久久久久青青日本| 欧美夫妻性生活| 午夜视频在线观看一区| 国产精品一区二区三区不卡| 91精品国产丝袜白色高跟鞋| 日韩国产一区二| 欧美日韩精品综合| 国产日韩精品一区二区浪潮av| 国产一区二区三区免费看| 中文字幕一区二区三区四区五区六区| 国产精品美女久久久久aⅴ国产馆| 国产99一区视频免费| 色诱视频网站一区| 一区二区免费在线| 国产三区精品| 国产视频一区在线播放| 粉嫩蜜臀av国产精品网站| 91成人网在线| 无吗不卡中文字幕| 五月天综合网| 亚洲综合图片区| 欧美日韩国产不卡在线看| 国产精品美女久久久久av爽李琼| 97久久超碰精品国产| 精品噜噜噜噜久久久久久久久试看| 日本不卡1234视频| 中文字幕99| 日韩综合小视频| 亚洲欧美久久久久一区二区三区| 亚洲欧美日韩国产手机在线| 国产日韩一区二区三区| 国产精品麻豆网站| 国产无套精品一区二区| 国产精品美女久久久久aⅴ国产馆| 丁香五月网久久综合| 中文字幕精品综合| 精品日韩欧美| 亚洲综合色噜噜狠狠| 日韩亚洲一区在线播放| 亚洲精品视频免费看| 欧美精品一区在线发布| 亚洲综合激情网| 夜夜爽www精品| 蜜桃精品视频在线| 欧美一区二区视频网站| 成人综合日日夜夜| 欧美精品一区二区在线播放| 99re成人精品视频| 国产精品色哟哟| 欧美中日韩免费视频| 亚洲高清中文字幕| 一区二区三区av在线| 蜜臀av国产精品久久久久| 欧美日韩亚洲不卡| 国产成人精品在线看| xfplay精品久久| 国产精品v欧美精品v日韩精品| 最新日韩av在线| 伊人天天久久大香线蕉av色| 黄色成人免费在线| 国产亚洲va综合人人澡精品| 久久av免费一区| 婷婷开心激情综合| 在线播放一区二区三区| 666精品在线| 一区二区三区日韩| 欧美午夜精品一区二区三区| 99精品桃花视频在线观看| 亚洲欧洲精品一区二区三区不卡| 西游记1978| 国产不卡一区视频| 国产精品久久久久久亚洲毛片 | 激情五月综合色婷婷一区二区 | 97av自拍| 亚洲午夜激情av| 欧美一区二区三区免费在线看| 91在线观看免费视频| 日韩美女视频一区| 91福利在线观看| 91精品国产91久久综合桃花| 亚洲妇女屁股眼交7| 久久精品久久99精品久久| 精品午夜一区二区| 午夜精品福利一区二区三区蜜桃| 欧美撒尿777hd撒尿| 91一区二区在线| 丝袜诱惑亚洲看片| 久久影视一区二区| 色系网站成人免费| 成人免费在线看片| 玖玖九九国产精品| 国产精品高清亚洲| 欧美日本视频在线| 久久66热这里只有精品| 国产一区二区在线免费观看| 国产精品护士白丝一区av| 欧美无砖专区一中文字| 国产一区二区不卡视频在线观看| 精品中文av资源站在线观看| 亚洲欧美怡红院| 欧美成人aa大片| 自拍亚洲欧美老师丝袜| 国产不卡一区二区三区在线观看| 免费成人小视频| 国产精品国产三级国产a| 91超碰这里只有精品国产| 精品国产一区二区三区免费| 国产不卡视频一区| 奇米色777欧美一区二区| 国产精品久线观看视频| 在线综合+亚洲+欧美中文字幕| 午夜精品区一区二区三| 波多野结衣久草一区| 国产91在线观看| 美女脱光内衣内裤视频久久网站| 亚洲欧洲av在线| 2023国产精品| 在线观看av不卡| 日本精品免费| 国产精品对白刺激久久久| 国产99久久久国产精品| 奇米亚洲午夜久久精品| 亚洲精品免费电影| 国产精品乱码一区二区三区软件 | 日本成人在线网站| 亚洲精品国产精品乱码不99| 国产日韩成人精品| 精品国产一区二区国模嫣然| 欧美午夜精品久久久久久超碰| 午夜精品一区二区在线观看 | www.成人av|