成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

大疆嵌入式三面:RTOS 系統是如何任務調度的?

系統 其他OS
為了滿足實時性要求,RTOS 的任務調度需要采取一系列措施。首先,任務調度算法需要能夠快速地響應任務的優先級變化和事件的發生。例如,當一個高優先級的任務就緒時,調度器需要能夠立即暫停當前正在執行的任務,切換到高優先級的任務執行。

在眾多實際項目里,像無人機飛行控制這類對實時響應要求近乎嚴苛的場景,RTOS 系統通過高效的任務調度,保障飛行姿態調整、傳感器數據處理等關鍵任務有序且及時地執行,讓無人機能夠精準應對復雜多變的飛行環境 。又比如在大疆的一些智能影像設備中,RTOS 任務調度確保視頻拍攝、圖像傳輸與處理等任務協同工作,為用戶呈現高質量的影像效果。

對于本次面試中 “RTOS 系統是如何任務調度的” 這一問題,我將從任務調度的基本概念入手,詳細剖析常見的調度策略,如優先級搶占調度、時間片輪轉調度以及協同調度等,闡述它們各自的工作原理與適用場景 。接著深入探討任務調度的實現機制,包括任務狀態的轉換流程,以及調度器如何基于這些狀態和特定時機完成任務切換。同時,我也會針對任務調度過程中可能出現的優先級反轉問題,給出具體的解決方案和實際案例分析 。通過這些方面的闡述,全面且深入地展示我對 RTOS 系統任務調度的理解,希望能契合大疆在嵌入式開發領域對相關知識和技能的高要求 。

Part1.RTOS系統基礎入門

1.1RTOS 系統是什么

RTOS,即實時操作系統(Real-Time Operating System) ,從定義上來說,它是一種能夠在規定時間內對外部事件做出響應,并完成相應任務的操作系統。與我們日常接觸的普通操作系統,如 Windows、Linux 等相比,RTOS 的最大特點就在于 “實時性”。

普通操作系統更側重于系統資源的均衡分配和多任務的并發處理,以滿足用戶多樣化的需求。例如,當我們在 Windows 系統上同時打開多個應用程序,如瀏覽器、文檔編輯軟件、音樂播放器時,系統會盡量公平地分配 CPU 時間給各個應用,讓它們看起來像是在同時運行。但在這個過程中,我們可能會感覺到某些操作的延遲,比如打開一個大型文件時需要等待幾秒鐘,這在普通操作系統的使用場景中是可以接受的。

而 RTOS 則截然不同,它對任務的處理及時性有著極高的要求。在 RTOS 中,每個任務都有明確的時間限制,系統必須確保這些任務在規定的時間內完成,否則可能會導致嚴重的后果。例如在工業自動化生產線上,機器人的動作控制必須精確到毫秒級,一旦控制指令的執行出現延遲,就可能導致產品質量問題甚至生產事故;在航空航天領域,飛行器的飛行姿態調整也依賴于 RTOS 的實時控制,任何微小的延遲都可能引發飛行安全事故。

對于大疆的嵌入式設備而言,實時性更是關乎產品性能和安全的核心要素。以大疆無人機為例,在飛行過程中,無人機需要實時采集來自各種傳感器的數據,如陀螺儀、加速度計、GPS 等,這些傳感器不斷地向系統反饋無人機的飛行姿態、位置、速度等信息。RTOS 必須在極短的時間內對這些數據進行處理和分析,并根據預設的算法生成相應的控制指令,以調整無人機的飛行姿態和飛行路徑,確保其穩定飛行。如果 RTOS 不能及時處理這些任務,無人機就可能出現失控、墜毀等嚴重后果。

1.2為什么大疆選擇 RTOS 系統

大疆的產品,尤其是無人機,在運行過程中需要實時處理大量復雜的任務,這就決定了它對操作系統的實時性和可靠性有著極高的要求,而 RTOS 系統恰好能夠滿足這些需求,主要體現在以下幾個方面:

⑴多任務并行處理:大疆無人機在飛行時,要同時處理飛行姿態控制、傳感器數據采集與處理、影像數據傳輸與處理、通信數據收發等多個任務。例如,在進行航拍時,無人機一方面要通過復雜的算法實時調整自身的飛行姿態,以保持穩定的拍攝角度;另一方面,要快速采集相機拍攝的高清影像數據,并通過無線通信模塊將這些數據實時傳輸到地面控制端。RTOS 系統支持多任務并行處理,能夠為每個任務分配獨立的資源和執行時間,確保各個任務之間互不干擾,高效協同工作。通過 RTOS 的任務調度機制,可以根據任務的優先級和時間要求,合理安排 CPU 等系統資源,使無人機能夠同時兼顧多個任務的執行,保證飛行的穩定性和數據處理的及時性。

⑵實時性保障:在無人機的飛行過程中,許多任務都具有嚴格的時間限制,如飛行姿態控制任務需要在毫秒級的時間內完成對傳感器數據的處理和控制指令的生成,以應對飛行過程中的各種突發情況。RTOS 系統通過優化的任務調度算法和高效的中斷處理機制,能夠確保高優先級任務在規定的時間內得到及時響應和執行,滿足無人機對實時性的苛刻要求。例如,當無人機遇到突然的氣流干擾時,RTOS 能夠迅速響應傳感器檢測到的姿態變化信號,優先調度飛行姿態控制任務,及時調整無人機的飛行姿態,避免發生飛行事故。

⑶可靠性與穩定性:大疆無人機廣泛應用于各種復雜環境和關鍵領域,如影視拍攝、測繪、農業植保、電力巡檢等,這就要求無人機的操作系統具備極高的可靠性和穩定性,以確保任務的順利完成。RTOS 系統經過嚴格的測試和驗證,具有完善的錯誤檢測和恢復機制,能夠在系統出現故障時快速進行自我修復,保證系統的穩定運行。同時,RTOS 對任務的管理和調度更加精細,能夠有效避免任務之間的沖突和死鎖等問題,提高系統的可靠性。例如,在電力巡檢任務中,無人機需要長時間、穩定地飛行在復雜的輸電線路環境中,RTOS 系統的高可靠性和穩定性能夠確保無人機持續穩定地工作,準確地檢測輸電線路的故障隱患。

Part2.RTOS 系統的任務調度核心機制

2.1調度策略總覽

大疆在其嵌入式系統中采用了 FreeRTOS 與 μC/OS - III 混合架構,這一創新的架構融合了兩者的優勢,為無人機系統提供了高效、穩定的任務調度支持。在這個混合架構中,涉及到兩種主要的任務調度策略:優先級搶占調度和時間片輪轉調度 ,它們各自有著獨特的工作方式和適用場景,共同協作以確保無人機系統的正常運行。

優先級搶占調度,顧名思義,是基于任務優先級的一種調度方式。在這種調度策略下,系統會為每個任務分配一個優先級,當有高優先級任務進入就緒狀態時,它會立即打斷正在執行的低優先級任務,搶占 CPU 的控制權,從而保證高優先級任務能夠得到及時處理。這種調度策略適用于那些對實時性要求極高的任務,例如飛控指令的處理、緊急避障任務等。在無人機飛行過程中,飛控指令直接關系到無人機的飛行安全和穩定性,一旦有新的飛控指令產生,必須立即得到執行,優先級搶占調度就能很好地滿足這一需求。

而時間片輪轉調度則是針對相同優先級任務的一種調度策略。當多個任務具有相同的優先級時,系統會為每個任務分配一個相等的時間片段(即時間片),這些任務按照順序輪流在 CPU 上運行。當一個任務的時間片用完后,即使它還沒有完成,也會被暫停,然后被放入就緒隊列的末尾,等待下一輪的調度,下一個任務則開始在 CPU 上運行。這種調度策略確保了相同優先級任務之間的公平性,使得每個任務都能有機會得到執行,避免了某個任務長時間占用 CPU 而導致其他任務得不到處理的情況。例如在無人機的影像傳輸和一些輔助數據處理任務中,這些任務可能具有相同的優先級,時間片輪轉調度就可以保證它們都能得到合理的 CPU 時間,從而實現影像數據的穩定傳輸和輔助數據的及時處理。

2.2優先級搶占調度詳解

優先級搶占調度的核心原理在于系統對任務優先級的實時監測和響應。在大疆無人機的 RTOS 系統中,每個任務都被賦予了一個特定的優先級數值,數值越小表示優先級越高。當系統運行時,調度器會不斷地檢查就緒任務隊列,一旦發現有高優先級任務進入就緒狀態,它就會立即采取行動。首先,調度器會暫停當前正在執行的低優先級任務,將該任務的上下文信息(包括 CPU 寄存器的值、任務堆棧指針等)保存到該任務的堆棧中,這些上下文信息記錄了任務當前的執行狀態,以便后續任務恢復執行時能夠從暫停的地方繼續。然后,調度器會從高優先級任務的堆棧中加載其上下文信息到 CPU 寄存器中,使 CPU 的狀態切換到高優先級任務被暫停時的狀態,從而讓高優先級任務獲取 CPU 的控制權,開始執行。

以飛控指令任務為例,在無人機飛行過程中,飛控系統會實時接收來自各種傳感器的數據,如陀螺儀、加速度計等,這些傳感器數據會被快速處理并生成相應的飛控指令,這些飛控指令任務通常被設置為高優先級。當新的飛控指令任務就緒時,無論此時系統正在執行什么低優先級任務,如一些非關鍵的設備狀態監測任務,飛控指令任務都會立即搶占 CPU,確保無人機能夠及時根據新的指令調整飛行姿態,保證飛行的穩定性和安全性。

實際案例:在大疆無人機的實際應用中,優先級搶占調度發揮著至關重要的作用。例如,當無人機在飛行過程中遇到突發狀況,如前方突然出現障礙物需要快速避障時,高優先級的飛控任務就會通過優先級搶占機制及時響應。無人機上的避障傳感器(如雙目視覺傳感器、毫米波雷達等)一旦檢測到障礙物,會迅速將信號傳遞給 RTOS 系統,系統會立即生成高優先級的避障飛控任務。

此時,正在執行的其他低優先級任務(如實時圖傳畫面的一些圖像優化處理任務)會被暫停,避障飛控任務搶占 CPU 控制權。系統會根據傳感器數據快速計算出避障所需的飛行姿態調整參數,并向無人機的電機、舵機等執行機構發送控制指令,使無人機能夠迅速改變飛行方向,避開障礙物。待避障任務完成后,系統再恢復之前被暫停的低優先級任務的執行,確保整個飛行過程的連續性和穩定性。通過這種優先級搶占調度機制,大疆無人機能夠在復雜的飛行環境中快速、準確地應對各種突發情況,保障飛行安全。

2.3時間片輪轉調度詳解

時間片輪轉調度主要應用于處理相同優先級的任務。在大疆嵌入式的 RTOS 系統中,當多個任務被設定為相同優先級時,系統會為這些任務創建一個就緒隊列,并為每個任務分配一個固定時長的時間片。例如,假設影像傳輸任務和一些后臺數據記錄任務被設置為相同優先級,它們會被放入同一個就緒隊列中。

圖片圖片

調度器會按照隊列的順序,依次選取任務并讓其在 CPU 上運行一個時間片的時長。當一個任務開始運行時,系統會啟動一個定時器,用于記錄該任務的運行時間。當定時器計時達到時間片的長度時,無論該任務是否完成當前操作,系統都會暫停該任務的執行,并將其放回就緒隊列的末尾。

然后,調度器從就緒隊列的頭部選取下一個任務,為其加載上下文信息到 CPU,使其開始運行,如此循環往復。在影像傳輸任務中,每個時間片內,任務會讀取一定量的影像數據,并通過無線通信模塊將其發送出去;而在后臺數據記錄任務中,每個時間片內,任務會將無人機的一些關鍵狀態數據(如電池電量、飛行高度等)記錄到存儲設備中。通過時間片輪轉調度,這兩個相同優先級的任務能夠交替執行,實現影像數據的持續傳輸和關鍵數據的及時記錄。

與優先級搶占的協同:在大疆無人機的實際系統運行中,優先級搶占調度和時間片輪轉調度并不是孤立存在的,而是相互配合,共同保障系統的高效運行。優先級搶占調度確保了關鍵任務能夠在第一時間得到處理,避免因低優先級任務的執行而延誤關鍵任務的響應,保障了系統的實時性和安全性。而時間片輪轉調度則在相同優先級任務之間實現了公平的 CPU 資源分配,保證了各個任務都能有機會執行,提高了系統資源的利用率。

例如,在無人機進行復雜的飛行任務時,飛控任務作為最高優先級任務,一旦有新的飛控指令產生,它會立即搶占 CPU,確保無人機的飛行姿態得到及時調整。而在飛控任務執行的間隙,當沒有更高優先級任務就緒時,相同優先級的影像傳輸任務和其他輔助任務則通過時間片輪轉調度機制,輪流使用 CPU。這樣,既保證了飛控任務等關鍵任務的優先執行,又兼顧了同級別任務的公平執行,使得大疆無人機能夠在各種復雜的飛行場景下,穩定、高效地完成飛行、數據傳輸、任務處理等多項任務。

Part3.任務調度中的關鍵技術

3.1上下文切換技術

在大疆嵌入式的 RTOS 系統中,上下文切換是任務調度過程中的一項關鍵技術,它就像是一場精心編排的舞臺換幕,確保每個任務都能在合適的時間登上 CPU 這個 “舞臺”,并且在離開時保留好自己的 “演出狀態”,以便下次能夠無縫銜接。

當系統決定進行任務切換時,首先要做的就是保存當前任務的上下文。上下文主要包括 CPU 寄存器的狀態,這些寄存器就像是任務執行過程中的 “小助手”,記錄著任務運行時的各種關鍵信息,如程序計數器(PC),它指示著任務下一條要執行的指令地址,就如同導航為任務指引前進的方向;通用寄存器(如 R0 - R12 等),它們存儲著任務執行過程中的臨時數據和操作數,是任務進行各種計算和操作的重要依托;堆棧指針(SP),它指向任務的堆棧,堆棧則用于存儲函數調用的返回地址、局部變量等信息,是任務運行時的 “數據倉庫”。

為了更形象地理解,我們可以把任務比作一場正在進行的戲劇表演,CPU 寄存器狀態就是演員們在舞臺上的站位、表情、動作等表演狀態,而堆棧則是后臺存放道具、服裝等物品的倉庫,堆棧指針就像是倉庫管理員,知道每個道具和服裝放在哪里。當需要切換到另一個任務時,就好比要暫停這場戲劇表演,讓另一組演員上臺表演。此時,舞臺工作人員(調度器)會迅速記錄下當前演員們的表演狀態(保存 CPU 寄存器狀態),并把倉庫里的物品整理好(保存堆棧信息),以便后續這場戲劇能夠繼續表演。

在保存上下文的過程中,通常會使用匯編語言來實現,因為匯編語言能夠直接對硬件進行操作,實現高效、精準的上下文保存。例如,在 ARM 架構的處理器中,會使用 PUSH 指令將寄存器的值壓入堆棧,從而實現寄存器狀態的保存。

完成當前任務上下文的保存后,調度器會從就緒任務隊列中選擇下一個要執行的任務。然后,開始恢復下一個任務的上下文,這就像是為新上臺的演員們布置舞臺、準備道具。調度器會從選定任務的堆棧中讀取之前保存的寄存器值,并將其加載到 CPU 寄存器中,同時設置好堆棧指針,讓 CPU 切換到新任務的執行環境。這樣,新任務就可以從上次暫停的地方繼續執行,就像戲劇表演無縫切換到了下一幕。

快速的上下文切換對于系統的實時性能至關重要。在大疆無人機的飛行過程中,任務的執行時間往往是以毫秒甚至微秒來計算的,如果上下文切換的時間過長,就會導致任務執行的延遲增加。例如,在飛控任務中,如果上下文切換時間過長,可能會導致無人機對飛行姿態的調整不及時,從而影響飛行的穩定性和安全性;在影像傳輸任務中,過長的上下文切換時間可能會導致圖像數據的丟失或卡頓,影響圖像的實時傳輸質量。因此,大疆通過優化上下文切換的算法和流程,采用高效的匯編語言實現,盡可能地減少上下文切換的時間開銷,確保系統能夠快速響應各種任務的需求,保障無人機的高性能運行。

3.2優先級反轉問題及解決

①問題呈現:在多任務系統中,優先級反轉是一個可能出現的棘手問題,就像一場混亂的交通堵塞,高優先級的任務被低優先級的任務阻擋,無法順利前行。在大疆嵌入式系統中,當多個任務共享資源時,就有可能發生優先級反轉現象。例如,假設無人機系統中有三個任務:任務 A 是高優先級的飛控指令處理任務,它負責根據傳感器數據實時調整無人機的飛行姿態,對實時性要求極高;任務 B 是中優先級的影像數據處理任務,它負責對相機拍攝的圖像進行實時處理和傳輸;任務 C 是低優先級的設備狀態監測任務,它定期檢查無人機的各個設備狀態。

在某一時刻,任務 C 正在執行,并占用了一個共享資源(比如一個用于數據存儲的緩沖區)。此時,任務 A 等待的事件發生,任務 A 獲得 CPU 使用權開始執行。但當任務 A 執行到需要訪問任務 C 占用的共享資源時,由于資源被占用,任務 A 不得不掛起,等待任務 C 釋放資源。而在任務 C 執行過程中,任務 B 進入就緒態,由于任務 B 的優先級高于任務 C,任務 B 剝奪任務 C 的 CPU 使用權開始執行。這樣就導致了高優先級的任務 A 需要等待低優先級的任務 C 釋放資源,而在等待期間,中優先級的任務 B 卻先于任務 A 執行,使得任務 A 的執行被延遲。

這種優先級反轉現象對大疆嵌入式系統的危害是巨大的。在無人機飛行過程中,飛控指令處理任務的延遲可能會導致無人機無法及時響應飛行姿態的變化,增加飛行失控的風險;影像數據處理任務的延遲可能會導致圖像傳輸不及時,影響操作人員對無人機飛行狀態的實時監控;設備狀態監測任務雖然優先級較低,但如果因為優先級反轉導致其長時間無法執行,也可能會使無人機在出現設備故障時無法及時被發現和處理,從而影響無人機的整體性能和安全性。

②解決方案分析:為了解決優先級反轉問題,大疆在其 RTOS 系統中采用了優先級繼承和優先級天花板等機制。

優先級繼承機制就像是給低優先級任務 “穿上了高優先級的外衣”,讓它暫時擁有高優先級任務的權力,盡快完成資源的使用并釋放資源。當低優先級任務占用了高優先級任務需要的資源時,并且高優先級任務正在等待該資源,系統會臨時將低優先級任務的優先級提升到與高優先級任務相同的水平。在上述例子中,當任務 A 等待任務 C 占用的共享資源時,任務 C 的優先級會被提升到與任務 A 相同。這樣,任務 C 就不會被任務 B 搶占 CPU 使用權,能夠盡快執行并釋放資源,任務 A 也就能盡快獲得資源繼續執行,從而避免了優先級反轉帶來的延遲。當任務 C 釋放資源后,它的優先級會恢復到原來的低優先級水平。

優先級天花板機制則是從資源的角度出發,為每個共享資源設定一個固定的優先級天花板。這個優先級天花板等于或者高于所有可能訪問該資源的任務的最高優先級。當一個任務想要訪問某個共享資源時,如果它的優先級低于該資源的優先級天花板,系統會將其優先級臨時提升到優先級天花板的水平。在無人機系統中,如果共享資源(如數據緩沖區)的優先級天花板被設定為高于任務 A、B、C 的優先級,那么當任務 C 訪問該資源時,任務 C 的優先級會被提升到優先級天花板的水平。這樣,在任務 C 占用資源期間,其他任務(如任務 B)即使進入就緒態,也無法搶占任務 C 的 CPU 使用權,因為任務 C 此時的優先級是最高的。只有當任務 C 釋放資源后,其優先級才會恢復正常,其他任務才有機會競爭 CPU 使用權。通過這種方式,優先級天花板機制有效地避免了優先級反轉問題,確保了高優先級任務能夠及時獲得所需資源并執行,提高了系統的實時性和穩定性。

Part4.嵌入式面試總結

4.1 RTOS 任務有哪些狀態

RTOS 中的任務通常有以下幾種狀態:就緒狀態、運行狀態、阻塞狀態和掛起狀態。

就緒狀態表示任務已經準備好執行,只等待被調度器選中。當一個任務被創建或者從阻塞狀態恢復時,它會進入就緒狀態。

運行狀態表示任務正在執行。在 RTOS 中,通常只有一個任務處于運行狀態,其他任務處于就緒、阻塞或掛起狀態。

阻塞狀態表示任務正在等待某個事件的發生,如等待一個信號量、等待一個消息隊列中的消息等。當任務等待的事件發生時,它會從阻塞狀態恢復到就緒狀態。

掛起狀態表示任務被暫停執行,不會被調度器選中。掛起狀態通常用于暫時停止一個任務的執行,以便進行調試、維護或其他操作。當任務需要恢復執行時,可以從掛起狀態恢復到就緒狀態。

不同的 RTOS 可能會有一些細微的差別,但總體上任務的狀態可以分為這幾種。了解任務的狀態對于開發實時應用程序非常重要,因為它可以幫助開發人員更好地理解任務的執行流程和系統的行為。

4.2 RTOS 任務狀態如何變化

RTOS 任務的狀態變化通常由以下幾種情況引起:

當任務被創建時,它會進入就緒狀態,等待被調度器選中執行。如果任務在執行過程中需要等待某個事件的發生,如等待一個信號量、等待一個消息隊列中的消息等,它會從運行狀態轉換為阻塞狀態。當任務等待的事件發生時,它會從阻塞狀態恢復到就緒狀態。

如果任務在執行過程中被更高優先級的任務搶占,它會從運行狀態轉換為就緒狀態。當更高優先級的任務執行完成后,調度器會重新選擇任務執行,如果原來的任務仍然是最高優先級的就緒任務,它會再次進入運行狀態。

如果任務被掛起,它會從就緒狀態或運行狀態轉換為掛起狀態。當任務需要恢復執行時,可以從掛起狀態恢復到就緒狀態。

此外,任務還可以通過調用特定的函數來主動改變自己的狀態。例如,任務可以調用函數將自己掛起,或者調用函數將自己從阻塞狀態恢復到就緒狀態。

了解任務狀態的變化對于開發實時應用程序非常重要,因為它可以幫助開發人員更好地理解任務的執行流程和系統的行為,從而更好地進行任務調度和系統優化。

4.3 RTOS 任務調度如何滿足實時性要求

為了滿足實時性要求,RTOS 的任務調度需要采取一系列措施。首先,任務調度算法需要能夠快速地響應任務的優先級變化和事件的發生。例如,當一個高優先級的任務就緒時,調度器需要能夠立即暫停當前正在執行的任務,切換到高優先級的任務執行。

其次,任務調度需要保證關鍵任務能夠在規定的時間內完成。這可以通過合理地設置任務的優先級、使用合適的調度算法以及優化任務的執行時間等方式來實現。例如,對于一些關鍵的控制任務,可以將它們的優先級設置得非常高,以確保它們能夠及時得到執行。

此外,RTOS 還可以采用一些技術來提高任務調度的實時性。例如,可以使用中斷處理機制來快速響應外部事件的發生;可以使用定時器來精確地控制任務的執行時間;可以使用多核處理器來并行執行多個任務,提高系統的處理能力。

責任編輯:武曉燕 來源: 深度Linux
相關推薦

2023-09-18 14:39:39

2025-07-28 02:25:00

2019-03-29 08:12:54

嵌入式系統物聯網硬件物聯網

2024-07-30 14:01:51

Java字節碼JVM?

2022-01-03 23:33:40

Linux組件系統

2020-07-03 07:00:00

Linux組件

2023-05-08 16:38:46

任務調度分布式任務調度

2009-06-26 16:18:40

Windows Emb

2010-01-12 17:32:40

ARM平臺

2021-12-19 22:34:45

Linux容器系統

2018-04-08 16:26:48

2021-11-24 15:20:04

FreeDOSLinux

2018-03-12 16:18:31

嵌入式開源

2011-04-14 15:14:36

嵌入式操作系統嵌入式

2012-07-30 14:13:11

Linux 2.6內核嵌入式

2009-06-26 16:05:04

嵌入式Linux

2012-03-09 09:45:29

Windows嵌入式操作系統

2022-02-16 22:30:51

嵌入式軟件開發工具

2023-07-26 13:29:43

高性能短鏈系統

2022-01-10 23:43:50

嵌入式軟件開發工具
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 精品一区二区三区在线观看 | 一级做a爰片久久毛片潮喷 亚洲黄色天堂 | 成人av一区二区三区在线观看 | 欧美亚洲视频 | 免费网站观看www在线观 | 天海翼一区 | 免费黄色片网站 | 青青草国产成人av片免费 | 99精品久久久 | 久久一级片 | 日韩特级片 | 免费在线观看黄 | 一区二区三区中文字幕 | 免费看黄色av | 中文字幕日韩在线观看 | 爱福利视频网 | 中文字幕理伦片免费看 | 97人人爱 | 精品欧美黑人一区二区三区 | 久久人体 | 超碰国产在线 | 欧美日韩国产中文字幕 | 青青草视频污 | 免费a网站 | 欧美黄色片视频 | 国产精品网站在线观看 | 亚洲视频在线播放 | 三级黄色网址 | 免费观看一区二区三区 | 夜夜嗨av一区二区三区网页 | 亚洲天堂男人天堂 | 91蜜桃婷婷狠狠久久综合9色 | 日韩免费在线 | 成人福利视频 | 一级片免费观看 | 97色在线 | 国产精品剧情 | 成人午夜又粗又硬又大 | 亚洲久久久久 | 伊人久久综合 | 日韩激情一区 |