精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Windows CE嵌入式軟件開發程序入門

開發
本文已為概略地介紹了面向Windows CE的WIN32 API,其目的是為了突出這種被廣廣泛應用的并且十分重要的API的一般的特點和優點。

對于全世界的成千上萬的程序開發者來說,Win32程序模式很常見。WIN32是臺式機或企業廣泛應用的強大目標,而且隨著Windows CE的涌現,它也成了嵌入式式系統的理想的程序界面形式。WIN32為Windows CE操作系統提供了一致的,文檔完備的并且函數強大的程序界面。

用WIN32在Windows CE平臺開發的程序同其他的WIN32程序差不多;這意味著程序開發者在開發新的面向Windows CE操作系統的應用程序的時候,能夠應用這些大量的WIN32的程序資源、第三代工具和外部的專門的技術。

具有WIN32編程經驗的程序員會發現創建新的(維護已有的)面向Windows CE設備(如手持電腦)的應用程序遠比創建類似的面向特殊的平臺或其他應用不廣的嵌入式式的操作系統的應用程序簡單。

嵌入式式系統的設計者們很快意識到Windows CE的強大,并且以驚人的快速使這個操作系統與它們的新產品一體化??墒?,許多嵌入式式軟件的開發者對Windows的事件驅動程序的一般技術不熟悉。對于這些軟件開發者來說,在他們開始他們第一次的基于Windows CE的項目之前,了解一些WIN32的基礎的知識是有好處的。

本文我們主要關注Windows CE操作系統,可是需要弄清楚的是大多數 Win32的應用編程接口對上面所有三種平臺都適用。這種同用的應用編程接口的優位有很多:容易登錄到應用程序中,有大量的已有程序的知識,范例和第三代軟件的資源。

平臺的差別

WIN32的應用編程接口定義了你作為一個程序員有用的Windows平臺。WIN32應用編程接口的目的是提供了一個常用的界面的設置,可是虛擬,不同的平臺由于不同的特性及硬件的約束,其應用編程接口也不同。WIN32平臺家族的一些成員支持全部的WIN32的應用編程接口(下簡稱API),而其他的只支持一部分的API。 為緊湊的、嵌入式式的應用軟件和小型設備而設計的Windows CE,WIN32的API最受限制。盡管如此, Windows CE 的API也是足夠完善的,能夠處理實際的大量的高級的嵌入式式應用程序。

WIN32與Microsoft基本類庫(MFC)

用WIN32界面設計并不是創建32位基于 Windows的應用程序的唯一的途徑。另一種重要的途徑是可在WIN32與 Microsoft Visual C 開發環境使用的Microsoft基本類庫(MFC)。MFC為許多(不是所有)的WIN32的API進行了高度的封裝(圖1)。通常,MFC提供了代表重要的WINDOWS的用戶界面對象的類,象窗口,對話框,畫刷,畫筆,和字體。MFC也為沒有任何用戶界面要求的嵌入式式應用軟件提供了相應的類。MFC類的成員函數調用WIN32API的函數,可以使復雜的應用程序的設計巧妙的簡化。

作為WIN32的程序員,你可以自由的選取使用C或C++和WIN32 API, 或者用C++與MFC。VISUAL C++開發系統對于所有的,包括 Windows CE 的WIN32的目標操作系統都支持以上的兩種開發系統。

WIN32程序模型

WIN32是超越所有32位WINDOWS平臺的常用和一致的(盡管并不全部相同)API。為了對WIN32 API有一個透徹的了解,以便高效的使用它的函數,了解一些底層操作系統的基礎十分重要。本節總結了32位操作系統和 Win32 API的最重要的概念,為你更深入的學習提供基礎。要得到更多更詳細的關于32位WINDOWS的體系結構、 Win32 API、以及其他的程序設計的主題,你可以讀一本關于那個主題出版的書。Microsoft出版社能提供一些這樣的書籍;在本文的最后,列著部分這些書的條目。

Windows CE的內核和Win32 API

那些對WINDOWS CE的人可能會有一個錯覺,認為它僅僅是現有的操作系統(如WINDOWS95)降級版。但事實上Windows CE是以小型的、高度用戶化的面向嵌入式式應用程序的操作系統開發起來的。在WINDOWS CE排除(或代替)了一些基于WINDOWS CE的應用軟件所不需要的操作系統特性的同時,它的內核也具有大量的其他Microsoft 32位的操作系統的最精華的東西。

例如在Windows NT下, 所有的在Windows CE下運行所應用軟件都運行在有優先權的多任務處理環境下,在被全保護的內存空間里。還有,象 Windows NT一樣,Windows CE支持本地統一的字符編碼標準碼字符串,使它更適于國際推廣。可是,不象其他的32位WINDOWS平臺,, Windows CE是十分緊湊和用戶化的,僅僅占用小于200K的內存。

Windows CE的WIN32 API比其他的32位的Windows操作系統的WIN32 API要??;它只包括大約相當于Windows NT的半數的API。但是 Windows CE的WIN32 API也有其他系統所沒有的特性。例如:通知API,它能夠操作系統的層次,而不是在運行的應用程序的層次上處理通知事件(如時鐘)。

觸屏的API和對Windows CE的數據庫的內置的支持是其他的操作系統所沒有的。觸屏的API使用于觸覺敏感顯示器的屏幕校正和用戶交互的管理容易實現,而數據庫的API提供了快速簡捷的訪問緊湊的、一般用途的數據庫的工具。另一個關于Windows CE的鮮為人知的方面是它的高度的模塊化;嵌入式式系統開發者(用Microsoft Windows CE內含的面向Visual C 的軟件包)能夠創建一個對于它們的獨特的硬件平臺和應用軟件用戶化了的Windows CE的版本。

Windows CE操作系統為設計提供了全新的設計環境。Windows CE的開發者幾乎不需要支持原有的應用程序或設備,所以操作系統在設計時可以考慮到應用一些最新的思想和應用程序,并且應用最先進的嵌入式式的32位微處理器產品作為它的硬件目標平臺。

這對于一個使用Windows CE平臺的WIN32 API的用戶來說意味著什么呢?這意味著對于現代的、32位的嵌入式式系統,它是一種更簡單的API,更加優化的目標操作系統。下面,我們將研究一些重要 的WIN32 API和Windows CE操作系統的內部的內容。#p#

程序和線索

了解WIN32 API和Windows CE操作系統的底層內容的第一步就是了解多任務和多線索索應用程序是如何組織的。WIN32術語中,程序被定義成一個正在運行中的程序實例。象其他的32位Windows 平臺一樣,Windows CE是一個多任務的操作系統,在一個運行中的程序里,它支持執行多個線索所。對于嵌入式式的應用程序,Windows CE的多線索索執行能力是它函數的重要的體現。這樣就使WIN32嵌入式式程序開發者優先考慮WIN32的線索索的創立與同步。

WIN32的線索索的處理同其他常用的嵌入式式的操作系統是有區別的。不象Unix或其派生的系統,32位Windows平臺從一開始設計就支持多線索索應用程序。線索索管理(時序安排,同步和資源管理)由內核來完成,程序開發者利用函數裝入內核(通過WIN32 API訪問)來建立和管理他們應用程序中的線索索。

例如,如果一個嵌入式式應用程序必須監視多個輸入設備并且在監視到一個或多個設備上不同步發生的事件的時候要作出恰當的反映。更進一步,如果這樣一個程序也需要更新一些共享的資源(如全局數據結構,磁盤上的文件,或其他設備)來作為與相關設備事件的反映。象這樣的一個程序需要一個可靠的線索索管理系統。這恰恰是WIN32 API能夠提供的函數:多個線索索能夠快捷并且容易的用WIN32 API線索索創建界面建立;同步線索索(多個線索索同時訪問一個數據)可以通過不同的方式完成,包括關鍵的段,有名稱和沒有名稱事件,以及互斥的目標。

Windows CE 被設計成在執行這些同步時占用最少的程序資源。這位對那些函數不強大的開發者來說十分重要;因為內核來負責線索索的管理,不需要使用另外的處理器來循環檢測程序或線索索完成,以及執行其他的無用的應用程序層次上的線索索管理。內核已構建好如何管理若干的線索索并且使程序高效地進行的程序。

對于包括若干個程序的應用程序,WIN32 向用于線索索、程序管理和同步提供了一套的完備的處理方法。這些線索索管理特性非常適于嵌入式式應用程序軟件,并且對Windows CE開發者是容易得到的。

消息

在32位windows平臺上運行的程序更專門化,程序的線索依賴于消息來初始化程序,控制系統資源并且與操作系統和用戶通信。 windows消息有各種各樣來源 ,包括操作系統,用戶活動諸如鍵盤輸入、鼠標、觸到屏幕,以及其它運行的程序或者線索。

當消息被送到線索時,這條消息被放置在消息隊列中等待最后處理(圖3)。每一條線索擁有完全不獨立于其它線索所擁有的消息隊列的消息隊列。線索一般有不斷運行的消息循環,恢復和處理消息。當隊列地沒有消息,并且線索不從事于其它任何活動,系統掛起線索,以節省中央控制器資源。

消息也能用于控制目的,初始化你的應用程序中各種類型的程序,并且他們能利用消息參數傳遞數據。例如,線索可能收到觸屏被激活的消息,消息參數可以表明X和Y為用戶行動的坐標。 在另一種類型的消息中,參數可以包括指針或者指向數據結構、窗口或其他對象的句柄。

中斷處理

作為一嵌入式的的軟件開發者,你可能最關心windows CE消息的處理規則是如何影響你的外部系統接口的時序的。windows CE通過細心設計和準確的衡量以保證其中斷時序以及其它相關的特位與嵌入式式的系統設計是適用的。

嵌入式應用程序經常有時間臨界的設備接口需要,需要發現并且在一最小的規定的時間之內對設備和系統事件作出反應。 為了支持這樣應用程序, windows CE包括高度優化中斷傳送,優先級和服務系統。

在windows CE內核中 ,中斷處理分成兩個明顯的部分:中斷服務程序(ISR )以及中斷服務線索(IST )。這個系統的目的是使ISR 盡可能小和快。在硬件的層次上,每一中斷要求(IRQ )線索路與一特定的軟件ISR聯系。當被觸發時,給定的ISR除了通知內核IST的位置外,還做少量的工作。一旦IST 被初始化(盡管沒必要完成),系統便準備好接受下一中斷并且處理下一中斷。

每一個中斷有一個優先級與他們相聯系。 windows CE為確定的線索時時序,利用基于優先級的時間片段算法。與每一ISR 被聯系的IST 是正常的線索,因此為IST設置優先級以滿足應用程序的時序需要是應用程序軟件開發者的責任。

這種將ISR 和IST在中斷程序中分開處理最終結果是,典型的中斷等待時間被大大地減少了,在中斷程序中發生不可接受的延遲的可能性也大大減少。此外, 嵌入式式軟件包 和windows CE內核的特性使有可能按習慣定制中斷時序和優先級,以滿足特定應用程序的需要。

內存管理

WIN32 API為向開發者提供了一套完備的和一致的接口。 當開發絕大部分應用程序的時候,軟件開發者不需要考慮特定內存結構。 然而對于許多嵌入式應用程序,特別是那些有嚴格的內存資源約束或者臨界時序的要求的,對內存被管理的方法有好的理解是重要的。

Windows的內存的一般結構對于不同的32 位Windows平臺是不同的,并且特殊的細節結構在同一32 位Windows操作系統下不同的處理機之間也不同。 (例如,Windows NT的內存結構在X86 平臺上與在DEC Alpha 平臺上的用法十分不同 。) 對于這段的討論,我們將專門集中在Windows CE操作系統的部分中進行。

#p#

Windows CE的存儲結構

像其它的32 位Windows平臺一樣,Windows CE操作系統也有虛擬內存的特性。內存總在某一時間被分配給應用程序一頁,頁的大小由系統設計者決定(并在操作系統為目標硬件平臺創建時被指定)。例如 在手持電腦,內存頁大小是典型的1KB 或者4KB 。

在初始化期間(導入),Windows CE創造一個獨立的被所有程序共享的4GB 虛擬地址空間。當程序引用一個虛擬的地址時,它被內核記錄在物理的內存上。 這使得應用程序軟件開發者不必去考慮目標系統內存的物理的布局。雖然所有程序共享單一地址空間,應用程序仍然可避免相互誤用。Windows CE 通過改變每頁的保護來保護程序內存,而不是分配給每一程序不同地址空間。

作為應用程序開發者,你可能不會太在乎目標系統的內存的物理的結構。 內存可以全部是隨機存取內存,或者它可能包括閃存卡或者硬盤驅動器。Windows CE操作系統為你管理內存資源,同時WIN32 API 向你提供必要的分配、使用和釋放的內存的接口。

然而,作為一個嵌入式的系統的設計者,你將需要細心考慮將在你新的硬件平臺上執行的應用程序的內存需要,并且全面考慮成本、速度和可靠性,平衡各種目標的沖突。 如果你為使用Windows CE開發一個新的硬件平臺 ,Windows CE的面向Visual C 的嵌入式軟件包包括資源可以幫助你做出這些決策,并且從而構成操作系統。

無論你的系統內存的配置如何,ROM(只讀內存)將占用十分重要的地位。不同于其它的32位Windows操作系統,Windows CE操作系統的代碼在只讀內存中,并且在那個只讀內存中原地執行。 依據你的產品需要,你也能選擇在只讀內存中放置應用程序代碼。 例如,Pocket Word,Pocket Excel和其它應用程序程序,包括在手持電腦只讀內存中被提供的。

存儲在ROM中的程序組在Windows CE下當地執行,所以嵌入式系統的設計者能夠只占用很少的RAM用于堆棧存儲的需要。相應地,你的嵌入式應用程序可以利用RAM既作為程序的內存又可作臨時存儲空間。

為了進一步的增加應用程序軟件的性能, Windows CE采用按需求將內存分葉;操作系統僅僅需要解壓縮并且裝入基于RAM的一小部分程序準備執行。ROM和 基于RAM的程序的靈活性與速度意味著基于Windows CE的設備能夠被構造成各種內存結構形式。

手持電腦的內存結構

典型的Windows CE的硬件平臺的內存結構是與基于 Windows系統的臺式電腦的內存結構十分不同的。 為了知道內存通常如何在Windows中被處理的 ,考查基于Windows CE的最普通的代表性的設備-手持電腦,是很有用的。

在手持電腦中,RAM被分割成兩個主要的部分:存儲內存和程序內存。 向兩部分分配的RAM的量能被手持電腦用戶修改(在限制范圍內)。在手持電腦中的存儲內存類似于臺式電腦的硬盤RAM。 它被用來存儲數據和非系統應用程序。它的三段中每一段被不同的一套WIN32 API 訪問函數:

1.Windows CE系統寄存器類似于Windows NT和Windows 95的操作系統的寄存器。你能利用WIN32 寄存器函數來操縱寄存器中鍵和數值。

2.被用戶安裝的應用程序和數據在一般文件存儲段中。Windows CE文件系統API 是標準WIN32 文件系統的子集函數。

3.對于數據庫應用程序,由Windows CE 數據庫API來存儲被管理存儲。這API 對Windows CE是唯一的 ,并且在其它的WIN32 平臺中沒有。

4.程序內存被用于系統和非系統程序的堆棧存儲。 非系統應用程序從存儲內存(或者或許PC卡)被取得,非壓縮的并且被裝入要執行程序內存中。

意外情況處理

的意外情況處理是強大的編程技術,相應一套的WIN32 API 起函數能容易的發現未預料到的錯誤狀況,并且使之恢復。結構化的意外情況處理,允許危險的段的代碼可能由于硬件資源的問題、設備的沖突和微小的編碼錯誤而導致失敗,以使這部分程序與其余的應用程序分開。這保護了應用程序,使之免于過早的終止或者產生敏感的系統問題。

結構化的意外情況處理包括定義一系列聲明作為保護,并且為第一套的聲明定義了另一個套聲明作為意外情況句柄。 意外情況句柄定義了一個或多個聲明來保障系統的運行,而不管保護聲明的現有的狀態。

在大多數32位Windows平臺上應用WIN32 API的程序員在運用意外情況句柄的時候通常有兩種選擇,用C或 C 編寫應用程序,并且利用WIN32提供的處理意外情況的宏,或者利用C 編寫應用程序,并且使用C 語言定義的意外情況處理函數。

對于這種程序的編寫,Windows CE的開發者因無法訪問C 的(面向Windows CE的Visual C 目前還不支持意外情況處理,所以必須使用WIN32 API的意外情況處理宏。為了應用WIN32意外情況處理,你將使用一套在WIN32 API 中被定義的宏。 下面一段代碼顯示其基本概念:

  1. __try {  
  2. // The statements in here have a possibility of failure  
  3. // and so are guarded.  
  4. }  
  5. __finally {  
  6. // This is the exception handler. This code will execute  
  7. // after the guarded statements, no matter what happened  
  8. // in the guarded block of code above.  
  9. }  
  10. // This code will execute normally if the program flow allows  
  11. // it (no goto, exit, etc.) 

意外情況的處理對諸如在嵌入式的應用程序中的那些普通的多線程序是有用的。WIN32結構化意外情況處理宏 是一種容易并且強大的保護應用程序使之免受未預料到的失敗的方法。

#p#

設備處理

有無數硬件設備(外圍設備)與應用Windows的平臺(Windows NT以及 Windows 95)臺式機是兼容的,并且每一年都有更多的東西在市場上涌現。而Windows CE的平臺,通常不支持臺式計算機支持的設備的很多品種的外圍硬件。

然而,為一嵌入式的的系統創造可靠的設備接口在嵌入式的程序設計的過程中,是比較富有挑戰性的部分。 這部分地因為典型的嵌入式的系統接口的時序與其它可操作性的需要遠比臺式電腦計算系統和應用程序的更難。幸運地,WIN32 API 提供了一套豐富使設備接口方法,使得設備接口程序寫起來更容易并適合于特定嵌入式的系統的需要。

WIN32 API是如何幫助的 WIN32 API在你的硬件平臺為你提供一套一致的基于流的接口。 為了使用設備,你首先利用適合于設備類型的函數打開它。 對于大多數設備,你利用的函數是在下列例子中的CreateFile 函數:HANDLE hPort = CreateFile("COM1"); // Open the serial port。

CreateFile函數打開規定的設備(串口)并且返回用于以后在該種設備上的操作(例如讀和寫)的句柄。 各種各樣函數的(包括ReadFile ,WriteFile ,LockFile 和其他)接受這個句柄為參數,并且允許你(例如)讀寫數據,檢查設備狀態,并且將從其它程序的存取被鎖住的設備或者文件列入清單。

文件輸入輸出操作被處理成與其它設備類型利用同樣的API 函數,并且在文件之內包括隨機的訪問的函數。 被若干程序或線索同時訪問的設備和文件可以分區域地利用LockFile函數鎖定。在你的應用程序已完成設備或者文件之后,它將調用CloseFile 函數關閉設備,并且進行必要的清除設備的工作。

同步和異步的設備的處理

嵌入式系統的經常有關鍵的設備有時序需要。 對于這個理由,對底層的操作系統的軟件接口必須能夠在軟件層次上管理同時(或者幾乎同時)的系統中不同類型的設備的事件。 WIN32 API 支持對設備的同步和異步的訪問,并且用復雜的設備接口設計。

同步的接口是那些在軟件需要從設備得到動作的要求,然后等候結果。在同步的設備接口中,最常用的是前面已經提到的ReadFile 以及WriteFile函數。當在同步I/O中使用的時候,不論你與磁盤上的文件、并口或是串口、一個通道或其它類型的設備接口時,都是公用的并且是兼容的。

異步的接口是那些設備要求應用程序為之服務的接口。一個異步的設備的好的例子是鍵盤。適當和適時的處理異步事件,對于許多嵌入式應用程序是至關緊要的。幸運的是,為Windows CE編寫的設備驅動程序能支持同時的多線索訪問驅動器。這大大地簡化異步輸入設備的處理。

你所訪問的給定的設備的方法,取決于那個設備的特性和你開發的特定的應用程序的要求。如果你在基于你的Windows CE的硬件平臺上創建一個全新的設備(和設備驅動程序),你可以既從你的硬件設備和驅動器的層次,又可以從應用程序的層次有許多選擇。

定制設備和WIN32

盡管嵌入式系統可以支持較小數量的設備,嵌入式系統能形成唯一的和挑戰型的設備接口問題。當你開發一個新的硬件平臺并且它支持輸入輸出設備,在模你設計的不同層次上,你將不得不作出決策和折衷方案。例如,除非你只使用通常的off-the-shelf硬件,你必然套寫用戶設備驅動程序支持你的新外圍設備。

你也能需要配置你的Windows CE來包含一些設備處理必要的組件。同時從應用程序的層次,為滿足新的設備的需要,你將需要寫接口代碼。在有如此多變量的情況下,你如何保持你的設備的一定程度的一致行呢?答案就在WIN32 API 中。在WIN32 API環境下,寫你的目標驅動程序,你有理由自信的認為那些新設備的接口的應用程序開發者能夠創造可信的,可檢驗和可維護的基本代碼。Windows CE設備驅動程序開發工具包,或者簡稱DDK ,提供了如何創造WIN32功能強大的設備驅動程序信息和范例。

設備的類型

Windows CE支持兩種基本類型的設備驅動程序,內置固化的驅動程序和可安裝的驅動程序。 如同名字所暗示的,內置固化的驅動程序是被指定用于一個給定的Windows CE的硬件平臺的設備。Windows CE的嵌入式系統設計者有責任提供一個內置固化的驅動程序來驅動系統所包括的設備。例如,許多Windows CE平臺有一個LCD 觸摸屏。這些平臺的制造廠為他們的設備提供設備驅動程序,使此硬件可以用于Windows CE操作系統。在完備的系統中,這些內置固化的驅動程序位于Windows CE只讀內存中內核的周圍。

可安裝的設備驅動程序是被設定為為了任何與Windows CE 硬件平臺臨時連接的外圍的設備。這個類型的設備包括:調制解調器,打印機,數字的照相機,PC卡,以及任何數量的其它外部的設備。 可安裝的設備驅動程序可能位于只讀內存中,但是更典型與臨時性的設備的接口的應用程序軟件一同裝載。

文章轉自IT人生的空間,

原文地址:http://hi.baidu.com/330997201/blog/item/b198b9caffbcc214bf09e63e.html

【編輯推薦】

  1. Windows CE應用程序可移植性淺析
  2. Windows CE平臺下SDRAM的設計方案
  3. 關于Windows CE Emulator的使用介紹
  4. Windows CE在嵌入式工業中的應用思考
  5. Windows CE下串行通信的實現

 

責任編輯:王曉東 來源: 百度空間
相關推薦

2009-11-07 19:15:51

嵌入式軟件開發

2022-02-14 23:17:16

Gitlab嵌入式工具

2010-03-30 15:44:16

Windows CE

2009-05-28 13:39:13

Windows CE

2022-01-13 23:15:29

Docker開發嵌入式

2011-03-02 15:43:29

Windows CE

2009-12-16 15:41:40

嵌入式Linux入門

2011-01-14 13:13:23

嵌入式Linux開發

2011-12-22 17:31:51

技術門診

2022-02-16 22:30:51

嵌入式軟件開發工具

2023-10-31 11:12:20

Windows微軟

2011-04-18 11:34:34

嵌入式軟件測試

2011-06-21 11:30:31

嵌入式 Qt

2021-12-26 18:30:56

嵌入式ARM鏈接

2009-12-09 10:50:53

嵌入式Linux

2009-07-17 16:06:59

ARM嵌入式開發

2023-01-27 23:46:36

嵌入式軟件技巧

2011-08-16 16:32:13

Linux驅動程序

2022-12-14 08:06:08

2023-01-04 09:37:16

點贊
收藏

51CTO技術棧公眾號

国产精品无码av在线播放| 亚洲精品免费av| 无码少妇精品一区二区免费动态| 成人午夜亚洲| 亚洲一级在线观看| 亚洲国产婷婷香蕉久久久久久99| 亚洲av无码乱码国产精品久久| 性色av一区二区怡红| 久久久精品视频在线观看| 国产白嫩美女无套久久| 亚洲午夜国产成人| 欧美午夜影院在线视频| 最近中文字幕免费mv| 深夜福利视频在线免费观看| 精品综合久久久久久8888| 97视频在线看| 国产精品老熟女一区二区| 国产免费av一区二区三区| 精品免费日韩av| 成人性生交免费看| 三级中文字幕在线观看| 亚洲乱码中文字幕| 亚洲精品一卡二卡三卡四卡| 天堂中文字幕在线| 国产成a人亚洲| 国产精品一区二区女厕厕| 国产高潮久久久| 亚洲午夜91| yw.139尤物在线精品视频| 国产人妻一区二区| 免费看成人人体视频| 日韩三级av在线播放| 久久这里只精品| 国模一区二区| 一本大道av伊人久久综合| 一本久道高清无码视频| 性xxxxfjsxxxxx欧美| 中文字幕制服丝袜成人av | 亚洲第一福利专区| 精品国产麻豆免费人成网站| 台湾佬美性中文| 精品国产伦一区二区三区观看说明| 欧美日韩久久久一区| 嫩草av久久伊人妇女超级a| gay欧美网站| 一本色道**综合亚洲精品蜜桃冫| 一二三四视频社区在线| 91福利区在线观看| 亚洲成人综合视频| 青娱乐自拍偷拍| av中文字幕在线观看第一页| 亚洲国产日韩综合久久精品| 日韩一级免费看| 欧洲成人综合网| 亚洲一二三四区| 日韩 欧美 视频| 高清毛片在线观看| 亚洲成人精品一区二区| 分分操这里只有精品| a级片在线免费| 午夜精品一区二区三区电影天堂| xxxx18hd亚洲hd捆绑| av中文资源在线资源免费观看| 婷婷国产v国产偷v亚洲高清| 日日橹狠狠爱欧美超碰| 欧美日韩亚洲国产| 欧美人牲a欧美精品| 久久久精品高清| 深夜激情久久| 日韩精品免费在线观看| 精品人妻无码一区| 91精品国产成人观看| 色综合久久中文字幕综合网小说| 国产午夜激情视频| 久久综合亚州| 成人欧美一区二区三区在线| 性猛交xxxx乱大交孕妇印度| 97精品国产97久久久久久久久久久久 | 日韩亚洲精品电影| 久久亚洲国产成人精品性色| 亚洲美女一区| 国产精品美女免费看| 97视频免费在线| 成人av午夜电影| 日本成人三级电影网站| 黄色成人在线观看| 五月天丁香久久| 最新中文字幕免费视频| 日本精品视频| 亚洲欧洲日韩国产| 亚洲色图综合区| 免费国产自线拍一欧美视频| 成人在线一区二区| 亚洲欧美日韩动漫| 国产精品传媒视频| 中国丰满人妻videoshd| 亚洲青青一区| 国产视频在线观看一区二区| 欧美h片在线观看| 亚洲美女91| 成人久久一区二区| 日韩在线免费播放| 亚洲精品网站在线观看| 成人羞羞国产免费网站| 免费一级欧美在线大片| 亚洲天堂色网站| 国产一级视频在线观看| 麻豆91在线播放免费| 久草精品电影| 日韩av官网| 欧美日韩成人综合| 久久久午夜精品福利内容| 亚洲国产精品日韩专区av有中文 | 四虎国产精品成人免费影视| 日韩电影免费观看中文字幕| 天天看片中文字幕| 久久成人免费网| 日本精品一区二区三区高清 久久| 狂野欧美激情性xxxx欧美| 欧美日韩免费一区二区三区| 插吧插吧综合网| 一本久道久久综合婷婷鲸鱼| 亚洲精品免费一区二区三区| 不卡在线视频| 在线观看欧美精品| 北岛玲一区二区| 亚洲每日在线| 国产精品自拍首页| 美女91在线| 日韩免费一区二区三区在线播放| 成人涩涩小片视频日本| 免费高清在线一区| 日韩av一区二区三区在线 | 久久精品欧美一区| 国产精品午夜视频| 国产黄色免费在线观看| 色婷婷av久久久久久久| 中文字幕丰满乱子伦无码专区| 尤物在线精品| 国产精品国产精品国产专区蜜臀ah| 久草中文在线观看| 欧美一二区视频| 可以直接看的黄色网址| 国产一区999| 国产一二三四区在线观看| 精品一区91| 欧美乱大交xxxxx另类电影| 国产熟女一区二区丰满| 亚洲男人的天堂网| 伦伦影院午夜理论片| 欧美.日韩.国产.一区.二区| 91国产丝袜在线放| 青春草在线免费视频| 日韩欧美一区二区在线视频| 九九热精彩视频| 成人av综合一区| 国产视频一视频二| 精品免费一区二区| 国产日韩一区在线| 影音先锋男人在线资源| 亚洲成人av资源网| 国产精品第5页| 欧美国产一区在线| 国产毛片久久久久久| 牛牛国产精品| 国外成人免费视频| 国产v综合v| 久久伊人色综合| 欧美熟女一区二区| 欧美性色xo影院| 亚洲精品自拍视频在线观看| 国产精品一区免费视频| 男女啪啪免费视频网站| 少妇精品久久久| 国产在线不卡精品| 国产偷倩在线播放| 亚洲天堂av综合网| 国产伦精品一区二区三区免.费 | 国产 日韩 欧美在线| 国产剧情在线观看一区| 亚洲综合在线做性| 麻豆网站免费在线观看| 色偷偷91综合久久噜噜| 国产91麻豆视频| 日本高清不卡一区| 精品爆乳一区二区三区无码av| 久久综合精品国产一区二区三区| mm131国产精品| 亚洲伦理一区| 欧美少妇一级片| 色婷婷久久久| 91免费版网站入口| 免费日韩电影| 久久97精品久久久久久久不卡| 精品美女视频在线观看免费软件| 日韩午夜激情免费电影| www.国产com| 亚洲精品国产一区二区三区四区在线| 欧美亚一区二区三区| 精品一区二区综合| 粉嫩虎白女毛片人体| 中文字幕一区二区三区在线视频| 日本高清一区| 精品无人区一区二区| 成人免费福利在线| 亚洲不卡系列| 97超碰国产精品女人人人爽| 国产cdts系列另类在线观看| 亚洲三级黄色在线观看| 刘亦菲毛片一区二区三区| 欧美精三区欧美精三区| 高潮毛片又色又爽免费| 亚洲成年人影院| 欧美激情图片小说| 国产精品麻豆网站| a级在线免费观看| 99re热这里只有精品视频| 欧美一区二区三区影院| 蜜臀国产一区二区三区在线播放 | 国产精品变态另类虐交| ●精品国产综合乱码久久久久| 无码 人妻 在线 视频| 91香蕉视频黄| 毛茸茸free性熟hd| 福利一区二区在线| 搡的我好爽在线观看免费视频| 男女性色大片免费观看一区二区| 日本精品久久久久中文字幕| 99在线观看免费视频精品观看| 亚洲色图都市激情| 综合日韩在线| 一级一片免费播放| 水蜜桃久久夜色精品一区| 日本一区二区在线| 国产99亚洲| 秋霞久久久久久一区二区| 美日韩中文字幕| 欧美日本韩国在线| 精品一区三区| 日韩精品久久久| 精品国产乱码久久久久久蜜坠欲下| 欧美另类视频在线| 精品视频99| 亚洲.欧美.日本.国产综合在线| 国产欧美一区二区三区精品观看| 日本一区二区三区四区高清视频| 精品国产一区二区三区四区| 日本一区视频在线播放| 成人短片线上看| 午夜啪啪免费视频| 欧美日韩三级| www在线观看免费| 午夜亚洲影视| 国产精品久久久毛片| 九九久久精品视频| 黑人巨大猛交丰满少妇| 粉嫩一区二区三区在线看| 亚洲一二三四五| 2020国产精品| 国产一二三四视频| 亚洲日本成人在线观看| 久草网在线观看| 丁香五六月婷婷久久激情| 黄色av网站免费观看| 在线精品视频一区二区三四| 91tv国产成人福利| 欧美大片在线观看一区二区| 性xxxxbbbb| 在线观看不卡av| 在线三级中文| 欧美最猛性xxxxx亚洲精品| 欧美日韩精品一区二区三区视频| 成人福利网站在线观看| www.成人网| 天天好比中文综合网| 你懂的亚洲视频| 日本精品一区在线观看| 麻豆久久久久久久| 日韩女优在线视频| 日本一区二区三级电影在线观看| 日韩在线不卡av| 日韩欧美中文在线| 999免费视频| 亚洲精品视频在线播放| 美女黄视频在线观看| 97视频免费看| 亚洲精品一区av| 精品国产一区二区三| 91欧美在线| 日本www在线播放| 精品一区二区三区影院在线午夜 | 日韩美女视频一区二区| 日韩手机在线观看| 欧美日韩亚洲另类| 无码精品黑人一区二区三区| 久久久国产精品一区| 亚洲欧美韩国| 99porn视频在线| 欧美三级情趣内衣| 黄色一级视频片| 国产乱妇无码大片在线观看| 国产女主播喷水高潮网红在线| 亚洲精品中文在线观看| 小泽玛利亚一区二区三区视频| 精品国精品国产尤物美女| 777电影在线观看| 欧美亚洲另类视频| 中文在线综合| 中文字幕欧美人与畜| 玖玖精品视频| 一级做a爰片毛片| 一区二区三区日韩| 91 中文字幕| 中日韩美女免费视频网址在线观看 | 国产精品美女久久久久aⅴ| 国产精品男女视频| 亚洲成人久久网| 污污的视频在线观看| 国产一区欧美二区三区| 国产精品一区二区三区av麻| 日韩精品视频久久| 99精品黄色片免费大全| 久久久久久久久久91| 在线综合+亚洲+欧美中文字幕| 川上优的av在线一区二区| 日本老师69xxx| 日韩黄色网络| 女性女同性aⅴ免费观女性恋| 国产91丝袜在线18| 久久久www成人免费毛片| 91精品国产91久久久久久一区二区| 婷婷五月在线视频| 国产精品视频中文字幕91| 国产精品日韩精品中文字幕| 激情六月丁香婷婷| 久久噜噜亚洲综合| 欧美brazzers| 亚洲天堂av在线免费| 日本成人片在线| 日韩精品一区二区三区丰满| 久久精品导航| wwwww黄色| 欧美日韩亚洲综合在线| 麻豆传媒在线完整视频| 91网站免费观看| 欧美久久99| 黄色网址在线视频| 日韩欧美在线观看视频| 麻豆app在线观看| 国产精品av电影| 日韩精品欧美| 免费不卡av网站| 一级特黄大欧美久久久| 日韩一级片免费在线观看| 91成人国产在线观看| 思热99re视热频这里只精品| 少妇性饥渴无码a区免费| 欧美国产一区在线| 国产毛片毛片毛片毛片毛片| 欧美黑人巨大精品一区二区| 青青视频一区二区| 久久精品免费网站| 1000精品久久久久久久久| 免费的黄色av| 国产成人一区二区三区小说| 91欧美在线| 亚洲欧美日韩色| 日本韩国欧美在线| 麻豆传媒在线观看| 国产区一区二区| 日韩av一区二区三区| 国产精品白丝喷水在线观看| 精品国产免费久久| a成人v在线| 欧美精品在欧美一区二区| 91女神在线视频| 中文字幕人妻丝袜乱一区三区| 欧美床上激情在线观看| 欧美日韩导航| 四季av一区二区三区| 亚洲图片欧美一区| 成人av一区| 国产免费一区二区| 久久99精品久久只有精品| 国产精品9191| 自拍偷拍免费精品| 久久久久久毛片免费看 | 99久久99精品久久久久久| 波多野结衣激情视频| 欧美极品欧美精品欧美视频 | 国自产拍偷拍精品啪啪一区二区| 欧美经典一区二区三区| 亚洲av无码一区二区三区性色| 国产精品电影观看| 激情成人亚洲| 亚洲不卡在线播放| 亚洲欧美国产va在线影院| 最新国产精品精品视频| 国产九九热视频| 色哟哟欧美精品|