《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于μC/OS任務調度算法的嵌入式數據管理
基于μC/OS任務調度算法的嵌入式數據管理
電子市場
摘要: 一般情況下,在嵌入式系統中實現數據管理我們常采用嵌入式數據庫。但是目前常用的嵌入式數據庫(如SQLite、Berkeley DB等)均需嵌入式操作系統的支持,且對嵌入式系統的內存、CPU處理速度等有較高要求,只能應用在比較高端的嵌入式系統中。在低端的嵌入式系統中,傳統的數據管理方法是對數據存儲空間按順序編號,數據存儲與刪除均根據編號順序操作。這種方法在多次刪除后會出現很多存儲空間碎片,一方面加大了程序查找空閑存儲空間的難度,數據管理操作時間長(類似微機系統中硬盤長時間不做磁盤碎片整理會造成程序運行變慢的情況),另一方面可能造成存儲空間利用率降低。本文提出了一種利用μC/OS任務調度算法實現的數據管理方法,該方法無需嵌入式操作系統的支持,可應用于低端的嵌入式系統中,而且可以有效克服低端嵌入式應用中傳統數據管理方法的缺陷。
Abstract:
Key words :

  引言

  一般情況下,在嵌入式系統中實現數據管理我們常采用嵌入式數據庫。但是目前常用的嵌入式數據庫(如SQLite、Berkeley DB等)均需嵌入式操作系統的支持,且對嵌入式系統的內存、CPU處理速度等有較高要求,只能應用在比較高端的嵌入式系統中。在低端的嵌入式系統中,傳統的數據管理方法是對數據存儲空間按順序編號,數據存儲與刪除均根據編號順序操作。這種方法在多次刪除后會出現很多存儲空間碎片,一方面加大了程序查找空閑存儲空間的難度,數據管理操作時間長(類似微機系統中硬盤長時間不做磁盤碎片整理會造成程序運行變慢的情況),另一方面可能造成存儲空間利用率降低。本文提出了一種利用μC/OS任務調度算法實現的數據管理方法,該方法無需嵌入式操作系統的支持,可應用于低端的嵌入式系統中,而且可以有效克服低端嵌入式應用中傳統數據管理方法的缺陷。

  1  μC/OS任務調度算法

  μC/OS是一種占先式的多任務嵌入式操作系統,它可以管理多達64個任務。μC/OS中,每個任務的優先級不一樣且是唯一的,優先級最高的任務一旦準備就緒,則擁有CPU所有權并開始投入運行。所以,μC/OS的任務調度算法的基本思想就是,查找當前準備就緒的最高優先級的任務,并進行任務切換。實現上述任務調度算法主要包含兩個步驟:確定目前哪幾個任務處于就緒態,確定目前處于就緒態的任務中哪個優先級最高。為此,μC/OS提供了兩個全局變量OSRdyTbl[]和OSRdyGrp。OSRdyTbl[]數組是任務就緒表,包含 8個字節(共64位),相當于把64個任務分為8組,每組8個任務,這64位數據的0、1狀態分別代表64個任務是否處于就緒態(0代表空閑,1代表就緒);OSRdyGrp為1個字節數據(8位),每一位的0、1狀態分別代表OSRdyTbl[]數組的相應字節是否非零(即該組中是否有任務處于就緒態)。通過這兩個全局變量的賦值就可實現任務就緒態與空閑態的切換,這是μC/OS實現任務調度的基礎。

  1.1  使任務進入就緒態

  μC/OS通過OSRdyTbl[]和OSRdyGrp某位置“1”,使相應任務進入就緒態,如圖1所示。

任務就緒表
 

  圖1  任務就緒表

  假設優先級為12的任務進入就緒狀態,12 = 1100b,則OSRdyTbl[1]的第4位置1,且OSRdyGrp的第1位置1(代表第1組有任務處于就緒態),相應的數學表達式為:

  OSRdyGrp|=0x02;

  OSRdyTbl[1]|=0x10;

  則μC/OS在執行任務調度時,通過OSRdyGrp的值即可判斷出第1組任務中有任務處于就緒態,然后再通過OSRdyTbl[]數組的第1個字節即可判斷出此時優先級為12的任務處于就緒態,則可做任務切換。

  從上面的計算可以得到:若OSRdyGrp及OSRdyTbl[]的第n位置1,則應該把OSRdyGrp及OSRdyTbl[]的值與2n相或。為了計算方便,μC/OS中把2n的8個值(n=0~7)先計算好,存在數組OSMapTbl[]中,即:

  OSMapTbl[0]=20=0x01(0000 0001)

  OSMapTbl[1]=21=0x02(0000 0010)

  ……

  OSMapTbl[7] = 27=0x80(1000 0000)

  μC/OS中,優先級數分解為高3位和低3位,高3位代表任務組號,低3位代表任務在所在組中的位置。則任意優先級為prio的任務進入就緒態只需執行以下程序:

  OSRdyGrp|=OSMapTbl[prio 》 3];

  OSRdyTbl[prio》3]|=OSMapTbl[prio & 0x07];

  1.2  使任務進入空閑態

  μC/OS通過任務就緒表OSRdyTbl[prio》3](prio代表任務優先級)中相應位清零使相應任務進入空閑態,當OSRdyTbl[prio》3]中的所有位都為零時,還需將OSRdyGrp的相應位清零,代表全組任務中沒有一個任務進入就緒態。

  1.3  查找當前處于就緒態的最高優先級任務

  μC/OS采用查表法查找當前處于就緒態的最高優先級任務,它預先定義了數組OSUnMapTbl[]作為查找表,如下:

  INT8U cONST OSUnMapTbl[]={

  0, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,

  4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,

  5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,

  4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,

  6, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,

  4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,

  5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,

  4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,

  7, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,

  4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,

  5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,

  4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,

  6, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,

  4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,

  5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,

  4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0

  };

  相應的查找程序如下:

  High3=OSUnMapTbl[OSRdyGrp];//優先級高3位,即當前處于就緒態的最高優先級的任務的組號

  Low3=OSUnMapTbl[OSRdyTbl[High3]];//優先級低3位

  prio=(Hign3《3)+Low3;//獲得當前處于就緒態的最高優先級的任務

  例如:若OSRdyGrp的值為01101000b,則查得OSUnMapTbl[OSRdyGrp]的值是3,它對應于OSRdyGrp中的第3位置1(即當前處于就緒態的最高優先級任務處于第1組任務中);若OSRdyTbl[3]的值是11100100b,則查OSUnMapTbl[OSRdyTbl[3]]的值是2,則進入就緒態的最高任務的優先級prio=3×8+2=26。

  從上文的計算可看出μC/OS查找當前最高優先級任務所*的時間為常數,與應用程序中建立的任務數無關,這個特性是本文實現新型嵌入式數據管理的關鍵。

  2  利用μC/OS任務調度算法實現嵌入式

  數據管理在低端的嵌入式應用中,數據管理的主要功能就是數據存儲與數據刪除。傳統的做法是對數據存儲空間按地址順序編號,數據存儲與刪除均根據編號操作,每個編號的存儲空間還提供了標志位,用于判斷該空間是否已被占用。這種方法有一個很大的弊端:多次刪除后會出現存儲空間碎片,這造成后續操作中查找空閑空間耗時較長,且存儲量越大,這個現象越嚴重,大大降低了數據管理操作的效率。有些程序員為了解決這個弊端對刪除操作只提供刪除所有記錄的功能,不提供單獨刪除某個記錄的功能,但這顯然犧牲了產品的易用性。本文利用μC/OS任務調度算法實現嵌入式數據管理,可有效解決以上問題。

  2.1  基本思想

  利用μC/OS任務調度算法實現嵌入式數據管理的基本思想是:將μC/OS中的“任務優先級”與數據管理的“記錄號”對應,將“任務就緒態”與“存儲空間空狀態”(注意,不是存儲空間滿狀態)對應,將“任務空閑態”與“存儲空間滿狀態”對應,將“使任務進入就緒態”與“數據刪除”對應,將“使任務進入空閑態”與“數據存儲”對應,將“查找當前處于就緒態的最高優先級任務”與“查找當前空閑存儲空間”對應。即在實際應用中,數據存儲前先根據μC/OS中的“查找當前處于就緒態的最高優先級任務”的方法查找目前優先級最高的空閑存儲空間,獲得相應記錄號,然后在數據存儲后根據μC/OS中的“使任務進入空閑態”的方法使相應記錄的存儲空間置為“滿”狀態;數據刪除后根據μC/OS中的“使任務進入就緒態”的方法使相應記錄的存儲空間置為“空”狀態。顯然,該方法較傳統方法有兩大優點:查找空閑存儲空間的速度遠高于傳統方法,且查找時間為常數,即查找時間與記錄數無關(傳統方法的查找時間隨記錄數遞增);不會出現存儲空間碎片,因為本方法按優先級存儲數據,刪除的存儲空間的優先級肯定高于未使用的存儲空間,則在后續存儲操作中會將其優先用于存儲,從而也就避免了存儲空間碎片的出現。

  2.2  算法的改進

  μC/OS的最大任務數為64,這意味著直接采用μC/OS任務調度算法實現的數據管理的最大記錄數也僅為64個,這顯然不適用于多數應用場合,因此需對算法進行改進。本方法引入“頁”的概念,即每64個記錄為1頁,數據存儲前先查找包含空記錄的頁號,然后在該頁中查找空記錄。查找包含空記錄的頁號的方法與查找空記錄的方法相同(即都根據μC/OS中的“查找當前處于就緒態的最高優先級任務”的方法查找),因此最大記錄數為64記錄/頁×64頁=4096個記錄。依此類推,可繼續擴大存儲記錄數。為了理解方便,下文代表記錄空閑狀態和頁內記錄號的全局變量定義為OSRdyTbl[64][8]、OSRdyGrp[64]和prio,代表頁空閑狀態和頁號的全局變量定義為OSRdyPage、OSRdyPageTbl[8]和PrioPage,代表記錄在整個存儲空間的序號定義為RecordNo(則RecordNo = PrioPage×64+prio)。

  2.3  嵌入式數據管理主要步驟的實現

  2.3.1  數據初始化

  在嵌入式系統剛運行時,所有記錄應為空狀態,因此需將代表記錄空閑狀態和頁空閑狀態的全局變量OSRdyTbl[]、OSRdyGrp、OSRdyPageTbl[]和OSRdyPage的所有字節均初始化為0xff(因為“1”代表空閑)。

  2.3.2  數據存儲

  數據存儲前先要找到優先級最高的空記錄,其流程為先找到含空記錄的頁號,然后在該頁中查找空記錄號,最后根據頁號和空記錄號計算出當前可用于存儲且優先級最高的存儲空間的序號。詳細程序如下:

  High3=OSUnMapTbl[OSRdyPageGrp];//高3位

  Low3=OSUnMapTbl[OSRdyPageTbl][High3]];//低3位

  PrioPage=(High3《3)+Low3;//先找到含空記錄的頁號

  High3=OSUnMapTbl[OSRdyGrp[PrioPage]];

  Low3=OSUnMapTbl[OSRdyTbl[PrioPage][High3]];

  prio=(High3《3)+Low3;//獲得頁中的空記錄號

  RecordNo=PrioPage*64+prio;//獲得空記錄在整個存儲空間中的序號

  根據以上程序得到序號后,就可以將數據存儲到相應存儲空間了,存儲完成后需將該序號的存儲空間設置為“滿”狀態,具體流程為:先將該頁中的記錄號置為“滿”狀態(即清零相應位),然后判斷本頁中是否所有記錄均為“滿”,若是則置該頁的狀態為“滿”。詳細程序如下:

  PrioPage=RecordNo / 64;//頁號

  prio=RecordNo % 64;//記錄號

  if ((OSRdyTbl[PrioPage][prio》3] &=~OSMapTbl[prio & 0x07])==0)

  OSRdyGrp[PrioPage] &=~OSMapTbl[prio》3]; //置頁中的記錄號為“滿”狀態

  if(OSRdyGrp[PrioPage]==0){//若該頁中的所有記錄均為“滿”則置該頁為“滿”狀態

  if ((OSRdyPageTbl[PrioPage》3] &=~OSMapTbl[PrioPage & 0x07])==0)

  OSRdyPage &= ~OSMapTbl[PrioPage》3];

  }

  2.3.3  數據刪除

  數據刪除即將存儲序號RecordNo對應的頁號和記錄號的存儲狀態設置為“空”(則該記錄可用于后續的存儲),具體流程為:先設置頁號為“空”(因為只要該頁中任意一個記錄為“空”,則頁的狀態即為“空”),然后設置記錄號的狀態為“空”,詳細程序如下:

  PrioPage=RecordNo / 64;//頁號

  prio=RecordNo % 64;//記錄號

  OSRdyPage |=OSMapTbl[PrioPage》3];

  OSRdyPageTbl[PrioPage》3] |=OSMapTbl[PrioPage & 0x07];//設置該頁的存儲狀態為“空”

  OSRdyGrp[PrioPage] |=OSMapTbl[prio》3];

  OSRdyTbl[PrioPage][prio》3] |=OSMapTbl[prio & 0x07];)//設置頁中的記錄為“空”狀態

  按以上方法將相應序號的存儲空間設置為空狀態,則在后續操作中該存儲空間可用于存儲。

  3 結語

  本文利用μC/OS嵌入式操作系統的任務調度 算法并加以改進,巧妙地實現了簡易的嵌入式數據管理,與傳統方法比較,該方法具備不出現存儲空間碎片、數據管理操作效率高等優點,可廣泛應用于低端嵌入式應用中的數據管理。該方法已在筆者所開發的SF6電氣設備分解產物檢測儀及智能抄表終端中應用,運行穩定可靠。

此內容為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>
          亚洲欧洲综合另类在线| 裸体一区二区| 99精品视频免费全部在线| 国产视频丨精品|在线观看| 欧美黑人在线观看| 久久久久久一区二区三区| 永久免费精品影视网站| av不卡在线观看| 一本一本久久a久久精品综合麻豆| 亚洲电影免费观看高清完整版在线观看| 日韩视频精品在线观看| 亚洲电影第三页| 国产亚洲激情在线| 国产精品美腿一区在线看| 欧美日韩福利视频| 欧美一级专区| 亚洲国产精品视频| 欧美不卡在线| 亚洲精品一区在线观看香蕉| 国产欧美日本| 一区一区视频| 欧美与黑人午夜性猛交久久久| 亚洲国产精品传媒在线观看| 欧美中文字幕视频| 久久久久国色av免费观看性色| 欧美在线日韩在线| 狠狠色狠狠色综合| 国产精品久久999| 国精品一区二区三区| 欧美日韩日日骚| 久久综合婷婷| 欧美激情黄色片| 国产视频一区二区在线观看| 久久综合伊人77777蜜臀| 欧美成人a视频| 久久久久久穴| 禁断一区二区三区在线| 久久另类ts人妖一区二区| 欧美日韩视频不卡| 欧美激情视频一区二区三区免费| 午夜国产一区| 99re6这里只有精品视频在线观看| 日韩亚洲国产精品| 欧美日韩不卡合集视频| 欧美精品九九| 国产性猛交xxxx免费看久久| 欧美不卡激情三级在线观看| 欧美综合第一页| 国产亚洲网站| 欧美日韩美女一区二区| 亚洲欧美日韩国产中文| 国产一区二区三区免费不卡| 亚洲高清在线播放| 国产午夜精品一区二区三区视频| 欧美精品亚洲精品| 亚洲视频网在线直播| 亚洲一区二区在线免费观看视频| 欧美日韩一区二区三| 亚洲一区二区三区成人在线视频精品| 亚洲视频国产视频| 久久一综合视频| 国产日本欧洲亚洲| 亚洲欧洲免费视频| 国产精品久久久久婷婷| 欧美视频成人| 91久久国产精品91久久性色| 欧美精品一区在线观看| 欧美亚韩一区| 亚洲免费成人av电影| 91久久视频| 欧美精品1区2区| 欧美日韩免费观看一区二区三区| 国产精品日韩欧美| 黄色成人在线观看| 亚洲免费影视第一页| 欧美三级第一页| 亚洲欧美国产制服动漫| 中文久久乱码一区二区| 欧美a级片一区| 国产精品乱人伦一区二区| 欧美在线在线| 欧美成人a∨高清免费观看| 黄色资源网久久资源365| 亚洲国产你懂的| 亚洲特黄一级片| 国产精品毛片a∨一区二区三区|国| 亚洲第一毛片| 国内精品久久久久影院优| 欧美日韩精品在线视频| 欧美亚洲一区二区在线| 国产精品中文字幕在线观看| 狠狠色狠狠色综合日日91app| 久久久国产精品一区二区中文| 小黄鸭视频精品导航| 噜噜爱69成人精品| 亚洲欧美精品在线| **性色生活片久久毛片| 欧美高清在线播放| 亚洲一级特黄| 亚洲高清三级视频| 欧美特黄一级大片| 国产综合av| 久久成人精品无人区| 亚洲综合日韩在线| 亚洲三级国产| 亚洲二区在线| 欧美日韩亚洲国产精品| 国产精品日韩在线播放| 欧美日韩综合视频| 欧美va亚洲va国产综合| 午夜精品美女久久久久av福利| 国产婷婷成人久久av免费高清| 欧美a级理论片| 欧美午夜激情小视频| 中文日韩在线| 亚洲精品国产精品国自产观看| 麻豆成人综合网| 亚洲精品你懂的| 欧美日韩精品在线视频| 欧美性大战久久久久久久蜜臀| 欧美日韩欧美一区二区| 午夜影视日本亚洲欧洲精品| 欧美精品 国产精品| 伊人激情综合| 国产精品二区三区四区| 国产精品入口麻豆原神| 亚洲图片欧洲图片日韩av| 亚洲欧美日韩一区二区在线| 很黄很黄激情成人| 亚洲天堂视频在线观看| 久久精品国产91精品亚洲| 国产一区二区成人久久免费影院| 99精品国产在热久久婷婷| 激情亚洲成人| 欧美日本一区二区三区| 欧美一二区视频| 国内免费精品永久在线视频| 国产精品国产福利国产秒拍| 久久婷婷激情| 好吊色欧美一区二区三区四区| 国产精品人人做人人爽人人添| 久久影院午夜片一区| 欧美视频一区二| 夜夜嗨av一区二区三区网页| 亚洲国产另类久久久精品极度| 欧美激情二区三区| 亚洲福利视频在线| 亚洲一区二区三区四区五区午夜| 男人的天堂亚洲| 一区在线视频观看| 国产一区二区三区高清| 欧美在线free| 亚洲欧美欧美一区二区三区| 亚洲一级影院| 国产日韩亚洲欧美| 国产一区二区三区久久久| 亚洲国产你懂的| 欧美精品啪啪| 欧美精品啪啪| 欧美激情欧美激情在线五月| 蜜桃伊人久久| 亚洲美女黄色| 欧美视频网址| 国产精品三级视频| 香蕉久久夜色精品国产使用方法| 免费在线观看一区二区| 这里只有视频精品| 国产精品婷婷| 一区二区三区在线视频免费观看| 99精品黄色片免费大全| 国产精品每日更新| 久久躁狠狠躁夜夜爽| 亚洲免费综合| 欧美日韩国产精品专区| 日韩一本二本av| 亚洲第一福利在线观看| 老司机精品视频一区二区三区| 久久成人国产精品| 国产一区二区三区日韩| av成人免费在线观看| 欧美一区永久视频免费观看| 亚洲性夜色噜噜噜7777| 欧美成人综合网站| 欧美激情视频一区二区三区在线播放| 欧美激情国产日韩精品一区18| 美女精品自拍一二三四| 午夜精品www| 欧美屁股在线| 日韩视频免费看| 亚洲免费人成在线视频观看| 久久视频在线看| 国内精品美女在线观看| 激情亚洲一区二区三区四区| 久久精品欧洲| 亚洲人成在线观看网站高清| 久久av老司机精品网站导航| 欧美a一区二区| 日韩午夜激情电影| 亚洲欧美日韩一区二区三区在线| 午夜久久黄色| 国产在线观看精品一区二区三区| 久久久伊人欧美| 欧美日本精品一区二区三区| 亚洲视频播放| 久久久久久久精| 久久亚洲风情| 欧美精品午夜| 亚洲电影在线免费观看| 99视频在线观看一区三区| 日韩亚洲欧美中文三级| 欧美激情一区二区三级高清视频| 欧美在线视频一区| 欧美日韩精品一区二区三区四区| 欧美亚洲三级| 亚洲人午夜精品| 黄色在线一区| 在线观看91精品国产麻豆| 久久在线免费| 久久久高清一区二区三区| 欧美电影电视剧在线观看| 久久精品成人欧美大片古装| 国产精品久久久久9999高清| 久久www免费人成看片高清| 国产偷国产偷亚洲高清97cao| 日韩一级二级三级| 韩国av一区二区三区四区| 美女脱光内衣内裤视频久久网站| 久久爱www.| 在线视频精品一区| 久久精品国产久精国产爱| 国产老肥熟一区二区三区| 亚洲视频久久| 国产欧美精品一区二区三区介绍| 国产日韩欧美麻豆| 亚洲免费在线播放| 欧美一二三区在线观看| 亚洲免费视频中文字幕| 最新国产成人av网站网址麻豆| 国产精品久久久999| 国产精品久久久久99| 国产精品每日更新在线播放网址| 欧美日韩在线亚洲一区蜜芽| 欧美日韩美女一区二区| 亚洲无人区一区| 欧美在线资源| 欧美精品久久一区二区| 欧美一二三视频| 亚洲在线观看视频网站| 最新国产の精品合集bt伙计| 国产农村妇女精品| 国产精品一区二区久激情瑜伽| 国产女人aaa级久久久级| 久久综合色播五月| 欧美日韩播放| 国产精品美女久久久| 卡一卡二国产精品| 亚洲精品久久| 欧美一区二区三区免费观看| 美国三级日本三级久久99| 久久精品国产综合| 国产精品免费看片| 亚洲精品五月天| 国内精品久久久久影院色| 欧美日韩美女一区二区| 欧美三级在线播放| 久久三级福利| 黄色成人免费观看| 国产精品第2页| 欧美小视频在线观看| 久久精品青青大伊人av| 欧美日韩喷水| 国产日韩在线亚洲字幕中文| 亚洲欧美日韩综合一区| 亚洲人妖在线| 欧美人牲a欧美精品| 亚洲免费观看在线观看| 亚洲国产一区二区精品专区| 亚洲一区二区三区乱码aⅴ蜜桃女| 欧美三级日韩三级国产三级| 亚洲尤物在线| 亚洲国产高清在线观看视频| 欧美日产一区二区三区在线观看| 国产精品卡一卡二卡三| 午夜在线成人av| 亚洲尤物精选| 韩国久久久久| 欧美一激情一区二区三区| 国产亚洲欧美一区二区| 亚洲精品永久免费| 国产精品精品视频| 夜夜嗨av一区二区三区四区| 久久精品欧美日韩| 尤物视频一区二区| 欧美精品一区二区三区很污很色的| 99xxxx成人网| 国产精品国产成人国产三级| 欧美一区二区三区四区在线| 欧美系列一区| 亚洲精品你懂的| 在线看片欧美| 欧美午夜视频一区二区| 欧美一区二区三区视频在线| 亚洲东热激情| 激情综合五月天| 欧美一级黄色录像| 亚洲精选国产| 亚洲成人在线视频网站| 国产精品国色综合久久| 久久久999精品免费| 亚洲欧美国产视频| 久久精品视频在线看| 欧美主播一区二区三区美女 久久精品人| 亚洲丰满在线| 午夜视频精品| 国产日韩精品综合网站| 欧美成人精品高清在线播放| 国产精品久久激情| 亚洲毛片在线观看| 久久久久国产免费免费| 国产亚洲一级高清| 久久gogo国模啪啪人体图| 欧美视频中文字幕在线| 久久亚洲风情| 在线亚洲精品福利网址导航| 欧美人与性动交cc0o| 一本久久综合| 国产精品久久久久9999吃药| 亚洲激情成人在线|