《電子技術應用》
您所在的位置:首頁 > 微波|射頻 > 設計應用 > 充分利用MAXQ處理器的非易失存儲服務
充分利用MAXQ處理器的非易失存儲服務
摘要: 需要非易失數據存儲的應用通常都需要使用外部串行EEPROM。這篇文章介紹了僅使用MAXQ微控制器中已有的閃存提供非易失數據存儲的方法。
Abstract:
Key words :

  引言

  需要微控制器的應用通常也需要一些機制,即使在掉電的情況下也可以保存設置。例如,一臺收音機,假如在更換電池的時候會丟失之前的電臺設置,肯定不會在當今的市場上獲得成功??蛻羝谕矚g的頻道、溫度預設值、參數首選項和其他持久性的信息能夠一直被保存。

  為滿足客戶對非易失數據存儲的要求,設計師通常會使用一個串行EEPROM。這些EEPROM器件體積很小、價格便宜、而且在市場上已經被長期使用,設計工程師使用這些器件非常便利。但是在當今對成本非常敏感的市場領域,增加一個并不昂貴的EEPROM可能會使設計超出預算。

  很多處理器使用閃存存儲程序代碼,使用靜態RAM存儲數據信息。盡管充分利用閃存未使用的部分作為非易失數據存儲很有吸引力,但是傳統的哈佛架構制約了這種應用。MAXQ架構屬于哈佛架構,具有獨立的代碼和數據總線。但MAXQ器件包含的硬件部分可以實現偽馮諾依曼架構,如同訪問數據空間一樣訪問代碼空間。這種額外的多功能性,結合MAXQ的效用函數,可實現存儲器的擦寫服務,為完整的可讀寫非易失存儲子系統提供了解決方案。

  關于閃存的基本考慮

  閃存是一種電子可擦除存儲。通常也被認為是“主讀”。簡言之,盡管閃存是可寫的,但數據更新并不會很頻繁,多數的操作都是讀操作。多數閃存器件從字面意思來講都是可寫的,但每次只能整塊擦除。這使得那些存儲器件通常都不適合用于易變存儲,只適合用作從不改變內容的固定數據存儲。

  有兩種類型的閃存:NAND閃存和NOR閃存。NAND閃存用在存儲卡和U盤中。通常,由于數據按時鐘串行傳輸,從NAND器件中讀數據需要數個周期。這種有序的操作使NAND閃存不適合用作程序代碼存儲,因為讀取時間會太長。相反,NOR閃存類似傳統字節寬度或字寬度存儲。讀取NOR閃存就像讀取ROM器件:先發器件選擇和地址命令,在等待足夠的存取時間之后,從總線上讀取數據。NOR閃存用于MAXQ處理器中。

  MAXQ處理器的閃存

  MAXQ處理器中使用的閃存單元被擦除時會變成“1”狀態。因此,在擦除后,存儲單元中的每個位置都將包含0xFFFF。對某一存儲位置進行編程會把某些位從“1”變成“0”狀態。為了使被編程過的位重新變回“1”狀態,整個單元必須被擦除。

  任何電擦除的存儲器件必須面臨的問題是持久性。根據特定的技術,一個閃存單元在完全失效之前,可以忍耐的擦除次數少達1,000次,多達1,000,000次。因此,使用閃存做數據存儲的任何應用都必須保證寫操作循環在整個陣列中均勻分布,不允許某一個位置的擦除編程次數比其他位置多很多。

  多數閃存器件都允許把之前已經編程過的位置中的沒有編程過的位從“1”變成“0”狀態。例如,對于多數器件,允許對某個位置編程,把數據從0xFFFE變為0x7FFE,在這個編程過程中,沒有任一個位從“0”變成“1”。然而,MAXQ系列器件中使用的閃存,不允許對已經編程過的位置再編程,即使沒有發生從“0”到“1”的變化。這樣的寫操作會失敗,保持數據在0xFFFE狀態。

  MAXQ器件編程受限制的理由如下。正在被編程的存儲單元起初是作為代碼空間的,所以必須很謹慎,禁止對已寫過的位置的任何寫操作。0xFFFF指令指一條無效的源代碼,它不太可能出現在有效的代碼單元內。因此,阻止對已編程過的位置的寫操作能夠幫助保持代碼單元的完整性。

  使用MAXQ2000的設計方案

  在這篇文章中,我們主要討論一個MAXQ器件:MAXQ2000。這個微處理器具有64kB的程序存儲空間,具體劃分為128個單元,每個單元具有256個16位的字。下面介紹兩種設計方案。第一種方案適用于信息寫一次后在產品的生命周期內不會再頻繁改動,例如校準數據、版本信息和特征參數等等。第二種方案針對更普通的裝置,這種設計要允許數據頻繁改動,例如使用信息或者詳細記錄等。

  方案1

  問題:校準數據需要存儲在產品中。產品會一直需要重新校準,所以校準數據必須保存在一個可改寫的存儲空間中。

  解決方案:這實際上是可以想象的到的最簡單的情況。MAXQ2000程序存儲空間中預留了兩個單元用于存儲校準數據,一個是字地址0x7E00,另一個是0x7F00。當MAXQ2000第一次收到保存校準數據的命令,它就會檢查這兩個單元并確保它們是空的。校準數據被保存到第一個單元。

  當MAXQ2000第二次收到保存校準數據的命令,它會再次檢查這兩個單元。當發現0單元已被使用,它會把校準數據復制到1單元,接著擦除0單元。

  當MAXQ2000收到讀校準數據的請求(例如在上電時),它會讀這兩個單元,看哪個正在被使用。沒有被擦除的單元用來配置器件到校準狀態。

  這種方案的最主要優點是簡易性。當某些應用需要在上電時作配置時(或者其它恢復配置的情況),這種方法很適用。讀程序會接收到一個字指針,并返回這個地址的內容;寫程序會接收一個字指針,并嘗試對這個地址寫操作。擦除程序會擦除這兩個單元。

 

  這種方案的缺點是:子程序極其不智能。無法判斷寫操作是否成功。假如寫操作失敗了,不會有任何動作來解決問題。為什么這種方案只適用于對已知的空單元寫操作,以上這種限制就是其原因。

  方案2

  問題:非易失存儲用來跟蹤用電量和其它會經常改變的數據。更新的頻率從一周數次到一天數次。電表是一個很好的應用舉例。

  解決方案:在這種情況下即時傳統的EEPROM也需要另求幫助。問題在于:頻繁的更新、和可擦除存儲技術固有的有限電擦除壽命,排除了使用單個EEPROM頻繁寫擦除操作的可能性。假如這種應用需要每小時更新一次。具有10,000次寫擦除次數限制的EEPROM只能工作一年,遠遠低于電表應用所需的10年壽命設計目標。

  這個問題的解決方案是實現“損耗平衡”。也就是指不對單一位置重復寫操作。相反,在整個存儲陣列中執行均勻分布的寫操作。

  正是基于此目的,損耗平衡技術被接受,并在閃存存儲設備中使用。它的算法非常復雜難以理解。但對于我們,介紹簡單的機理就足夠了。

  在這種設計中,存儲陣列中的數據條目并不是以地址作參考,而是以數據元編號為參考。數據元編號是一個和數據元素一一對應的任意8位數值。所以在這個方案中最大可以有255個數據元(數據元0預留)。每個數據元包含:包括數據元編號和數據元長度的雙字節報頭(圖1);指示1、2、3或者4個16位字的兩位碼,以保留足夠的剩余空間進行錯誤管理。

數據單元報頭結構

圖1. 數據單元報頭結構

  寫數據單元時,寫子程序必須知道要寫的數據、數據單元的長度和數據要寫的位置。很容易可以知道數據寫在哪個地址;無論是新數據單元還是更新已有的數據單元,都會寫在存儲陣列的末尾。寫命令會搜索陣列的末尾,緊接著在最后一個記錄后寫入新的數據單元。假如在當前的存儲頁面沒有足夠的空間保存特定長度的數據元,就會出現頁面結束標志并打開一個新頁面。圖2是這種典型的數據頁面的結構。

  在這個數據頁面中,先寫數據單元1,并更新。接著寫數據單元4,但從不更新。隨后是數據單元3,共更新7次。最后寫入數據單元2,從不更新。

  頁面結束標志的出現表明曾執行寫操作,但數據單元太長不能填入當前頁面。會打開一個新頁面以填寫數據單元。在整個數據結構的末尾會分配一個空單元,這里本該是一個數據單元的報頭。

典型的數據頁面

圖2. 典型的數據頁面

  要注意這種方案并沒有涉及重復記錄的問題。因為重復記錄不會有問題。事實上,讀和寫程序都會完全忽略重復記錄。寫操作時,不管同樣編號的記錄是否存在,新記錄都會寫在陣列的末尾。當讀操作時,只有符合請求記錄編號的最后一個(所以是最近的)記錄可以讀到。

  從陣列中讀取數據元會比寫操作更復雜。讀功能會收到數據元編號和數據元應該寫入的地址。當執行此命令時,讀操作會從陣列的最開始進行搜索。當它找到一個記錄符合被請求的數據元,它會保存這個地址并繼續搜索。當它找到另外一個匹配的記錄時,讀命令會用新地址替代已保存的地址。當搜索到陣列的末尾時,保存的地址就會是符合請求記錄的最近寫入的記錄。當執行讀操作時,就會把這個數據復制到緩存中。

  盡管所介紹的用來從存儲陣列中保存和讀取記錄的主讀機制是可行的,還會存在一個問題:沒有機制可以重新使用被過時的記錄占用的空間(也沒有機制可以刪除記錄。但由于這種方案是針對嵌入式應用開發的,所以可能不會是個很嚴重的問題。)。如果不重新恢復一些空間,這些之前被分配的空間會很快用盡。由于閃存只能每次擦除一整個頁面,恢復空間意味著擦除整個頁面。另外一個更嚴重的問題是閃存頁面不能被隨便擦除,會存在刪除有用信息的風險。唯一的可選方案是在刪除整個舊頁面之前,把有用信息復制到一個新頁面。

  從廢舊的記錄中恢復空間有三個步驟。第一,打開新頁面,把每個數據元的最近版本復制到新頁面中。第二,擦除舊頁面。第三,對新頁面做頁面標示,是讀命令可以找到新頁面。

  第一個步驟比較復雜,需要更詳細的檢查。完成這個步驟最簡單的方法可以分成兩個子步驟:第一,使用一個RAM保存記錄編號和陣列中最近記錄的地址;第二,從RAM陣列逐一復制最近記錄到新閃存頁面。這個過程最快,并且相對簡單。

  使用這兩個子步驟存在的問題是MAXQ2000只有1k字的RAM空間。上述方案限制了可以保存到RAM中作緩存的數據量。這明顯是不能接受的。

  這種難題的解決方案非常耗時,但不管存儲陣列變得多大(合理范圍內)都是可行的。為源陣列中的每一項條目單獨操作,而不是在RAM中建立指針。因此,算法可以簡化為:

  •   從源陣列讀取一個數據元。
  •   在目標陣列中搜索這個數據單元。假如找到了,就說明這個數據單元已經寫入。源指針增加并返回步驟1。
  •   在源陣列中搜索這個數據單元最近記錄。
  •   把這個數據單元的最近記錄寫入目標陣列中。
  •   源指針增加并返回步驟1。

  最后,在目標陣列中,每個數據元都有精確的條目對應。填寫后的頁面如圖3示意。這樣,就可以安全擦除源頁面,并把頁面報頭寫入目標陣列。

空間恢復后

圖3. 空間恢復后,圖2中的數據頁面會如此表現。

  這個過程對于數據存儲會非常安全。然而,當使用閃存器件時還要面對另一個風險:在寫或者擦除操作中掉電。假如發生掉電,有可能會破壞一個或者多個頁面(例如寫操作)或者不能完全擦除頁面(例如擦除操作)。而我們這種緊湊的操作從本質上講是安全的??梢钥紤]以下的情況:

  •   假如在填寫操作時掉電,源頁面仍然保持完整。當重新上電后,很容易辨別新寫的頁面(他們沒有頁面報頭)并把它擦除,再重新啟動填寫操作。
  •   假如在正擦除舊頁面時掉電,可能會包含無效的報頭??梢圆脸@些頁面并把報頭添加到新頁面。
  •   假如在正把頁面報頭寫入到新頁面時掉電,數據仍然是完整的。頁面報頭更新操作可以再次重新啟動。
  •   簡言之,這些預料之外的突發事件不會導致陣列數據被破壞并不可恢復。

  方案2的改進

  這里介紹的存儲子系統沒有錯誤檢測的機制。在數據元標識符中有一些位(這里的是6位)沒有被使用。可以使用CRC6算法(x6 + x + 1)根據數據元計算出CRC以確保沒有發生讀寫錯誤。這雖然不是特別強大的算法(它會錯過多位錯誤中的1/64),它可以檢測到多數可能發生的錯誤。

  這個方法對系統的另一個限制是讀取時間很長。每次讀操作都需要讀取陣列中的所有記錄,以找到最近的記錄。有3個方法可以用來縮短讀取時間:

  在數據單元中為正向指針留一個空字節。當數據更新時,為正向指針分配一個新的入口地址。按照這種方式,數據表格可以按鏈表的方式移動。

  向后移動表格。這樣就可以在被請求信號第一次出現時停止搜索。

  假如單元數量很少,可以在啟動時建立一個RAM陣列,包含單元ID和指針。后面的讀取會很快。只需讀RAM陣列以決定從哪兒獲取數據單元。

  結論

  非易失數據存儲是每位設計工程師遲早都必須面對的問題。使用MAXQ處理器靈活的閃存,就不用再借助于串行存儲保存配置數據了。

此內容為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>
          久久久综合香蕉尹人综合网| 国外成人在线视频网站| 亚洲电影网站| 国产精品久久久久久久久搜平片| 亚洲福利小视频| 欧美视频1区| 国产精品第一区| 羞羞答答国产精品www一本| 国产一区二区黄色| 久久国产视频网站| 亚洲一区二区三区中文字幕在线| 一卡二卡3卡四卡高清精品视频| 欧美日本一区| 久久福利影视| 欧美伦理a级免费电影| 美女久久一区| 国产欧美一区二区三区久久人妖| 亚洲成色最大综合在线| 久久免费黄色| 欧美日韩国产首页在线观看| 狠狠色综合播放一区二区| 99综合在线| 一二美女精品欧洲| 欧美激情综合亚洲一二区| 国产精品久久久999| 国语自产精品视频在线看一大j8| 亚洲一区二区三区中文字幕| 国产九九精品视频| 欧美日本三区| 欧美日韩精品免费观看视频| 亚洲欧洲精品一区二区三区| 欧美精品一区三区在线观看| 久久综合一区二区三区| 国产精品扒开腿爽爽爽视频| 国产毛片一区二区| 免费成人黄色av| 亚洲国产精品电影| 亚洲手机成人高清视频| 葵司免费一区二区三区四区五区| 欧美精品二区三区四区免费看视频| 欧美高清在线一区二区| 国产精品欧美一区二区三区奶水| 欧美日韩 国产精品| 亚洲国产成人在线视频| 一区二区三区 在线观看视频| 国产精品拍天天在线| 国产精品欧美日韩久久| 国产精品99免费看| 一区二区福利| ●精品国产综合乱码久久久久| 午夜精品久久久久久99热软件| 亚洲看片网站| 国产精品日日摸夜夜添夜夜av| 亚洲黑丝在线| 欧美亚洲免费| 亚洲无毛电影| 亚洲毛片在线观看| 欧美午夜电影完整版| 国内揄拍国内精品久久| 欧美日韩黄色大片| 一区二区三区|亚洲午夜| 欧美一区2区视频在线观看| 1000部精品久久久久久久久| 国产精品视频精品视频| 欧美国产综合一区二区| 国产精品国产三级国产aⅴ入口| 国内精品久久久久影院色| 激情久久影院| 国产九色精品成人porny| 亚洲激情亚洲| 亚洲一区二区三区四区视频| 久久精品99国产精品日本| 国产精品乱码一区二三区小蝌蚪| 鲁大师影院一区二区三区| 一区二区三区在线免费视频| 国产深夜精品福利| 91久久精品一区二区三区| 国产精品久久久久国产精品日日| 久久久精品免费视频| 欧美精品 日韩| 雨宫琴音一区二区在线| 欧美精品乱人伦久久久久久| 欧美精品一区二区蜜臀亚洲| 最新国产乱人伦偷精品免费网站| 中日韩在线视频| 亚洲精品视频啊美女在线直播| 欧美日在线观看| 国产精品一区二区视频| 一区二区三区在线免费播放| 国产一区二区视频在线观看| 欧美黄色网络| 亚洲美女精品久久| 国产精品久久久久久久久久免费| 欧美精品色一区二区三区| 极品少妇一区二区三区| 亚洲六月丁香色婷婷综合久久| 亚洲九九精品| 一区二区三区产品免费精品久久75| 久色婷婷小香蕉久久| 欧美日本韩国在线| 中文亚洲视频在线| 亚洲日本va午夜在线影院| 亚洲毛片在线观看.| 国产精品久久国产精麻豆99网站| 欧美色欧美亚洲另类二区| 一区二区高清在线观看| 国产美女扒开尿口久久久| 国产精品美女在线观看| 午夜精品久久| 久久er精品视频| 一区二区欧美日韩视频| 亚洲婷婷综合久久一本伊一区| 欧美日韩午夜激情| 国产欧美日韩免费| 国产精品成人v| 欧美精品二区三区四区免费看视频| 久久免费的精品国产v∧| 欧美激情精品久久久久久久变态| 国产精品免费电影| 欧美电影免费观看网站| 麻豆精品精华液| 国产精品视频第一区| 国产欧美日韩一区| 久久久久久久综合色一本| 久久久久九九九| 欧美三级乱人伦电影| 亚洲天堂男人| 老司机凹凸av亚洲导航| 国产在线精品自拍| 国产精品网站视频| 欧美sm视频| 久久精品91久久香蕉加勒比| 尤物yw午夜国产精品视频| 91久久久久久国产精品| 亚洲亚洲精品三区日韩精品在线视频| 亚欧美中日韩视频| 亚洲最新中文字幕| 国产一区二区黄色| 亚洲精品日产精品乱码不卡| 国产综合色产| 亚洲日本va午夜在线电影| 国产一区二区三区在线播放免费观看| 亚洲夜间福利| 亚洲国产精品一区二区第一页| 亚洲国产日韩一级| 久久一区免费| 激情婷婷欧美| 欧美不卡一卡二卡免费版| 欧美精品一区在线观看| 狠狠久久亚洲欧美专区| 亚洲精品一区二区三| 欧美a级理论片| 亚洲女与黑人做爰| 欧美性猛交一区二区三区精品| 一区二区久久久久| 久久综合狠狠综合久久综合88| 欧美大胆人体视频| 亚洲午夜电影| 午夜精品免费在线| 合欧美一区二区三区| 国产在线精品二区| 9i看片成人免费高清| 欧美大片国产精品| 国产精品久久久久久久久借妻| 91久久线看在观草草青青| 久久久久一区| 欧美四级伦理在线| 国产美女精品免费电影| 亚洲欧洲在线看| 久久精品色图| 国产一区二区在线免费观看| 精品不卡一区二区三区| 国产精品人人爽人人做我的可爱| 亚洲精品视频二区| 亚洲欧美激情精品一区二区| 亚洲砖区区免费| 亚洲国产一区二区精品专区| 欧美伊人影院| 久久一区二区三区四区| 亚洲欧美日韩综合国产aⅴ| 欧美一区二区三区电影在线观看| 欧美日韩亚洲一区二| 亚洲精品久久久久中文字幕欢迎你| 国产在线欧美日韩| 久久婷婷激情| 玉米视频成人免费看| 亚洲国产精品传媒在线观看| 欧美 日韩 国产精品免费观看| 欧美性大战久久久久| 黄色在线成人| 久久亚洲精品一区二区| 欧美三区在线观看| 99av国产精品欲麻豆| 国产日韩一区在线| 欧美日韩国产精品一区二区亚洲| 欧美成熟视频| 久久手机精品视频| 在线一区二区三区四区| 99re热精品| 亚洲精品麻豆| 亚洲一区二区三区高清不卡| 亚洲美女尤物影院| 亚洲免费电影在线| 国产免费一区二区三区香蕉精| 国产在线精品成人一区二区三区| 国产精品99久久久久久久久| 夜夜精品视频| 久久精品中文字幕一区| 国产精品免费视频观看| 国产精品露脸自拍| 国产麻豆一精品一av一免费| 久久精品在线观看| 国产精品每日更新在线播放网址| 国产精品色一区二区三区| 国产精品国产福利国产秒拍| 午夜一区二区三区在线观看| 国产日韩精品一区二区三区| 国内精品免费午夜毛片| 免费精品99久久国产综合精品| 国模 一区 二区 三区| 日韩一区二区电影网| 国产精品亚洲综合一区在线观看| 国产精品激情偷乱一区二区∴| 欧美日韩成人网| 亚洲欧美在线视频观看| 亚洲综合国产激情另类一区| 亚洲最新中文字幕| 国产一区二区三区在线观看视频| 狠狠色狠狠色综合系列| 国产美女精品在线| 99精品欧美一区二区蜜桃免费| 亚洲国产电影| 欧美另类久久久品| 国产精品热久久久久夜色精品三区| 亚洲国产精品va在线看黑人动漫| 亚洲国产第一| 亚洲丁香婷深爱综合| 狠狠色狠狠色综合人人| 欧美一级大片在线观看| 欧美激情综合五月色丁香| 99在线热播精品免费99热| 久久综合中文色婷婷| aa日韩免费精品视频一| 在线观看欧美黄色| 欧美韩日亚洲| 久久aⅴ国产紧身牛仔裤| 国产精品扒开腿爽爽爽视频| 宅男66日本亚洲欧美视频| 免费人成精品欧美精品| 国产女主播在线一区二区| 欧美性大战久久久久久久蜜臀| 久久久999精品| 亚洲欧洲一级| 亚洲一二三区在线观看| 国产精品欧美日韩一区| 激情婷婷欧美| 久久久97精品| 黄色日韩网站视频| 久久国产精品久久久久久电车| 欧美v亚洲v综合ⅴ国产v| 午夜国产欧美理论在线播放| 99人久久精品视频最新地址| 美女任你摸久久| 国产亚洲精品7777| 9l国产精品久久久久麻豆| 欧美日韩国产成人在线免费| 亚洲一区综合| 在线一区二区三区四区五区| 亚洲国产成人精品久久久国产成人一区| 在线播放亚洲| 欧美一级在线播放| 欧美在线一区二区三区| 欧美日韩精品中文字幕| 国产精品久久久久久久久免费桃花| 亚洲国产日韩欧美| 日韩一级精品| 午夜精品成人在线| 欧美激情一区二区三区高清视频| 亚洲一区二区三区四区五区午夜| 欧美日韩亚洲一区二区三区在线| 女人天堂亚洲aⅴ在线观看| 欧美激情一区二区| 国产亚洲激情视频在线| 欧美国产一区视频在线观看| 午夜一区不卡| 欧美激情精品久久久久久| 欧美午夜一区| 国产精品视频免费观看| 国产精品第三页| 国产伦理一区| 欧美成人精品不卡视频在线观看| 国产精品久久午夜夜伦鲁鲁| 欧美日韩一区在线观看视频| 欧美久久婷婷综合色| 欧美成熟视频| 欧美mv日韩mv国产网站app| 国产欧美日韩精品a在线观看| 国产欧美一区二区三区国产幕精品| 中文高清一区| 欧美日韩在线免费视频| 国产精品久久7| 国产精品福利av| 夜夜爽99久久国产综合精品女不卡| 亚洲欧美三级在线| 久久久噜噜噜久久狠狠50岁| 亚洲午夜精品久久久久久app| 国产午夜久久久久| 欧美日韩国产精品一区二区亚洲| 欧美午夜理伦三级在线观看| 国产精品一二三| 国产一区成人| 欧美暴力喷水在线| 西西人体一区二区| 国产综合在线视频| 一本色道久久综合狠狠躁篇怎么玩| 欧美1区2区3区| 欧美精品免费在线观看| 欧美日韩国产bt| 欧美激情精品久久久久久久变态| 国产精品一区久久久| 欧美精品一二三| 欧美一区二区在线免费观看| 国产亚洲一区在线播放| 蜜桃av一区二区三区| 久久精品国产视频| 国产精品一区在线播放| 亚洲精品女av网站| 国产精品久久久久久av下载红粉|