《電子技術應用》
您所在的位置:首頁 > 模擬設計 > 設計應用 > 閃存在嵌入式Linux系統中的應用
閃存在嵌入式Linux系統中的應用
摘要: 閃存在嵌入式Linux系統中的應用,在深入分析各種閃存及相關文件系統特點的基礎上,針對實際系統中對閃存的不同使用需求,采取不同的應用方案:通過啟動加載程序直接讀/寫,通過Linux系統中的文件系統讀/寫和跳過文件系統通過底層操作函數讀/寫,獲得了較好的性能和較好的可靠性。對生產過程中的程序代碼和數據寫入實現了一定枉度的自動化,對于類似系統有一定的借鑒意義。
關鍵詞: Linux 嵌入式 閃存
Abstract:
Key words :

O 引言
    Linux系統自誕生以來,不斷發展壯大,支持越來越多的硬件體系,獲得了日益廣泛的應用,從服務器、桌面計算,到機頂盒、手機、路由器等,可以說無處不在。雖然都是Linux系統,但是嵌入式環境和通用計算環境中的軟件/硬件配置大不相同。這是因為嵌入式系統大多都是為某一專門應用而特別設計的,有可能需要耐受各種惡劣環境(比如意外斷電、極端溫度、強沖擊/振動/輻射等),還受到體積、功耗、成本等諸多因素的限制,功能針對性強,需要酌情增加一些專用的硬件(如各種傳感器和專用接口),而許多通用計算機上常用的外設在嵌入式系統中不那么常見,典型的例子是硬盤、CD/DVD-ROM等大容量的非易失存儲設備,在嵌入式系統中,它們通常被各種形式的閃存所取代。閃存的存儲特性與硬盤等存儲設備的巨大差異,導致它必須使用專用存儲控制器、驅動程序及文件系統。對不同類型閃存及相應文件系統的選用,會影響最終形成系統的性能和穩定性,必須綜合各種系統構件的特點及目標系統的需求做出慎重的抉擇。

1 閃存類型及特性
    嵌入式系統中常用的閃存有兩類:NORFLASH和NANDFLASH。它們因內部結構與“或非”及“與非”門相似而得名。它們不僅在內部結構上不同,外部特性和應用也不一樣。NORFLASH的容量通常不大,常見的只有幾MB,可以重復擦寫10萬次到100萬次。NORFLASH遵循CFI標準,可以通過CFI命令查詢其制造商、器件型號、容量、內部扇區布局等參數,實現軟件自動配置。NORFLASH的優勢還在于它在出廠時能保證每個數據位都是有效的,不需要做壞塊處理。NORFLASH的線性尋址特性使之可以作為啟動存儲器使用。與NORFLASH相比,NANDFLASH的容量可以做得很大,常見的有幾十MB到幾GB,可以重復擦寫10萬次。NANDFLASH芯片上沒有地址與數據線之分,只有復用的I/O線和命令鎖存(CLE)、地址
鎖存(ALE)、讀/寫使能(RE,WE)和片選(CE)等控制線,必須通過特定的邏輯來操作。NANDFLASH不支持線性尋址,一般不能用作啟動ROM。但這也不是絕對的。有些微控制器(如AT91SAM926x)提供出廠前固化在芯片內部的BOOT-ROM,并在BOOT-ROM中提供對NANDFLASH啟動的支持。不過這樣一來,首先啟動的是BOOT-ROM中的程序,會產生啟動邏輯和延時方面的種種問題,設計時需要全面考慮。另外,生產廠商不保證NAND-FLASH中每一個數據位都是有效的,除芯片中的第一塊之外,允許有“初始壞塊”,并約定在壞塊的第一頁或第二頁帶外區(OOB)的特定位置標記壞塊。NANDFLASH還允許在使用過程中出現新的壞塊,以及非壞塊在讀出過程中出錯?;谶@些特點,使用這種閃存時要做額外的壞塊管理和校驗/糾錯工作。在寫入密集型系統中,必須提供ECC及壞塊換出算法,才能達到10萬次的寫入指標。
    除了以上提到的兩種閃存之外,還有一種由NORFLASH衍生的串行閃存,通常是SPI接口。這種閃存繼承了NORFLASH沒有壞塊的優點,但不支持CFI標準,并且由于是串行接口,線性尋址沒有意義,為了方便操作,有些產品中加入了類似NANDFLASH的塊/頁結構及基于片內SRAM的頁緩存,其優勢在于硬件接口簡單,提供小尺寸的封裝,可以顯著減小PCB面積和布線復雜程度。
    另外,基于NANDFLASH技術的串行閃存已經量產,使用的也是SPI接口,容量可以做到1Gb。

2 應用設計
    目標應用系統是一臺專用的戶外顯示設備,要求其具有低功耗、抗振、寬溫操作及高可靠性等特點。為此,選擇了AT91SAM9261/AT91-SAM9G10,它是以ARM9為核心的集成片上液晶控制器的工業級微控制器,以DATA FLASH/NORFLASH和NANDFLASH存儲固件代碼和數據。在設計過程中,根據不同的閃存使用需求,采取了具有針對性的方案。
2.1 啟動設計
    在該系統中,結合微控制器提供的功能和各種閃存的特點,可以綜合使用不同類型的閃存,選擇不同的啟動方式。AT91SAM9261內部集成了啟動ROM,其中固化了支持啟動和操作閃存的程序。流程圖如圖1所示。當AT91SAM9261的啟動模式選擇(BMS)引腳在復位期間為高電平時,會運行內部固化的啟動程序;否則運行外部NORFLASH中的程序。從流程圖中可以看出,啟動程序支持從串行閃存中啟動。這是通過啟動程序將串行閃存中的代碼加載到內部SRAM中實現的。由于內部SRAM容量有限(依芯片型號不同,有16 KB和160 KB兩種),像U-BOOt(編譯后有170KB
左右,與配置有關)這樣的功能,若較全面地啟動加載程序(Bootloader)是不能直接從串行閃存中啟動的,而只能選擇兩級啟動程序,先從串行閃存中加載一段盡可能小的一級啟動程序(通常只有4~5 KB).用于初始化關鍵的硬件(如SDRAM控制器。由于時序、數據線寬等參數是可變的,不可能在AT91SAM9261內部固化的啟動程序中提供通用的SDRAM控制器初始化代碼),然后再由一級啟動程序把功能較全面的二級啟動程序載入到容量足夠大的SDRAM中運行,以啟動系統。從NORFLASH啟動時會跳過AT91SAM9261內部固化的啟動程序,系統復位后執行的第一條指行就是NORFLASH中的。此時,啟動程序可以只有1級,當然,為了使軟件和串行閃存啟動方式有較好的兼容性,也仍然可以采用兩級啟動程序,這樣只需簡單修改第一級啟動程序即可適用于兩種不同的硬件啟動配置,為硬件設計留下更多的選擇空間。由于AT91SAM9261本身的原因,從NORFLASH啟動是實現寬溫工作的惟一選擇(AT91SAM9G10無此問題)。圖2顯示了不同的啟動配置。


    在這個AT91SAM9261系統中,分別采用了2 MB的DATAFLASH或2 MB的NORFLASH作為啟動存儲器,由BMS引腳選擇具體使用何種啟動方式。閃
存中的地址劃分如圖3所示,其中的bootstrap是第一級啟動程序;U-Boot是第二級啟動程序。


2.2 系統內核及應用程序文件系統映像
    系統內核映像和各MTD分區的文件系統映像大小在幾MB到幾十MB不等,需要存儲在容量較大的NANDFLASH中。對于系統內核,由于做了適當的裁減,其長度不大,和初始根文件系統加在一起不過幾MB,如果不在乎稍長的啟動時間,還可以對它使用gzip壓縮,大幅度減小其尺寸。在使用U-Boot作為啟動程序的系統中,由于U-Boot具有直接讀取NANDFLASH塊/頁的能力,不需要使用文件系統,將內核映像直接寫到閃存塊里。
    應用程序及其所需的庫文件、資源文件等,作為獨立的文件系統映像掛載,在此選擇了帶有壓縮及去除重復文件功能的只讀文件系統,即SqLrashFS(SquashFs文件系統已經被廣泛用于各種Linux Live CD形式的發行版中,被充分證明是可靠的,并且從Linux 2.6.29版開始,它已加入到系統核心源碼)。在嵌入式系統中,使用只讀文件系統有許多好處,比如掛載時間短,不受掉電影響,不必在系統運行過程中處理壞塊及平衡損耗等。在使用過程中由于不涉及寫入,其可靠性優于可寫的文件系統。
    在此目標系統中,內核和初始根文件系統的U-Boot映像約為2.8 MB,應用程序、GUI子系統,以及應用程序運行過程中所需的圖形和字體文件的SquashFS映像約為12 MB。系統中使用的NANDFLASH是一片總容量為64 MB的8位數據線寬的芯片,塊容量是16 KB+512 B,頁容量是512 B+16 B,其屬于塊尺寸較小的那種,與大塊NANDFLASH相比,操作命令稍有區別,在驅動程序中需要區別對待。該系統中的MTD分區結構如表1所示。


2.3 應用程序對閃存的使用
    大多數情況下,僅提供對閃存的只讀操作是不夠的。比如,U-Boot至少在更新其自身以及保存環境變量時需要寫閃存;操作系統在記錄日志時要寫閃存;應用程序在保存用戶配置及工作數據時也要寫閃存。對于啟動加載程序來說,問題不是很嚴重。因為系統處于更新及配置狀態時,大多是脫離正常工作狀態的,且由專人操作,操作中途發生異常情況(如掉電)的可能性不大,即使發生了,也會被及時發現和處理。對于系統日志,在嵌入式系統中可以將其關閉,以減少對閃存的寫操作。應用程序對閃存的寫操作是不可避免的,而且處于設備自動工作期間,需要應對各種偶然發生的異常狀況,特別是意外掉電。
    在Linux系統中,通過文件系統訪問閃存是順理成章的做法。目前支持NANDFLAsH的常用文件系統有YAFFS/YAFFS2,JFFS2和UBIFS等。它們都是記帳式的文件系統,各有特點,也有不足。
    YAFFS/YAFFS2是專為NANDFLASH寫的文件系統。在YAFFS的代碼里包括管理閃存帶外區(OOB)的部分,而這部分代碼一般認為屬于設備驅動的范疇,其他文件系統里是不含這部分代碼的。YAFFS是一種穩鍵的記帳結構的文件系統。高效率是它追求的另一個目標。它可以用在各種操作系統中(已用于Linux,WinCE,pSOS,eCos,ThreadX及各種專用操作系統中),甚至可以在沒有操作系統的環境下工作。YAFFS2支持“檢查點(checkpoints)”,以避免掛載過程中耗時的掃描操作,實現快速掛載。
    相對于JFFS,JFFS2有了一些改進,可以支持硬連接(hard Links),垃圾回收更有效,平衡損耗更均勻。但它在掛載時仍需要掃描尋找最新版本的閃存塊,并建立RAM中的數據結構,文件系統越大,掛載時間越長,RAM開銷也越大。雖然JFFS2已經通過小結節點技術減少了掛載時間,但結果仍不理想,掛載時間是s級的。
    UBIFS是JFFS2的后繼(原來稱作JFFS3),第1個穩定版本于2008年10月加入到Linux 2.6.27版核心中,它有一個競爭者叫LogFS。UBIFS與JFFS2的最大不同在于它的文件索引信息是寫在閃存中的,而JFFS2是暫存在RAM中的。因此,UBIFS在掛載時不需要掃描全部閃存空間,掛載耗時很短(ms級);UBIFS對RAM的消耗不會隨著文件系統的尺寸變大而線性增長,適用于大容量的文件系統。
    除這這些不同之外,各種閃存文件系統也存在一些共性。由于閃存的寫入次數有限,為了避免局部因頻繁寫入而過早失效,必須使寫入操作盡量均勻分布到所有位置上,即平衡損耗(wear leveling)。這導致了更新文件時必須做異位更新,而不能像在磁盤或RAM中那樣簡單地原位更新,從而引起一系列復雜的問題。首先,異位更新會導致閃存塊中出現越來越多的過期頁面,它們與有效頁面混雜在一起,形成所謂的臟塊(dirty blocks)。當所有的閃存塊都成為臟塊后,就沒有閃存塊可供擦除再分配了。因此,基于閃存的文件系統都有垃圾回收器,用于將分散的過期頁面集中在一起,形成空閃存塊(free blocks)。由此引起的另一個問題是文件系統在使用時不能用到接近填滿,否則也會導致類似的問題。其次,樹狀結構的文件索引中存在大量的互相引用,某個節點的改變會引起該節點本身及直接和間接引用它的一系列節點的異位更新。
    從以上的分析可以看出,NANDFLASH上的文件系統是一把雙刃劍。它確實可以提供清晰的軟件層次和使用上的方便,但同時也會降低操作效率,并具有潛在的可靠性問題。關鍵是如何合理使用,揚長避短。其實,對于寫入量小(一個擦除塊之內),并且不頻繁的數據,可以跳過文件系統,通過ioctrl()函數直接操作閃存。這樣做的缺點是破壞了軟件層次,要求應用軟件開發人員了解一部分硬件的細節,在應用程序中完成一些本應屬于驅動程序的底層功能(如塊擦除,發現和標記壞塊等);優點是可以拋開復雜的文件系統,不需要掛載及卸載,更不存在文件系統的完整性問題,平衡損耗等措施可以視需要取舍,尤其在意外掉電時,該方法可將所有的讀/寫錯誤都限制在相對較小的局部,具有較好的應對掉電的能力。
2.4 閃存燒寫支持
    系統中的各種閃存可以用不同的方法寫入數據,各種方法都有優缺點??晒┻x擇的方法主要有兩種:在芯片焊接前用通用的編程器燒寫;在芯片焊接后進行在系統燒寫(ISP)。使用通用的編程器可以快速大量地燒寫芯片,適合大批量生產,但芯片一旦焊到印制板上,這
種方法就不能用了。在系統編程(ISP)適合燒寫已經焊在印制板上的芯片,通常1次只能寫1塊板子,但是不需要專用的設備,只要有1臺計算機和相應的連接電纜(如USB電纜)及配套軟件就可以工作,非常適合小批量生產和軟件升級。另外,通過ISP軟件提供的硬件寄存器讀/寫和目標存儲器讀/寫功能,還可以實現一定程度上的電路板測試和調試功能。
    具體到AT91系列芯片可以借助芯片內固化的SAM-BA BOOT(見圖1)提供的支持,通過USB或調試串口燒寫系統中的閃存,尤其是通過USB燒寫十分方便快捷,燒寫Linux核心映像到NANDFLASH只需要幾秒。對于AT91SAM9261,使用這種編程方式需要滿足幾個條件:
    (1)AT91SAM9261的BMS引腳在復位期間保持高電平;
    (2)SPl0的CS0對應的芯片不存在,或者對應的芯片中不存在有效的啟動代碼;
    (3)PC機與目標板之間通過串口或USB口連接;
    (4)PC機上安裝SAM-BA工具軟件。
    PC機上的SAM-BA工具軟件可以支持對目標系統多種存儲器的讀/寫,默認情況下可以支持DATAFLASH,NANDFLASH、內部SRAM和外部SDRA-M。尤其是對DATAFLASH的支持非常不錯,可以自動識別各種不同容量的芯片,寫入速度也比較快。但是它對NANDFLASH的支持并不理想,對于某些NANDFLASH芯片,操作會失敗。對于NORFLASH,則根本不提供現成的支持。不過它提供了基于COM技術的動態庫,并且公開了編程接口,可以使用C/C++程序或TCL腳本控制燒寫過程,對于不提供官方支持的芯片,可以自行編寫代碼擴展的SAMBA的功能。以擴展NORFLASH編程功能為例,需要自行編寫的有以下部分:
    (1)下載到目標板上運行的ARM代碼。這部分程序在SAM-BA v2.4中稱為monitor,在SAM-BA v2.8中稱為applet,其實就是供芯片內固化的SAMBA B00T調用的功能擴展部分;
    (2)PC機上的TCL腳本或C/C++程序。用于初始化硬件(如SDRAM控制器),向目標板下載monitor/applet,以及傳送目標程序代碼和控制燒寫過程。
    如果使用TCL腳本,在相關腳本更改完成后,運行SAMBA工具軟件,會出現新添加的NORFLASH標簽頁,如圖4所示。在擴展的各部分功能基礎之上,還可以編寫一個綜合性的自動化腳本,將所有的程序代碼及數據(如Bootstrap,U-Boot,U-Boot的環境變量、內核映像、各分區的文件系統映像等)一次性寫入目標板上不同芯片內的各個指定地址,以簡化編程操作,提高生產效率。



3 結語
    閃存是目前嵌入式系統中廣泛應用的非易失存儲介質,具有可以重復寫入和存儲容量大等優點,但是也存在寫入次數有限,操作稍顯復雜和速度慢等缺陷。若使用不當,會引起性能和可靠性方面的問題。通過深入分析現有閃存相關的硬件、軟件特點,在系統中按需要采取具有針對性的應用方式,設計的系統在閃存應用方面獲得了較好的效果:系統啟動時間較短,工作穩定,順利通過了高溫老化試驗及長達數月的現場應用考驗。另外,采用自動化腳本與監控程序結合的閃存燒寫設計,不僅簡化了生產過程,還提供了一定程度上硬件調試的支持。

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          亚洲美女淫视频| 亚洲国产日韩欧美在线图片| 韩国三级电影一区二区| 夜夜嗨av一区二区三区免费区| 欧美美女bb生活片| 欧美不卡一卡二卡免费版| 国产精品久久国产精品99gif| 99国产一区二区三精品乱码| 国产午夜精品一区理论片飘花| 国产精品主播| 一本色道88久久加勒比精品| 欧美激情视频一区二区三区不卡| 久久综合电影一区| 国产精品久久久久999| 久久蜜臀精品av| 久久视频在线免费观看| 欧美日韩亚洲一区二区三区四区| 国产精品视频专区| 欧美性大战久久久久久久蜜臀| 久久婷婷色综合| 在线高清一区| 国产亚洲一区精品| 亚洲综合色自拍一区| 亚洲电影自拍| 欧美激情精品久久久六区热门| 亚洲小说欧美另类社区| 欧美国产精品久久| 久久米奇亚洲| 欧美日本一区二区视频在线观看| 久久久亚洲综合| 久久久99免费视频| 国产在线拍揄自揄视频不卡99| 欧美有码在线视频| 欧美日韩精品一区二区三区四区| 国产精品二区影院| 美女图片一区二区| 久久精品首页| 国产精品久久久久久妇女6080| 欧美日韩亚洲一区二| 欧美日韩另类一区| 老司机亚洲精品| 欧美亚洲综合久久| 中文亚洲免费| 欧美成人午夜免费视在线看片| 国产午夜一区二区三区| 欧美成人在线影院| 性色av一区二区三区红粉影视| 亚洲国产精品va在线观看黑人| 伊人久久亚洲美女图片| 午夜宅男久久久| 一区二区三区免费看| 亚洲精品日产精品乱码不卡| 欧美日韩在线第一页| 欧美日韩免费视频| 尤物九九久久国产精品的分类| 欧美日韩精品免费观看视频| 中文国产一区| 久久精品五月婷婷| 久久免费偷拍视频| 一区二区三区在线视频播放| 日韩一区二区精品视频| 亚洲一区中文| 欧美激情视频一区二区三区在线播放| 亚洲国产成人一区| 国产精品一区二区a| 国内精品久久久久久影视8| 久久久久久成人| 午夜精品视频在线观看一区二区| 亚洲毛片在线看| 亚洲国产成人精品久久久国产成人一区| 亚洲国产欧美日韩另类综合| 一区二区三区四区国产精品| 欧美一区二区啪啪| 国内精品嫩模av私拍在线观看| 国产精品资源在线观看| 136国产福利精品导航网址应用| 中文亚洲欧美| 国产一区二区三区久久悠悠色av| 国产精品狠色婷| 免费观看成人www动漫视频| 国产精自产拍久久久久久| 西西裸体人体做爰大胆久久久| 午夜精品区一区二区三| 一本大道久久精品懂色aⅴ| 欧美日韩亚洲91| 国产精品视频网址| 欧美91精品| 亚洲男同1069视频| 国产日韩欧美制服另类| 久久久久久久999精品视频| 亚洲素人一区二区| 一本色道久久综合一区| 欧美亚洲动漫精品| 欧美精彩视频一区二区三区| 亚洲精品自在在线观看| 久久疯狂做爰流白浆xx| 亚洲激情六月丁香| 亚洲国产精品ⅴa在线观看| 99re热这里只有精品免费视频| 欧美日本精品在线| 久久久久国产免费免费| 久久人人97超碰国产公开结果| 欧美日韩一级大片网址| 一区二区免费看| 久热精品视频在线免费观看| 亚洲午夜激情网站| 亚洲午夜一区| 麻豆成人在线观看| 亚洲天堂网站在线观看视频| 一区二区三区高清视频在线观看| 欧美大片免费观看在线观看网站推荐| 在线亚洲一区| 国产精品久久一卡二卡| 妖精成人www高清在线观看| 在线欧美影院| 欧美成人精品一区二区| 国产乱理伦片在线观看夜一区| 久久综合九色综合久99| 欧美日韩精品中文字幕| 蜜桃精品久久久久久久免费影院| 国产精品久久久久毛片大屁完整版| 欧美欧美全黄| 99xxxx成人网| 欧美一级大片在线观看| 日韩一区二区免费高清| 国产一区二区三区久久久久久久久| 欧美在线高清视频| 国产精品夜夜嗨| 国产美女扒开尿口久久久| 欧美国产第二页| 欧美激情视频一区二区三区免费| 麻豆国产精品va在线观看不卡| 国产精品红桃| 国产在线视频欧美一区二区三区| 午夜在线不卡| 亚洲成在人线av| 欧美三级午夜理伦三级中文幕| 久久婷婷丁香| 91久久国产综合久久91精品网站| 久久午夜精品| 国产欧美日韩免费看aⅴ视频| 免费在线视频一区| 先锋影音久久久| 亚洲视频免费在线观看| 免费中文日韩| 亚洲摸下面视频| 欧美日韩国产高清视频| 久久久久久久999精品视频| 老司机午夜精品视频| 欧美在线三级| 亚洲毛片在线免费观看| 伊人久久婷婷| 欧美日韩国产成人精品| 国产精品无码专区在线观看| 黄色成人av网| 久久爱另类一区二区小说| 亚洲电影免费观看高清完整版在线| 最近看过的日韩成人| 国产综合一区二区| 久久免费高清| 亚洲精品国产精品国自产观看浪潮| 国产精品www网站| 亚洲一区3d动漫同人无遮挡| 狂野欧美激情性xxxx| 亚洲一区二区三区精品在线| 欧美色精品天天在线观看视频| 亚洲无亚洲人成网站77777| 99国产精品99久久久久久粉嫩| 欧美三级黄美女| 99在线观看免费视频精品观看| 91久久精品国产91久久性色| 国产精品久久久久久久久借妻| 激情小说亚洲一区| 亚洲电影观看| 欧美午夜宅男影院在线观看| 久久一区二区视频| 亚洲欧美视频在线观看视频| 欧美性猛交xxxx乱大交退制版| 亚洲一区二区三区视频| 欧美在线不卡视频| 国产精品视频一区二区三区| 欧美乱人伦中文字幕在线| 欧美在线免费观看| 久久一区二区三区av| 亚洲网址在线| 亚洲人成亚洲人成在线观看图片| 欧美久久精品午夜青青大伊人| 久久精品网址| 亚洲国产欧美日韩精品| 国产精品xxxav免费视频| 国产精品无码永久免费888| 国产精品美女久久久| 国产一区二区三区在线观看网站| 亚洲精品激情| 国产视频自拍一区| 国产欧美日韩视频一区二区三区| 欧美在线3区| 亚洲三级免费观看| 美女精品一区| 国产视频在线观看一区| 国产伦精品一区二区三区| 欧美激情二区三区| 久久久久欧美精品| 亚洲网站在线| 亚洲美女在线观看| 99视频国产精品免费观看| 亚洲精品欧美在线| 欧美四级在线观看| 欧美96在线丨欧| ●精品国产综合乱码久久久久| 久久久久久久波多野高潮日日| 久久久亚洲国产美女国产盗摄| 鲁大师成人一区二区三区| 亚洲黄网站黄| 99精品国产高清一区二区| 99精品国产在热久久下载| 欧美日韩一区二区高清| 日韩午夜av在线| 国产伦精品一区二区三区高清| 国产精品99免视看9| 欧美激情一区三区| 久久男人av资源网站| 国产精品一区二区三区久久| 久久免费国产精品1| 欧美日韩国产高清| 欧美激情精品久久久久久蜜臀| 亚洲主播在线| 99热在这里有精品免费| 在线亚洲+欧美+日本专区| 99国产精品久久久久久久成人热| 欧美日韩日日骚| 狠狠久久综合婷婷不卡| 国产精品三区www17con| 一区二区三区欧美| 久久久久成人精品| 麻豆精品一区二区av白丝在线| 国产欧美精品一区aⅴ影院| 欧美日本在线| 国产一区香蕉久久| 国产一本一道久久香蕉| 国产精品久线观看视频| 在线成人激情黄色| 玖玖玖免费嫩草在线影院一区| 狠狠干狠狠久久| 久久影视三级福利片| 合欧美一区二区三区| 国产香蕉97碰碰久久人人| 国产女人水真多18毛片18精品视频| 亚洲精品一二| 亚洲综合精品| 国产精品久久国产精麻豆99网站| 午夜一区二区三区不卡视频| 国产精品毛片在线看| 久久野战av| 亚洲福利视频三区| 国产精品久久久久久久午夜| 亚洲成在人线av| 国内外成人免费激情在线视频| 亚洲高清视频在线| 揄拍成人国产精品视频| 麻豆av一区二区三区久久| 一本一道久久综合狠狠老精东影业| 在线观看欧美日本| 欧美国产高清| 一区二区三区免费看| 另类酷文…触手系列精品集v1小说| 蜜桃久久精品乱码一区二区| 午夜影视日本亚洲欧洲精品| 亚洲国产精品福利| 欧美日韩国产在线播放网站| 亚洲黄色成人久久久| 国产专区精品视频| 一区二区在线观看视频在线观看| 欧美成人精品不卡视频在线观看| 国产亚洲精品7777| 雨宫琴音一区二区在线| 亚洲国产欧美日韩精品| 亚洲欧美网站| 亚洲电影免费观看高清完整版在线观看| 久久激情五月丁香伊人| 国产精品人人做人人爽人人添| 欧美精品色网| 亚洲欧美日韩区| 国产精品亚洲综合久久| 国产一区二区三区精品欧美日韩一区二区三区| 亚洲视频在线免费观看| 欧美日韩一区二区三区| 午夜欧美大尺度福利影院在线看| 欧美亚洲一区二区三区| 亚洲国产日韩欧美一区二区三区| 亚洲区国产区| 亚洲国产综合在线看不卡| 欧美一区二区私人影院日本| 国产一区二区三区直播精品电影| 1000精品久久久久久久久| 欧美一区二区在线观看| 亚洲精品视频一区二区三区| 国产精品视频免费一区| 亚洲风情亚aⅴ在线发布| 欧美精品精品一区| 欧美在线观看视频| 免费在线播放第一区高清av| 国产亚洲欧美日韩美女| 亚洲人成网站影音先锋播放| 免费成年人欧美视频| 18成人免费观看视频| 999在线观看精品免费不卡网站| 你懂的网址国产 欧美| 你懂的网址国产 欧美| 亚洲午夜久久久久久久久电影网| 1024日韩| 国产精品久久久一本精品| 欧美激情综合色综合啪啪| 欧美日本不卡| 欧美三级不卡| 一本色道久久综合亚洲精品小说| 欧美福利视频在线观看| 亚洲精品国精品久久99热一| 国产亚洲精品福利| 在线免费日韩片| 亚洲理论电影网| 国产伦精品一区二区三区高清版| 欧美激情一区二区三区不卡| 欧美色欧美亚洲另类七区| 欧美成人中文字幕在线| 牛人盗摄一区二区三区视频| 亚洲午夜影视影院在线观看| 欧美午夜精品久久久久久浪潮|