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

WinCE啟動失敗的原因與解決辦法分析

開發
本文通過對一次真實嵌入式項目的分析,總結了WinCE啟動失敗的幾大原因及解決方案。

本文通過一個真實的嵌入式項目進行說明。文中的嵌入式系統用的是ARM處理器+WinCE平臺,項目的目的是要把WinCE平臺從舊版本移植到WinCE6.0平臺上。但結果是這個WinCE系統在啟動的時候經常會出現失敗,而且每次失敗的原因都莫明其妙和不盡相同。這使到我們開發團隊每個人在啟動WinCE系統時都心驚肉跳,非常擔心系統又再一次出現讓人意想不到的失敗。這種頻繁的啟動失敗對開發團隊來說顯然是一種讓人難以忍受的折磨。

為什么會出現這種情況呢?經過幾個晚上通宵達旦的加班分析和研究,原來主因是系統的引導過程、內核加載過程、OAL啟動過程和硬件驅動加載過程時都存在可能導致的失敗的隱憂。本文通過對以上因素進行分析,并提出相應的解決辦法。但由于WinCE啟動失敗會非常取決于硬件平臺,因此在具體應用時需要綜合考慮和分析。

一.什么是WinCE啟動過程?

WinCE系統在啟動時一般需要三個基本元素:引導初始化、內核加載和OAL初始化等。它們的作用是要完成引導過程的初始化和操作系統執行環境的初始化。其中引導初始化是由引導工具BootLoader完成,主要是完成板級、片級的初始化。例如,通過設置寄存器來完成硬件的初始化,如設置時鐘、設置中斷控制寄存器、完成內存映射和初始化MMU的工作方式等。內核加載是指將操作系統內核映像從只讀存儲器加載或者拷貝到系統的RAM中并執行。OAL(OEM Adaption Layer,即原始設備制造商適配層)是位于操作系統的內核與硬件之間的適配層,也是連接系統內核與硬件的樞紐,它具有屏蔽硬件設備細節以及抽象硬件功能的作用。而OAL初始化則是指通過一組函數來體現出0AL屏蔽和抽象硬件設備的作用。

此外,如果要WinCE系統成為完整的操作系統,還得加上硬件驅動程序、硬件接口程序和應用程序組。因此,即使在一個簡單的嵌入式系統里,WinCE系統啟動時是需要加載內核和加載許多組件或驅動程序。

現在讓我們來看看WinCE系統在啟動時調用函數的順序:①CPU執行引導向量,跳轉到硬件初始化代碼,即Startup函數。②在start up函數完成最小硬件環境初始化后跳轉到KernelStart函數,來對內核進行初始化。③Kernelstart函數調用OEMInitDebugSerial完成對調試串口的初始化;同時調用0EMInit函數來完成硬件初始化工作以及設置時鐘、中斷;最后,調用OEMGetExtensionDRAM函數來判斷是否還有另外一塊DRAM。至此,內核加載完畢。由此可見,WinCE系統啟動的重中之重是Startup函數的正確加載,如果這個Startup函數調用失敗,則會使到系統在啟動頻繁出錯。WinCE啟動時調用函數順序如下圖所示:

因此,WinCE啟動失敗可能會存在于引導初始化失敗、內核加載失敗、0AL函數初始化失敗、驅動程序加載失敗、組件加載失敗和應用程序加載失敗。也就是說,WinCE啟動失敗一方面可能是在Startup函數的處理上,例如引導初始化和OAL初始化。另一方面還存在于驅動程序和組件自啟動的失敗上,例如基本的驅動程序、注冊表配置或自運行的程序等。

就不能被使用。所以,當注冊表在啟動時加載錯誤或者注冊表配置有錯誤時,也是會導致WinCE系統啟動失敗的。

二.導致WinCE啟動失敗的主因分析

Windows CE在啟動時為什么會失敗呢?這個問題也一直讓我頭痛。因為Windows CE啟動失敗既有軟件因素,也有硬件因素。例如,可能是WinCE的啟動引導過程有問題、也許是內核加載時有問題、也許是OAL函數調用的隱性問題或者硬件設備本身的問題造成的。所以,解決起來比較麻煩和比較耗時間,也是最讓我們頭疼的事情。

一般來說,解決和分析WinCE啟動失敗有一個原則,就是"先軟后硬"的原則,也就是說要先分析軟件因素再到硬件因素。本文主要是在ARM微處理器和Windows CE 6.0平臺上進行分析軟件因素造成的失敗。

(1)引導程序BootLoader導致的失敗

在Windows CE系統中,整個系統的加載啟動任務由BootLoader來完成,BootLoader是在WinCE內核運行之前運行的一段小程序。通過這段小程序,可以初始化硬件設備、建立內存空間的映射圖和初始化MMU等。從而將系統的軟硬件環境帶到一個合適的狀態,為調用操作系統內核準備好環境。因此,只有在引導程序正確的完成自己的任務后,才會將控制權移交給內核。

在WinCE平臺上,引導裝載程序是在硬件上執行的第一段代碼,通常將引導程序放置在不易丟失的存儲器的開始地址或者是系統冷啟動時PC寄存器的初始值。如果這段小程序代碼編寫錯誤,則系統無法完成第一步的引導操作,這是導致啟動系統失敗的第一個因素。

①BootLoader初始化硬件失敗

BootLoader第一個功能是要實現板級和片級初始化硬件,主要是把CPU初始化到一已知狀態。在BootLoader目錄下,會發現一些.s文件,可能會是init.s或者是reset.s等,這樣的文件是CPU加電后最先執行的代碼。StartUp 函數是BootLoader的入口函數。該函數一般是使用匯編語言編寫,與CPU關系非常緊密,能完成初始化CPU、內存等核心硬件。然后,BootLoader在平臺初始化完畢后就可以在不用人工干預的情況下自動加載WinCE內核了。但如果BootLoader在初始化硬件時失敗,就會直接導致系統的啟動失敗了。

②BootLoader加載內核時失敗

一般在平臺調試完畢后,BootLoader就會加載WinCE內核映像,這也是BootLoader的功能之一。WinCE內核映像文件通常叫做nk.bin,它是Windows CE二進制數據格式文件,不僅包含了有效的程序代碼,還有按照一定規則加入的控制信息。

在系統啟動時BootLoader可以通過兩種不同的方式來加載WinCE內核文件nk.bin。一種是下載模式,另一種是本地啟動模式。本地啟動模式也稱為自主模式,即 BootLoader 從目標機上的某個固態存儲設備上將操作系統加載到 RAM 中運行,整個過程并沒有用戶的介入。而下載模式則是目標機上的 BootLoader 將通過串口連接或網絡連接等通信手段從主機(Host)下載文件。當BootLoader正確的把nk.bin解壓到RAM后,就會把CPU控制權交給CE內核。因此,如果Boot Loader處理不當,就可能會造成加載和解壓nk.bin文件的失敗,這樣自然也就會造成系統啟動的失敗了。

(2)OAL導致的啟動失敗

OAL(OEM Adaptation Layer)是指OEM 適配層,它是位于Windows CE內核和硬件之間的一層適配層,是OAL各個模塊代碼被編譯后(.lib)和其它內核庫鏈接到一起形成Windows CE的內核可執行文檔NK.EXE。OAL包括了和系統硬件通訊的最底層代碼,內核是通過OAL跟硬件進行交互。邏輯上,OAL是介于CE內核和設備硬件之間的一個代碼層,是一個抽象的概念。物理上,OAL和其它一些庫一起鏈接成可執行文件。

與以前的Win CE舊版本不同的是,在Win CE 6.0中內核(Kenerl)和OEM代碼被分成oal.exe、kernel.dll和kitl.dll三個部分,其中啟動代碼(startup)和 OAL層的實現部分不再與內核鏈接生成NK.exe,取而代之的是啟動代碼(startup)和硬件相關且獨立于內核的OAL層的實現部分編譯成 oal.exe;而與內核相關且獨立于硬件的OAL層代碼包含在kernel.dll中,內核無關傳輸層(KITL)的支持代碼從OAL層分離出來編譯成 kitl.dll。因此,WinCE6.0的啟動只與oal.exe和kernel.dll有關。至于kitl.dll,只有將操作系統編譯成具有 KITL功能時才用到。這樣做的好處是可以單獨升級OAL,但整體的OAL結構并沒有改變。

①OAL初始化硬件時失敗

oal.exe是通過Startup函數來完成硬件的初始化。一般來說,OAL的啟動代碼(Startup.s)與該硬件平臺的Bootloader的啟動代碼(Startup.s)是可以共享的。例如,其中PreInit 函數主要完成將ARM處理器工作模式切換到管理員模式,同時關閉MMU,并檢測系統啟動原因。如果是熱啟動,即在該函數調用之前已經啟動過 Bootloader的啟動代碼(Startup.s),相當基本硬件初始化已經完成,則可直接跳轉到OALStartUp函數中;否則需要進行硬件中斷屏蔽、內存、系統時鐘頻率、電源管理等硬件的基本初始化過程。

在StartUp 函數初始化CPU等核心硬件并跳轉到Main函數后,系統就會轉入C語言代碼執行環境。這時Main函數分為3個模塊:BLCOMMON、Download Function、FLASH Function。其中BLCOMMON模塊是由微軟提供的,執行一些邏輯上的功能。而Download Function、FLASH Function中的函數與硬件平臺息息相關。因此,對于每種硬件平臺都要將函數的實現進行適當修改,這種修改是需要對硬件非常熟悉的。當修改出現錯誤時,就會導致系統啟動失敗了。

在硬件平臺初始化完成后,oal.exe的啟動任務基本完成,余下的啟動工作由內核相關且獨立于內核的OAL層實現體kernel.dll接管。也就是說,這時Startup會調用OALStartUp函數,OALStartUp函數主要完成將OEMAddressTable表傳遞給內核,然后調用KernelStart函數跳轉到內核。因此,如果此時OAL的啟動Startup函數調用失敗的話,就也會導致系統的啟動失敗了。

這里需要特別注意的是,Bootloader和OAL中均包含啟動Startup函數。它的功能大致相同,都是要初始化最小硬件環境。Bootloader的啟動Startup函數是在為自己的執行準備硬件環境,OAL的啟動Startup函數則是為kernel的執行準備硬件環境。由于這兩種硬件環境要求基本相同,所以它們的代碼也有很大部分可以相互借鑒。但應該明白Bootloader與OAL在物理上是獨立的,它們并不是同一段代碼。當然,如果可以確定這一部分在Bootloader已經初始化過如熱啟動,則在OAL中不必重復執行。

②OAL入口位置定位失誤導致的失敗

從上述WinCE啟動流程可知,在OAL初始化硬件后而在內核啟動前,系統是需要調用KernelStart函數來跳轉到內核。因此,這里有一個要點,就是WinCE需要找到OAL的入口位置,然后才能調用入口函數與全局塊進行指針交換,這樣內核才能使用OAL層中的信息,同樣OAL層也才能訪問內核(kernel)導出的函數。

OAL入口位置函數的調用實際上是通過OEMGLOBAL結構體實現的,實際調用位置為OEMInitDebugSerial和OEMInit。也就是說,OEMGLOBAL結構體構建了內核和OAL層之間進行通信的橋梁。OEMGLOBAL結構體定義了OAL層所有必須的函數,該結構體在oemglobal.c文件中被初始化,并會被編譯在OEMMain.lib和 OEMMain_StaticKITL.lib兩個庫中。如果OAL鏈接這兩個庫,則必須要有正確的該結構體的函數實現體,同時還需要調用ARMSetup來設置物理地址和非緩沖的虛擬內存地址的映像、ARM中斷向量以及內核模式所需要的堆棧、調用OEMInitDebugSerial函數初始化調試串口、調用OEMInit進行平臺初始化等。否則,如果OAL入口位置函數有誤,則內核和OAL層之間的訪問就會失敗,也就會導致系統在啟動時出錯和失敗。

三.導致的WinCE啟動失敗的其它相關因素

(1)驅動程序加載錯誤導致的失敗

在調試中,我們還發現系統在啟動時執行到OEMInit時也經常會出現錯誤。一般來說,系統調用OEMInit運行完成之后,就會跳回Private或Public下的代碼繼續運行,然后再啟動device.exe加載各個驅動程序。由于這一段代碼是微軟提供的default代碼,基本上不會有問題。所以,我們就有理由懷疑如果加載的驅動程序出了問題,是也會造成系統啟動失敗的。一般來說,這些加載的驅動程序主要是 BSP中的Audio、Display、SDMMC、Serial、USB等。

(2)啟動時加載配置有誤的注冊表導致的失敗

在WinCE中注冊表在啟動過程中也扮演著非常重要的角色。與桌面Windows一樣,WinCE注冊表(Registry)也是一個系統數據庫,用來保存應用程序、驅動程序、用戶的設定以及其它一些系統的配置信息,通常還存儲著操作系統運作和調用程序的狀態信息。例如,每個用戶的配置文件、安裝的應用程序以及每個應用程序可以創建的文檔類型、文件夾和應用程序圖標的屬性表設置、系統上存在哪些硬件以及正在使用哪些端口等。

因此,對于硬件外設來說注冊表是一個記錄驅動程序設置和位置的數據庫。當WinCE系統在啟動時需要啟動某些必要的硬件設備時,就會需要使用外設驅動程序。但如果在WinCE中這個外設驅動是獨立于操作系統的,WinCE系統就需要知道從哪里找到它們,例如文件名、版本號、其它設置和信息。因此,注冊表上沒有此設備的記錄時,它們就不能被使用。所以,當注冊表在啟動時加載錯誤或者注冊表配置有錯誤時,也是會導致WinCE系統啟動失敗的。

【編輯推薦】

  1. WinCE系統下GSM Modem的測控應用
  2. WinCE OAL中的OEMIoControl函數詳解
  3. WinCE編譯過程的四個階段
  4. WinCE中觸摸屏驅動開發詳解
  5. Windows Mobile和WinCE的區別
責任編輯:yangsai 來源: IT168
相關推薦

2016-07-04 14:22:47

DevOps案例軟件

2009-11-30 10:09:31

PHP中文亂碼

2011-01-19 17:54:48

2009-11-30 11:01:20

MySQL與PHP產生

2010-05-04 13:52:00

Oracle用戶被鎖

2012-04-16 10:09:52

2015-03-09 15:41:08

MongoDB查詢超時異常Socket Time

2017-06-21 08:30:20

MySQL原因解決辦法

2015-10-15 09:38:21

程序員發福

2023-06-20 11:46:58

2025-04-29 08:20:00

無線監控網絡無線網絡

2024-01-04 09:04:02

2013-03-01 15:25:56

路由器網絡設備故障備分設備數據

2019-08-29 14:29:42

JVM內存 Java

2010-09-01 11:32:50

DB2暫掛

2012-12-10 09:42:22

路由器MP故障

2014-12-18 13:39:16

CloudStack虛擬機云計算平臺

2011-02-22 17:14:20

2010-02-03 16:07:07

Ubuntu Auda

2011-05-07 10:05:17

打印機打印空白頁解決方法
點贊
收藏

51CTO技術棧公眾號

韩国一区二区在线观看| 日韩av中文字幕一区| 国产欧美久久久精品影院| 国产精品久久久久久久久久久久久| 丁香激情五月少妇| 亚洲91网站| 一本色道久久综合亚洲91| 日韩成人av网站| 国产乱淫av免费| 国产欧美日韩亚洲一区二区三区| 尤物99国产成人精品视频| 久久精品一二三四| 校园春色亚洲色图| 一区二区三区四区视频精品免费| 久热这里只精品99re8久| 一区二区国产欧美| 亚洲一区亚洲| 欧美丰满片xxx777| 精品一区二区6| 欧美电影在线观看免费| 欧美剧情电影在线观看完整版免费励志电影| 日本久久久网站| 中文字幕66页| 久久亚洲电影天堂| 亚洲婷婷在线观看| 成人在线视频免费| 亚洲成人av一区二区三区| 日本免费高清一区二区| 隣の若妻さん波多野结衣| 男男成人高潮片免费网站| 91精品国产91久久久久久最新| 极品尤物一区二区| 国产成人手机高清在线观看网站| 欧美大片在线观看| 三区视频在线观看| 电影一区电影二区| 欧美性高潮在线| 日本a视频在线观看| av在线免费播放| 国产精品美女一区二区三区 | 粉嫩91精品久久久久久久99蜜桃| 亚洲国产成人va在线观看天堂| 一区二区不卡视频| 国产三级视频在线播放线观看| 成人涩涩免费视频| dy888夜精品国产专区| 91亚洲欧美激情| 日韩二区三区四区| 国产成人黄色av| 日本特级黄色片| 国产亚洲一区在线| 97avcom| 国产成人在线观看网站| 亚洲第一伊人| 国内精品小视频| 日本在线观看中文字幕| 伊人久久婷婷| 2019精品视频| 欧美一级视频免费观看| 国产精品久久久亚洲一区| 久久久亚洲国产天美传媒修理工| 久草视频免费播放| 亚洲理伦在线| 日韩美女写真福利在线观看| 中文字幕xxxx| 乱一区二区av| 91网站在线免费观看| www.黄色一片| www.66久久| 欧美一区二区三区四区在线观看地址| 国产永久免费高清在线观看视频| 国产三级一区二区| 中文字幕中文字幕99| www在线视频| 亚洲va中文字幕| 丰满人妻中伦妇伦精品app| 色8久久影院午夜场| 欧美日韩国产系列| 国产亚洲精品成人a| 亚洲国产欧美日韩在线观看第一区 | 亚洲日本在线播放| 国产欧美日本一区二区三区| 最新中文字幕久久| av岛国在线| 欧美无乱码久久久免费午夜一区| 五月天视频在线观看| 6080成人| 亚洲香蕉成人av网站在线观看 | 色哟哟一区二区| xx欧美撒尿嘘撒尿xx| 亚洲国产视频二区| 亚洲欧洲在线观看| 午夜爽爽爽男女免费观看| 亚洲毛片av| 国产欧美日韩免费| 人妻精品一区一区三区蜜桃91| 久久久久青草大香线综合精品| 亚洲va韩国va欧美va精四季| 精品精品导航| 欧美性受xxxx黑人xyx性爽| 韩国三级丰满少妇高潮| 国产精品一区高清| 欧美日本精品在线| 免费精品一区二区| 大胆亚洲人体视频| 亚洲图片欧洲图片日韩av| 第一福利在线视频| 9191久久久久久久久久久| 精品国产无码在线观看| 欧美福利一区| 日韩av成人在线| 亚洲国产精品一| 国产精品午夜春色av| 9久久9毛片又大又硬又粗| avtt久久| 在线精品91av| 国产寡妇亲子伦一区二区三区四区| 国产麻豆精品在线观看| 视频一区亚洲| 综合日韩av| 亚洲国产精品久久久久秋霞不卡 | 亚洲啪av永久无码精品放毛片 | 91女人18毛片水多国产| 久久综合视频网| 波多野结衣av一区二区全免费观看| 日韩av超清在线观看| 亚洲高清久久网| 九九热这里有精品视频| 精东粉嫩av免费一区二区三区| 欧美亚洲国产免费| 黄色在线网站噜噜噜| 欧美大胆人体bbbb| 在线观看亚洲网站| 久久av老司机精品网站导航| 欧美主播一区二区三区美女 久久精品人| 青春草在线免费视频| 91精品国产一区二区三区蜜臀| 少妇太紧太爽又黄又硬又爽小说| 狂野欧美一区| 欧美欧美一区二区| 免费电影日韩网站| 亚洲毛片在线观看| 女人十八岁毛片| 99麻豆久久久国产精品免费| 精品国产av无码一区二区三区| 嫩呦国产一区二区三区av| 久久视频免费在线播放| 国产免费一区二区三区免费视频| 中文字幕在线一区| www.久久久久久久久久久| 欧美好骚综合网| 成人免费激情视频| av大大超碰在线| 日韩亚洲欧美中文三级| 动漫性做爰视频| 高清日韩电视剧大全免费| 无码人妻少妇伦在线电影| 精品综合久久88少妇激情| 91精品国产一区| 国产乱理伦片a级在线观看| 日本精品一区二区三区高清| 免费观看a级片| 久久99精品久久久| 五月天在线免费视频| 成人精品动漫一区二区三区| 国内精品在线一区| 男人av在线| 欧美日韩色综合| 国产少妇在线观看| 不卡av在线网| 青青青国产在线视频| 日韩在线观看| 国产成人亚洲欧美| xxx欧美xxx| www.久久色.com| 亚洲成人久久精品| 欧美日韩国产中文字幕| 国产欧美小视频| 国产精品夜夜嗨| 啊啊啊一区二区| 91一区二区| 国产精品亚洲不卡a| 免费成人美女女| 不卡中文字幕av| 先锋av资源站| 欧美精品亚洲一区二区在线播放| 久久免费视频6| 国产日韩精品视频一区| xxxx国产视频| 久久一本综合频道| 国产日产欧美一区二区| 亚洲欧美日本伦理| 91免费福利视频| 欧美magnet| 欧美猛交ⅹxxx乱大交视频| 青青免费在线视频| 欧美一区午夜精品| 亚洲国产精品无码久久久| 亚洲一区二区三区影院| www亚洲色图| 成人国产视频在线观看| 五月天婷婷亚洲| 亚洲专区欧美专区| 欧美交换配乱吟粗大25p| 国产欧美日韩在线观看视频| 99久久伊人精品影院| av在线日韩| 欧美精品videosex极品1| 亚洲成人三级| 亚洲性av在线| 手机看片福利在线观看| 日韩欧美一卡二卡| 一区二区www| 91国产成人在线| 中文字幕在线欧美| 午夜久久久久久久久 | 精品久久久久久亚洲国产300| 国产精品综合激情| 久久久九九九九| 国产 xxxx| 国产成人在线免费| 欧美成年人视频在线观看| 可以免费看不卡的av网站| 久在线观看视频| 亚洲三级视频| 日韩中文字幕在线免费| 亚洲色图网站| 超碰免费在线公开| 91综合久久一区二区| 日韩精品一区二区三区外面| 日韩欧美影院| 激情小说综合网| 超碰成人福利| 国产精品区一区| 9l亚洲国产成人精品一区二三| 91精品久久久久久久久久久久久| 你懂得影院夜精品a| 国产成人精品视频| 三上悠亚国产精品一区二区三区| 26uuu久久噜噜噜噜| 欧美13videosex性极品| 欧美劲爆第一页| 丰满的护士2在线观看高清| 欧美成人在线免费| 在线中文字幕视频观看| 欧美精品在线极品| 午夜伦理在线视频| 欧美激情视频一区| 黄网在线免费看| 国自产精品手机在线观看视频| www中文字幕在线观看| 韩国美女主播一区| 韩国成人二区| 国产成人精品在线播放| 日本.亚洲电影| 国产精品亚洲精品| 国产95亚洲| 国产精品一区二区三区精品 | 日韩av在线高清| 日韩av高清在线| 亚洲色图校园春色| 在线播放麻豆| 久久777国产线看观看精品| 变态调教一区二区三区| 欧美性资源免费| 日韩av电影资源网| 亚洲精品免费在线视频| av综合网址| 欧美日韩亚洲综合一区二区三区激情在线| 国产精品一国产精品| 尤物国产精品| 在线欧美不卡| 日韩有码免费视频| 黄网站免费久久| 五月天丁香社区| 国产午夜亚洲精品不卡| 日本黄色录像视频| 婷婷国产在线综合| 日本视频www色| 日韩无一区二区| 欧美偷拍视频| 久久亚洲欧美日韩精品专区 | 欧美三级中文字| 99视频在线观看免费| 亚洲国产成人在线播放| av在线播放免费| 国产69精品久久久久9| 97久久香蕉国产线看观看| 96国产粉嫩美女| 香蕉久久夜色精品国产更新时间| 一区二区不卡在线| 国产婷婷精品| 中文字幕av一区二区三区人妻少妇| av在线免费不卡| 在线观看黄网址| 日韩欧美在线第一页| 国产婷婷在线视频| 亚洲免费人成在线视频观看| 成人看片免费| 国产z一区二区三区| 亚洲乱码一区| 中文字幕日韩一区二区三区| 一本久道久久综合婷婷鲸鱼| 亚洲午夜激情影院| 国产午夜三级一区二区三| 国产午夜精品无码一区二区| 欧美日韩免费高清一区色橹橹 | 日韩亚洲欧美成人| 瑟瑟视频在线看| 97人人干人人| 婷婷精品进入| 天堂社区在线视频| 91在线精品一区二区| 国产精品 欧美激情| 欧美日韩在线电影| 精品无吗乱吗av国产爱色| 久久久久久亚洲精品中文字幕 | 欧美日韩精品一区| 亚洲第一黄网| 中文字幕一区二区三区人妻在线视频| 欧美激情综合网| 在线免费黄色av| 日韩电影免费观看中文字幕| 色女人在线视频| 成人在线一区二区| 热久久天天拍国产| 免费激情视频在线观看| 972aa.com艺术欧美| 精品在线免费观看视频| 日韩一二三四区| 先锋成人av| 98国产高清一区| 欧美色一级片| 久久aaaa片一区二区| 亚洲欧美日韩中文播放 | 成人av网址在线观看| 杨钰莹一级淫片aaaaaa播放| 欧美日韩视频在线观看一区二区三区| 国产高清自拍视频在线观看| 青草热久免费精品视频| 色爱av综合网| 男人揉女人奶房视频60分| 99国产精品久久| 四虎精品永久在线| 亚洲美女动态图120秒| 日本免费一区二区六区| 蜜桃视频在线观看91| 葵司免费一区二区三区四区五区| 美女久久久久久久久久| 欧美色图12p| 国产写真视频在线观看| 亚洲综合日韩在线| 亚洲视频观看| 久久久亚洲av波多野结衣| 色婷婷av一区二区三区大白胸| 你懂的视频在线观看| 国产精品免费在线免费| 久久麻豆精品| 午夜激情视频网| 一区二区久久久| 无码精品在线观看| 日韩免费视频在线观看| 北条麻妃国产九九九精品小说| 日韩av片网站| 亚洲精品成a人| 欧美 日韩 国产 成人 在线| 欧美性受xxxx白人性爽| 日韩在线观看电影完整版高清免费悬疑悬疑| 中文字幕亚洲欧洲| 一区2区3区在线看| 欧洲亚洲精品视频| 国产主播精品在线| 黄色精品一区| 乐播av一区二区三区| 777精品伊人久久久久大香线蕉| 青春草免费在线视频| 久久99精品久久久久子伦| 日韩三级在线| 91视频网页| av不卡在线| 99久久久无码国产精品衣服| 精品视频色一区| 调教一区二区| 六月婷婷久久| 久草精品在线观看| 国产精品2020| 亚洲片av在线| 国产成人免费视频网站视频社区 | 国产美女91呻吟求| 欧美日韩一区二区三区四区在线观看 | 亚洲天堂av片| 日韩有码在线视频| 欧美成人午夜77777| 五月婷婷六月丁香激情| 午夜欧美2019年伦理 | 久久久久久久999精品视频| 精品72久久久久中文字幕| 四虎国产精品永久免费观看视频| 黑人精品xxx一区一二区| 国产91在线视频蝌蚪|