《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 嵌入式操作系統(tǒng)異常處理框架設(shè)計(jì)與實(shí)現(xiàn)
嵌入式操作系統(tǒng)異常處理框架設(shè)計(jì)與實(shí)現(xiàn)
2017年電子技術(shù)應(yīng)用第5期
王繼剛1,方 芳2,張華強(qiáng)1
1.中興通訊股份有限公司 技術(shù)規(guī)劃部,江蘇 南京210012; 2.信息產(chǎn)業(yè)電子第十一設(shè)計(jì)研究院科技工程股份有限公司 信息中心,四川 成都610021
摘要: 異常處理對于提升嵌入式系統(tǒng)可靠性至關(guān)重要,而傳統(tǒng)面向硬件的異常處理方法難以適應(yīng)當(dāng)前嵌入式應(yīng)用的發(fā)展。通過分析嵌入式系統(tǒng)新的異常處理需求,提出一種結(jié)構(gòu)化異常處理框架,在傳統(tǒng)的異常處理機(jī)制基礎(chǔ)上引入了新的功能特性,并以電信級嵌入式Linux為原型,描述了該框架的具體實(shí)現(xiàn)及應(yīng)用。與其他主流異常處理機(jī)制的對比結(jié)果表明,異常處理框架功能完善,接口豐富,多級異常處理流程為系統(tǒng)解決各類異常提供多層面的支持。
中圖分類號: TP302
文獻(xiàn)標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.2017.05.014
中文引用格式: 王繼剛,方芳,張華強(qiáng). 嵌入式操作系統(tǒng)異常處理框架設(shè)計(jì)與實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用,2017,43(5):60-63,66.
英文引用格式: Wang Jigang,F(xiàn)ang Fang,Zhang Huaqiang. Design and implementation of exception handling framework for embe-
dded operating system[J].Application of Electronic Technique,2017,43(5):60-63,66.
Design and implementation of exception handling framework for embedded operating system
Wang Jigang1,F(xiàn)ang Fang2,Zhang Huaqiang1
1.Technology Planning Department,ZTE Corporation,Nanjing 210012,China; 2.Information Center Department,The IT Electronics 11th Design & Research Institute Science and Technological Engineering Corporation,Chengdu 610021,China
Abstract: Though exception handling is crucial for enhancing the reliability of embedded systems, the traditional exception handling methods for hardware are difficult to adapt the development of embedded systems. In this paper, the exception handling requirements of embedded systems was analyzed, and a structural exception handling framework was proposed, in which some new features were introduced. Then taking the case of CGEL, the concrete realization and applying of this exception handling framework for embedded system was described. Comparison results with other exception handling methods show that the exception handling framework has perfect functions and rich interface, and the principle of escalation can help embedded systems to deal with various types of anomalies from multiple aspects.
Key words : embedded system;exception handling;state machine;structural model

0 引言

    隨著后PC時(shí)代的到來,嵌入式系統(tǒng)已廣泛應(yīng)用于航空航天、通信、國防等可靠性要求較高的關(guān)鍵領(lǐng)域,其復(fù)雜度及功能性日益增強(qiáng)。同時(shí),為了高效使用資源,多應(yīng)用、多任務(wù)并行的軟件設(shè)計(jì)方法被普遍采用,這也不可避免地導(dǎo)致了系統(tǒng)中各類錯(cuò)誤和異常增多。當(dāng)異常出現(xiàn)時(shí),如果不能有效處理,很有可能導(dǎo)致應(yīng)用程序終止,系統(tǒng)崩潰,甚至引發(fā)災(zāi)難性事故,這是人們不愿看到的。然而,傳統(tǒng)面向硬件的異常處理方法無法適應(yīng)當(dāng)前嵌入式軟件的變化,必須引入新的機(jī)制,保證系統(tǒng)可靠穩(wěn)定運(yùn)行。

    通過深入分析嵌入式系統(tǒng)對異常處理的需求,參考現(xiàn)有異常處理機(jī)制的設(shè)計(jì)思想,本文提出一種結(jié)構(gòu)化的異常處理框架模型,將一些新的功能引入其中,并基于自主研發(fā)的電信級嵌入式操作系統(tǒng)(Carrier Grade Embedded Linux,CGEL)[1],具體實(shí)現(xiàn)了該異常處理框架。

1 嵌入式系統(tǒng)異常處理需求

    傳統(tǒng)的嵌入式系統(tǒng)異常處理通常采用中斷響應(yīng)方式,當(dāng)異常發(fā)生時(shí),系統(tǒng)通過異常向量表跳轉(zhuǎn)到對應(yīng)的異常處理函數(shù)中。隨著嵌入式系統(tǒng)及應(yīng)用日益復(fù)雜,異常的種類也在不斷增多,出現(xiàn)了許多新的需求。本文通過分析嵌入式應(yīng)用軟件特征,歸納出以下異常處理新的需求。

    (1)異常處理框架。為了滿足日益復(fù)雜的異常處理場景,提供具有基本異常處理流程及應(yīng)用開發(fā)接口的框架是必要的。該框架既可使異常從發(fā)生到處理都具備完整的處理流程,同時(shí),也為應(yīng)用開發(fā)者提供標(biāo)準(zhǔn)的接口,用于自定義異常處理函數(shù)。開發(fā)者自定義的內(nèi)容不會(huì)改變整個(gè)異常處理的流程,但能夠豐富某個(gè)階段的異常處理功能。

    (2)狀態(tài)機(jī)。缺少異常處理會(huì)降低系統(tǒng)的可靠性,而有缺陷的異常處理也會(huì)導(dǎo)致嚴(yán)重的系統(tǒng)故障。研究表明[2],有相當(dāng)一部分錯(cuò)誤是由不正確的異常處理造成的。狀態(tài)機(jī)可以有效避免異常處理過程中出現(xiàn)二次異常的問題,通過定義異常處理過程中的各個(gè)狀態(tài)及狀態(tài)間的跳轉(zhuǎn)條件,規(guī)定了各狀態(tài)下可能的動(dòng)作,從而識別異常處理過程中的二次異常,并予以合理地解決。

    (3)嵌套異常處理。現(xiàn)代嵌入式應(yīng)用往往包含多個(gè)任務(wù),存在各種嵌套關(guān)系。異常處理不僅需要隨著函數(shù)調(diào)用的深入形成嵌套關(guān)系,還要隨著函數(shù)調(diào)用的返回逐層解開,并回退嵌套的堆棧[3]。當(dāng)異常發(fā)生時(shí),異常處理框架首先對匹配異常處理函數(shù)進(jìn)行搜索,若異常發(fā)生在第10層的函數(shù)調(diào)用,而異常處理函數(shù)在第5層,異常處理框架則需要將當(dāng)前堆棧從第10層逐層回退到第5層,恢復(fù)第5層的運(yùn)行環(huán)境進(jìn)行異常處理。

    (4)自定義鉤子函數(shù)。傳統(tǒng)的異常處理機(jī)制與處理器架構(gòu)緊密相關(guān),需要通過匯編語言對寄存器操作,這導(dǎo)致軟件的移植性和健壯性很差。現(xiàn)代操作系統(tǒng)提供了鉤子掛接機(jī)制,在應(yīng)用程序中通過鉤子函數(shù)接入自定義的異常處理模塊,當(dāng)異常發(fā)生時(shí),鉤子函數(shù)會(huì)捕捉到內(nèi)核發(fā)出的異常信號,獲得控制權(quán)并予以處理。通過鉤子函數(shù)能夠避免對寄存器直接操作,獲取異常信息與處理器無關(guān),有效增強(qiáng)嵌入式軟件的移植性和健壯性。

    (5)異常拋出機(jī)制。傳統(tǒng)的嵌入式軟件異常處理只能響應(yīng)系統(tǒng)級異常,無法處理程序邏輯異常。而隨著系統(tǒng)復(fù)雜性的增加,程序邏輯上錯(cuò)誤也會(huì)對系統(tǒng)造成嚴(yán)重的影響。異常拋出[4]是處理程序邏輯異常的有效機(jī)制,但目前大多數(shù)嵌入式軟件編程語言并沒有提供這種機(jī)制,比如C、匯編等。所以異常處理框架需提供異常拋出機(jī)制,開發(fā)者通過調(diào)用相關(guān)函數(shù)啟動(dòng)異常拋出功能,對代碼段進(jìn)行監(jiān)控,捕捉異常信息并處理。

    面對現(xiàn)代嵌入式系統(tǒng)對異常處理機(jī)制提出的需求,國內(nèi)外研究者進(jìn)行了深入研究并取得了一系列成果。文獻(xiàn)[5]采用有限狀態(tài)機(jī),通過對異常上下文信息進(jìn)行分析,有效提升了異常處理的效率和準(zhǔn)確性。但異常處理策略單一,并沒有解決異常處理過程中二次異常和異常擴(kuò)散等問題。文獻(xiàn)[6]針對嵌入式系統(tǒng)提出了一種異常定位方法,對系統(tǒng)運(yùn)行時(shí)出現(xiàn)的異常進(jìn)行分類,但并未給出異常處理的策略。文獻(xiàn)[7]提出了一種分層次多策略的異常處理框架,通過檢查點(diǎn)回滾恢復(fù)實(shí)現(xiàn)多級異常處理。然而,該框架無法判別異常處理方法本身的缺陷。

    針對這些新的需求,本文設(shè)計(jì)了一個(gè)基于結(jié)構(gòu)化模型的異常處理框架,可提供多層面的解決方案,涵蓋嵌入式系統(tǒng)異常處理的絕大多數(shù)特性,為系統(tǒng)處理各類異常提供有效支持。同時(shí),異常處理框架還具有豐富的鉤子函數(shù)掛載接口,開發(fā)者可掛載自定義的異常處理模塊,提高程序運(yùn)行的健壯性。

2 異常處理框架的設(shè)計(jì)實(shí)現(xiàn)

2.1 異常處理框架模型

    異常處理框架定義了對異常的捕獲、處理、保存以及跟蹤等一整套流程。從功能上可分為3個(gè)模塊:異常控制、異常捕獲及異常處理。其中,異常控制是一個(gè)邏輯概念,它負(fù)責(zé)維護(hù)異常處理狀態(tài)機(jī),控制著整個(gè)處理流程,防止異常處理過程中出現(xiàn)二次異常;異常捕獲則完成系統(tǒng)及應(yīng)用在運(yùn)行時(shí)異常的捕獲,并通過直接調(diào)用或發(fā)送信號等手段啟動(dòng)異常處理模塊;異常處理模塊接收異常信息,對捕獲到的異常提供基本處理方法,也支持用戶自定義的處理手段。

    圖1是異常處理框架在CGEL中的具體實(shí)現(xiàn)模型,框架基于標(biāo)準(zhǔn)的信號機(jī)制實(shí)現(xiàn)。其中異常捕獲對系統(tǒng)及應(yīng)用在運(yùn)行過程中出現(xiàn)的異常進(jìn)行捕獲,通過信號調(diào)用異常處理模塊予以處理,整個(gè)處理流程由異常控制模塊維護(hù)。同時(shí),異常處理框架還可以調(diào)用狀態(tài)監(jiān)控等系統(tǒng)服務(wù),進(jìn)行錯(cuò)誤信息的存儲和告警操作,對異常進(jìn)行有效定位。

qrs1-t1.gif

    為了避免應(yīng)用程序?qū)Φ讓佑布苯硬僮鳎惓L幚砜蚣転閼?yīng)用開發(fā)提供了線程級和進(jìn)程級兩個(gè)層次的回調(diào)鉤子函數(shù)。應(yīng)用中每個(gè)線程都分配一個(gè)異常回調(diào)函數(shù)鏈表,當(dāng)出現(xiàn)異常時(shí),框架會(huì)從該線程異常回調(diào)鏈表尾部開始搜索匹配的異常回調(diào)函數(shù),鏈表還可支持程序中多層異常嵌套。而進(jìn)程級異常回調(diào)函數(shù)對整個(gè)應(yīng)用有效,該函數(shù)只能被掛接一次,當(dāng)所有線程都無法處理異常時(shí),進(jìn)程級異常回調(diào)函數(shù)將被調(diào)用。開發(fā)者可以根據(jù)需要在不同層次的回調(diào)鉤子上掛接自定義的異常處理程序。

2.2 異常處理狀態(tài)機(jī)

    通過對異常處理所處狀態(tài)的統(tǒng)一管理,狀態(tài)機(jī)能夠幫助異常處理過程有序地進(jìn)行,支持各種異常處理方法的協(xié)調(diào)運(yùn)行。當(dāng)系統(tǒng)出現(xiàn)異常,狀態(tài)機(jī)會(huì)了解出現(xiàn)異常的狀態(tài),比如是否進(jìn)入了循環(huán)異常、是否為系統(tǒng)異常等,并決定處理異常的動(dòng)作,指導(dǎo)異常處理框架的工作,用最優(yōu)的方式解決異常。為了避免異常重復(fù)進(jìn)入,異常處理模塊的狀態(tài)機(jī)設(shè)計(jì)了3種狀態(tài):正常態(tài)-Normal、異常處理態(tài)-ExcProc、異常升級處理態(tài)-ExcEscal。各狀態(tài)含義及跳轉(zhuǎn)條件如表1所示。

qrs1-b1.gif

    圖2是異常處理狀態(tài)機(jī)的遷移圖。在CGEL中,應(yīng)用狀態(tài)在線程的線程本地存儲(Thread Local Storage,TLS)中保存,如果使用pthread庫時(shí),可使用庫提供的TLS功能,否則需要實(shí)現(xiàn)一個(gè)簡單的TLS功能來保存每個(gè)線程的異常處理狀態(tài)。

qrs1-t2.gif

2.3 多級異常處理流程

    異常控制狀態(tài)機(jī)劃分了異常處理過程的不同狀態(tài),如何利用其進(jìn)行異常處理,則是異常處理流程的工作。異常處理框架提供了一個(gè)開放式的多級處理流程,開發(fā)者可根據(jù)應(yīng)用情況掛接不同級別的自定義異常處理函數(shù),逐級完成異常處理功能。異常處理模塊程序流程圖如圖3所示。下面介紹使用框架進(jìn)行多級異常處理的步驟:

qrs1-t3.gif

    步驟1:在需要使用異常處理功能的應(yīng)用程序中,對異常處理框架進(jìn)行初始化,掛接主處理函數(shù)Usr_ExcMain();

    步驟2:函數(shù)Usr_TrdExcHdlReg()和Usr_TrdExcHdlUnReg()用來注冊/注銷線程級異常處理鉤子,每個(gè)線程維護(hù)一個(gè)異常處理鉤子函數(shù)鏈表,新注冊的線程級異常處理鉤子以節(jié)點(diǎn)形式被掛接在鏈表尾;

    步驟3:函數(shù)Usr_ProcExcHookReg()和Usr_ProcExc-HookUnReg()用來注冊/注銷進(jìn)程級異常處理鉤子,進(jìn)程級異常處理鉤子對整個(gè)應(yīng)用進(jìn)程有效,只能被注冊一次,后面注冊的鉤子將覆蓋前面注冊的;

    步驟4:當(dāng)有線程出現(xiàn)異常,框架將調(diào)用Usr_ExcMain()進(jìn)入主處理流程,從尾部節(jié)點(diǎn)開始遍歷該線程的異常處理函數(shù)鏈表,通過節(jié)點(diǎn)上有效異常過濾函數(shù),判斷節(jié)點(diǎn)能否處理該異常。若能則調(diào)用該節(jié)點(diǎn)上掛接的異常處理鉤子,否則獲取前一節(jié)點(diǎn);

    步驟5:如遍歷完線程異常處理鉤子鏈表仍無法修復(fù),異常處理框架將把該異常升級為進(jìn)程全局異常,獲取進(jìn)程級異常處理鉤子函數(shù)gpf_UsrExcHook()予以處理;

    步驟6:若所有的異常處理都失敗,將根據(jù)用戶在函數(shù)Usr_SetExcExitAct()中設(shè)定的動(dòng)作退出該應(yīng)用進(jìn)程。

    上述步驟實(shí)現(xiàn)細(xì)節(jié)被封裝在異常處理框架中,用戶只需調(diào)用框架所提供的注冊接口掛接自定義的異常處理函數(shù),從而提高了異常處理機(jī)制的可移植性和健壯性。

2.4 異常捕獲

    異常捕獲模塊主要完成對各類異常的動(dòng)態(tài)捕捉,對于捕獲到的硬件異常,異常處理框架通過傳統(tǒng)的中斷響應(yīng)方式處理。對于不同的處理器體系,具體的異常編號和種類會(huì)有所不同,但主要有:(1)CPU運(yùn)行異常,如浮點(diǎn)錯(cuò)誤、除零錯(cuò)誤、越權(quán)保護(hù)錯(cuò)誤、非法指令等;(2)內(nèi)存管理異常,如數(shù)據(jù)寫異常、頁面異常、緩沖區(qū)異常等。

    除了以上這些硬件異常,應(yīng)用程序還有可能出現(xiàn)邏輯異常。這就需要異常處理框架能夠?qū)Υa段進(jìn)行監(jiān)視,并可啟動(dòng)異常處理流程。拋出異常是一種處理程序邏輯異常的有效機(jī)制,其代碼如下:

    TRY_BEGIN

        //需要保護(hù)的代碼

    THROW 異常

    TRY_END

    CATCH_BEGIN

        //異常處理代碼

    CATCH_END

    通過try-catch-throw語句,可以拋出程序中的異常,轉(zhuǎn)由正常控制流以外的代碼處理。拋出異常對于分離異常和正常代碼,有效增強(qiáng)異常處理功能非常重要。由于C語言缺乏對拋出異常的支持,需要在異常處理框架中添加類似功能。同時(shí),針對C語言特征對拋出異常機(jī)制進(jìn)行了修改,例如:C語言沒有類的概念,框架弱化了異常類型的概念,用異常號(unsigned int)表示異常類型;C語言無關(guān)鍵字try、catch、throw的支持,框架借助宏定義予以實(shí)現(xiàn),如表2所示。

qrs1-b2.gif

    除了設(shè)計(jì)必要的宏外,為了支持在多線程環(huán)境實(shí)現(xiàn)嵌套的try塊,異常處理框架還定義了一種處理try塊的棧式結(jié)構(gòu),該棧式結(jié)構(gòu)在線程初始化階段動(dòng)態(tài)申請空間,其指針保存在TLS中,在線程終止時(shí)釋放。

3 相關(guān)工作

    一些主流的嵌入式操作系統(tǒng)也提供了異常處理機(jī)制,下面將分析這些操作系統(tǒng)中異常處理機(jī)制的特點(diǎn),并與本文提出的異常處理框架進(jìn)行對比。

    從異常處理機(jī)制完備性和功能性角度而言,Windows CE[8]是比較全面的,它具有結(jié)構(gòu)化的異常處理機(jī)制,為開發(fā)者提供了有力的處理程序錯(cuò)誤或異常的武器。但針對C語言的異常拋出功能,Windows CE本身不支持,只能結(jié)合編譯器提供語言級的支持。另外,其異常處理流程沒有狀態(tài)機(jī)控制,無法解決在異常處理過程中出現(xiàn)的錯(cuò)誤。

    VxWorks[9]是業(yè)界非常著名的嵌入式實(shí)時(shí)操作系統(tǒng),它提供的全局異常鉤子回調(diào)函數(shù)在嵌入式系統(tǒng)中實(shí)用性很強(qiáng),同時(shí),VxWorks還提供了操作系統(tǒng)缺省異常處理,會(huì)對異常發(fā)生現(xiàn)場作函數(shù)調(diào)用鏈分析,并將異常信息通過終端輸出。但是,VxWorks的異常處理機(jī)制非常簡單,不支持異常處理狀態(tài)機(jī)以及異常拋出等高級功能,難以滿足現(xiàn)代嵌入式軟件的需求。

    由于具有豐富的系統(tǒng)功能、高度定制性及開放源碼特征,Linux在嵌入式領(lǐng)域得到了越來越廣泛的關(guān)注。Linux內(nèi)核[10]沒有提供統(tǒng)一的異常處理框架,異常處理流程被歸類在與CPU體系相關(guān)的代碼中,雖然流程基本一致,但隨著CPU體系不同還是有所差異。應(yīng)用程序需要采用接受異常信號的方式調(diào)用異常處理流程,不支持鉤子回調(diào)函數(shù),不支持異常處理狀態(tài)機(jī),這些都降低了應(yīng)用程序異常處理的健壯性及可移植性。

    本文的異常處理框架結(jié)合了主流嵌入式系統(tǒng)異常處理機(jī)制的特點(diǎn),具有完備的動(dòng)態(tài)鏈表模型和狀態(tài)機(jī),可以有效處理二次異常,還提供適合于嵌入式系統(tǒng)使用的回調(diào)函數(shù),同時(shí)對程序可能出現(xiàn)的邏輯異常提供了異常拋出機(jī)制,滿足現(xiàn)代嵌入式軟件對異常處理的需求。表3總結(jié)了上述各異常處理機(jī)制的特點(diǎn),并與CGEL進(jìn)行了功能對比。

qrs1-b3.gif

4 結(jié)束語

    異常處理已成為提升嵌入式系統(tǒng)健壯性和可用性的關(guān)鍵,本文針對現(xiàn)代嵌入式應(yīng)用軟件新的異常處理需求,提出了一種結(jié)構(gòu)化的異常處理框架模型,框架包含了3個(gè)主要功能模塊:異常捕獲、異常處理、異常控制,涵蓋嵌入式系統(tǒng)異常處理絕大多數(shù)特性,多級異常處理流程也為系統(tǒng)處理各類異常提供了多層面支持。

    目前,異常處理框架已在電信級嵌入式操作系統(tǒng)CGEL上實(shí)現(xiàn),并成功應(yīng)用于多款電信設(shè)備上,大大增強(qiáng)了系統(tǒng)的可靠性。同時(shí),良好的編程接口縮短了應(yīng)用軟件的開發(fā)周期,提高了開發(fā)質(zhì)量。高性能和分布式是未來嵌入式系統(tǒng)的主要特征,動(dòng)態(tài)改變異常處理程序優(yōu)先級、分布式的異常拋出及處理都是重要的研究方向,有待進(jìn)一步研究。

參考文獻(xiàn)

[1] 王繼剛,鄭緯民,鐘衛(wèi)東,等.基于Linux的混合實(shí)時(shí)操作系統(tǒng)[J].清華大學(xué)學(xué)報(bào),2009,49(7):1012-1015.

[2] Herbert Hecht.A systems engineering approach to exception handling[C].Proceeding of the Third International Conference on Systems.Washington DC,USA,2008:190-195.

[3] 朱劍鋒,繆萬勝,康介祥.基于堆棧回溯的異常處理[J].計(jì)算機(jī)工程與設(shè)計(jì),2014,35(12):4176-4180.

[4] Mao Chengying,Lu Yansheng.Study on the analysis and testing of exception handling in C++ programs[J].Mini-Micro Systems,2006,27(3):481-485.

[5] Cabdq Filho,Rmc Andrade,Ls Rocha,et al.ConExT-U:A context-aware exception handling mechanism for task-based ubiquitous systems[C].28th International Conference on Advanced Information Networking and Applications Work-shops.BC,Canada,2014:127-132.

[6] SAWADPONG P,ALLEN E B,WILLIAMS B J.Exception handling defects:an empirical study[C].14th International Symposium on High-Assurance Systems Engineering.Washington DC,USA,2012:90-97.

[7] Lu Zhou,Zhang Kailong,Zhou Xingshe.A software Fault-Tol-erant method based on exception handing in RT/E system[C].10th IEEE International Conference on Trust,Security and Privacy in Computing and Communications,Changsha,China,2011:1283-1287.

[8] 羊建林,周安民.Windows異常處理與軟件安全[J].信息安全與通信保密,2011,9(4):58-60.

[9] Wind River.VxWorks kernel programmers guide 6.9[M].California:Wind River Systems,2011.

[10] Robert Love.Linux kernel development[M].USA:Addison-Wesley Professional,2010.



作者信息:

王繼剛1,方  芳2,張華強(qiáng)1

(1.中興通訊股份有限公司 技術(shù)規(guī)劃部,江蘇 南京210012;

2.信息產(chǎn)業(yè)電子第十一設(shè)計(jì)研究院科技工程股份有限公司 信息中心,四川 成都610021)

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
主站蜘蛛池模板: 人人涩| 中文字幕.com| 日日碰狠狠添天天爽超碰97 | 久久99成人 | 精品无码黑人又粗又大又长 | 日韩精品一二三四区 | 国产精品视频在线观看 | 特黄一级视频 | 九九爱爱视频 | 中文字幕一区二区三区乱码 | 永久免费成人代码 | 波多野结衣在线视频网站 | 九色丨蝌蚪pony蜜桃臀 | 久久久久久久久久久网站 | 东北女人啪啪对白 | 国产h视频在线观看 | 国产性夜夜春夜夜爽 | 狠狠爱无码一区二区三区 | 免费看捆绑女人毛片 | av国产传媒精品免费 | 性欧洲精品videos' | 五月婷婷在线观看视频 | 全国男人的天堂网 | 东北老女人高潮久久91 | 毛片aaaaaa| 在线一二三区 | 草草黑森林av导航 | 99久久久久国产精品免费人果冻 | 欧美白嫩少妇xxxxx性 | 日本两性视频 | 亚洲精品手机在线观看 | 亚洲产国偷v产偷自拍网址 亚洲超丰满肉感bbw | 把女邻居弄到潮喷的性经历 | 美女热逼| 制服丝袜一区二区三区 | 欧美精品久久久久久 | 久久久久免费精品国产小说色大师 | 久久国产精品网 | 天堂中文在线看 | 欧美激情天堂 | 四虎影视18库在线影院 | 中文一区二区在线观看 | 欧美精品videosbestsex日本 | 色porny真实丨海角社区 | 永久av免费| 色性网站| 国产精品51麻豆cm传媒 | 全部免费毛片在线播放 | 东京热一区二区三区无码视频 | 色婷婷亚洲六月婷婷中文字幕 | 亚洲精品v日韩精品 | 亚洲综合成人网 | 日韩高清av在线 | 自拍99 | 不卡一区二区在线 | 欧美整片在线观看 | 亚洲欧洲一二三区 | 1000部禁片18勿进又色又爽 | 偷窥村妇洗澡毛毛多 | 亚洲一区视频在线播放 | 99久久精品无码一区二区三区 | 污污视频在线观看网站 | 羞羞的视频网站 | 国产高清性xxxxxxxx | 午夜粉色视频 | 男女做爰猛烈叫床爽爽免费网站 | 羞羞av.tv| a级黄色片免费看 | 色噜噜狠狠色综合免费视频 | 国产一区二区不卡在线 | 性猛交富婆╳xxx乱大交麻豆 | 91重口入口处 | 无码国产伦一区二区三区视频 | 中文字幕视频一区二区 | 日韩在线专区 | 66亚洲一卡2卡新区成片发布 | 午夜18视频在线观看 | 亚洲va中文字幕无码久久 | 2022精品国偷自产免费观看 | 中文天堂国产最新 | 国产乱子经典视频在线观看 | 日韩不卡免费视频 | 十八禁视频网站在线观看 | 18禁裸男晨勃露j毛免费观看 | 成人做爰免费视频免费看 | 中文字幕在线播放日韩 | 五月婷婷网 | 日日碰狠狠躁久久躁 | 秋霞成人网 | www.欧美日韩| 亚洲va中文在线播放免费 | 欧美一级网 | 日日鲁鲁鲁夜夜爽爽狠狠视频97 | 91精品国产99久久久 | 欧美精品乱人伦久久久久久 | 国产精品欧美一区二区三区 | 狠狠干狠狠操视频 | 中日韩精品视频在线观看 | 99reav| 免费看美女隐私网站 | 黄色毛片大全 | 欧美女人交配视频 | 一级做a爰片久久毛片a | 97视频在线免费播放 | 国产激情久久 | 中文字幕国产一区 | 黄色av免费在线播放 | 乱熟女高潮一区二区在线 | 四虎激情| 性欧美大战久久久久久久 | 色欲av亚洲一区无码少妇 | 久久精品三级 | 亚洲一区视频网站 | 午夜久久视频 | 99久久精品久久久久久清纯 | 国产精品无套呻吟在线 | 国产福利久久久 | 亚洲精品午夜国产va久久成人 | 国产三级国产精品国产专区50 | 无码中文字幕在线播放2 | 亚洲成人在线网站 | 在线天堂新版最新版在线8 麻豆成人精品国产免费 | 成人人人人人欧美片做爰 | 国产一级在线播放 | 亚洲欧洲视频 | 亚洲一区国产精品 | 有码视频在线观看 | 国模av| 丝袜美腿中文字幕 | 亚洲精品免费在线观看视频 | 人人爽人人爽少妇免费 | 插插宗合网 | 国产成人无码a区在线观看导航 | 北条麻妃一区二区三区四区五区 | 国产激情综合五月久久 | 久久国产一区 | 国产无套粉嫩白浆内精品 | 成人婷婷网色偷偷亚洲男人的天堂 | 麻豆文化传媒精品一区 | 永久免费看成人av的动态图 | 夜夜高潮天天爽欧美国产亚洲一区 | 中文字幕亚洲一区 | 国产精品亚洲一区二区无码 | 欧美国产日产一区二区 | 一区二区日韩视频 | 无套内谢丰满少妇中文字幕 | 欧美夜夜夜 | 蜜桃精品视频 | 国精产品一区一区三区有限在线 | 精品久久国产视频 | 国产无套内射普通话对白 | 日本免费一区二区三区高清视频 | 麻豆av毛片 | 男女毛片视频 | 小拗女一区二区三区 | 亚洲啪啪aⅴ一区二区三区9色 | 国产在线观看99 | 亚洲熟妇色xxxxx欧美老妇 | 欧洲熟妇色xxxxx欧美老妇伦 | 91高清网站| 日韩视频免费大全中文字幕 | 日本一本一道 | 国产精品视频大全 | 二级特黄绝大片免费视频大片 | 中文字幕日韩精品亚洲一区小树林 | 强制中出し~大桥未久在线播放 | 亚洲自拍天堂 | 精品偷拍被偷拍在线观看 | 精品乱人码一区二区二区 | 亚洲成av人片一区二区密柚 | 女人高潮av国产伦理剧 | 黄色a级一级片 | 天天躁日日躁狠狠躁喷水 | 少妇视频在线播放 | 亚洲一区二区久久 | 国产精品久久久久无码av | 精品亚洲欧美无人区乱码 | 欧美性开放情侣网站 | 粗大猛烈进出高潮视频 | 中文久久乱码一区二区 | 男女性网站 | 精品一二三 | 久久久久久久久久久久久大色天下 | www一级片| 日韩视频 中文字幕 | 亚洲精品综合欧美二区变态 | 伊人久久在线 | 久久久午夜视频 | 黄色的视频网站 | 亚洲国产精品成人一区二区在线 | 99视频只有精品 | 女人精69xxxⅹxx视频 | 色人阁av| 国产成人欧美一区二区三区 | ts人妖另类精品视频系列 | 欧美亚洲综合视频 | 久久久www成人免费毛片 | 中文字幕在线不卡 | 久久露脸视频 | 一区二区三区精彩视频 | 久久久久爽爽爽爽一区老女人 | 奇米网88狠狠狠 | 特黄特色大片免费视频大全 | 久久人人爽av亚洲精品天堂 | 性色a码一区二区三区天美传媒 | 国产女人被狂躁到高潮小说 | 日本黄色网络 | 欧美精品久久一区二区 | 亚洲成a人片在线观看中文 精品久久久久久久中文字幕 | 日韩精品一区二区三区 | 日韩av视屏 | 99热一区 | 国产中老年妇女精品 | 久久久久国产一区二区 | 欧美成人一区二区三区四区 | 超碰aⅴ人人做人人爽欧美 狠狠亚洲婷婷综合色香五月 | 七七婷婷婷婷精品国产 | 色欲av伊人久久大香线蕉影院 | 天天射日 | 三级全黄的女人高潮叫 | 欧美一级黄色片免费看 | yy1111111少妇影院免费 | 激情亚洲天堂 | www.日韩高清 | 国产精品日本一区二区不卡视频 | www.五月激情 | www黄色大片 | 国产精品无码一区二区三区不卡 | 亚洲精品美女在线观看播放 | 东京亚洲区卡不 | 欧美精品卡一卡二 | caowo88国产欧美久久 | 国产情侣久久 | 久久久亚洲精品石原莉奈 | 国产–第1页–屁屁影院 | 国产又粗又猛又色 | 亚洲日韩aⅴ在线视频 | 国产精品国产三级国产专播i12 | 人妖和人妖互交性xxxx视频 | 激情五月婷婷 | 韩国成人在线视频 | 久热这里只有精品视频6 | 欧美精品入口 | 国产精品无码av不卡顿 | 欧美三级欧美成人高清www | 国产丝袜调教 | 国产一区亚洲二区 | 中文字幕在线视频免费 | 国产色欲av一区二区三区 | 91丝袜放荡丝袜脚交 | 免费无码一区二区三区蜜桃大 | 69亚洲精品久久久蜜桃小说 | 丝袜av网站 | 激情偷乱人伦小说视频在线 | 精品人妻中文字幕有码在线 | 亚洲欧洲美洲精品一区二区三区 | 四虎久久久 | 久久精品国产亚洲7777 | 久久午夜无码免费 | 日日噜噜夜夜狠狠va视频v | 内射巨臀欧美在线视频 | 18禁无遮挡羞羞污污污污免费 | 午夜在线观看视频 | 日本在线不卡一区二区三区 | 国产精品96久久久久久吹潮 | 一级激情片 | 亚洲精品久久久久久 | 国产农村一国产农村无码毛片 | 青春草国产视频 | 午夜美女裸体福利视频 | 久久久亚洲欧洲日产国码αv | 成人av小说 | av无码久久久久不卡免费网站 | 亚洲视频福利 | 日韩精品――中文字幕 | 国语对白嫖老妇videos | 天堂视频中文在线 | 国产口爆吞精在线视频 | 一区二区三区在线免费 | 国产chinese精品av | 免费在线色视频 | 奇米第四色7777| 精品欧美一区二区三区久久久 | 久久精品国产久精国产一老狼 | 亚洲自拍色图 | 4399午夜理伦免费播放大全 | 免费毛片在线播放免费 | 一本加勒比hezyo国产 | 小莹浴室激情2 | 免费国产精品视频 | 四虎永久网址 | 国产成人精品日本亚洲专区61 | 清纯小美女主播流白浆 | 久久黄色影院 | 成人看片黄a免费看视频 | а√天堂8资源在线官网 | 最近免费中文字幕大全免费版视频 | 日本成人不卡 | 日本少妇毛茸茸高潮 | 国产日韩精品一区 | 国产最露的三级 | 国产精品久久久久久52avav | 67194成人手机在线 | 久热中文字幕在线 | 午夜亚洲精品 | 国产毛片网 | 国产人妻久久精品二区三区老狼 | 日本一本在线 | 亚洲午夜精品一区二区 | 亚洲欧洲国产综合 | 国产成a人片在线观看视频下载 | 91精品国产高清一区二区三密臀 | 又大又粗又爽18禁免费看 | 男人天堂五月天 | 人妻尝试又大又粗久久 | 亚洲免费观看av | 日韩视频一二三 | 欧美高清a | 国产精品无码一区二区三区免费 | 国产亚洲黄色片 | 大伊人狠狠躁夜夜躁av一区 | 91插插插视频 | 污污内射久久一区二区欧美日韩 | 天天干夜操 | 无码骚夜夜精品 | 日本少妇又色又爽又高潮看你 | 欧美精品久久久久久久久久 | 久久久久久国产精品免费免费 | 久久99精品国产.久久久久 | 欧美内射深插日本少妇 | 亚欧激情乱码久久久久久久久 | 亚洲乱轮视频 | 一区二区国产在线观看 | 夜夜操综合| 亚洲精品一品区二品区三品区 | 亚洲中文字幕成人无码 | 色小姐综合 | 一级做a爱片性色毛片 | wwwcom毛片| 久久国产精品影院 | 椎名由奈中文字幕 | 九九精品在线观看视频 | 美日韩丰满少妇在线观看 | comwww在线观看免费软件 | 在线不卡aⅴ片免费观看 | 97精品国产一区二区三区 | 亚洲一区激情 | 少妇裸体视频 | 古代黄色一级片 | 欧美国产精品一区二区 | 日韩一级免费 | 全部免费毛片在线播放一个 | 久久免费看少妇高潮 | 亚洲国产视频在线观看 | 亚洲欧洲日韩综合 | 日本高清视频一区二区三区 | 国产一级做a爱片 | 日韩尤物 | 大奶子情人 | 91免费. | 免费看a级片 | 少妇色诱麻豆色哟哟 | 日本美女毛片 | 中文日产乱幕九区无线码 | 欧美性开放视频 | 日韩精品一卡2卡3卡4卡分类 | ts人妖另类精品视频系列 | 日韩欧美在线综合网 | 国产日产亚洲系列最新 | 人妻无码中文专区久久五月婷 | 亚欧成人网 | 亚洲乱码在线观看 | 欧美乱大交xxxxx | 欧美性猛交ⅹxxx乱大交妖精 | 色网站免费 | 91视频在线观看视频 | 久草在线在线精品观看 | 精品国产制服丝袜高跟 | 国产两女互慰高潮视频在线观看 | 啪啪网站免费 | 国产伦子沙发午休系列资源曝光 | 中文字幕在线官网 | 欧美性久久久 | 91精品国产乱码在线观看 | 精品国产一区二区三区四区vr | www.国产视频 | 艳妇臀荡乳欲伦交换h在线观看 | 久久密av| 天天综合网国产 | fc2ppv在线播放 | 国产日本一区二区三区 | 懂色中文一区二区三区在线视频 | 精品无码国产av一区二区 | 国产无 | 亚洲中文字幕av无码区 | 99久久99久久精品国产片果冻 | 天天射天天干天天操 | 国产美女av | 三级伊人 | 在线观看日韩欧美 | 亚洲国产欧美国产综合一区 | 亚洲精品免费播放 | .精品久久久麻豆国产精品 国产精品久久毛片 | 97精品久久 | 天海翼一区二区三区四区在线观看 | 国产精品毛片一区二区 | 亚洲精品乱码久久久久久 | 寂寞骚妇被后入式爆草抓爆 | 夜夜高潮夜夜爽夜夜爱爱 | 粉嫩av一区二区在线播放免费 | 狂野欧美性猛交免费视频 | 性猛交ⅹxxx乱大交孕妇 | 四虎影库永久在线 | 久草福利在线 | 国产精品一线二线三线 | 精品无码一区在线观看 | 中文字幕亚洲欧美日韩 | 少妇高潮喷水惨叫久久久久电影 | 91视频区| 亚洲日批视频 | 欧美大片在线观看 | 亚洲精品国产一区二区精华液 | 国产女人在线观看 | 91欧美一区二区三区 | 中国一级片黄色一级片黄 | 免费在线小视频 | 男人和女人高潮做爰视频 | 日韩久久一级片 | 国产极品网站 | 黄色小视频在线播放 | 久久久6精品成人午夜51777 | 欧美老熟妇欲乱高清视频 | 一本大道久久a久久综合婷婷 | 国产欧美日韩成人 | 日本一区二区三区精品视频 | 色丁香在线 | 成人性生交大片免费看r老牛网站 | 男人的天堂99 | 久久国产午夜精品理论片推荐 | 在线日本看片免费人成视久网 | 香蕉视频传媒 | 亚洲国产网 | 久久精品日日躁夜夜躁 | www夜插内射视频网站 | 无码午夜福利视频一区 | 国模冰冰炮一区二区 | 蜜桃成人无码区免费视频网站 | 99久久国产宗和精品1上映 | 午夜影院欧美 | 青青青在线视频人视频在线 | 又黄又爽的视频在线观看 | 越南a级片| 人善性zzzzzo另类 | 国产变态拳头交视频一区二区 | 亚洲一区二区三区四区五区中文 | 国产偷v国产偷v亚洲 | 中国美女黄色一级片 | 国产又粗又黄又长又爽动漫 | 97视频国产 | 丁香花小说手机在线观看免费 | 五月天综合激情网 | 欧美精品一区二区视频 | 综合久草| 婷婷色小说 | 依人综合| 欧美性猛交一区二区三区精品 | 国产精品午夜视频 | 少妇又色又爽又高潮极品 | 国产毛片精品国产一区二区三区 | 人妻毛片网站 | 精品日韩一区二区三区免费视频 | 亚洲欧美在线观看 | 精品视频久久久久久久 | 在线观看免费黄色av | a级毛片,黄,免费观看 m | 欧美成人小视频 | 日韩精品毛片无码一区到三区 | 亚洲国产欧美日韩精品一区二区三区 | 中文字幕丰满孑伦无码专区 | 国产一级免费观看 | 中文有码一区 | 99久久久无码国产精品性 | 欧美国产成人精品 | 麻豆网址 | 精品亚洲韩国一区二区三区 | 国产a级片 | 少妇精品无码一区二区免费视频 | 99无码熟妇丰满人妻啪啪 | 日本三级视频在线观看 | 色成人亚洲 | 精品福利一区二区三区 | 不卡三区 | 久久视了 | 狠狠操狠狠爱 | 91亚洲精品久久久久图片蜜桃 | 成年人看的黄色 | 免费日韩一区二区 | 性一交一乱一伦视频免费观看 | 狠狠色噜噜狠狠狠狠999米奇 | 国产精品入口66mio男同 | 精品午夜一区二区 | 国产日产欧美a级毛片 | 国产精品久久欧美久久一区 | 久久精品一区二区三区四区 | 人成乱码一区二区三区 | 免费的很黄很污的视频 | 日韩欧美在线一区 | av最新版天堂资源在线 | 69亚洲精品久久久蜜桃 | 尤物在线视频 | 亚洲码欧美码一区二区三区 | 苍井空一区二区波多野结衣av | 欧美群交射精内射颜射潮喷 | 免费色片网站 | 麻豆黄色网址 | 午夜亚洲国产理论片一二三四 | 国产乱淫av麻豆国产 | 丁香婷婷亚洲综合 | 麻豆人妻无码性色av专区 | 国产亲子私乱av | xxx在线播放xxx | 中文字幕永久免费视频 | 精品亚洲精品 | 高清一区在线观看 | 91性高潮久久久久久久 | 亚洲a∨无码一区二区三区 国产乱子伦精品免费女 | 91精品网| 国产精品一区二区不卡 | 国产精品情侣呻吟对白视频 | 国产永久视频 | 久久精品99国产国产精 | 国产办公室秘书无码精品99 | 天天插天天射天天干 | 日韩在线视频一区 | 五月天社区| 天堂在/线中文在线资源 官网 | 日韩精品一级 | 日本在线视频一区 | 日韩精品在线观看一区二区 | 视频在线一区二区 | 国产最露的三级 | 日韩午夜在线 | 日本肉体xxxⅹ裸体交 | 18女下面流水不遮图 | 无码专区一va亚洲v专区在线 | 国产亚洲成av人片在线观黄桃 | 成人激情在线视频 | 中文日韩一区二区 | 欧美 亚洲 中文 国产 综合 | 在线中文字日产幕 | 国产日韩久久久 | 免费黄色链接 | 久久午夜夜伦鲁鲁片免费无码 | 在线亚洲综合 | av最新天| 国产手机在线αⅴ片无码观看 | 一本一道久久久a久久久精品91 | 亚洲久久视频 | 久久午夜免费视频 | 国产精品久久久久婷婷二区次 | 成人毛片一级 | 久久99草 | 大陆少妇xxxx做受高清 | 末发育娇小性色xxxx | 亚洲成人精品一区二区三区 | 高清视频一区 | 在线 国产 欧美 亚洲 天堂 | 中文av网站 | 草草草在线 | 色噜噜狠狠色综合免费视频 | 极品新婚夜少妇真紧 | 最近中文字幕在线免费观看 | 嫩草视频入口 | 风流老熟女一区二区三区 | 2021国产精品久久久久青青 | 色在线看 | 美女视频久久久 | 日本少妇与黑人 | 精品国产品香蕉在线 | 丰满亚洲大尺度无码无码专线 | 国产精品第一国产精品 | 久久国内偷拍 | 99精品免费久久久久久久久日本 | 无码国产69精品久久久久同性 | 无遮挡啪啪摇乳动态图gif | 欧美91精品久久久久国产性生爱 | 欧美性成人 | 福利免费视频 | 国产激情网| 久久中文字幕av | 久热国产在线 | 欧美xxxx见血| 四季av中文字幕一区 | 中国毛片视频 | 四虎影库永久地址 | 久久久精品国产99久久精品麻追 | 亚洲干综合| 国产成人不卡 | 欧美精品成人在线 | 女人被男人爽到呻吟的视频 | 81精品久久久久久久婷婷 | 在线观看免费日韩av | 樱桃国产成人精品视频 | www.欧美激情 | 性色欲情网站 | 国产一级做a爱片 | 亚洲精品久久7777777 | 少女高清影视在线观看动漫 | 色哥网| 精品久久中文 | 国产.com | 成人一级片在线观看 | 日韩经典午夜福利发布 | 国产欧美一区二区精品老汉影院 | 激情高潮呻吟抽搐喷水 |