《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于Simics的嵌入式系統的研究與開發
基于Simics的嵌入式系統的研究與開發
2015年電子技術應用第2期
韓德強,馮云賀,王宗俠,高雪園
北京工業大學 計算機學院,北京100124
摘要: 以VxWorks 6.9嵌入式操作系統為例,論述了在風河Simics全系統仿真環境下進行嵌入式操作系統的bootrom開發、操作系統的定制、設備驅動和應用程序的開發方法,探究出了利用Simics全系統仿真環境協助開發者進行嵌入式操作系統底層軟件、中間層軟件和上層應用軟件開發的新方法。
中圖分類號: TP316.5
文獻標識碼: A
文章編號: 0258-7998(2015)02-0031-04
Research and development of embedded systems based on Simics
Han Deqiang,Feng Yunhe,Wang Zongxia,Gao Xueyuan
College of Computer, Beijing University of Technology,Beijing 100124,China
Abstract: This paper takes VxWorks 6.9 embedded operating system as an example to discuss the development methodology of embedded operating system′s bootrom, device drivers and applications, as well as the customization of embedded operating systems under Simics full system simulation environment. In this way, we explore and summarize the new approach of using Simics full system simulation environment to help developers to develop underlying software, middle-layer software and upper-layer software of embedded systems.
Key words : full system simulation environment;Simics;VxWorks embedded operating system

  

0 引言

  當今嵌入式系統的功能日趨多元化,系統間通過總線、背板以及網絡通信的互聯日趨復雜,這導致嵌入式系統的調試、集成和測試變得相對困難。嵌入式軟件開發者經常因為缺乏硬件開發板等物理設備,導致開發效率低下。譬如在獲取硬件開發板實物之前,系統開發者很難提前開發基于硬件開發板的軟件程序;當硬件開發板數量有限時,并不能保證每個系統開發者都能拿到硬件開發板進行相關軟件的設計與開發。

  Simics作為一款快速的、功能精確的全系統仿真環境[1],較好地解決了上述問題。Simics為多種任務提供了一個共用框架來實現處理器設計、存儲器分級體系設計、元器件開發和測試、軟件質量的自動化測試、SOC虛擬原型、軟硬件協同仿真,以及固件、驅動程序和操作系統的開發等功能。首先,Simics提供了一個功能強大的虛擬平臺,可以模擬處理器、存儲器、板級硬件和復雜網絡系統等任意規模的硬件目標設備,解決了軟件開發者因缺乏硬件設備引起的問題。Simics允許開發者在硬件開發板實物到位之前,就開始進行相應的軟件開發、系統集成以及系統測試,從而縮短產品的上市時間。針對于目標設備的板級支持包(Board Support Package,BSP)、固件、實時操作系統、中間件和應用程序等目標軟件不需要進行任何更改,即可運行在Simics模擬的硬件平臺上[2]。其次,Simics提供了故障注入、虛擬系統時間的控制和硬件寄存器管理等功能,并且支持整個系統精確地、并可恒現地正向和回溯執行以及創建系統檢查點快照。嵌入式軟件開發者可以借助Simics特有的開發及調試方式,降低調試難度,提高開發效率。譬如,同時啟動或暫停操作系統與處理器的時鐘,檢查所有系統部件的狀態。

  美國風河系統公司推出的VxWorks嵌入式操作系統具備實時性好、可靠性高、可定制性強等特點。VxWorks嵌入式操作系統在實時嵌入式系統領域一直占據一席之地,尤其是在國防、航空、工業控制等領域具有統治地位。

  本文以VxWorks 6.9嵌入式操作系統為例,論述了在風河Simics全系統仿真環境下進行嵌入式操作系統的bootrom開發、操作系統的定制、設備驅動和應用程序的開發方法,探究出了利用Simics全系統仿真環境協助開發者進行嵌入式操作系統底層軟件、中間層軟件和上層應用軟件開發的新方法。

1 Simics全系統仿真環境架構

  借助于Simics全系統仿真環境,開發者不僅可以進行硬件建模,還可以模擬真實硬件環境中運行的所有軟件。Simics全系統仿真環境架構圖如圖1所示。Simics主要由虛擬硬件和目標軟件棧兩部分組成。虛擬硬件與真實的硬件設備相對應,開發者可以使用模型庫,利用C/C++、SystemC、Python或DML等語言進行處理器、內存、存儲設備等虛擬設備模型的開發和配置。目標軟件棧自底向上分為Hypervisor層、驅動層、BSP層、固件層和實時操作系統(Real Time Operating System,RTOS)層、應用軟件和中間件層。其中Hypervisor、驅動、BSP、固件和RTOS作為中間層負責上層軟件與虛擬硬件的交互。此外,Eclipse、風河Workbench、Tornado等常用的開發調試工具均可配合Simics進行協同開發[3]。Simics支持運行各種目標軟件,只要是能在實際硬件設備上運行的目標軟件,均可在相應的Simics全系統仿真環境下運行且無絲毫差異[4]。

001.jpg

  與VMware、VirtualBox等常用的虛擬機相比,Simics能夠支持包括Power PC、Intel x86、MIPS、ARM、M68K、SPARC在內的更多類型的處理器架構[5]。與EDA仿真工具相比,Simics能夠更加高效準確地運行目標軟件,并提供強大的調試功能。雖然EDA仿真工具能夠非常準確地仿真硬件設備,但速度往往不夠快,或者不能完整地運行的整個目標軟件。Simics能夠較好地克服EDA仿真工具的上述缺陷。

2 開發VxWorks操作系統的bootrom

  Simics可以運行風河公司官方提供的硬件目標設備模型以及開發者自定義的硬件目標設備模型。本文選用了風河官方提供的Model Library Intel Core i7 with X58 and ICH10 4.6(下文簡稱x86-X58-ICH10)硬件目標設備模型。該硬件目標設備模型可以仿真一個具有Intel Core i7處理器、X58北橋高速芯片組以及ICH10南橋的硬件系統。

  在Simics x86-X58-ICH10硬件模型上啟動VxWorks下載型映像,需要開發相應的VxWorks啟動引導程序bootrom。首先,使用風河Workbench 3.3集成開發環境創建VxWorks Boot Loader Project類型的工程。輸入工程名字,指定工程保存的位置,設置工程基于的BSP為Intel Nehalem BSP,設置工具鏈為gnu,設置bootrom格式為二進制bin格式,設置映像壓縮類型為壓縮型。然后,配置源代碼索引,完成工程的創建。

  如需修改VxWorks映像啟動時的默認IP地址,則需修改Intel Nehalem BSP目錄下的config.h頭文件。將VxWorks映像啟動時的IP地址設置為“172.21.28.64”的相應代碼如下所示:

  #if !defined (CDF_OVERRIDE) && !defined (PRJ_BUILD)

  #define DEFAULT_BOOT_LINE \

  "gei(0,0)host:vxWorks h=172.21.28.110 e=172.21.28.64 u=

  target"

  #endif

  修改完畢后,編譯該工程即可生成bootrom.bin映像。

3 定制VxWorks嵌入式操作系統

  首先,創建VxWorks Image Project類型的工程。輸入工程名字,指定VIP工程保存的位置。由于所定制的VxWorks鏡像將要運行在Intel Core i7處理器上,因此設置工程所基于的BSP為Intel Nehalem BSP,設置工具鏈為gnu。然后,配置SMP、IPv6、Debug和編譯器優化選項等。最后,配置源代碼索引,完成VIP工程的創建。

  完成創建VIP工程后,可在工程資源管理器選項卡中查看該工程的文件列表信息。其中Kernel Configuration是內核配置工具,幫助開發者快速添加或移除內核組件。vxWorks.bin、vxWorks.hex和vxWorks均是工程經過編譯后生成的映像。

  上述步驟只是定制了具有基本功能的VxWorks映像。由于VxWorks具有很好的可裁剪性,開發者可以根據需求添加相應的組件。以添加系統符號表組件INCLUDE_SYM_TBL_INIT及其依賴組件為例進行說明。首先選中Kernel Configuration,點擊右鍵,單擊Edit Kernel Configuration,或者直接雙擊Kernel Configuration打開組件配置列表。然后,按下Ctrl+F,打開內核組件查看器,輸入INCLUDE_SYM_TBL_INIT。在組件樹下會顯示找到的組件,點擊“Find”按鈕,組件配置列表自動定位到找到的組件。最后,選中該組件,點擊右鍵,選擇“Include”即可將該組件添加到內核中。其他組件的添加方式與上述步驟類似。組件添加完畢后,重新編譯映像。

4 開發VxBus架構的驅動程序

  自VxWorks 6.2引入了VxBus設備驅動架構,該驅動架構提供了針對操作系統和硬件設備的標準接口。VxBus架構的最核心功能是VxBus驅動程序能夠在風河Workbench開發環境中以組件的形式進行配置。開發者可以根據需求添加或刪除驅動組件,重新編譯VxWorks內核映像即可完成驅動的配置。在引入VxBus驅動架構之前,開發者若要添加或者刪除VxWorks驅動,則需要修改繁瑣的底層文件和代碼。譬如,配置VxWorks5.5驅動程序時,開發者需要修改BSP中的sysLib.c等文件。此外,非VxBus架構的驅動程序的可移植性差,更換BSP時需要重新移植驅動程序。

  開發基于VxBus的驅動,并將其集成到風河Workbench開發環境中,一般至少需要如下6個文件。其中組件描述文件、driverName.dc和driverName.dr被稱為驅動配置文件。

  (1)驅動源文件:實現驅動的邏輯;

  (2)組件描述文件:將驅動集成至Workbench開發環境中;

  (3)driverName.dc:提供了驅動注冊程序的原型;

  (4)driverName.dr:提供了一段調用驅動注冊程序的代碼;

  (5)README:自述文件;

  (6)Makefile:編譯信息。

  驅動源文件負責實現驅動的邏輯功能,從而實現對硬件設備的控制與操作。一個驅動可以包含一個或者多個驅動源文件以及可選的頭文件。

  組件描述文件提供了將驅動以組件的形式集成到風河Workbench開發環境中所需要的信息。VxWorks配置工具通過組件描述文件能夠將基于VxBus的驅動識別成獨立的組件,并集成到開發環境中。開發第三方驅動時,需要將組件描述文件拷貝到installDir\vxworks-6.x\target\config\comps\vxWorks路徑下,以便VxWorks配置工具能夠讀取該文件。

  driverName.dc文件聲明了驅動注冊程序的原型,其文件名要和驅動源文件保持一致。driverName.dr文件描述了調用驅動注冊程序的方法。若新增驅動至VxWorks源碼樹,則需在installDir\vxworks-6.x\target\config\comps\src\

  hwif路徑下執行如下指令,將新增驅動的配置文件合并到vxbUsrCmdLine.c文件中:

  makevxbUsrCmdLine.c

  README文件包含驅動的版本列表、文件列表以及所支持的設備等信息。在撰寫README文件時,可以參考風河官方提供的驅動的README文件。

  Makefile文件定義了編譯驅動的源文件的規則,并通過OBJ_COMMON宏指定了編譯出的目標文件列表。

5 Simics上啟動VxWorks操作系統

  在x86-X58-ICH10硬件模型上啟動VxWorks操作系統,首先要編寫Session腳本文件。Simics在加載bootrom之前需要BIOS的引導。BIOS執行完畢后,跳轉到bootrom繼續執行。具體的實現方法是:將bootrom加載到RAM中,然后將BIOS的INT 19控制句柄切換到bootrom所在的RAM處。代碼如下:

  #itl_nehalem架構的bootrom入口點

  $ram_boot_entry = 0x8000

  #bootrom.bin文件的完整路徑

  $bootrombin="d:/bootrom.bin"

  #VxWorks內核的完整路徑

  $kernel="d:/vxWorks"

  #創建具有磁盤和串口控制臺的x86-X58-ICH10虛擬機

  #設置磁盤大小為512 KiB,涵蓋了引導扇區(Boot Sector)

  $disk_size = 0x80000

  #啟用串口控制臺

  $uart0_text_console = TRUE

  #初始化x86-X58-ICH10硬件配置

  run-command-file"%simics%/targets/x86-x58-ich10/x86-x58-ich10-system.include"

  #初始化組件

  instantiate-components

  #設置系統信息,設置VxWorks可使用的CPU數目

  $system->system_info = "Viper - vxWorks 6.9 SMP"

  $system.mb.cpu0.core[0][0]->cpuid_logical_processor_count=0x1

  cpu-switch-time 0.0001

  #為BIOS設置一個假想的啟動磁盤

  #MBR直接跳轉到bootrom入口處

  $disk.hd_image.set 0x0 0xea 1

  $disk.hd_image.set 0x1 ($ram_boot_entry& 0xFF ) 1

  $disk.hd_image.set 0x2 (($ram_boot_entry& 0xFF00)>>8) 1

  $disk.hd_image.set 0x3 (($ram_boot_entry& 0xFF0000)>>16) 1

  $disk.hd_image.set 0x4 (($ram_boot_entry& 0xFF000000)>>24) 1

  #引導扇區(Boot Sector)設置為0x55AA,分區結束標志

  $disk.hd_image.set 0x1fe 0x55 1

  $disk.hd_image.set 0x1ff 0xaa 1

  #開始啟動VxWorks映像

  script-branch{

  local $bpID = (break $ram_boot_entry)

  local $con  = $system.serconsole.con

  #等待BIOS跳轉至bootrom入口處

  wait-for-breakpoint $bpID

  delete $bpID

  #加載bootrom

  load-file $bootrombin $ram_boot_entry

  $con.wait-then-write "auto-boot..." "*"

  $entry = ( load-binary $kernel )

  $con.wait-then-write -s "Boot]:"("g"+(hex $entry)+"\n")

  }

  上述代碼在x86-x58-ich10-system.include文件中初始化了x86-X58-ICH10的硬件配置。首先,設置了硬盤大小為20 GB,設置時鐘時間為當前本地時間。其次,設置CPU執行一條指令所需的平均時鐘周期數為1,CPU類型為core-i7,CPU內核數目為1,主頻為2 GHz。再次,設置主機名為viper,指定BIOS文件為seabios-simics-x58-ich10-1.6.3-20121004.bin,指定串口0作為文本控制臺,設置MAC地址為00:19:A0:E1:1C:9F。最后,使用create-chassis-x58-ich10命令創建X58-ICH10主板,并配置南橋和北橋。

  Session腳本編寫完畢后,即可啟動Simics。點擊“New Session from Script”按鈕,選中并載入編寫好的Session腳本。此時,Simics控制板上顯示將要啟動的操作系統的名字以及硬件模型的相關信息。VxWorks在x86-X58-ICH10硬件模型上啟動成功,如圖2所示。

002.jpg

  在VxWorks的啟動過程中,開發者可以在任意時刻暫停啟動過程,查看啟動輸出信息和相關的寄存器狀態。開發者還可以使用Simics特有的檢查點功能,將當前目標硬件平臺以及所有軟件的運行狀態完整地保存在檢查點文件中。該類型的文件可以在任意安裝了相關Simics硬件安裝包的環境下完全恢復現場。檢查點調試主要有兩大優勢。第一,Simics可以通過重載檢查點文件,恢復檢查點位置的軟硬件狀態,迅速并精確地回到用戶想要的位置;第二,檢查點文件可以在用戶之間進行共享,可以在世界任何地方重新載入,增強了開發團隊協作能力,大大提高了調試效率。上述調試方法在傳統的開發過程中是極難實現的。

  譬如,在遇到某個故障錯誤時,用戶可以暫停Simics并在命令行窗口中執行write-configuration “my-configuration”命令,創建一個名字為my-configuration的檢查點,保存故障現場。檢查點文件主要由info、config和鏡像文件等三類文件組成。info文件提供了開發主機名、主機上安裝的Simics產品列表等信息。config文件提供了硬件模型的配置信息。鏡像文件保存了當前軟硬件的運行狀態。檢查點創建完成后,用戶可以將my-configuration檢查點文件共享給其他用戶。其他用戶在Simics命令行窗口上執行read-configuration "my-configuration"命令即可重載檢查點,恢復軟硬件狀態,然后分析故障并進行調試。

6 開發具有圖形界面的VxWorks應用程序

  開發具有圖形界面的VxWorks應用程序需要用到風河媒體庫。風河媒體庫以源代碼的方式提供了基本的圖形、音頻和視頻開發技術以及開發框架。開發者需要自行編譯風河媒體庫文件,調用相應的API庫函數進行多媒體應用程序的開發。

  風河媒體庫主要由軟件開發工具包(Software Development Kit,SDK)和驅動開發工具包(Driver Development Kit,DDK)組成。SDK提供了豐富的API集,涵蓋圖形、輸入處理、多媒體、字體、內存管理和設備管理等操作。開發者可以使用SDK開發獨立于硬件設備之外的、具有較高可移植性的應用程序。DDK提供了完整的驅動程序參考集,這些參考集包括常用的硬件配置和API集,能夠幫助開發者快速開發驅動程序。

  本文開發了具有圖形界面的VxWorks啟動型內核模式應用程序。VxWorks啟動型內核模式應用程序代碼是VxWorks映像文件的一部分,VxWorks系統啟動后不需要單獨下載。當映像編譯和鏈接風河媒體庫時,應用程序代碼也會自動鏈接到風河媒體庫。由于只有內核和應用程序所需要的風河媒體庫才會被鏈接到內核中,VxWorks內核的尺寸較小。該類型的應用程序優點是VxWorks映像所需內存空間較小和映像尺寸較小,應用程序在VxWorks啟動后可以自動執行。

  所開發的圖形應用程序能夠繪制不同顏色和不同粗細的實線和虛線、多邊形、圓形和扇形等基本圖形,如圖3所示。在調試圖形應用程序時,可以使用Simics強大的正向和回溯執行功能,逐步顯示圖形的繪制過程。

003.jpg

7 總結

  本文論述了在風河Simics全系統仿真環境下進行VxWorks 6.9嵌入式操作系統的bootrom開發、VxWorks操作系統的定制、設備驅動和應用程序的開發方法,探究出了利用Simics全系統仿真環境協助開發者進行嵌入式操作系統底層軟件、中間層軟件和上層應用軟件開發的新方法。

  參考文獻

  [1] Wind River.Wind River Simics getting started 4.4[Z].2012.

  [2] Wind River.WindPO_Simics_0411_cn[Z].2011.

  [3] Wind River.Wind River Simics Eclipse user′s guide[Z].2014:5-13.

  [4] Wind River.Wind River推出功能更強大的全系統仿真工具Simics 4.6[Z].2011.

  [5] Wind River. Wind River Simics[Z].2012.


此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          国产精品wwwwww| 红桃视频国产一区| 在线欧美三区| 欧美中在线观看| 蜜桃av一区二区| 欧美一区二区三区视频| 欧美一区二区视频免费观看| 韩日视频一区| 国产精品99久久久久久久久| 国内精品嫩模av私拍在线观看| 你懂的一区二区| 亚洲日韩欧美视频| 精品粉嫩aⅴ一区二区三区四区| 久久精品人人| 亚洲精品久久久一区二区三区| 欧美精选午夜久久久乱码6080| 一卡二卡3卡四卡高清精品视频| 久久成人精品电影| 欧美一区二区三区久久精品| 欧美精品一卡二卡| 国产自产v一区二区三区c| 久久国产综合精品| 久久婷婷影院| 国产精品乱码久久久久久| 欧美日韩1区| 久久精品国产精品亚洲| 久久成人免费网| 性欧美xxxx视频在线观看| 9l视频自拍蝌蚪9l视频成人| 亚洲一区久久久| 国产一区二区久久久| 久久九九精品99国产精品| 悠悠资源网亚洲青| 影音先锋久久| 欧美另类在线观看| 国产精品综合色区在线观看| 亚洲国产成人精品久久久国产成人一区| 亚洲第一页自拍| 欧美一级久久| 亚洲人成毛片在线播放女女| **网站欧美大片在线观看| 久久av老司机精品网站导航| 亚洲一区二区三区视频播放| 欧美激情第1页| 在线观看福利一区| 国产精品影院在线观看| 曰本成人黄色| 国产精品www| 欧美日韩国产123区| 午夜精品久久久久影视| 一本久久综合亚洲鲁鲁五月天| 亚洲一区欧美一区| 欧美精品一区二区三区久久久竹菊| 国产热re99久久6国产精品| 欧美日韩在线精品| 在线观看一区二区精品视频| 国产日韩精品视频一区二区三区| 久久久av水蜜桃| 久久精品视频网| 欧美freesex8一10精品| 国产亚洲精品福利| 国产精品日韩一区二区三区| 国产精品theporn88| 欧美日韩精品是欧美日韩精品| 欧美在线一二三区| 午夜日韩福利| 欧美专区福利在线| 免费亚洲电影| 亚洲综合国产精品| 国产精品嫩草影院一区二区| 亚洲人成网站精品片在线观看| 裸体丰满少妇做受久久99精品| 亚洲精品韩国| 亚洲福利精品| 国户精品久久久久久久久久久不卡| 国产自产v一区二区三区c| 亚洲国产精品第一区二区| 亚洲人成绝费网站色www| 欧美人与性禽动交情品| 激情成人综合| 欧美日韩免费在线| 国产私拍一区| 猛男gaygay欧美视频| 亚洲精一区二区三区| 亚洲黄色小视频| 欧美专区中文字幕| 性欧美精品高清| 欧美日韩国产a| 欧美在线视频播放| **性色生活片久久毛片| 欧美四级剧情无删版影片| 欧美激情一区二区在线| 国产日韩欧美视频| 日韩一级黄色av| 亚洲欧美日韩精品久久亚洲区| 国产专区欧美专区| 亚洲国产欧美不卡在线观看| 在线欧美三区| 亚洲一区免费网站| 欧美不卡在线| 久久午夜羞羞影院免费观看| 亚洲欧美日韩国产中文在线| 欧美日本韩国一区二区三区| 韩国v欧美v日本v亚洲v| 国产精品毛片a∨一区二区三区| 午夜免费日韩视频| 久久久久天天天天| 国产精品日韩欧美一区二区三区| 亚洲黄色精品| 国产乱肥老妇国产一区二| 欧美精品aa| 亚洲自拍偷拍视频| 亚洲第一久久影院| 亚洲精品孕妇| 久久av二区| 欧美性理论片在线观看片免费| 久久久久在线| 亚洲男人影院| 久久综合一区二区| 一区二区三区福利| 久久婷婷成人综合色| 国产精品自拍一区| 亚洲亚洲精品在线观看| 久久露脸国产精品| 欧美大片在线观看一区二区| 欧美成人一区二区三区片免费| 麻豆免费精品视频| 噜噜噜在线观看免费视频日韩| 亚洲一区二区三区高清| 亚洲女人天堂成人av在线| 欧美日韩亚洲天堂| 一本久道久久综合婷婷鲸鱼| 亚洲精品女人| 激情成人av| 亚洲免费在线视频一区 二区| 欧美成人午夜激情在线| 一区在线影院| 国产日韩在线不卡| 99精品免费| 国产日韩欧美不卡在线| 麻豆精品视频| 一色屋精品视频免费看| 国产视频久久久久久久| 亚洲一区免费| 国产精品福利在线观看网址| 西西人体一区二区| 亚洲美女在线一区| 国产精品影院在线观看| 久久久久久噜噜噜久久久精品| 国产拍揄自揄精品视频麻豆| 久久精品91久久香蕉加勒比| 国产视频一区在线观看一区免费| 91久久极品少妇xxxxⅹ软件| 亚洲日本一区二区三区| 99热精品在线观看| 国产精品国产三级国产普通话蜜臀| 亚洲国产欧美一区二区三区丁香婷| 美女视频黄免费的久久| 在线视频欧美日韩精品| 欧美日韩在线播放一区二区| 影音先锋国产精品| 欧美日本国产视频| 欧美国产视频在线观看| 亚洲视频第一页| 国产亚洲精品激情久久| 免费在线看一区| 日韩视频在线观看一区二区| 亚洲天堂黄色| 日韩午夜av在线| 欧美亚洲一区二区在线观看| 国产精品老女人精品视频| 一本一本大道香蕉久在线精品| 夜夜爽av福利精品导航| 日韩午夜av在线| 亚洲国产婷婷香蕉久久久久久99| 国产精品日韩欧美综合| 欧美在线视频一区二区三区| 毛片一区二区三区| 国产欧美精品日韩| 亚洲精品乱码| 在线看一区二区| avtt综合网| 亚洲精品国产精品久久清纯直播| 免费在线欧美黄色| 中日韩午夜理伦电影免费| 欧美一区二区三区在线视频| 欧美色综合天天久久综合精品| 韩国女主播一区二区三区| 国产午夜亚洲精品不卡| 国产精品福利在线观看| 蘑菇福利视频一区播放| 亚洲美女av网站| 黑人一区二区| 日韩一区二区免费高清| 久久亚洲精品一区| 在线观看精品| 亚洲国产日韩美| 99国产精品国产精品久久| 激情久久五月| 亚洲午夜一区二区三区| 精品不卡在线| 欧美日韩精品免费在线观看视频| 亚洲一线二线三线久久久| 在线观看91精品国产入口| 亚洲图片在线观看| 亚洲伦理在线免费看| 亚洲乱码国产乱码精品精可以看| 猫咪成人在线观看| 久久国产精品久久久久久久久久| 国产日韩精品一区二区三区| 亚洲国产精品一区二区第一页| 99视频在线精品国自产拍免费观看| 欧美一区在线视频| 欧美视频一区在线| 久久午夜色播影院免费高清| 久久午夜羞羞影院免费观看| 久久精品水蜜桃av综合天堂| 国产精品久久久久婷婷| 欧美另类一区二区三区| 亚洲精品乱码久久久久久黑人| 亚洲永久免费视频| 国产精品日韩在线一区| 亚洲国产成人在线视频| 欧美在线91| 久久精品盗摄| av成人免费| 亚洲在线电影| 日韩午夜电影在线观看| 99re这里只有精品6| 欧美精品一卡二卡| 欧美在线影院| 欧美人在线视频| 国产伦精品免费视频| 亚洲一区二区三区中文字幕| 国产精品一级在线| 国产精品亚洲美女av网站| 亚洲国产精品热久久| 激情久久五月天| 在线观看一区视频| 亚洲天堂av电影| 欧美日韩国产精品一卡| 亚洲国产美国国产综合一区二区| 伊人男人综合视频网| 亚洲一区美女视频在线观看免费| 亚洲一区二区3| 国产欧美日韩亚洲| 欧美成人综合网站| 欧美麻豆久久久久久中文| 国产综合色产在线精品| 欧美高清在线视频观看不卡| 国产精品免费aⅴ片在线观看| 美女爽到呻吟久久久久| 欧美亚洲一区在线| 亚洲视频免费在线| 99精品视频免费观看| 欧美日韩国产首页| 久久丁香综合五月国产三级网站| 久久夜色精品国产亚洲aⅴ| 欧美日韩一区在线播放| 国产精品天美传媒入口| 欧美日韩不卡合集视频| 亚洲视频一区二区免费在线观看| 欧美三级日韩三级国产三级| 在线亚洲成人| 欧美日本精品一区二区三区| 伊人精品久久久久7777| 中国日韩欧美久久久久久久久| 午夜国产一区| 欧美福利视频| 一本色道久久综合亚洲精品小说| 亚洲欧洲在线一区| 欧美aⅴ一区二区三区视频| 狠狠色综合色综合网络| 免费人成精品欧美精品| 欧美成人午夜免费视在线看片| 久久久久久一区二区| 久久av资源网| 欧美午夜电影一区| 尤物在线精品| 伊人色综合久久天天五月婷| 一本久久综合亚洲鲁鲁| 久久久久久久综合狠狠综合| 国产精品日韩一区二区三区| 欧美日韩成人综合在线一区二区| 久久综合婷婷| 欧美在线在线| 久久国产色av| 久久国产天堂福利天堂| 国产亚洲人成网站在线观看| 欧美亚一区二区| 亚洲精品乱码久久久久久蜜桃91| 久久久青草青青国产亚洲免观| 99在线|亚洲一区二区| 欧美亚洲三级| 亚洲国产精品久久91精品| 国产精品久久久久毛片软件| 亚洲福利视频一区二区| 激情综合色综合久久综合| 亚洲一区二区高清| 蜜臀va亚洲va欧美va天堂| 欧美aa国产视频| 亚洲国产美国国产综合一区二区| 一区二区三区在线观看国产| 在线欧美一区| 欧美成人免费大片| 欧美成人综合在线| 西西人体一区二区| 最近中文字幕mv在线一区二区三区四区| 亚洲欧美日韩另类| 国内外成人免费激情在线视频| 久久不射网站| 欧美日韩亚洲综合一区| 日韩性生活视频| 亚洲激情在线视频| 久久成人综合网| 国产一区二区在线观看免费| 亚洲福利国产精品| 亚洲一区二区三区中文字幕在线| 欧美极品欧美精品欧美视频| 亚洲欧洲一区二区在线观看| 欧美午夜宅男影院在线观看| 欧美三级不卡| 欧美日韩免费一区二区三区视频| 日韩视频一区二区三区在线播放免费观看| 亚洲精品乱码久久久久久蜜桃麻豆| 国产一区二区三区av电影| 国产农村妇女精品一区二区| 国产精品一区一区三区|