亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        優(yōu)化單片機性能的課程實驗教學(xué)改革

        2024-01-19 00:41:54
        濟寧學(xué)院學(xué)報 2023年6期
        關(guān)鍵詞:單片機實驗教學(xué)優(yōu)化

        高 歌

        (濟寧學(xué)院 產(chǎn)業(yè)學(xué)院,山東 曲阜 273155)

        隨著現(xiàn)代工業(yè)的快速發(fā)展,單片機(Micro controller Unit,簡稱MCU)技術(shù)迅速發(fā)展,在工業(yè)控制、智能家用電器、通訊和軍事等眾多領(lǐng)域得到了越來越廣泛的應(yīng)用,社會對掌握該技術(shù)的人才需求越來越大?!皢纹瑱C原理及應(yīng)用”課程作為自動化類專業(yè)的基礎(chǔ)課程,要求學(xué)生不僅需要掌握單片機大量的理論知識,還要進行理論和實踐相結(jié)合,才能更深入地理解單片機知識。實驗教學(xué)作為課程教學(xué)的一個教學(xué)環(huán)節(jié)在整個教學(xué)中具有重要的作用,它不僅可以使學(xué)生加深對理論知識的理解,還能夠培養(yǎng)他們的動手操作能力,開拓他們的思維[1]153-154。

        單片機課程實驗教學(xué)中,由于MCU資源有限,單片機的實驗教學(xué)面臨著很大的挑戰(zhàn),如何在有限的資源下提高MCU的工作效率變得十分重要。實驗教學(xué)中需要在提高性能和效率的前提下盡可能降低功率,按照當(dāng)前研究來看,大多數(shù)MCU實驗的思路都是通過提高工作效率來盡快完成當(dāng)前任務(wù),然后使單片機進入低功率狀態(tài),這樣不僅能夠減少資源的浪費,還能從整體上提高效率。提高嵌入式單片機的性能是當(dāng)前研究人員廣泛關(guān)注的課題之一,不同的架構(gòu)和系統(tǒng)功能的內(nèi)部運行方式往往存在一些細微差別,而這些差別會影響到系統(tǒng)的表現(xiàn)。

        論文以飛思卡爾Kinetis K系列MCU為例,分析影響系統(tǒng)性能的因素,通過在實驗中提高MCU運行效率來對系統(tǒng)的性能進行優(yōu)化,確保學(xué)生提高對MCU的認識和理解,能夠獲得更好的實驗教學(xué)效果。Kinetis K系列芯片是2010年Freescale公司推出的基于ARM?CortexTM-M4內(nèi)核的芯片,MCU的基本結(jié)構(gòu)示意圖[2]如圖1所示。

        圖1 MCU的基本結(jié)構(gòu)圖

        一、Kinetis K 系列架構(gòu)和主要硬件概述

        Kinetis K系列的系統(tǒng)主要由Kinesis內(nèi)核總線、SRAM靜態(tài)存儲器、系統(tǒng)緩存、閃存控制器(FMC)、交叉開關(guān)(AXBS)組成。經(jīng)過多年的發(fā)展,Kinetis K系列逐漸成熟,簡化結(jié)構(gòu)框圖[3]如圖2所示。

        圖2 Kinetis K系列的簡化結(jié)構(gòu)框圖

        Kinesis K系列的系統(tǒng)架構(gòu)是影響單片機整體性能最重要的因素之一。內(nèi)核總線中,系統(tǒng)總線周期的時序取決于訪問類型。系統(tǒng)總線的數(shù)據(jù)訪問在內(nèi)核無附加延時,而指令訪問則會在內(nèi)核增加一個等待狀態(tài)。Kinetis系統(tǒng)的存儲器映像匯總了地址在0x2000_0000以下的主要存儲器區(qū)域,使得從外部存儲器執(zhí)行代碼時發(fā)揮最大性能[4]2。

        SRAM靜態(tài)存儲器是負責(zé)存儲代碼和數(shù)據(jù)的區(qū)域,內(nèi)核端口可通過CODE總線和系統(tǒng)總線訪問SRMA,MCU片上的非內(nèi)核主機也可通過后門端口訪問SRAM,所有Kinetis K系列器件都含有兩個片上SRAM塊。第一個塊(SRAM_L)映射于CODE總線,第二個塊(SRAM_U)則映射于系統(tǒng)總線。由于SRAM控制器處理的訪問端口比SRAM塊要多,因此SRAM控制器具有內(nèi)部的仲裁邏輯。仲裁過程通過MCM_CR中的字段進行控制,給每個SRAM塊預(yù)留了可編程的仲裁模式。

        Kinetis器件中含有可顯著提高性能的系統(tǒng)緩存,系統(tǒng)緩存實際上包含兩個獨立的8KB高速緩存塊。第一個8KB緩存用于CODE總線訪問,第二個8KB緩存用于系統(tǒng)總線訪問。高速緩存的設(shè)置通過使用預(yù)定義的地址區(qū)域進行配置。系統(tǒng)緩存的存在,使得在從外部存儲器執(zhí)行代碼時,速度優(yōu)勢尤為明顯。

        閃存控制器(FMC)是閃存塊和系統(tǒng)的接口。在典型配置中,內(nèi)核總線和系統(tǒng)總線的時鐘速度比閃存時鐘的速度要快得多。FMC具有的一些特性可用來加速閃存訪問,FMC緩存和預(yù)取推理緩沖器可使FMC響應(yīng)閃存訪問時無附加等待狀態(tài)。只要請求的信息在緩存和預(yù)取緩沖器中可用,FMC的響應(yīng)無附加等待狀態(tài)。

        交叉開關(guān)是微控制器的主要總線互連結(jié)構(gòu)。交叉開關(guān)負責(zé)處理總線主控器和從端口之間的連接,當(dāng)多個主控器同時嘗試訪問同一從端口時,還負責(zé)處理主控器之間的仲裁。

        二、實驗教學(xué)中存在的問題

        在單片機(MCU)實驗教學(xué)過程中,作為課堂教學(xué)的一個教學(xué)環(huán)節(jié),通常是教師提供實驗程序,學(xué)生在規(guī)定的時間內(nèi)按照規(guī)定的步驟完成實驗內(nèi)容。學(xué)生在實驗中很少涉及實際的電路編程內(nèi)容,導(dǎo)致學(xué)生對設(shè)計類實驗無從下手,不知道如何進行系統(tǒng)設(shè)計。在實驗教學(xué)中,通常存在以下問題:

        1.實驗教學(xué)內(nèi)容與最新技術(shù)的整合不足。隨著技術(shù)的快速發(fā)展,實驗教學(xué)需要與最新的技術(shù)和平臺進行整合,以提供更全面、實用和前沿的教學(xué)內(nèi)容。對于一些老舊的Kinetis單片機型號,可能無法利用最新技術(shù)進行教學(xué)和開發(fā),因此需要合理地利用一些隱藏式的功能來提高教學(xué)效果。

        2.實驗教學(xué)案例相對缺乏。對于初學(xué)者來說,缺乏實際的教學(xué)案例可能導(dǎo)致理論知識與實際應(yīng)用脫節(jié)。所以需要提供豐富的教學(xué)案例,來幫助學(xué)生更好地理解和應(yīng)用Kinetis系列單片機的功能和特點。

        3.教學(xué)過程中互動與實踐環(huán)節(jié)相對較少。在課程實驗教學(xué)中,應(yīng)注重互動與實踐環(huán)節(jié)的設(shè)計。缺乏互動和實踐的環(huán)節(jié)可能導(dǎo)致學(xué)生對Kinetis系列單片機的理解和應(yīng)用存在局限性,無法真正掌握相關(guān)技能。

        三、實驗教學(xué)性能優(yōu)化方案分析

        針對實驗教學(xué)中存在問題,以Kinetis K系列單片機為例,通過盡可能多地使用SRAM_L塊存儲關(guān)鍵代碼和數(shù)據(jù)、使用MUC系統(tǒng)緩存、閃存控制器(FMC)中固有的閃存加速特性、合理使用代碼優(yōu)化功能、采用DMA傳輸大塊數(shù)據(jù)、采用錯誤檢測和冗余設(shè)計等措施來優(yōu)化系統(tǒng),提高單片機的性能和可靠性,提高實驗教學(xué)效果和實驗效率。

        (一)盡可能多地使用SRAM_L塊存儲關(guān)鍵代碼和數(shù)據(jù)

        所有Kinetis K系列單片機都設(shè)置有兩個片上SRAM塊。第一個塊(SRAM_L)映射于CODE總線,第二個塊(SRAM_U)則映射于系統(tǒng)總線。訪問存儲器本身僅需一個周期,但由于指令訪問系統(tǒng)總線時在內(nèi)核延時一個時鐘周期,所以SRAM_U的指令訪問至少需要兩個時鐘周期。SRAM_L是唯一能存放代碼也能存放數(shù)據(jù)的存儲器,并且始終保證內(nèi)核訪問僅需一個周期。因此,盡可能多地使用SRAM_L塊具有很大意義,它是存放關(guān)鍵代碼的良好區(qū)域。

        SRAM_L和SRAM_U是Kinetis K系列單片機內(nèi)部的兩個獨立的RAM區(qū)域,它們的地址空間是連續(xù)的,但是訪問方式不同。SRAM_U是通過系統(tǒng)總線訪問的,SRAM_L是通過代碼總線訪問的。這意味著SRAM_U可以更快地存儲和讀取數(shù)據(jù),而SRAM_L可以更快地執(zhí)行代碼[5]5。

        Kinetis K系列單片機提供了修改SRAM_L和SRAM_U配置的方法,具體可以通過采取以下步驟來實現(xiàn):

        1.修改鏈接器配置文件(ICF文件),定義SRAM_L和SRAM_U的起始和結(jié)束地址,以及相應(yīng)的內(nèi)存區(qū)域[6]3。如:

        define symbol __ICFEDIT_region_RAM_start__ = 0x1FFFC000;

        define symbol __ICFEDIT_region_RAM_end__ = 0x1FFFFFFF;

        define symbol __region_RAM2_start__ = 0x20000000;

        define symbol __region_RAM2_end__ = 0x20003FFF;

        define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__];

        define region RAM2_region = mem:[from __region_RAM2_start__ to __region_RAM2_end__];

        place in RAM2_region {section MY_RAM2};

        2.在程序文件中,使用特殊的關(guān)鍵字或?qū)傩詠碇付ㄗ兞炕蚝瘮?shù)的存儲位置。如,在IAR編譯器中,可以使用@符號來進行絕對定位[7]3。

        uint8_t buffer[1024]@“MY_RAM2”;//將buffer數(shù)組放在SRAM_U中

        void my_function(void)@“MY_RAM2”;//將my_function函數(shù)放在SRAM_U中

        3.在對變量和函數(shù)進行定義時不要超過16KB,否則會導(dǎo)致編譯器報錯。如果需要使用大于16KB的數(shù)組或結(jié)構(gòu)體,可以將它們分割成兩個或多個小于16KB的部分,并分別放在SRAM_L和SRAM_U中。

        因此,通過步驟1-3的自由組合,可以配置SRAM_L和SRAM_U的具體地址和內(nèi)存區(qū)域,將重要的指令存儲在代碼執(zhí)行較快的SRAM_L中,并且將超過16KB的數(shù)組或結(jié)構(gòu)體分割,存儲在數(shù)據(jù)訪問較快的SRAM_U中,從而提高單片機程序的運行效率。

        (二)盡量使用MUC系統(tǒng)緩存

        緩存是一種高速的內(nèi)存,它可以存儲單片機頻繁訪問的代碼或數(shù)據(jù),從而減少對慢速的外部存儲器(如Flash或SDRAM)的訪問[8]35。Kinetis K系列單片機內(nèi)部集成了一個4KB的系統(tǒng)緩存(System Cache),它可以用于加速對Flash和FlexRAM(可作為EEPROM使用)的訪問。系統(tǒng)緩存可以配置為四種模式之一:禁用模式、寫回模式、寫通過模式、只讀模式。

        論文設(shè)計了一個互動和實踐結(jié)合的實驗,來引導(dǎo)學(xué)生了解如何優(yōu)化系統(tǒng)緩存,提高訪問速度。根據(jù)系統(tǒng)提供的現(xiàn)有功能,讓學(xué)生在系統(tǒng)緩存四種模式之下分別運行同樣的測試程序,并對比不同緩存模式下測試程序?qū)lash和FlexRAM的訪問速度,自行總結(jié)出最優(yōu)選擇。

        實驗設(shè)計思路為:首先,創(chuàng)建一個新的工程,添加系統(tǒng)緩存驅(qū)動程序和頭文件,編寫主函數(shù)和測試函數(shù),分別用于初始化系統(tǒng)緩存和測試對Flash和FlexRAM的訪問速度。其次,編譯并下載程序到開發(fā)板上,分別設(shè)置系統(tǒng)緩存為禁用模式、寫回模式、寫通過模式和只讀模式,觀察并記錄串口終端上顯示的結(jié)果。再次,將四種緩存模式下對Flash和FlexRAM的訪問時間進行比較和分析。最后,總結(jié)出系統(tǒng)緩存對單片機性能的影響。

        通過實驗,可得到如下結(jié)果:

        1.禁用模式。在這種模式下,系統(tǒng)緩存沒有起到任何作用,所有對Flash和FlexRAM的訪問都直接通過總線進行,因此訪問速度最慢。根據(jù)實驗代碼,假設(shè)每次讀取一個字(4字節(jié)),那么訪問Flash和FlexRAM各需要1000次,總共需要2000次。假設(shè)總線頻率為60MHz,那么每次訪問需要16.67ns,那么總共需要33.34μs[9]。

        相關(guān)部分代碼如下:

        ......

        cache_mode=kCacheDisableMode;//設(shè)置緩存模式為禁用模式

        CACHE_DRV_Init(cache_mode);//初始化系統(tǒng)緩存,并設(shè)置其工作模式

        print_string(“Cache mode:Disable ”);//打印緩存模式

        test_flash();//測試對Flash的訪問速度

        test_flexram();//測試對FlexRAM的訪問速度

        ......

        2.寫回模式。在這種模式下,系統(tǒng)緩存被啟用,并且當(dāng)緩存行被替換時,它會將修改過的數(shù)據(jù)寫回到Flash或FlexRAM中。這種模式可以提高對Flash和FlexRAM的讀取速度,但也會增加對Flash和FlexRAM的寫入時間。根據(jù)實驗代碼,假設(shè)每次讀取一個字(4字節(jié)),那么訪問Flash和FlexRAM各需要1000次,總共需要2000次。假設(shè)系統(tǒng)緩存命中率為80%,那么緩存命中時的訪問時間為0.1ns,緩存未命中時的訪問時間為16.67ns,總共需要6.68μs。但是,由于系統(tǒng)緩存是寫回模式,當(dāng)緩存行被替換時,還需要將其寫回到Flash或FlexRAM中。假設(shè)每次寫入一個字(4字節(jié)),那么寫入Flash和FlexRAM各需要250次(假設(shè)每個緩存行有4個字),總共需要500次。假設(shè)寫入Flash和FlexRAM的時間分別為100μs和10μs,那么總共需要55000μs。因此,寫回模式下的總時間為55006.68μs[10]13。

        相關(guān)代碼如下:

        ......

        cache_mode=kCacheWriteBackMode;//設(shè)置緩存模式為寫回模式

        CACHE_DRV_Init(cache_mode);//初始化系統(tǒng)緩存,并設(shè)置其工作模式

        print_string(“Cache mode:Write Back ”);//打印緩存模式

        test_flash();//測試對Flash的訪問速度

        test_flexram();//測試對FlexRAM的訪問速度

        ......

        3.寫通過模式。在這種模式下,系統(tǒng)緩存被啟用,并且當(dāng)緩存行被修改時,它會同時更新Flash或FlexRAM中的數(shù)據(jù)。這種模式可以提高對Flash和FlexRAM的讀取速度,但也會增加對Flash和FlexRAM的寫入時間。根據(jù)實驗代碼,假設(shè)每次讀取一個字(4字節(jié)),那么訪問Flash和FlexRAM各需要1000次,總共需要2000次。假設(shè)系統(tǒng)緩存命中率為80%,那么緩存命中時的訪問時間為0.1ns,緩存未命中時的訪問時間為16.67ns,總共需要6.68μs。但是,由于系統(tǒng)緩存是寫通過模式,當(dāng)緩存行被修改時,還需要同時更新Flash或FlexRAM中的數(shù)據(jù)。假設(shè)每次修改一個字(4字節(jié)),那么修改Flash和FlexRAM各需要1000次,總共需要2000次。假設(shè)修改Flash和FlexRAM的時間分別為100us和10us,總共需要220000μs。因此,寫通過模式下的總時間為220006.68μs[11]。

        相關(guān)代碼如下:

        ......

        cache_mode = kCacheWriteThroughMode;//設(shè)置緩存模式為寫通過模式

        CACHE_DRV_Init(cache_mode);//初始化系統(tǒng)緩存,并設(shè)置其工作模式

        print_string(“Cache mode:Write Through ”);//打印緩存模式

        test_flash();//測試對Flash的訪問速度

        test_flexram();//測試對FlexRAM的訪問速度

        ......

        4.只讀模式。在這種模式下,系統(tǒng)緩存被啟用,但只用于讀取Flash或FlexRAM中的數(shù)據(jù),不允許寫入。這種模式可以最大程度地提高對Flash和FlexRAM的讀取速度,而不會增加對Flash和FlexRAM的寫入時間。根據(jù)實驗代碼,假設(shè)每次讀取一個字(4字節(jié)),那么訪問Flash和FlexRAM各需要1000次,總共需要2000次。假設(shè)系統(tǒng)緩存命中率為80%,那么緩存命中時的訪問時間為0.1ns,緩存未命中時的訪問時間為16.67ns。那么總共需要6.68μs。由于系統(tǒng)緩存是只讀模式,不會對Flash或FlexRAM進行任何寫入操作,因此不會產(chǎn)生額外的時間開銷,只讀模式下的總時間為6.68μs[12]。

        相關(guān)代碼如下:

        ......

        cache_mode = kCacheReadMode;//設(shè)置緩存模式為只讀模式

        CACHE_DRV_Init(cache_mode);//初始化系統(tǒng)緩存,并設(shè)置其工作模式

        print_string(“Cache mode:Read Only ”);//打印緩存模式

        test_flash();//測試對Flash的訪問速度

        test_flexram();//測試對FlexRAM的訪問速度

        ......

        綜上,四種模式下訪問Flash和FlexRAM的時間如表1所示,顯然當(dāng)使用系統(tǒng)緩存時,能夠減少對Flash和FlexRAM的讀時間,但是由于寫回模式和寫通過模式下需要對Flash和FlexRAM進行寫操作,反而極大的增加了操作的總時間。因此,如果需要提高系統(tǒng)運行效率,應(yīng)當(dāng)設(shè)置系統(tǒng)緩存為只讀模式。

        表1 四種模式下訪問Flash和FlexRAM的時間

        (三)其他優(yōu)化方案

        此外,還有一些常見的單片機性能優(yōu)化方法,主要包括:

        1.預(yù)先對數(shù)據(jù)傳送和代碼位置進行計劃,選擇合適的總線和外設(shè)來傳輸數(shù)據(jù),以避免沖突和延遲。選擇合適的存儲器來存放代碼,以提高執(zhí)行速度和效率,選擇合適的緩存模式可以優(yōu)化閃存和SRAM的訪問。

        2.充分利用閃存控制器(FMC)中固有的閃存加速特性。利用FMC提供的FlexMemory功能,將部分閃存作為EEPROM使用。這樣可以在不增加外部存儲器的情況下,實現(xiàn)數(shù)據(jù)的非易失性存儲和快速訪問。FlexMemory還支持分區(qū)功能,可以根據(jù)應(yīng)用需求靈活地配置EEPROM和閃存的大小。利用FMC提供的安全訪問功能,保護閃存中的敏感數(shù)據(jù)或代碼。FMC可以設(shè)置不同的訪問權(quán)限,如只讀、只寫、讀寫或禁止訪問,以及不同的訪問范圍,如字節(jié)、頁或扇區(qū)。FMC還支持閃存保護單元(FPU),可以對閃存中的特定區(qū)域進行加密或解密。

        3.合理使用代碼優(yōu)化功能。編譯器通常為優(yōu)化速度或空間提供了一個選擇,表面上看來,優(yōu)化速度是優(yōu)化性能的最佳方案,但事實并非總是如此。如果對空間的優(yōu)化可以為SRAM塊中的模式代碼留有余地,或者更利于在緩存中容納函數(shù),那么優(yōu)化空間可能更利于提升系統(tǒng)性能。實驗可以設(shè)置相應(yīng)的開關(guān)選項,以確定最佳的編譯器設(shè)置。如,在IAR Embedded Workbench中,可以通過Project->Options->C/C++ Compiler->Optimizations來設(shè)置優(yōu)化級別和相關(guān)選項。在Keil MDK中,可以通過Project->Options for Target->C/C+±>Optimizations來設(shè)置優(yōu)化級別和相關(guān)選項[13]。

        4.采用DMA傳輸大塊數(shù)據(jù)。DMA傳輸數(shù)據(jù)比內(nèi)核的效率更高。使用DMA還可釋放內(nèi)核,便于內(nèi)核執(zhí)行其他任務(wù)(更加并行化)。在Kinetis K系列單片機中,有一個eDMA(增強型直接內(nèi)存訪問)模塊,它可以支持多達16個DMA通道,每個通道可以配置不同的觸發(fā)源、傳輸屬性和中斷選項。eDMA模塊可以與I2C(串行總線)模塊配合使用,實現(xiàn)I2C讀取或?qū)懭氪髩K數(shù)據(jù)的功能[14]60-65。

        5.采用錯誤檢測和冗余設(shè)計等措施來優(yōu)化系統(tǒng)可靠性,如使用校驗算法定期檢查存儲器中的數(shù)據(jù)是否錯誤。錯誤檢測和冗余設(shè)計是兩種常用的可靠性優(yōu)化措施,它們可以提高系統(tǒng)的容錯能力和抗干擾能力。具體來說,錯誤檢測是指通過一定的算法或電路,檢測系統(tǒng)中是否存在錯誤或異常,并及時報告或糾正。冗余設(shè)計是指在系統(tǒng)中增加額外的元件或功能,以備原有的元件或功能出現(xiàn)故障時替代使用。

        以上單片機性能優(yōu)化的思路,就是下一步實驗教學(xué)的改進方向,希望能在以后的工作中持續(xù)深化。

        結(jié)語

        論文通過優(yōu)化實驗教學(xué)方法,整合新技術(shù)和平臺,并提供實際實驗案例,改進了教學(xué)環(huán)節(jié),提高了高校實驗教學(xué)的趣味性和實用性,達到了較好的教學(xué)目的。在實驗案例的設(shè)計上,通過引導(dǎo)學(xué)生編寫測試程序驗證不同設(shè)置下的單片機運行效率,使學(xué)生們直觀地了解了系統(tǒng)性能優(yōu)化的方法、過程和意義,從而提升了教學(xué)效果。

        猜你喜歡
        單片機實驗教學(xué)優(yōu)化
        超限高層建筑結(jié)構(gòu)設(shè)計與優(yōu)化思考
        民用建筑防煙排煙設(shè)計優(yōu)化探討
        關(guān)于優(yōu)化消防安全告知承諾的一些思考
        一道優(yōu)化題的幾何解法
        小議初中化學(xué)演示實驗教學(xué)
        甘肅教育(2020年4期)2020-09-11 07:42:36
        電容器的實驗教學(xué)
        物理之友(2020年12期)2020-07-16 05:39:20
        對初中化學(xué)實驗教學(xué)的認識和體會
        甘肅教育(2020年8期)2020-06-11 06:10:04
        基于單片機的SPWM控制逆變器的設(shè)計與實現(xiàn)
        電子制作(2019年13期)2020-01-14 03:15:28
        基于單片機的層次漸變暖燈的研究
        電子制作(2019年15期)2019-08-27 01:12:10
        基于單片機的便捷式LCF測量儀
        電子制作(2019年9期)2019-05-30 09:42:02
        国产品精品久久久久中文| 国产日产韩国av在线| 在线观看 国产一区二区三区| 亚洲国产精彩中文乱码av| 人妻少妇精品无码专区动漫| 欧美日韩一区二区三区自拍| 国产人成亚洲第一网站在线播放 | 天堂网av在线| 青青草视频在线观看入口| 国产黄污网站在线观看| 色五月丁香五月综合五月| 一本一道av中文字幕无码| 久久久国产精品樱花网站| 中文字幕午夜AV福利片| 亚洲天堂av在线免费观看| 中文字幕人妻丝袜成熟乱| 人妻aⅴ中文字幕| 国模无码视频一区| 亚洲精品中国国产嫩草影院美女 | 国产美女三级视频网站| 日韩男女av中文字幕| 人妻精品人妻一区二区三区四区| 国产老熟女网站| 欧美jizzhd精品欧美| 精品一区二区三区四区少妇| 日本在线视频二区一区| 变态另类人妖一区二区三区| 成人免费a级毛片| 亚洲 欧美精品suv| 爆乳日韩尤物无码一区| 久久亚洲乱码中文字幕熟女| 又色又爽又高潮免费视频国产| 亚洲日本va中文字幕久久| 偷拍区亚洲区一区二区| 亚洲av午夜福利精品一区不卡| 高清午夜福利电影在线| 国产麻传媒精品国产av| 亚洲aⅴ无码日韩av无码网站| 蜜桃伦理一区二区三区| 亚洲精品av一区二区| 男女爽爽无遮挡午夜视频|