日韩中文字幕色资源,337p日本欧洲中国大胆精品,亚洲专区视频一区二区,91大神视频在线观看,亚洲av日韩精品久久国产多毛女,日韩一区二区三在线视频,av网站免费在线不卡,黄色国产午夜精品久久久,北条av在线一二三

uCOS-II在51單片機上的移植

來源:網(wǎng)絡

點擊:2378

A+ A-

所屬頻道:新聞中心

關鍵詞: uCOS-II,51單片機,移植

      引言:隨著各種應用電子系統(tǒng)的復雜化和系統(tǒng)實時性需求的提高,并伴隨應用軟件朝著系統(tǒng)化方向發(fā)展的加速,在16位/32位單片機中廣泛使用了嵌入式實時操作系統(tǒng)。然而實際使用中卻存在著大量8位單片機,從經(jīng)濟性考慮,對某些應用場合,在8位MCU上使用操作系統(tǒng)是可行的。從學習操作系統(tǒng)角度,uC/OS- II for 51即簡單又全面,學習成本低廉,值得推廣。

      結語:μC/OS-II具有免費、簡單、可靠性高、實時性好等優(yōu)點,但也有缺乏便利開發(fā)環(huán)境等缺點,尤其不像商用嵌入式系統(tǒng)那樣得到廣泛使用和持續(xù)的研究更新。但開放性又使得開發(fā)人員可以自行裁減和添加所需的功能,在許多應用領域發(fā)揮著獨特的作用。當然,是否在單片機系統(tǒng)中嵌入μC/OS-II應視所開發(fā)的項目而定,對于一些簡單的、低成本的項目來說,就沒必要使用嵌入式操作系統(tǒng)了。

      uC/OS-II原理:

      uCOSII 包括任務調(diào)度、時間管理、內(nèi)存管理、資源管理(信號量、郵箱、消息隊列)四大部分,沒有文件系統(tǒng)、網(wǎng)絡接口、輸入輸出界面。它的移植只與4個文件相關:匯編文件(OS_CPU_A.ASM)、處理器相關C文件(OS_CPU.H、OS_CPU_C.C)和配置文件(OS_CFG.H)。有64個優(yōu)先級,系統(tǒng)占用8個,用戶可創(chuàng)建56個任務,不支持時間片輪轉。它的基本思路就是 “近似地每時每刻總是讓優(yōu)先級最高的就緒任務處于運行狀態(tài)” 。為了保證這一點,它在調(diào)用系統(tǒng)API函數(shù)、中斷結束、定時中斷結束時總是執(zhí)行調(diào)度算法。原作者通過事先計算好數(shù)據(jù),簡化了運算量,通過精心設計就緒表結構,使得延時可預知。任務的切換是通過模擬一次中斷實現(xiàn)的。

      uCOSII工作核心原理是:近似地讓最高優(yōu)先級的就緒任務處于運行狀態(tài)。

      操作系統(tǒng)將在下面情況中進行任務調(diào)度:調(diào)用API函數(shù)(用戶主動調(diào)用),中斷(系統(tǒng)占用的時間片中斷OsTimeTick(),用戶使用的中斷)。

      調(diào)度算法書上講得很清楚,我主要講一下整體思路。

      (1) 在調(diào)用API函數(shù)時,有可能引起阻塞,如果系統(tǒng)API函數(shù)察覺到運行條件不滿足,需要切換就調(diào)用OSSched()調(diào)度函數(shù),這個過程是系統(tǒng)自動完成的,用戶沒有參與。OSSched()判斷是否切換,如果需要切換,則此函數(shù)調(diào)用OS_TASK_SW()。這個函數(shù)模擬一次中斷(在51里沒有軟中斷,我用子程序調(diào)用模擬,效果相同),好象程序被中斷打斷了,其實是OS故意制造的假象,目的是為了任務切換。既然是中斷,那么返回地址(即緊鄰 OS_TASK_SW()的下一條匯編指令的PC地址)就被自動壓入堆棧,接著在中斷程序里保存CPU寄存器(PUSHALL)……。堆棧結構不是任意的,而是嚴格按照uCOSII規(guī)范處理。OS每次切換都會保存和恢復全部現(xiàn)場信息(POPALL),然后用RETI回到任務斷點繼續(xù)執(zhí)行。這個斷點就是 OSSched()函數(shù)里的緊鄰OS_TASK_SW()的下一條匯編指令的PC地址。切換的整個過程就是,用戶任務程序調(diào)用系統(tǒng)API函數(shù),API調(diào)用 OSSched(),OSSched()調(diào)用軟中斷OS_TASK_SW()即OSCtxSw,返回地址(PC值)壓棧,進入OSCtxSw中斷處理子程序內(nèi)部。反之,切換程序調(diào)用RETI返回緊鄰OS_TASK_SW()的下一條匯編指令的PC地址,進而返回OSSched()下一句,再返回API下一句,即用戶程序斷點。因此,如果任務從運行到就緒再到運行,它是從調(diào)度前的斷點處運行。

     ?。?)中斷會引發(fā)條件變化,在退出前必須進行任務調(diào)度。 uCOSII要求中斷的堆棧結構符合規(guī)范,以便正確協(xié)調(diào)中斷退出和任務切換。前面已經(jīng)說到任務切換實際是模擬一次中斷事件,而在真正的中斷里省去了模擬 (本身就是中斷嘛)。只要規(guī)定中斷堆棧結構和uCOSII模擬的堆棧結構一樣,就能保證在中斷里進行正確的切換。任務切換發(fā)生在中斷退出前,此時還沒有返回中斷斷點。仔細觀察中斷程序和切換程序最后兩句,它們是一模一樣的,POPALL+RETI。即要么直接從中斷程序退出,返回斷點;要么先保存現(xiàn)場到 TCB,等到恢復現(xiàn)場時再從切換函數(shù)返回原來的中斷斷點(由于中斷和切換函數(shù)遵循共同的堆棧結構,所以退出操作相同,效果也相同)。用戶編寫的中斷子程序必須按照uCOSII規(guī)范書寫。任務調(diào)度發(fā)生在中斷退出前,是非常及時的,不會等到下一時間片才處理。OSIntCtxSw()函數(shù)對堆棧指針做了簡單調(diào)整,以保證所有掛起任務的棧結構看起來是一樣的。

      (3)在uCOSII里,任務必須寫成兩種形式之一(《uCOSII中文版》p99頁)。在有些 RTOS開發(fā)環(huán)境里沒有要求顯式調(diào)用OSTaskDel(),這是因為開發(fā)環(huán)境自動做了處理,實際原理都是一樣的。uCOSII的開發(fā)依賴于編譯器,目前沒有專用開發(fā)環(huán)境,所以出現(xiàn)這些不便之處是可以理解的。

      移植過程:

     ?。?)拷貝書后附贈光盤sourcecode目錄下的內(nèi)容到C:\YY下,刪除不必要的文件和EX1L.C,只剩下p187(《uCOSII》)上列出的文件。

     ?。?)改寫最簡單的OS_CPU.H

      數(shù)據(jù)類型的設定見C51.PDF第176頁。注意BOOLEAN要定義成unsigned char 類型,因為bit類型為C51特有,不能用在結構體里。

      EA=0關中斷;EA=1開中斷。這樣定義即減少了程序行數(shù),又避免了退出臨界區(qū)后關中斷造成的死機。

      MCS-51堆棧從下往上增長(1=向下,0=向上),OS_STK_GROWTH定義為0

      #define OS_TASK_SW() OSCtxSw() 因為MCS-51沒有軟中斷指令,所以用程序調(diào)用代替。兩者的堆棧格式相同,RETI指令復位中斷系統(tǒng),RET則沒有。實踐表明,對于MCS-51,用子程序調(diào)用入棧,用中斷返回指令RETI出棧是沒有問題的,反之中斷入棧RET出棧則不行。總之,對于入棧,子程序調(diào)用與中斷調(diào)用效果是一樣的,可以混用。在沒有中斷發(fā)生的情況下復位中斷系統(tǒng)也不會影響系統(tǒng)正常運行。詳見《uC/OS-II》第八章193頁第12行

     ?。?)改寫OS_CPU_C.C

      我設計的堆棧結構如下圖所示:

      TCB結構體中OSTCBStkPtr總是指向用戶堆棧最低地址,該地址空間內(nèi)存放用戶堆棧長度,其上空間存放系統(tǒng)堆棧映像,即:用戶堆棧空間大小=系統(tǒng)堆??臻g大小+1。

      SP總是先加1再存數(shù)據(jù),因此,SP初始時指向系統(tǒng)堆棧起始地址(OSStack)減1處(OSStkStart)。很明顯系統(tǒng)堆棧存儲空間大小=SP-OSStkStart。

      任務切換時,先保存當前任務堆棧內(nèi)容。方法是:用SP-OSStkStart得出保存字節(jié)數(shù),將其寫入用戶堆棧最低地址內(nèi),以用戶堆棧最低地址為起址,以 OSStkStart為系統(tǒng)堆棧起址,由系統(tǒng)棧向用戶棧拷貝數(shù)據(jù),循環(huán)SP-OSStkStart次,每次拷貝前先將各自棧指針增1。

      其次,恢復最高優(yōu)先級任務系統(tǒng)堆棧。方法是:獲得最高優(yōu)先級任務用戶堆棧最低地址,從中取出“長度”,以最高優(yōu)先級任務用戶堆棧最低地址為起址,以 OSStkStart為系統(tǒng)堆棧起址,由用戶棧向系統(tǒng)??截悢?shù)據(jù),循環(huán)“長度”數(shù)值指示的次數(shù),每次拷貝前先將各自棧指針增1。

      用戶堆棧初始化時從下向上依次保存:用戶堆棧長度(15),PCL,PCH,PSW,ACC,B,DPL,DPH,R0,R1,R2,R3,R4,R5,R6,R7。不保存SP,任務切換時根據(jù)用戶堆棧長度計算得出。

      OSTaskStkInit函數(shù)總是返回用戶棧最低地址。

      操作系統(tǒng)tick時鐘我使用了51單片機的T0定時器,它的初始化代碼用C寫在了本文件中。

      最后還有幾點必須注意的事項。本來原則上我們不用修改與處理器無關的代碼,但是由于KEIL編譯器的特殊性,這些代碼仍要多處改動。因為KEIL缺省情況下編譯的代碼不可重入,而多任務系統(tǒng)要求并發(fā)操作導致重入,所以要在每個C函數(shù)及其聲明后標注reentrant關鍵字。另外,“pdata”、 “data”在uCOS中用做一些函數(shù)的形參,但它同時又是KEIL的關鍵字,會導致編譯錯誤,我通過把“pdata”改成“ppdata”, “data”改成“ddata”解決了此問題。OSTCBCur、OSTCBHighRdy、OSRunning、OSPrioCur、 OSPrioHighRdy這幾個變量在匯編程序中用到了,為了使用Ri訪問而不用DPTR,應該用KEIL擴展關鍵字IDATA將它們定義在內(nèi)部RAM 中。

     ?。?)重寫OS_CPU_A.ASM

      A51宏匯編的大致結構如下:

      NAME 模塊名 ;與文件名無關

      ;定義重定位段 必須按照C51格式定義,匯編遵守C51規(guī)范。段名格式為:?PR?函數(shù)名?模塊名

      ;聲明引用全局變量和外部子程序 注意關鍵字為“EXTRN”沒有‘E’

      全局變量名直接引用

      無參數(shù)/無寄存器參數(shù)函數(shù) FUNC

      帶寄存器參數(shù)函數(shù) _FUNC

      重入函數(shù) _?FUNC

      ;分配堆??臻g

      只關心大小,堆棧起點由keil決定,通過標號可以獲得keil分配的SP起點。切莫自己分配堆棧起點,只要用DS通知KEIL預留堆??臻g即可。

     ?。縎TACK 段名與STARTUP.A51中的段名相同,這意味著KEIL在LINK時將把兩個同名段拼在一起,我預留了40H個字節(jié),STARTUP.A51預留了 1個字節(jié),LINK完成后堆棧段總長為41H。查看yy.m51知KEIL將堆棧起點定在21H,長度41H,處于內(nèi)部RAM中。

      ;定義宏

      宏名 MACRO 實體 ENDM

      ;子程序

      OSStartHighRdy

      OSCtxSw

      OSIntCtxSw

      OSTickISR

      SerialISR

      END ;聲明匯編源文件結束

      一般指針占3字節(jié)。+0類型+1高8位數(shù)據(jù)+2低8位數(shù)據(jù) 詳見C51.PDF第178頁

      低位地址存高8位值,高位地址存低8位值。例如0x1234,基址+0:0x12 基址+1:0x34

     ?。?)移植串口驅動程序

      在此之前我寫過基于中斷的串口驅動程序,包括打印字節(jié)/字/長字/字符串,讀串口,初始化串口/緩沖區(qū)。把它改成重入函數(shù)即可直接使用。

      系統(tǒng)提供的顯示函數(shù)是并發(fā)的,它不是直接顯示到串口,而是先輸出到顯存,用戶不必擔心IO慢速操作影響程序運行。串口輸入也采用了同樣的技術,他使得用戶在CPU忙于處理其他任務時照樣可以盲打輸入命令。

     ?。?)編寫測試程序Demo(YY.C)

      Demo程序創(chuàng)建了3個任務A、B、C優(yōu)先級分別為2、3、4,A每秒顯示一次,B每3秒顯示一次,C每6秒顯示一次。從顯示結果看,顯示3個A后顯示1個B,顯示6個A和2個B后顯示1個C,結果顯然正確。

      顯示結果如下:

      AAAAAA111111 is active

      AAAAAA111111 is active

      AAAAAA111111 is active

      BBBBBB333333 is active

      AAAAAA111111 is active

      AAAAAA111111 is active

      AAAAAA111111 is active

      BBBBBB333333 is active

      CCCCCC666666 is active

      AAAAAA111111 is active

      AAAAAA111111 is active

      AAAAAA111111 is active

      BBBBBB333333 is active

      AAAAAA111111 is active

      AAAAAA111111 is active

      AAAAAA111111 is active

      BBBBBB333333 is active

      CCCCCC666666 is active

      Demo程序經(jīng)Keil701編譯后,代碼量為7-8K,可直接在KeilC51上仿真運行。

      編譯時要將OS_CPU_C.C、UCOS_II.C、OS_CPU_A.ASM、YY.C加入項目

      文件名 : OS_CPU_A.ASM

      $NOMOD51

      EA BIT 0A8H.7

      SP DATA 081H

      B DATA 0F0H

      ACC DATA 0E0H

      DPH DATA 083H

      DPL DATA 082H

      PSW DATA 0D0H

      TR0 BIT 088H.4

      TH0 DATA 08CH

      TL0 DATA 08AH

      NAME OS_CPU_A ;模塊名

      ;定義重定位段

     ?。縋R?OSStartHighRdy?OS_CPU_A SEGMENT CODE

      ?PR?OSCtxSw?OS_CPU_A SEGMENT CODE

     ???PR?OSIntCtxSw?OS_CPU_A SEGMENT CODE

      ?PR?OSTickISR?OS_CPU_A SEGMENT CODE

     ???PR?_?serial?OS_CPU_A SEGMENT CODE

      ;聲明引用全局變量和外部子程序

      EXTRN IDATA (OSTCBCur)

      EXTRN IDATA (OSTCBHighRdy)

      EXTRN IDATA (OSRunning)

      EXTRN IDATA (OSPrioCur)

      EXTRN IDATA (OSPrioHighRdy)

      EXTRN CODE (_?OSTaskSwHook)

      EXTRN CODE (_?serial)

      EXTRN CODE (_?OSIntEnter)

      EXTRN CODE (_?OSIntExit)

      EXTRN CODE (_?OSTimeTick)

      ;對外聲明4個不可重入函數(shù)

      PUBLIC OSStartHighRdy

      PUBLIC OSCtxSw

      PUBLIC OSIntCtxSw

      PUBLIC OSTickISR

      ;PUBLIC SerialISR

     

      ;分配堆??臻g。只關心大小,堆棧起點由keil決定,通過標號可以獲得keil分配的SP起點。

     ?。縎TACK SEGMENT IDATA

      RSEG ?STACK

      OSStack:

      DS 40H

      OSStkStart IDATA OSStack-1

      ;定義壓棧出棧宏

      PUSHALL MACRO

      PUSH PSW

      PUSH ACC

      PUSH B

      PUSH DPL

      PUSH DPH

      MOV A,R0 ;R0-R7入棧

      PUSH ACC

      MOV A,R1

      PUSH ACC

      MOV A,R2

      PUSH ACC

      MOV A,R3

      PUSH ACC

      MOV A,R4

      PUSH ACC

      MOV A,R5

      PUSH ACC

      MOV A,R6

      PUSH ACC

      MOV A,R7

      PUSH ACC

      ;PUSH SP ;不必保存SP,任務切換時由相應程序調(diào)整

      ENDM

      POPALL MACRO

      ;POP ACC ;不必保存SP,任務切換時由相應程序調(diào)整

      POP ACC ;R0-R7出棧

      MOV R7,A

      POP ACC

      MOV R6,A

      POP ACC

      MOV R5,A

      POP ACC

      MOV R4,A

      POP ACC

      MOV R3,A

      POP ACC

      MOV R2,A

      POP ACC

      MOV R1,A

      POP ACC

      MOV R0,A

      POP DPH

      POP DPL

      POP B

      POP ACC

      POP PSW

      ENDM

      ;子程序

      ;-------------------------------------------------------------------------

      RSEG ?PR?OSStartHighRdy?OS_CPU_A

      OSStartHighRdy:

      USING 0 ;上電后51自動關中斷,此處不必用CLR EA指令,因為到此處還未開中斷,本程序退出后,開中斷。

      LCALL _?OSTaskSwHook

      OSCtxSw_in:

      ;OSTCBCur ===》 DPTR 獲得當前TCB指針,詳見C51.PDF第178頁

      MOV R0,#LOW (OSTCBCur) ;獲得OSTCBCur指針低地址,指針占3字節(jié)。+0類型+1高8位數(shù)據(jù)+2低8位數(shù)據(jù)

      INC R0

      MOV DPH,@R0 ;全局變量OSTCBCur在IDATA中

      INC R0

      MOV DPL,@R0

      ;OSTCBCur-》OSTCBStkPtr ===》 DPTR 獲得用戶堆棧指針

      INC DPTR ;指針占3字節(jié)。+0類型+1高8位數(shù)據(jù)+2低8位數(shù)據(jù)

      MOVX A,@DPTR ;.OSTCBStkPtr是void指針

      MOV R0,A

      INC DPTR

      MOVX A,@DPTR

      MOV R1,A

      MOV DPH,R0

      MOV DPL,R1

      ;*UserStkPtr ===》 R5 用戶堆棧起始地址內(nèi)容(即用戶堆棧長度放在此處) 詳見文檔說明 指針用法詳見C51.PDF第178頁

      MOVX A,@DPTR ;用戶堆棧中是unsigned char類型數(shù)據(jù)

      MOV R5,A ;R5=用戶堆棧長度

      ;恢復現(xiàn)場堆棧內(nèi)容

      MOV R0,#OSStkStart

      restore_stack:

      INC DPTR

      INC R0

      MOVX A,@DPTR

      MOV @R0,A

      DJNZ R5,restore_stack

      ;恢復堆棧指針SP

      MOV SP,R0

      ;OSRunning=TRUE

      MOV R0,#LOW (OSRunning)

      MOV @R0,#01

      POPALL

      SETB EA ;開中斷

      RETI

      ;-------------------------------------------------------------------------

      RSEG ?PR?OSCtxSw?OS_CPU_A

      OSCtxSw:

      PUSHALL

      OSIntCtxSw_in:

      ;獲得堆棧長度和起址

      MOV A,SP

      CLR C

      SUBB A,#OSStkStart

      MOV R5,A ;獲得堆棧長度

      ;OSTCBCur ===》 DPTR 獲得當前TCB指針,詳見C51.PDF第178頁

      MOV R0,#LOW (OSTCBCur) ;獲得OSTCBCur指針低地址,指針占3字節(jié)。+0類型+1高8位數(shù)據(jù)+2低8位數(shù)據(jù)

      INC R0

      MOV DPH,@R0 ;全局變量OSTCBCur在IDATA中

      INC R0

      MOV DPL,@R0

      ;OSTCBCur-》OSTCBStkPtr ===》 DPTR 獲得用戶堆棧指針

      INC DPTR ;指針占3字節(jié)。+0類型+1高8位數(shù)據(jù)+2低8位數(shù)據(jù)

      MOVX A,@DPTR ;.OSTCBStkPtr是void指針

      MOV R0,A

      INC DPTR

      MOVX A,@DPTR

      MOV R1,A

      MOV DPH,R0

      MOV DPL,R1

      ;保存堆棧長度

      MOV A,R5

      MOVX @DPTR,A

      MOV R0,#OSStkStart ;獲得堆棧起址

      save_stack:

      INC DPTR

      INC R0

      MOV A,@R0

      MOVX @DPTR,A

      DJNZ R5,save_stack

      ;調(diào)用用戶程序

      LCALL _?OSTaskSwHook

      ;OSTCBCur = OSTCBHighRdy

      MOV R0,#OSTCBCur

      MOV R1,#OSTCBHighRdy

      MOV A,@R1

      MOV @R0,A

      INC R0

      INC R1

      MOV A,@R1

      MOV @R0,A

      INC R0

      INC R1

      MOV A,@R1

      MOV @R0,A

      ;OSPrioCur = OSPrioHighRdy 使用這兩個變量主要目的是為了使指針比較變?yōu)樽止?jié)比較,以便節(jié)省時間。

      MOV R0,#OSPrioCur

      MOV R1,#OSPrioHighRdy

      MOV A,@R1

      MOV @R0,A

      LJMP OSCtxSw_in

      ;-------------------------------------------------------------------------

      RSEG ?PR?OSIntCtxSw?OS_CPU_A

      OSIntCtxSw:

      ;調(diào)整SP指針去掉在調(diào)用OSIntExit(),OSIntCtxSw()過程中壓入堆棧的多余內(nèi)容

      ;SP=SP-4

      MOV A,SP

      CLR C

      SUBB A,#4

      MOV SP,A

      LJMP OSIntCtxSw_in

      ;-------------------------------------------------------------------------

      CSEG AT 000BH ;OSTickISR

      LJMP OSTickISR ;使用定時器0

      RSEG ?PR?OSTickISR?OS_CPU_A

      OSTickISR:

      USING 0

      PUSHALL

      CLR TR0

      MOV TH0,#70H ;定義Tick=50次/秒(即0.02秒/次)

      MOV TL0,#00H ;OS_CPU_C.C 和 OS_TICKS_PER_SEC

      SETB TR0

      LCALL _?OSIntEnter

      LCALL _?OSTimeTick

      LCALL _?OSIntExit

      POPALL

      RETI

     

      ;-------------------------------------------------------------------------

      CSEG AT 0023H ;串口中斷

      LJMP SerialISR ;工作于系統(tǒng)態(tài),無任務切換。

      RSEG ?PR?_?serial?OS_CPU_A

      SerialISR:

      USING 0

      PUSHALL

      CLR EA

      LCALL _?serial

      SETB EA

      POPALL

      RETI

      ;-------------------------------------------------------------------------

      END

      ;-------------------------------------------------------------------------

      文件名 : OS_CPU_C.C

      void *OSTaskStkInit (void (*task)(void *pd), void *ppdata, void *ptos, INT16U opt) reentrant

      {

      OS_STK *stk;

      ppdata = ppdata;

      opt = opt; //opt沒被用到,保留此語句防止告警產(chǎn)生

      stk = (OS_STK *)ptos; //用戶堆棧最低有效地址

      *stk++ = 15; //用戶堆棧長度

      *stk++ = (INT16U)task & 0xFF; //任務地址低8位

      *stk++ = (INT16U)task 》》 8; //任務地址高8位

      *stk++ = 0x00; //PSW

      *stk++ = 0x0A; //ACC

      *stk++ = 0x0B; //B

      *stk++ = 0x00; //DPL

      *stk++ = 0x00; //DPH

      *stk++ = 0x00; //R0

      *stk++ = 0x01; //R1

      *stk++ = 0x02; //R2

      *stk++ = 0x03; //R3

      *stk++ = 0x04; //R4

      *stk++ = 0x05; //R5

      *stk++ = 0x06; //R6

      *stk++ = 0x07; //R7

      //不用保存SP,任務切換時根據(jù)用戶堆棧長度計算得出。

      return ((void *)ptos);

      }

      #if OS_CPU_HOOKS_EN

      void OSTaskCreateHook (OS_TCB *ptcb) reentrant

      {

      ptcb = ptcb; /* Prevent compiler warning */

      }

      void OSTaskDelHook (OS_TCB *ptcb) reentrant

      {

      ptcb = ptcb; /* Prevent compiler warning */

      }

      void OSTimeTickHook (void) reentrant

      {

      }

      #endif

      //初始化定時器0

      void InitTimer0(void) reentrant

      {

      TMOD=TMOD&0xF0;

      TMOD=TMOD|0x01; //模式1(16位定時器),僅受TR0控制

      TH0=0x70; //定義Tick=50次/秒(即0.02秒/次)

      TL0=0x00; //OS_CPU_A.ASM 和 OS_TICKS_PER_SEC

      ET0=1; //允許T0中斷

      TR0=1;

      }

      文件名 : YY.C

      #include

      #define MAX_STK_SIZE 64

      void TaskStartyya(void *yydata) reentrant;

      void TaskStartyyb(void *yydata) reentrant;

      void TaskStartyyc(void *yydata) reentrant;

      OS_STK TaskStartStkyya[MAX_STK_SIZE+1];//注意:我在ASM文件中設置?STACK空間為40H即64,不要超出范圍。

      OS_STK TaskStartStkyyb[MAX_STK_SIZE+1];//用戶棧多一個字節(jié)存長度

      OS_STK TaskStartStkyyc[MAX_STK_SIZE+1];

      void main(void)

      {

      OSInit();

      InitTimer0();

      InitSerial();

      InitSerialBuffer();

      OSTaskCreate(TaskStartyya, (void *)0, &TaskStartStkyya[0],2);

      OSTaskCreate(TaskStartyyb, (void *)0, &TaskStartStkyyb[0],3);

      OSTaskCreate(TaskStartyyc, (void *)0, &TaskStartStkyyc[0],4);

      OSStart();

      }

      void TaskStartyya(void *yydata) reentrant

      {

      yydata=yydata;

      clrscr();

      PrintStr(“\n\t\t*******************************\n”);

      PrintStr(“\t\t* Hello! The world. *\n”);

      PrintStr(“\t\t*******************************\n\n\n”);

      for(;;){

      PrintStr(“\tAAAAAA111111 is active.\n”);

      OSTimeDly(OS_TICKS_PER_SEC);

      }

      }

      void TaskStartyyb(void *yydata) reentrant

      {

      yydata=yydata;

      for(;;){

      PrintStr(“\tBBBBBB333333 is active.\n”);

      OSTimeDly(3*OS_TICKS_PER_SEC);

      }

      }

      void TaskStartyyc(void *yydata) reentrant

      {

      yydata=yydata;

      for(;;){

      PrintStr(“\tCCCCCC666666 is active.\n”);

      OSTimeDly(6*OS_TICKS_PER_SEC);

      }

      }

      重入問題的解決:

      任務函數(shù)中帶有形參和局部變量時若使用 reentrant關鍵字會引起重入,從C51.PDF 129-131頁的內(nèi)容知:為了函數(shù)重入,形參和局部變量必須保存在堆棧里,由于51硬件堆棧太小,KEIL將根據(jù)內(nèi)存模式在相應內(nèi)存空間仿真堆棧(生長方向由上向下,與硬件棧相反)。對于大模式編譯,函數(shù)返回地址保存在硬件堆棧里,形參和局部變量放在仿真堆棧中,棧指針為?C_XBP,XBPSTACK =1時,起始值在startup.a51中初始化為FFFFH+1。仿真堆棧效率低下,KEIL建議盡量不用,但為了重入操作必須使用。KEIL可以混合使用3種仿真堆棧(大、中、小模式),為了提高效率,針對51推薦統(tǒng)一使用大模式編譯。

      為了支持重入,重新設計了堆棧結構(如下圖)。增加了保存仿真堆棧指針?C_XBP和堆棧內(nèi)容的數(shù)據(jù)結構。相應改變的文件有:OS_CPU_A.ASM、OS_CPU_C.C、OS_CPU.H、YY.C。由圖可知,用戶棧中保存的仿真棧與硬件棧相向生長,中間為空閑間隔,顯然uCOSII的堆棧檢測函數(shù)失效。硬件棧的保存恢復詳見上節(jié),仿真堆棧的保存與 8086移植中的一樣,OS只提供堆棧空間和只操作堆棧指針,不進行內(nèi)存拷貝,效率相對很高。

      建議使用統(tǒng)一的固定大小的堆??臻g,盡管uCOSII原作者把不同任務使用不同空間看成是優(yōu)點,但為了在51上有效實現(xiàn)任務重入,針對51筆者還是堅持不使用這個優(yōu)點。

      用戶堆??臻g的大小是可以精確計算出來的。用戶堆棧空間=硬件堆??臻g+仿真堆??臻g。硬件棧占用內(nèi)部RAM,內(nèi)部RAM執(zhí)行效率高,如果堆棧空間過大,會影響KEIL編譯的程序性能。如果堆??臻g小,在中斷嵌套和程序調(diào)用時會造成系統(tǒng)崩潰。綜合考慮,我把硬件堆??臻g大小定成了64字節(jié),用戶根據(jù)實際情況可以自行設定。仿真堆棧大小取決于形參和局部變量的類型及數(shù)量,可以精確算出。因為所有用戶棧使用相同空間大小,所以取占用空間最大的任務函數(shù)的空間大小為仿真堆??臻g大小。這樣用戶堆??臻g大小就唯一確定了。我將用戶堆??臻g大小用宏定義在OS_CFG.H文件中,宏名為MaxStkSize。

      51 的SP只有8位,無法在64K空間中自由移動,只好采用拷貝全部硬件堆棧內(nèi)容的笨辦法。51 本來就弱,這么一來缺點更明顯了。其實,引入OS必然要付出代價,一般OS要占用CPU10%-20%的負荷能力,請權衡利弊決定。切換頻率決定了CPU 的耗費,頻率越高耗費越大,大到一定程度就該換更強的CPU了。我選了50Hz的切換頻率,不高也不低,用戶可以根據(jù)需要自行定奪。在耗費無法避免的情況下,我采取了幾個措施來提高效率:1。ret和reti混用減少代碼;2。IE、SP不入出棧,通過另外方式解決;3。用IDATA關鍵字聲明在匯編中用到的全局變量,變DPTR操作為Ri操作;4。設計堆棧結構,簡化算法;5。讓串口輸入輸出工作在系統(tǒng)態(tài),不占用任務TCB和優(yōu)先級,增加彈性緩沖區(qū),減少等待。

      在51單片機上硬件仿真uCOS51的說明:

      zyware網(wǎng)友2002/11/22來信詢問uCOS51在單片機上的硬件仿真問題,具體情況是“在51上用uCOS51核,以及一些構件,keilc上仿真通過,用wave接硬件仿真程序亂飛,wave仿真以前的程序沒有問題,不知是何緣故”。

      由于我的OS程序已經(jīng)在KEIL軟件仿真和硬件上實際測試過,所以不可能是程序錯。可能的原因只能是硬件仿真軟件設置問題。本人用的是Medwin軟件,在 Insight上調(diào)試,使用uCOS51編譯測試程序一樣跑飛。即使添加修改后的startup.a51(詳見《在51單片機上固化uCOS51的說明》)也不正常。我發(fā)現(xiàn)Medwin似乎沒有編譯startup.a51,因為它把該文件加在了other Files目錄下而不是source Files目錄,于是我猜測只有放在source Files目錄下的文件才被編譯。由觀察知,以.c和.asm做后綴的文件均被放在此目錄下且被編譯。于是我立即將startup.a51改成 startup.asm并加入項目編譯,結果測試正常。不必擔心startup改名造成沖突,KEIL在鏈接目標文件時會自動處理重名段,本目錄的文件優(yōu)先級高(我是這么理解的,具體原理不清楚,這只是根據(jù)實踐得到的結論,希望了解此處理過程的朋友能告之,不勝感激。)。

      具體做法如下:

      1。按《在51單片機上固化uCOS51的說明》一文修改startup.a51,并將其更名為startup.asm。

      2。將startup.asm、yy1.c、os_cpu_c.c、ucos_ii.c、os_cpu_a.asm五個文件加入項目編譯。

      3。運行

      在51單片機上固化uCOS51的說明:

      近來,收到多位網(wǎng)友來信詢問uCOS51在51單片機上的固化問題,歸納其焦點就是:為什么OS在KeilC51上模擬可以正常運行,但把它燒錄在CPU上卻不能工作?理論上,程序在軟件仿真通過測試后,將其燒錄在硬件上,硬件調(diào)試應該一次成功。許多網(wǎng)友也有這個經(jīng)驗,可為什么在調(diào)試uCOS51時失效了呢?難道操作系統(tǒng)調(diào)試很特殊嗎?

      其實問題出在重入函數(shù)的引入。原來KEILC51軟件仿真在不修改startup.a51文件的情況下,缺剩使用64K外部 RAM,它把0000H-FFFFH全部仿真為可讀寫的RAM,而用戶的硬件系統(tǒng)可能沒有用到那么大的RAM空間,比如只用了8K/16K/32K等,或者用戶把一些地址空間映射給了別的設備,比如8019AS等。在沒有調(diào)用OSTaskCreate前,定義為reentrant的函數(shù)將用FFE0H做仿真堆棧棧頂指針,而此處在用戶的系統(tǒng)里不是RAM,造成程序跑飛。比如在我的用戶板上,將FE00H-FFFFH空間的一部分分配給8019AS使用,如果把demo程序編譯后直接燒到51上,將不能運行。解決辦法是根據(jù)系統(tǒng)RAM配置,修改startup.a51文件,并將其加入項目編譯,如下所示:

      XBPSTACK EQU 1 ; set to 1 if large reentrant is used.

      XBPSTACKTOP EQU 07FFFH+1; set top of stack to highest location+1.

      按此修改后,在有32K外部RAM的系統(tǒng)上可以正常運行。用戶可根據(jù)自己XRAM的實際配置情況修改startup.a51相關參數(shù),并將其添加到項目里編譯。不必理會KEIL/C51/LIB目錄下的同名文件,此處的startup.a51優(yōu)先級高,KEIL將按此處該文件的配置編譯項目。

      這也解釋了有些網(wǎng)友問到的,“為什么加入reentrant關鍵字,在軟件仿真時正確,燒在芯片上就死機,去掉reentrant后兩者都正常”的問題。由于大多數(shù)人很少使用重入函數(shù),往往不了解這個細節(jié),特此提請大家注意。

     

      關于uCOS51不能正常工作的原因還可能是因為串口波特率和 OS_TICKS_PER_SEC及TH0、TL0設置不正確引起的。demo程序默認使用22.1184MHz晶體,19200波特率,切換頻率為 50Hz。為此,1。在SERIAL.C中設置“TL1=0xFD;TH1=0xFD;”使波特率為19200;2。在OS_CPU_C.C和 OS_CPU_A.ASM中設置“TH0=0x70;TL0=0x00;”使時鐘節(jié)拍tick=50次/秒;3。在OS_CFG.H中設置 OS_TICKS_PER_SEC為50Hz。用戶應根據(jù)實際情況,相應地修改這些參數(shù),否則運行不正確。

      定時器初值設置:

      定時器0用于時鐘節(jié)拍發(fā)生器

      //*****************************************************************************

      //初值計算公式:

      // (2^16-x)*F=Fosc/12

      // 其中:F=時鐘節(jié)拍頻率tick;Fosc=晶體或晶振頻率;x=初值;

      // 本例中,F(xiàn)=50;Fosc=21.1184MHz;所以x=0x7000。

      //*****************************************************************************

      定時器1用于波特率發(fā)生器

      //*****************************************************************************

      //初值計算公式:

      // TH1=256-(2^SMOD/32*Fosc/12*1/Bound)

      // 其中:SMOD=0,1;Fosc=晶體或晶振頻率;Bound=波特率

      // 本例中,SMOD=0;Fosc=21.1184MHz;Bound=19200,所以TH1=0xFD。

      //*****************************************************************************

      demo程序項目中增加按如上方法改寫的startup.a51后,在我的用戶板硬件上運行正確。

      為uCOS51增加Shell界面:

      uCOSII只提供了操作系統(tǒng)內(nèi)核,用戶要自己添加文件處理、人機界面、網(wǎng)絡接口等重要部分。其中Shell(人機界面)提供了人與機器交互的界面,是機器服務于人的體現(xiàn),是系統(tǒng)必不可少的重要組成部分。現(xiàn)代的很多OS如UNIX、DOS、VxWorks都提供了友好的命令行界面。Windows更是提供了GUI。大部分人認識OS都是從這里開始的。uCOS51同樣擁有Shell,它是我從以前寫的前后臺程序中移植過來的。

      命令行Shell的工作原理比較簡單,主要思路就是單片機接收用戶鍵盤輸入的字符存入命令緩沖區(qū),并回顯到屏幕,當用戶按下回車鍵,觸發(fā)軟件狀態(tài)機狀態(tài)變遷,從輸入態(tài)轉移到命令解釋態(tài),然后根據(jù)用戶命令調(diào)用相關子程序執(zhí)行相應操作,執(zhí)行完畢后重新回到輸入態(tài)。

      我感覺原理很好掌握,程序也不長,但是細節(jié)部分要反復調(diào)試多次才能穩(wěn)定工作。比如:命令行左右邊界的保護、退格鍵的處理、詞表的設計等等。

      Shell程序由詞表、取詞子程序、狀態(tài)機框架程序(輸入回顯和命令解釋執(zhí)行)、命令相關子程序組成(詳見源程序清單)。

      詞表結構如程序清單所示,由詞數(shù)目,左括號數(shù),右括號數(shù),每個詞的具體信息(長度,字符串)構成。左右括號數(shù)用于括號匹配檢查;詞數(shù)目用于程序循環(huán);詞的具體信息作為解釋/執(zhí)行程序的輸入?yún)?shù)。

      取詞子程序從命令行語句中提取單詞并存入詞表同時進行匹配檢查和詞法分析。默認字符為:0-9、a-z、A-Z、‘。’;定界符為:空格、逗號,左/右括號。建議用戶補充默認字符集(? / \ -)以便實現(xiàn)更靈活的語法。注意:現(xiàn)在版本的Shell只檢查左右括號數(shù)量的匹配,無優(yōu)先級和語法含義。

      輸入回顯程序循環(huán)檢查用戶鍵盤輸入。如果輸入回車,程序狀態(tài)轉入解釋執(zhí)行態(tài);如果輸入退格(8)則回顯退格、空格、退格,模擬刪除字符,同時輸入緩沖區(qū)清除相應字節(jié),清除前先檢查左邊界是否越界。如越界則鳴響報警且不執(zhí)行清除操作;其他字符輸入直接存入輸入緩沖區(qū)并回顯,此前檢查右邊界是否溢出,如果溢出則鳴響報警且拋棄剛輸入的字符。

      命令解釋程序調(diào)用取詞子程序分析用戶命令行輸入,根據(jù)詞表第一個單詞在散轉表中的位置調(diào)用相應執(zhí)行子程序處理命令,如果散轉表中無此單詞,則打印“Bad command!”。取詞子程序返回錯誤指示時也打印此句。

      命令解釋程序向相應的命令相關子程序傳入詞表指針,具體執(zhí)行由用戶自行決定。由命令相關子程序返回后重新回到命令輸入態(tài),完成一次輸入執(zhí)行全過程。此過程周而復始地循環(huán)執(zhí)行。

      Shell界面的命令按功能分為以下幾組:

      1。操作系統(tǒng)相關命令:

      查看就緒任務lt / 中止任務kill / 恢復任務執(zhí)行call / CPU利用率usage / 版本查詢ver / 查某個任務信息(TCB、堆棧內(nèi)容)lt

      查看切換次數(shù)和時間lts

      2。網(wǎng)絡相關命令:

      顯示配置MAC地址macadr / 顯示配置主機IP地址host / 顯示配置子網(wǎng)掩碼mask / 顯示配置缺省網(wǎng)關gateway

      顯示網(wǎng)絡配置總情況lc / 連通測試命令ping / 用戶數(shù)據(jù)報發(fā)送命令udp / telnet命令tel / 相關應用命令**

      顯示ARP高速緩沖區(qū)地址對ls / 顯示發(fā)送緩沖區(qū)信息lti

      3。屏幕顯示相關命令:

      清屏clr / 幫助help / 功能鍵F3、F7處理 / 組合鍵Ctrl+C、Ctrl+B處理

      4。外設(閃盤X5045和I/O口)相關命令:

      讀閃盤rdx / 讀I/O口rdp / 寫閃盤wdx

      5。安全相關命令:

      身份認證密碼權限usr、pass

      6。應用相關命令:

      用戶自行定義

      用戶命令大小寫不敏感,程序將命令字符串統(tǒng)一成小寫形式。程序中各種參數(shù)(如:最大詞長度、詞數(shù)量……)定義成宏放在一個頭文件中,隨時可修改配置,很方便。Shell作為一個任務工作于內(nèi)核之外,占用一個任務號。

      源程序:

      詞表

      typedef struct{

      int Num;

      int LeftCurveNum,RightCurveNum;

      struct{

      int Length;

      unsigned char Str[MaxLenWord+1]; /*for ‘\0’*/

      } wt[MaxLenWordTable];

      } WORDTABLE;

      取詞

      bit GetWord(unsigned char *ComBuf,WORDTABLE *WordTable)

      {

      int i=0; /*ComBuf String pointer*/

      int j=0; /*Length of Word */

      int k=-1; /*The number of WordTable*/

      int StrFlag=0; /*There is “0-9/a-z/A-Z” before “ ,()”*/

      int SentenceEndFlag=0; /*Sentence end*/

      char ch;

      WordTable-》Num=0;

      WordTable-》LeftCurveNum=0;

      WordTable-》RightCurveNum=0;

      ch=ComBuf[0];

      while(!SentenceEndFlag&&i

      if((ch》=‘0’&&ch《=‘9’)||(ch》=‘a’&&ch《=‘z’)||(ch》=‘A’&&ch《=‘Z’)||(ch==‘。’)){

      if(StrFlag==0){

      StrFlag=1;k=k+1;j=0;

      if(k》=MaxLenWordTable) return 0;

      WordTable-》wt[k].Str[j]=ch;

      WordTable-》Num=k+1;

      }

      else{

      j=j+1;

      if(j》=MaxLenWord) return 0;

      WordTable-》wt[k].Str[j]=ch;

      }

      }

      else if(ch==‘ ’||ch==‘,’||ch==‘(’||ch==‘)’||ch==‘\0’){

      if(ch==‘(’) WordTable-》LeftCurveNum++;

      if(ch==‘)’) WordTable-》RightCurveNum++;

      if(StrFlag==1){

      StrFlag=0;j=j+1;

      WordTable-》wt[k].Str[j]=‘\0’;

      WordTable-》wt[k].Length=j;

      }

      if(ch==‘\0’) SentenceEndFlag=1;

      }

      else{

      return 0;

      }

      i=i+1;

      ch=ComBuf[i];

      }

      if(i

      if(WordTable-》LeftCurveNum==WordTable-》RightCurveNum) return 1;

      else return 0;

      }

      else{

      return 0;

      }

      }

     

      輸入回顯和命令解釋執(zhí)行

      void yyshell(void *yydata) reentrant

      {

      yydata=yydata;

      clrscr();

      PrintStr(“\t\t***********************************************\n”);

      PrintStr(“\t\t* Welcom to use this program *\n”);

      PrintStr(“\t\t* Author:YangYi 20020715 *\n”);

      PrintStr(“\t\t***********************************************\n\n\n”);

      /*Login & Password*/

      PrintStr(“% ”);

      while(!ShellEnd){

      switch(State){

      case StatInputCom:{

      if(yygetch(&ch)){

      if(ch==13) /*Enter return key*/

      {

      PrintStr(“\n”);

      ComBuf[i+1]=‘\0’;

      if(i+1==0) PrintStr(“% ”);

      else

      State=StatExeCom;

      }

      else{

      i=i+1;

      if((i》=MaxLenComBuf)&&(ch!=8)){

      PrintChar(7);

      i=MaxLenComBuf-1;

      }

      else{

      if(ch==8){

      i=i-2;

      if(i《-1) {i=-1;PrintChar(7);}

      else{

      PrintChar(8);

      PrintChar(‘ ’);

      PrintChar(8);

      }

      }

      else{

      PrintChar(ch);

      ComBuf[i]=ch;

      }

      }

      }

      break;

      }

      else{

      //OSTimeDly(10);

      break;

      }

      }

      case StatExeCom:{

      if(GetWord(ComBuf,&WordTable)==1&&WordTable.Num!=0){

      yystrlwr(WordTable.wt[0].Str);

      for(tem=0;tem

      if(yystrcmp(WordTable.wt[0].Str,ComTable[tem])==0) ComMatchFlag=1;

      if(ComMatchFlag){

      tem--;

      switch(tem){

      case 0:{DisplayTask(&WordTable);break;}

      case 1:{Kill(&WordTable);break;}

      case 2:{PingCommand(&WordTable);break;}

      case 3:{UDPCommand(&WordTable);break;}

      case 4:{CfgHost(&WordTable);break;}

      case 5:{CfgMask(&WordTable);break;}

      case 6:{CfgGateway(&WordTable);break;}

      case 7:{

      //ShellEnd=1;

      PrintStr(“\n\tThis Command is limited!\n\n”);

      break;

      }

      case 8:{PrintConfig(&WordTable);break;}

      case 9:{clrscr();break;}

      case 10:{DisplayHelpMenu(&WordTable);break;}

      }

      }

      else

      PrintStr(“ Bad command!\n\n”);

      }

      else{

      if(WordTable.Num) PrintStr(“ Bad command!\n\n”);

      }

      ComMatchFlag=0;

      State=StatInputCom;

      if(ShellEnd) {PrintStr(“\n\n”);}

      else PrintStr(“% ”);

      i=-1;

      break;

      }

      default:{

      //ShellEnd=1;

      PrintStr(“System fatal error!\n”);

      PrintChar(7);PrintChar(7);PrintChar(7);

      }

      }

      }

      }

    (審核編輯: 智匯小新)

    聲明:除特別說明之外,新聞內(nèi)容及圖片均來自網(wǎng)絡及各大主流媒體。版權歸原作者所有。如認為內(nèi)容侵權,請聯(lián)系我們刪除。

    日本熟艳妇A站黄色视频| 欧美区一区一区三区| 午夜dj在线观看完整版| 超碰97人妻中文字幕| 欧美黑人一级性视频| 乱色熟女综合一区二区三区四| 午夜福利92一区二区三区久久| 精品99久久久久久久久| 精品国产不卡在线观看免费| 国产免费午夜精品视频| 狠狠躁夜夜躁人人爽天天BL| 国产精品大片在线观看网站资源| 黑人巨大欧美一区二区视频| 涩爱av一区二区在线播放视频| 国产一级二级三级在线看| 亚洲91精选一区二区在线| 韩国美女主播福利在线 | 蜜桃精品噜噜噜av| 成年人在线观看福利视频 | 亚洲av乱码国产精品观看麻豆 | 久久精品视频女人按摩| 美女叉开腿让男人桶视频| 美女少妇一区二区久久久| 人妻少妇久久中文字幕密拍| 中文幕av一区二区三区佐山爱| 免费在线观看成人激情视频| 丝袜美腿av一区二区| 亚洲女子4x100米接力决赛| 日韩欧美 亚洲国产| 免费一级特黄特色黄录像| 人妻ol未亡人中文字幕| 国产亚洲精品免费观看| 国产伦精品一区二区三区妓国产| 五月天久草亚洲香蕉| 在线亚洲视频免费看| gogo大尺度二区三区| 9999国产精品免费| 久久97久久97免视看| 91:久久久久久久久久| 插屁眼在线免费视频| 天天干天天日少妇网| 日本熟艳妇A站黄色视频| 免费网站黄色在线观看不卡| 97超碰资源在线播放| 中文字幕99精品一区| 久久永久免费专区人妻| 韩国美女主播福利在线| 中文字幕欧美人妻精品精品| 无套内谢少妇一二三四| 欧美人体一区二区视频| 人妻女教师的沦陷大明| 欧美色视频日本片免费看| 漂亮人妻久久被公侵犯| 麻豆传媒视频区一区二| 中文字幕人妻丝袜二区av| 国产在线成人精选视频| 可以免费看黄色的网址| av在线视频观看免费| 91综合久久久久久久久久久| 黄色的视频黑丝网站| 亚洲av乱码一区二区三区观影| 一级av中文字幕在线观看| 好吊一区二区三区视频| 中文字幕少妇av一区二区三区| 亚洲中文有码字幕青青| 久久精品亚洲一区二区三| 秋霞午夜鲁丝片午夜精品久| 欧美日本一区二区三区在线观看| 亚洲黄片在线免费播放| 天天爱天天做天天舔| 老鸭窝大视频网站a一级| 人妻熟女–第2页–无名网| 日韩欧美亚洲第五页| 欧美一区二区三不卡| 中文字幕亚洲天堂av在线| 中文字幕欧美人妻精品精品| 男女啪啪自拍露脸视频| 这里只有精品99视频| 久久青草在线观看视频| 中文热免费在线视频| 国产av剧情网址大全| 精华液一区二区区别| 国产老头视频在线观看| 3p人妻一区二区三区| 黑人中出日本人妻系列| 中文字幕一区二区三区四区五区人| 天天干天天做天天摸| 亚洲天堂av在线免费看| 中文字幕在线精品的视频| 亚洲人妻无吗中文字幕| 强d乱码中文字幕熟女导航| 久久精品aⅴ无码中文字字幕蜜桃| 91在线观看青青超碰| 公交车人妻免费视频| 青青国产的视频在线播放| 狠狠躁夜夜躁人人爽天天BL| 视频一区二区亚洲欧美| av在线视频观看免费| 国产人妖综合在线视频| 有故事情节的美女免费日逼视频| 三级黄色在线播放网站| 中文热免费在线视频| 日韩在线网站一区二区三区| 中文字幕 av 在线| 8x8x国产在线观看一区二区 | 五十二老熟女高潮嗷嗷叫| 国产一级免费观看av网站| 蜜桃av在线观看网站| 超级黄的有肉视频在线观看| 精品99久久久久久久久| 成年免费毛片视频不卡| 老头插进去好多水'视频| 在线播放三级黄色日韩av| 久久99国产精品久久99蜜月| 午夜精品婷婷午夜精品| 人妻斩43r熟女人妻| 一级视频在线观看高清国产免费| 石原莉奈一区二久久影视| 国产福利一区二区三区久久久| 成人av在线播放老熟妇| 国产免费人妻人伦精品| 日本道高清免费在线视频| 四季亚洲中文专区av| 日韩高清亚洲精品国产欧美| 97视频免费观看一区| 五十二老熟女高潮嗷嗷叫| 99久久久久久久久96久久| 日本老熟女人体艺术| 91成人在线观看免费| 成年大片免费视频播放二级| 日本高清一级二级三级| 久久青草在线观看视频| 精品一区二区三区视频观看| 亚洲av综合在线观看免费| 美女被鸡操黄片入口| 黄色小网站在线免费观看| 丝袜美腿av一区二区| 91久久美利坚合众国保护| 大香蕉红杏在线观看| 少妇又色又紧又爽又刺激视频| 国产成年无码av片在线| 欧美黄色网黄色欧美网| 97超碰资源在线播放| 欧美成在线在线视频| 美女穿白丝被啪啪到高潮| 欧美亚洲 自拍偷拍| 强伦轩人妻一区二区三| 一区二区性视频在线观看| 91精品免费在线播放| 99精品午夜一区二区三区| 少妇性感美女一区二区三区四区 | 成人专区禁18处网站| 亚洲天堂啪啪爱之巢穴| 日产精品免费一区二区三区| 日本黄色an久久一区| 成人av毛片免费观看| 国产av国片精品jk制服| 日本亚洲综合伊人久久| 日日av拍夜夜添久久免费老牛| 国产精品一线二线三区 | 天天爱天天插天天射| 日韩亚洲欧美中文在线电影 | 亚洲精品av成人在线观看| 天天日,天天干,天天舔| 亚洲另类视频图片小说| 国内自拍偷拍视频第一页| 自拍偷拍亚洲色图经典三级| 亚洲综合网男人的天堂| 亚洲在线视频一区二区| 黄免费在线观看视频| 人妻欲求不满作品番号| 青青草手机免费在线视频| 久久精品视频2015| 手机在线一区二区三区| 人妻人妻干干干干人妻网站| 动漫卡通一区二区三区| 美女被插免费视频网站| 吃大咪咪操骚逼高清视频| 超碰人人综合网97| 91av在线网址观看| 365日日夜夜精品视频| 国产精品自拍视频网站| 无码大荫蒂视频在线| 精品人妻人人做人碰人人爽| av看片资源网手机版在线播放 | 日日日日日日日夜夜夜夜夜| 国产成人18黄网站免费观看| 丰满熟妇xxxx性久久久| 久操高清在线免费视频| 男生和女生哪个更色| 日本欧美黄色网站免费| 国产名人亚洲视频中文字幕| 经典视频一区二区三区| 日本精品一区二区三区四区| 玩弄放荡人妻少妇免费视频| 777爽死你无码免费看一二区| 日韩av专场一区二区| 一级av中文字幕在线观看| 欧美黑人一级性视频| 欧美一区二区三区高清视频| 夜夜躁爽日日躁狠狠躁一区| 中文字幕久久久aⅴ大片| 国产日韩欧美高清无网码| 18禁止看免费120秒试看| 2023天天色天天操| 男女裸交无套啪啪激情高潮| 亚洲美女福利视频免费| 亚洲和黑人特黄色片| 久久精品aⅴ无码中文字字幕蜜桃| 丰满老熟女av在线| 青青色国产在线视频网站| 中文在线天堂中文在线天堂| 激情黄色激情综合久久| 日本熟妇三十熟女精品区| 国产成人自拍在线播放| 国产福利小视频在线免费观看| 中文字幕一二区二三区人妻专区| 美女被插免费视频网站| 国产交换乱淫99视频| 午夜美女操逼高潮免费视频| 国产黄色片在线观看网站| 免费在线观看成人激情视频| 国产精品自拍视频网站| 狼人 成人 综合 亚洲| 亚洲码和欧洲码的尺码| 日本在线观看视频黄大片www| 网友自拍+人妻丝袜+制服诱惑| 91久久美利坚合众国保护| 亚洲一区二区日韩欧美久久 | 黄片一级黄片一级黄片| 男女又黄又刺激a片免费| 成人av在线播放老熟妇| 国产三级在线一区二区三区 | 无码大荫蒂视频在线| 中文字幕亚洲专区婷婷| gogo大尺度二区三区| 乱色熟女综合一区二区三区四| 久亚洲aⅴ一区二区三区写真| 自拍偷拍 欧美亚洲| 日本少妇的秘密视频| 日本mm一区二区三区高清| 17c日韩在线观看| 搞黄色的网站在线观看| av在线视频观看免费| 蜜桃人妻av2023| 毛片中文aaa五月天| 中文字幕亚洲精品熟女少妇| 97香蕉在线17c| 蓝莓小视频在线观看| 日本熟艳妇A站黄色视频| 好好的日com中文视频| 亚洲第二页欧美视频| 精品国产不卡在线观看免费| 69视频永久免费观看| 免费看日本特黄特色| 99精品国产免费电影| 国产91福利在线导航| 成人国产av精品麻豆入口| 国产91边对白在线播放| 一本久道久久综合狠狠躁| 91久久久人妻精品一区二区| 97视频免费观看一区| 中文字幕在线观看观看av?| 啪啪啪在线观看免费视频| 黄片激情视频国产免费| 一区二区性视频在线观看| 成人区人妻精品一区二区不卡蜜臀 | 50岁熟女乱综合一区二区 | 动漫卡通一区二区三区| 男女边摸边吃奶边做视频免费看| 91av在线网址观看| 中文一区二区在线播放| 日韩欧美亚洲第五页| 精品久久久福利国产| 成人国产av精品麻豆入口| 色综合天天综合高清网国产在线| 自拍偷拍 欧美亚洲| 吃大咪咪操骚逼高清视频| 熟女视频一区二区在线观看| 91免费一区二区久久| 青娱乐休闲在线观看视频| 免费一区二区三区香蕉| beeg欧美丰满人妻| 午夜狠狠干在线视频| 久久精品国产亚洲av四区| 人妻少妇麻豆中文字幕久久精品 | 鲁久久无码五月天有码| 亚洲天堂啪啪爱之巢穴| 欧美日韩国产免费福利| 四季亚洲中文专区av| 中文热免费在线视频| 在线视频成人青青草久热| av一区二区在线播放色婷婷精品| 91免费免费观看在线| 天天干天天做天天摸| 国产91手机精品在线播放| 美女穿白丝被啪啪到高潮| 99久久无色码中文字幕免费| 狠狠综合久久亚洲av蜜臀| 北岛玲精品一区二区三| 亚洲第一视频在线视频| 97超碰资源在线播放| 欧美一区二区三区视频在线观看| 99精品一区在线观看| 亚洲午夜在线亚洲午夜在线| 色姑娘天天干天天操| 三级视频欧美视频亚洲视频| 中文字幕亚洲精品八区| 日韩欧美激情啪啪啪| 亚洲欧美激情人妻人妻综合| 182tv免费福利中文字幕| 欧美色视频日本片免费看| 亚洲人妻无吗中文字幕| 99精品午夜一区二区三区| 91极品尤物国产在线播放| 国产交换乱淫99视频| 在线观看国产剧情av| 男人插女人动漫视频| 国产免费观看av在线| ass亚洲熟妇熟女pics| 大香蕉av动作片在线观看| 51成人看片免费软件| 国产精品8888在线观看 | 日韩中文av在线观看| 国产加勒比精品蜜臀在线观看 | 男人操女人逼视频免费| 成年人免费视频网站在线播放| 初撮日本五十路人妻| 365日日夜夜精品视频| 超碰在线97观看国产| 9久久久久久久久久久| 免费观看男人操逼的操女人的 | 中文字幕人妻不卡久久| 中文字幕日韩一二区| 亚洲午夜在线亚洲午夜在线 | 精品国产成人在线免费| 白丝大胸美女操批内射视频| 最近的中文字幕一区二区| 男人天堂中文字幕av| 男人日女人鸡鸡天天视频官方| 国产精品不卡在线播放| 欧美亚洲污视频网站| 午夜久久在线观看视频| 亚洲国产精品午夜福利久久| 亚洲一区二区三区视频免费观看| 人妻女教师的沦陷大明| 日韩亚洲中文在线视频| 日本二区三区精品免费| 国内精自线一二三四区| 欧美色视频日本片免费看| 日本久久久久久久久人妻视频| 一级毛片试看三分钟| 亚洲国产av自拍网站| 久久久久久久毛片5| 最近的中文字幕第二页| 精品少妇在线观看视频| 成人网视频欧美在线观看| 91麻豆天美精东蜜桃专区| 国产福利小视频在线免费观看 | 视频一区二区在线播放| 欧美av在线观看网址| 9网网站免费看nb国产| 日本太黄视频免费看| 青青青久免费在线视频| 操骚逼啊啊啊叫一区二区三区| 一本久道久久综合狠狠躁| 自由的成熟女性色视频| 天天爱天天做天天舔| 黑人巨大欧美一区二区视频| 天天看天天舔天天摸| 亚洲天堂国产精品乱伦一区| 漂亮人妻久久被公侵犯| 美女和猛男诱惑操逼捅鸡鸡| 六十六节医疗保健操全套| 久久久精品国产亚洲av水| 91大神长腿美女视频在线观看| 亚洲欧洲日韩av专区| av在线视频观看免费| 一级视频在线观看高清国产免费| 性色av不卡一区二区三区| 中文字幕乱码人妻在线观看| 黄色片网站国产精品| 麻豆精品传媒在线播放| 亚洲视频资源在线播放| 大香蕉av电影在线| 亚洲一区在线观看完整版| 男人把女人桶到爽午夜视频| 日本精品一区二区三区四区| 亚洲制服丝袜日韩欧美制服| 中年美熟妇与少年的激情| 蜜桃系列一区二区观看| 激情综合亚洲欧美日韩一区| 999精品欧美一区二区三区黑人| 亚洲中字幕日产AV片在线| 日本成年人大片免费观看| 日韩人妻无码一区2区3区| 欧美视频免费在线看| 精品国精品国自产在产国产| 国产精品视频中文无码| 亚洲一区二区三区视频免费观看 | 亚洲一级精品久久久蜜桃| 在线观看视频一区二区精品| 日本国产一区二区精品| 日本欧美黄色网站免费| 在线视频成人青青草久热 | 亚洲大胆综合在线观看| 91九色免费在线观看| 好色av一区二区三区四区| 日韩欧美亚洲第五页| 狠狠躁夜夜躁人人爽天天BL| 黄色的视频黑丝网站| 91popny熟女九色| 加勒比日本一区二区三区| 1234中文字幕内射在线| 天天综合网精品视频天天看| 99久热精品视频在线播放| 国产精品视频成人在线观看| 久久综合精品五月天| 黄色古装操逼小视频| 美女扒开腿让男人桶网站| caoporn97超碰| 91在线观看青青超碰| 超碰国产极品尤物在线| 日本激情床震无遮掩视频 | 视频一区二区亚洲欧美| 久久与久久最新视频| 人人爱精品人人艹人人干| 日韩一级黄色片免费在线观看| 99精品在线免费观看| 午夜无码精品一区二区三区| 青青久在线观看免费视频| 9l视频自拍蝌蚪9l成人熟妇| 中文字幕成熟丰满人妻| 黄色片网站国产精品| 一级黄色片特级黄色片| 99在线只有精品视频| 亚洲视频资源在线播放| 在线步兵一区二区三区| 人人爱精品人人艹人人干| 啪啪啪1000国产精品| 国产精品久久久免费99| 中文字幕亚洲精品八区| 69视频永久免费观看| 中文字幕 av 在线| 91精品一区二区三区蜜桃| 99久热精品视频在线播放 | 欧美激情免费观看一区二区| 中文字幕a区一区三区| 免费在线视频 中文字幕| 人成免费视频一区二区三区| 国产大全视频在线观看| 亚洲激情四射在线观看视频| 精品国产伦理片1区2区| 日本少妇的秘密视频| 中文字幕人妻二区三区免费视频| 日本伊人中文字幕在线| 九色91蝌蚪porn| 日本道高清免费在线视频| 富婆按摩高潮一区二区三区91| 美女被鸡操黄片入口| 无套内射黑丝美女91| 在线观看国产区一区二| 日本太黄视频免费看| 中文字幕一区久久性色| 99久热精品视频在线播放| 亚洲av狠狠的爱一区二区| 91九色成人原创视频| 日本伊人中文字幕在线| 中文字幕 亚洲轻轻av| 亚洲av丝袜诱惑在线| 日本国产一区二区三区视频| 亚洲熟女乱色综合小说| 亚洲精品久久中文字幕| 一区二区三区精品久久人妻| 亚洲高清码在线精品av| 在线亚洲视频免费看| 久久与久久最新视频| 青青久在线观看免费视频| 夜夜色视频在线观看| 亚洲最大av无码国产网址| 精品一区二区三区最新| 91免费在线播放视频| 人视频一区二区三区| 97超碰资源总站在线观看| 大胸美女黄网站色片大全亚洲| 中文一区二区在线播放| 中文字幕日产av一二三区| 欧美三级不卡在线播放 | 17c久久精品国产亚洲av蜜柚| 鲁久久无码五月天有码| 大香蕉免费在线伊人| 在线精品亚洲欧美日韩| 免费观看黄片视频91| 无翼乌18禁本子全彩无遮| caoporn97超碰| 国产精品美女久久久久av精| 四季av在线一区二区三区| 久久97久久97免视看| 国产老妇女免费视频| 日韩精品网站免费观看ww| 97国产精品人人爽人人做| 欧美视频免费在线看| 色丁香国产精品综合久久| 4438x视频在线| 嫩草伊人久久精品少妇av网站| 91成人国产在线观看九色| 午夜dj在线观看免费完整视频| 精品在线观看一区二区视频| 日日夜夜操国产av| 好大好粗好爽好黄c黄片| 丰满的人妻免费在线观看| 中文亚洲字幕国产剧情| 欧美大屁股撅起来射精视频| 国产主播精品在线一区| 中文字幕日产av一二三区| 可以在线观看的视频你懂的| 国产精品视频中文无码| 亚洲久久久久久久久| 免费看黄片免费看视频| 男人的鸡插入美女的小穴| 欧美亚洲污视频网站| 无套内射黑丝美女91| 午夜动漫福利在线观看| 好大好粗好爽好黄c黄片| 蜜桃系列一区二区观看| 久久香蕉欧美日韩av蜜桃| 美女被鸡操黄片入口| 亚洲 欧美视频在线| 推荐国产福利一区二区三区| 天天爽天天爽免费视频| 午夜高清在线观看免费| 广州最大的成人免费视频| 日本欧美在线免费观看视频 | 色综合天天综合高清网国产在线| 欧美日韩激情图片视频另类| 广州最大的成人免费视频| 在线观看中文字幕91| 91精品丝袜人妻久久久久久| 九色91蝌蚪porn| 成人av在线播放老熟妇| 亚洲综合精品天堂丁香芒果| 国产一级二级三级在线看| av在线免费一区二区| av熟女乱一区二区三区| 亚洲一区二区日韩欧美久久| 人妻少妇精品视中文字幕国语| 日韩一二三在线视频播放| 97精产国品一二三产区区| 8x8x国产在线观看一区二区| 成年人午夜网站在线播放| 日韩毛片免费视频观看| 亚洲av乱码国产精品观看麻豆| 大伊香蕉精品一区视频在线| 欲色天天网综合久久| 精品人妻一区二区三区18p| 在线一区三区精品视频| 熟女国产一区二区三区 | 深夜福利视频一区二区| 黑人巨大欧美一区二区视频| 50岁老熟女高潮喷水了| 亚国产亚洲亚洲精品视频| 亚洲av乱码一区二区三区四区| 18禁止看免费120秒试看| 日日夜夜草日日夜夜干| 大胸美女黄网站色片大全亚洲 | 午夜精品久久十八禁| 国产亚洲精品久久久久久电影| 视频二区视频四区中文| 精品国精品国自产在产国产| 日日av拍夜夜添久久免费老牛| 免费观看亚洲女同性恋一区二区| 美女啪啪啪免费网站视频| 在线观看麻豆免费视频| 99精品午夜一区二区三区| 图片区小说区自拍偷拍区| 国产+精品+在线观看| 国产一区二区精品调教| 99久久热只有国产精品| 日韩中文字幕一级乱码在线亚洲| 黑人久久一区二区三区| 天天日天天草天天插| 日日躁夜夜躁狠狠躁av蜜臀| 大香蕉手机免费在线| 在线观看免费视频网站色| 91久久久久久久蜜桃| 在线免费观看精品一区| 亚洲清纯国产com| 97超碰在线中文字幕精品| 最近最新高清欧美日韩中文字幕| 天天日天天爱天天玩| 可以免费直接观看的av| 久久久久久久久91精品视频| 午夜激情片免费在线观看| 国产精品剧情在线视频| 日韩夫妻性生活视频在线观看免费| 中文字幕亚洲精品八区 | 国产亚洲精品137片内射| 蜜臀av在线观看一区| 国产av在线播放免费| 大香蕉伊人久久在线观看| 中文字幕久久五月天| 国产精品视频成人在线观看| 中文字幕一区久久性色| 密臂av性久久久久蜜臂av| 亚洲国产精品午夜福利久久 | 亚洲女人毛毛多毛耸耸| 老司机福利在线免费观看视频| 国产手机av免费在线看片不卡| 深夜福利成人在线观看| 免费精产国品一二三产区区大学生| 亚洲综合一区二区在线视频| 黄片激情视频国产免费| 天天干天天谢天天操| 久久久精品国产综合| caoporn97超碰| 欧美丝袜办公室在线91| 天天操,天天射,天天日| 一级毛片试看三分钟| 在线免费观看亚洲v| 一卡二卡成人久久精品| xxx一区二区三区在线观看| 日本一区二区三区成人| 成人av网站在线观看| 国产精品久久久久久久综合av | 我的嫂子伦理片在线观看| 日本成年人大片免费观看| 黄色av网址免费观看| 日本欧美在线免费观看视频| 日韩一级黄色片免费在线观看| 国产高新无码在线观看| 在线成人中文字幕网站| 精品中文字幕高清久久久久三级| 欧美美女色视频免费看| 密乳一区二区三区国产亚洲av| 久久久久免费特级黄片| 日韩一区=区三区四区| 最新国产剧情在线一区| 日韩三级 欧美精品| 国产97精品在线免费看| 乱色熟女综合一区二区三区四| 亚洲va欧美va人人爽2| 亚洲一区二区三区视频免费观看| 91新视频在线免费观看| 亚洲天堂av影视在线| 狠狠操狠狠操狠狠搞| 男女啪啪视频免费国产| 五十二老熟女高潮嗷嗷叫| 熟女人妻伊人蜜桃视频| 欧美大屁股撅起来射精视频| 亚洲图片av伦理三级| 人妻蜜臀久久久av免费| 久久久久免费特级黄片| 天天干天天干天天操天天日| 青青草手机免费在线视频 | 国产在线观看av专区| 一区二区三区日韩高清| 伊人成人综合小说网| 91大神长腿美女视频在线观看| 亚洲av 综合一区| 国产精成人品一区久图片| a在线观看免费久不卡精品| 少妇视频播放在线播放免费观看 | 国产主播在线观看一区二区| 人人爽人人爽人人妻| 欧美精品视频一卡二卡| 中文字幕亚洲天堂av在线| 欧美日韩激情图片视频另类| 久久精品视频2015| 亚洲国产自拍偷拍精品| 亚洲黄片在线免费播放| 天天干人人干天天操| 91免费一区二区久久| 91av在线网址观看| 狠狠躁夜夜躁人人爽天天BL| 欧洲亚洲国产永久精品| 中年美熟妇与少年的激情| 午夜香蕉爽爽爽av| 天天操,天天射,天天日| 国产熟女福利资源导航| av中文字幕巨乳人妻| 天天干天天操天天射天天日| 日韩妹子精品视频在线观看| 中国黄页毛片免费视频| 国产主播在线露脸观看| 亚洲熟女毛茸茸上厕所尿尿| 在线看国产91av| 午夜无码精品一区二区三区| 三级视频欧美视频亚洲视频| 邪恶老湿精品一区二区| 国产亚洲精品a77777| 亚洲经典国产一区二区三区| 日本高清一级二级三级| 亚洲天堂啪啪爱之巢穴| 亚洲va欧美va国产综合久久| 久久精品日产第一区二区三区| 欧美vide0sde极品另类| 美女扒开腿让男人桶网站| 国产成人亚洲一区二区三区| 国产不卡剧情在线观看| 国产成人自拍在线播放| 97超碰在线资源总站| 女同性ⅹxx女同hd偷拍| 成年永久免费播放平台| 国产精品8888在线观看| 中文字幕_第1页_绿茶av| 国产av电影网站一区| 蜜臀av在线地址一地址二| 国产一区二区三区黄片欧美| 大香线蕉视频在线观看75| caoporm超碰97| 加勒比人妻av系列专区| 一级视频在线观看高清国产免费| 国产美女视频网久久69| 老窝鸭av一区二区三区| 亚洲欧美码免费观看视频 | 日韩在线视频观看你懂的| 亚洲女子4x100米接力决赛| 精品黑丝袜一区二区三区| 日本一区二区三区高清在线| 中文字幕 av 在线| 男人的j插进女人的逼| 强行进女小姪女小芳| 中文字幕日韩一二区| 国产午夜在线观看不卡| 国产又粗又猛又大爽又黄香借| 99热精品夜夜爽伊人| 玩弄人妻少妇精品视频在线 | 69久久夜色精品国产69| 九色porny蝌蚪少妇| 国产最好看的特效大片av| 爱毛片在线成人免费看| 中文字幕日韩一二区| 91综合久久久久久久久久久| 亚洲熟女少妇 精品| 久久久久久久久久二区| 国产精品久久久免费99| 在线视频 中文字幕 一区二区| 美女叉开腿让男人桶视频| 美女爽爽午夜作爱视频1314| 精品人妻人人做人碰人人爽| 成人自拍在线观看视频| 91精品一区二区三区蜜桃| 国产女人AAA级久久久级| 男人的天堂在线免费av| 欧美日韩高清无毒不卡| 中文字幕超碰18区| 91新视频在线免费观看| 放荡的丝袜美腿护士老师| 男人插女人阴穴的视频| 黄色的视频黑丝网站| 中文视频久久在线观看| 中文字幕_第1页_绿茶av| 久久久国产亚洲精品黑人| 中国黄页毛片免费视频| 欧美人体一区二区视频| 2017在线免费观看中文a| 中文字幕乱码精品一区二区三区 | 亚洲天堂av影视在线| 欧美国产一级在线免费观看| 伊人网av在线观看| 亚洲激情四射在线观看视频| 国产日日夜夜精品视频免费| 亚洲熟妇少妇一区二区| 欧洲av网址在线观看| 日本成人av在线免费看| 国产欧美亚洲精品第一页青草| 亚洲天堂aaa一区二区| 亚洲熟女少妇 精品| 日本 高清 中文字幕| 亚洲精品欧美日韩专区免费| 国产在线精品免费视频| 一区二区三区四区无人区| 91在线精品一区二区毛片| 色狠狠久久vs北条麻妃av| 在线观看成人欧美一区| 欧美日韩精品亚洲欧美| 中文字幕=中文字幕| 亚洲天堂男人天堂中文字幕| 999精品欧美一区二区三区黑人| 美女扒开腿让男人桶网站| 国产一区二区精品调教| 天天干天天操天天射天天日| 91午夜免费在线视频| 日本少妇不卡狠狠狠| 中文字幕中文字幕在线一区| 国产福利一区二区三区久久久| 九色porny蝌蚪少妇| 丰满熟妇人妻一区二区三区| 中文字幕一区二区三区人妻| 美女扒开腿让男人桶网站| 日本人妻偷人妻中文字幕| 国产在线观看XXXXX| 啊啊啊啊在线视频观看| 亚洲中文精品第一页| 熟女人妻视频观看一区二区三区| 欧美亚洲国产激情在线| 白丝高中生被靠操在观看| 欧美人体一区二区视频| 国产加勒比精品蜜臀在线观看| 最近的中文字幕一区二区| 国产成人自拍精品在线| 香蕉视频免费看国产精品| 黄色片网站国产精品| 91人妻porny精品国产| 人成免费视频一区二区三区| 2017在线免费观看中文a| 国产区精品一区二区不卡中文| 亚洲成电影在线观看青青| 国产在线免费av观看| 精品麻豆国产综合在线9| 熟女人妻视频观看一区二区三区| 中文字幕亚洲专区婷婷| 免费看日本特黄特色| 天天摸天天舔天天透| 漂亮人妻口爆深喉免费视频| 在线精品亚洲欧美日韩| 欧美码一二三区线观看| 男人操女人逼视频免费| 玩儿女人操逼大片儿| 草草影院色视频免费在线观看| caoporn97超碰| 中文字幕在线观看一二三四| 最新97在线视频资源| 国产天美传媒剧免费观看| 深夜黄色福利网站在线观看| 六月丁香六月在线视频| 91九色p精品久久久| 草草影院色视频免费在线观看| 亚洲图片 欧美专区 自拍| 欧美裸体xxxxx极品少妇| 91精品人妻丰满熟妇| 中国精品视频在线观看一区二区| 午夜小视频免费在线| 五月婷婷丁香中文字幕亚洲一区| 清纯国模自拍视频在线观看| 五月激情网激情五月| 熟妇高潮喷水在线120p| 久产久91精国九品打| 亚洲欧美激情人妻人妻综合| 3p人妻一区二区三区| 欧美人妖一区二区三区| 亚洲经典国产一区二区三区| 亚洲av日韩美aⅴ| 五十六十日本老熟妇牲| 色视频在线观看在线| 国产91手机精品在线播放| 我的嫂子伦理片在线观看| 亚洲av综合在线观看免费| 精品国产专区91精品| 中年美熟妇与少年的激情| 亚洲风情 国内自拍av| 蜜桃黄视频在线观看| 人妻 日韩 制服 中文 在线| 亚洲情色在线视频播放| 美女啪啪啪免费网站视频| 77字幕网77中文字幕| 亚洲AV永久青草无码士清品| 精品国产污网址在线观看| 欧美激情免费观看一区二区| 都市激情亚洲春色男人皇宫| 少妇人妻系列500视频| 中文字幕丝袜人妻乱一区三区| 在线人妻中文av导航| 99青青草原在线视频| 综合日韩人妻一区二区三区| 亚洲精品久久中文字幕| 日本特黄免费一级大片| 久久久国产亚洲精品黑人| 中文字幕亚洲精品熟女少妇| 日本亚洲综合伊人久久| 老外插美女在线视频| 天天干天天干天天操天天日| 国产区精品一区二区不卡中文| 少妇又色又紧又爽又刺激视频| 美女作污一区二区三区| 尹人香蕉综合网在线观看| 亚洲综合熟女久久30p| 大鸡吧淫水四射视频| 色狠狠久久vs北条麻妃av| 日韩中文av在线观看| 日韩av专场一区二区| 日韩三级 欧美精品| 有故事情节的美女免费日逼视频| 精品久久久久久无码中文野结衣| 78m中文字幕在线观看| 91精品在线观看视频| 免费在线观看不卡高清av| 熟女人妻伊人蜜桃视频| 四季亚洲中文专区av| 视频一区二区亚洲欧美| 91成人国产在线观看九色| 99久久国产综合精品五月天| 被大鸡吧操骚B真爽视频| 男女边摸边吃奶边做视频免费看| 男生捅女生逼的免费视频软件| 国产伦精品一区二区三区妓国产 | 中文热免费在线视频| 日韩三级 欧美精品| 日本激情内射一区二区三区| 成年免费毛片视频不卡| 2017夜夜操天天操| 九色91在线只有精品| 365日日夜夜精品视频| 日韩精品性色一区二区在线观看 | 在线成人中文字幕网站| 亚洲成电影在线观看青青| 欧美老熟妇在线一区二区三区| 大鸡吧淫水四射视频| 伊人国产精品成人在线| 91九色免费在线观看| 99精品在线免费观看| 人妻斩43r熟女人妻| 日韩精品网站免费观看ww| 北条麻妃超碰av在线播放| 国内精自线一二三四区| 国产主播精品在线一区| 视频一区二区在线播放| 国产区精品一区二区不卡中文 | 操女人逼逼好爽啊操| 色婷婷综合欧美日韩亚洲| 精品国精品国自产在产国产| 92大香蕉一区二区三区| 全国最大成人 中文字幕| 亚洲国产成人精品久久久久久久久| 欧美精品日韩不卡免费| 美女作污一区二区三区| 99偷拍精品一区二区| 男人把女人桶到爽午夜视频 | 50岁熟女乱综合一区二区| 国产日韩欧美高清无网码| 激情视频国产在线免费观看| 免费国产一区二区三区在线播放| 99久久国产亚洲精品| 好好的日com中文视频| 黄免费在线观看视频| 精品黑丝袜一区二区三区| 最近中文字幕版2019日本| 国产加勒比精品蜜臀在线观看| 熟女人妻av完整一区二区三区| 精品国产专区91精品| 成人av影视一区二区三区| dorcelclub欧美成人| 91九色在线视频播放| 视频一区二区在线播放| 777精品久久久久久久| 一区二区三区麻豆蜜桃视频| 凹凸视频这里只有精品| 欧美国产亚洲自拍偷拍| 中文字字幕在线中文乱码2019| 玩弄人妻少妇精品视频在线| 狠狠操视频在线免费观看| 人妻少妇精品视中文字幕国语 | 中文字幕成熟丰满人妻| 色五月婷婷综合国产在线| av色综合久久天堂av…| 国产97日韩在线观看| 日本精品一区二区三区四区| 大香蕉在线福利导航| 婷婷热re99久久精品国产| 天天透天天插天天日| 97人人添人躁人人爽超碰| 91瑟瑟视频在线观看| 最新黄色天堂av在线资源| 最新黄色天堂av在线资源| 99久久99久久综合| 在线观看免费视频网站色| 忘忧草精品久久久久久久高清| 午夜福利伦理片在线观看| 91精品一区二区三区蜜桃| 香蕉视频免费看国产精品| 可以免费直接观看的av| 中文字幕亚洲专区婷婷| 亚洲风情 国内自拍av| 在线观看的a站视频| 国产av剧情网址大全| 精品黄色一级久久久久久久久| 床戏高潮呻吟声片段大全| 大香蕉av动作片在线观看| 久久av四色米奇影视| 女人的小鸡鸡真人免费视频| 人妻少妇精品视中文字幕国语| 精品人妻人人做人碰人人爽| 中文av字幕在线观看| 日本国产一区二区三区视频| 黄片一级黄片一级黄片| 美女被插免费视频网站| 国产av电影网毛片| 91:久久久久久久久久| 台湾性dvd性色av| 日本精品一区二区三区四区| 欧美激情免费观看一区二区| 超碰在线97观看国产| 深夜福利视频一区二区| 国产99热这里有精品| 可以在线观看的av网站| 国产伦精品一区二区三区妓国产| 啪啪啪在线观看免费视频| 国产主播av在线观看| 美女少妇一区二区久久久| 嗯啊好想要插我视频| 揉老熟女老熟妇aaa| 亚洲中字幕日产AV片在线| 欧美老熟妇乱子伦视频在线观看| 都市激情亚洲春色男人皇宫| 国产一区二区三区黄片欧美| 婷婷国产一区二区三区| 放荡的丝袜美腿护士老师| 亚洲美女福利视频免费| 中国黄页毛片免费视频| 日本最新区免费中文字幕| 极品扒开粉嫩小av一区二区| 天天透天天插天天日| 日本太黄视频免费看| 131美女午夜免费视频| 91成人国产在线观看九色| 91超碰在线播放视频| 日韩在线视频观看你懂的| 人鱼小姐在线观看国语版字幕| 最近的中文字幕一区二区| 中文字幕第一区高清av| 美女精品一区二区三区| 国内在线精品视频在线观看| 国产精品v欧美精品v亚洲精品| 亚洲综合网男人的天堂| 精品亚洲永久免费精品网站| 97精产国品一二三产区区| 91麻豆精品国产综合久久久主演| 石原莉奈一区二久久影视| 9久久久久久久久久久| 白丝大胸美女操批内射视频| 久久精品乱码中文字幕| 91精品免费在线播放| 国产 精品 日韩 人妻| 色老汉av一区二区三区| 国产免费自拍视频精选| 人妻女教师的沦陷大明| 视频一区 欧美情色| 国产女主播av在线播放观看| 中文字幕欧美人妻精品精品| 97国产精品人人爽人人做| 97视频免费公开在线播放| 亚洲影视精品一区二区| 欧美码一二三区线观看| 男女啪啪自拍露脸视频| 欧美大屁股撅起来射精视频| 成人专区禁18处网站| 欧美黑人一级性视频| 在线观看亚洲视频一区二区| 成人免费xxxx在线| 一区二区三区四区蜜桃在线| 在线精品亚洲欧美日韩| 被大鸡吧操骚B真爽视频| 亚洲天堂男人天堂中文字幕| 一区二区性视频在线观看| 日本太黄视频免费看| 国产精品蜜臀在线观看| 玩儿女人操逼大片儿| 不戴胸罩的人妻电影| 亚洲情色成人精品视频| 欧美日韩精品亚洲欧美| 日本丰满人妻免费电影| 男女视频一区在线观看| 国产在线免费av观看| 人妻视频在线免费观看| 午夜美女操逼高潮免费视频| 看全黄大黄大色大片美女| 日本午夜色视频在线观看| 精品麻豆国产综合在线9| 免费观看男人操逼的操女人的| 最近最新高清欧美日韩中文字幕 | 日韩一区=区三区四区| 精品少妇人妻大乳av| 精品一区二区三区别视频| 亚洲夫妻另类在线视频| 久久免费视频精品8| 亚洲熟女资源一区二区| 青青操一区二区三区| 久久中文字幕永久第一页| 一级特黄夫妻生活大片| 精品久久久免费av| 97超碰在线资源总站| 啪啪啪啪啪啪啪啪啪日本| 人成免费视频一区二区三区 | 欧美国产一区二区三区在线看| 国产一级特黄aaa片做受小说 | 日本不卡视频免费播放| 乱色熟女综合一区二区三区四| 欧美日韩高清无毒不卡| 91久久久久久久蜜桃| 青青青久免费在线视频| 床戏高潮呻吟声片段大全| 亚洲最新欧美偷拍视频| 99热在线都是精品免费| 2020最新中文字幕在线| 丰满熟妇人妻一区二区三区| 亚洲中文有码字幕青青| 精品国产污污污免费网站入口| 玩弄放荡人妻少妇免费视频| 在线 国产区 视频| 在线视频在线观看你懂的| 日韩专区欧美专区第五页| 精品少妇人妻av免费麻豆| 国内亚洲一区二区视频| 啊啊啊啊啊鸡巴进小穴了视频| 人妻欲求不满作品番号| 在线观看麻豆免费视频| 亚洲av最新资源在线| 女同性ⅹxx女同hd偷拍| 天堂av在线一区少妇| 国产精品视频综合一区二区| 男人操女人逼视频免费| 漂亮人妻口爆深喉免费视频| 777精品久久久久久久| 老窝鸭av一区二区三区| 看全黄大黄大色大片美女| 欧美亚洲 自拍偷拍| 美女福利在线免费观看| 亚洲欧美日本高清在线观看| 在线观看免费的黄色片| 天天色天天操天天色综合| 91综合久久久久久久久久久| 99久久国产综合精品五月天| 亚洲午夜短视频在线| 人妻少妇精品视频在线观看| 欧美成人中文字幕在线视频| 初撮日本五十路人妻| 日日夜夜草日日夜夜干| 久操高清在线免费视频| 中文视频久久在线观看| 黄色片在线免费观看日韩不卡| 中文字幕在线精品的视频| 在线观看的a站视频| 91人妻porny精品国产| 青青草视频在线观看播放影院免费| 日本人妻偷人妻中文字幕 | 韩国美女视频在线观看18+| 这里只有精品99视频| 亚洲精品无码中文字幕专区| 一区二区三区麻豆蜜桃视频| 欧美国产亚洲自拍偷拍| 超碰国产极品尤物在线| 免费在线一区二区视频| 成人涩涩小片视频日本| 国产一级免费观看av网站| 日韩av在线免费观看中文字幕| 大香蕉红杏在线观看| 9色porny人妻| 中文字幕av一区二区三区不卡| 亚洲熟女乱色综合小说| 免费高清视频亚洲熟女| 17夜人妻人人澡人妻| 草草影院色视频免费在线观看| 自拍偷拍在线福利视频| 4438x视频在线| 日韩av在线免费观看中文字幕| 尤物在线免费视频观看| 精品色欲久久久青青青人人爽| 白丝骚逼美女被操到逼水直流| 人妻少妇资源网av| 免费av在线亚洲精品| 福利动态视频午夜日本免费| 国产91边对白在线播放| 几把操女的逼喷水视频| 日日av拍夜夜添久久免费老牛| 九色porny蝌蚪少妇| 国产寡妇又爽又紧又湿视频| 中文字幕亚洲情色在线观看| 97超碰资源总站在线观看| 国产精品视频中文无码| 色老汉av一区二区三区| 男人插女人逼视频播放| 女人的小鸡鸡真人免费视频| 老司机福利在线免费观看视频| 97超碰资源总站在线观看| 亚洲天堂aaa一区二区| 夜夜躁爽日日躁狠狠躁一区| 国产午夜精品在线播放| 色情按摩XXXXXX视频| 三级视频欧美视频亚洲视频| 99视频精品在线免费观看| 97国产精品人人爽人人做| 黄色小网站在线免费观看| 亚洲熟女少妇 精品| 99久久精品岛国免费黄色网| 91日本av在线观看| 成人中文字幕在线高清| 亚洲精品无码中文字幕专区| 亚洲av永久无码精品尤物| 天天干天天干天天操天天日| 白丝高中生被靠操在观看| 久久久国产亚洲精品黑人| 亚洲av丝袜诱惑在线| 欧美午夜免费福利视频| 啪啪啪啪一区二区三区四区三级片| 四季av在线一区二区三区| 男人天堂中文字幕av| 天天干天天干天天操天天日 | 人妻少妇精品视中文字幕国语| 玩儿女人操逼大片儿| 欧美亚洲国产激情在线| 欧美大香蕉一区二区三区| 老熟妇乱一区二区三区| 好几个美女吃我大鸡吧射嘴里| 99国产热精品在线观看| 51成人看片免费软件| 2023天天色天天操| av一区二区在线播放色婷婷精品| 天天干天天插天天透| 欧美亚洲国产激情在线| 91成人在线观看免费| av看片资源网手机版在线播放| 久操高清在线免费视频| 美日韩黄色一级视频| 精品国产成人在线免费| 91精品久久久久久久99蜜臀| 午夜激情片免费在线观看| 久久与久久最新视频| 亚洲清纯国产com| 国产加勒比精品蜜臀在线观看| 91青青青青艹视频在线观看| 免费看日本特黄特色| 男生殖器插女生殖器视频欧美| 国产剧情传媒av在线| 鲁死你资源站亚洲av一级aⅴ| 亚洲黄色小视频网址| av熟女乱一区二区三区| 亚洲AV无码成人精品国产一区| 欧美激情免费观看一区二区| 人妻一区二区三区中文字幕免费| 天天爱天天插天天射| 淫色网亚洲av日韩av| 在线能看的网站你懂得| 一级特黄夫妻生活大片| 94老司机福利社精品视频| 爱毛片在线成人免费看| 亚洲va欧美va国产综合定档| 漂亮人妻口爆深喉免费视频| 国产福利一区二区三区久久久| 精华液一区二区区别| 亚洲嘿嘿网站在线观看| 一区二区啪视频在线观看| 瑟瑟视频在线网站免费观看| 欧美日韩激情图片视频另类| 日本阿v片中文字幕在线| 亚洲欧美码免费观看视频| 9999精品久久久久| 九九re热这里只有精品视频 | 蜜桃精品www视频在线观看| 91精品国产在热久久| 亚洲美女啪啪邪恶视频| 亚洲av综合在线观看免费| 蜜桃亚洲av优女av综合久久久 | 精品一区二区三区别视频| 日韩在线视频观看你懂的| 日日av拍夜夜添久久免费老牛| 亚洲图片 欧美专区 自拍| 国产寡妇又爽又紧又湿视频| 日韩黄色a影视在线免费观看网站| 国产区精品一区二区不卡中文| 漂亮人妻口爆深喉免费视频| 日本a v中文字幕网| 国内在线精品视频在线观看| 天天干狠狠插夜夜操| 91中文字幕yellow| 久久青草在线观看视频| 国产婷婷色一区二区三区| 天天操天天摸天天添| 黄片激情视频国产免费| 亚洲精品久久中文字幕| 77字幕网77中文字幕| 九九re热这里只有精品视频| 青青草国产免费在线观看| 日韩中文字幕色资源| av一区二区在线播放色婷婷精品| 视频一区 欧美情色| 无套内谢少妇一二三四| 亚洲免费不卡一区二区三区| 亚洲av狠狠的爱一区二区 | 亚洲在线中文字幕av| 国产精品8888在线观看| 日日夜夜草日日夜夜干| 91精品丝袜久久久| ass亚洲熟妇熟女pics| 精品久久久福利国产| 亚洲av免费观看网站在线观看| 久久久国产亚洲精品黑人| 久久久国产亚洲精品黑人| 东京不太热在线观看视频| 91社区男人都懂的网站| 熟女人妻视频观看一区二区三区| 人妻出轨av中文字幕| 一级少妇精品久久久久| 三级黄色在线播放网站| 男女啪啪自拍露脸视频| 精区一品二品精区在线91| 国产综合欧美日韩在线观看| 揉老熟女老熟妇aaa| 一区二区三区麻豆蜜桃视频| 欧美一点不卡视频在线观看| 中文字幕在线观看观看av?| 北条麻妃超碰av在线播放| 另类激情国产专区在线观看免费| 成人专区禁18处网站| 老司机福利在线免费观看视频| 欧美午夜理论片1000在线播放| 大胸美女黄网站色片大全亚洲| 男生捅女生逼的免费视频软件| 免费观看黄色视频啊小穴啊| 国产在线免费av观看| 亚洲影视精品一区二区| 国产天美传媒剧免费观看| 白丝骚逼美女被操到逼水直流| 美女厕所撒尿偷拍视频| 三级日本美女少妇99| 91手机免费在线视频| 黑人巨大欧美一区二区视频| 熟女人妻伊人蜜桃视频| 女同性ⅹxx女同hd偷拍| 日本成人av在线免费看| 99青青草原在线视频| 无翼乌18禁本子全彩无遮| 日韩亚洲中文在线视频| 精品国精品国自产在产国产| 精品色欲久久久青青青人人爽| 国产精品国产自产拍在线| 秋霞一区二区三区小说| 91久久精品视频地址| 91免费福利视频专区| 99精品国产免费电影| 91久久久久久久电影| 亚洲码欧洲码在线观看| 加勒比日本一区二区三区| 午夜福利92一区二区三区久久 | 日日日日日日日夜夜夜夜夜| 国产精品网站一区在线观看| 日本一区二区三区综合网| 国产一区二区精品调教| 超碰97在线观看免费| 人妻视频在线免费观看| 操女人逼逼好爽啊操| 一区二区啪视频在线观看| 麻豆传媒视频区一区二| 国产亚洲高清在线观看| 亚洲天堂av成人在线观看| 亚洲欧美熟妇另类久久久久久| 999精品欧美一区二区三区黑人| 91麻豆精品国产综合久久久主演| 深夜福利成人在线观看| 国产综合无码视频呢在线| 中文热免费在线视频| 亚洲情色成人一二三区| 中文字幕+乱码+中文| 国产美女在线极品美女网站| 大香蕉在线欧美观看| 国产精品不卡在线播放| 邪恶老湿精品一区二区| caopron在线成人免费| 中文字幕第一区高清av| 在线观看国产剧情av| 亚洲精品日韩中文久久91| 国产老妇女免费视频| 五十二老熟女高潮嗷嗷叫| 91精品丝袜久久久| 欧洲老妇人一区二区三区| 欧美色视频日本片免费看| 亚洲校园~春色综合| 蜜臀av在线观看一区| 国产99热这里有精品| 青青国产的视频在线播放| 美女福利在线免费观看| xxx一区二区三区在线观看| 欧美亚洲变态另类在线观看| 色综合天天综合高清网国产在线 | 在线步兵一区二区三区| 91精品青草福利久久午夜| 日韩人妻少妇av电影| 日韩妹子精品视频在线观看| 丰满熟妇人妻一区二区三区| 一区二区三区视频直播| 色 小说 激情 图片| 男女又黄又刺激a片免费| 最新欧美一级特黄大片| 毛片中文aaa五月天| 手机在线一区二区三区| 亚洲图片av伦理三级| 亚洲av狠狠的爱一区二区| 97 在线观看视频网站| 99精品国产中文字幕| 亚洲一级中文字黄色片| 91精品一区二区三区蜜桃| 一级特黄夫妻生活大片| 欧美乱码卡1卡二卡3卡4| 日韩中文字幕色资源| ass亚洲熟妇熟女pics| 亚洲精品av成人在线观看| 中文在线播放一区二区三区| 初撮日本五十路人妻| 亚洲制服丝袜日韩欧美制服 | 密乳一区二区三区国产亚洲av| 国产精品视频中文无码| 一区二区三区四区蜜桃在线| 国产91福利在线导航| 自由的成熟女性色视频| 男女啪啪视频免费国产| 久久av四色米奇影视| 中文字幕av影片免费在线观看| 日本激情床震无遮掩视频| 91超碰在线免费播放| 97超碰资源总站在线观看| 娇小型av优女大全| 丝袜美腿av一区二区| 天天搡天天狠天干天| 人妻中文字幕影音先锋| 少妇视频播放在线播放免费观看 | 在线视频播放免费网站| 嗯啊好想要插我视频| 99久久久久久久久96久久| 天天操日日干夜夜射| 日本激情在线看一区二区三区| 日韩激情又爽aaaaa级| 97人人添人躁人人爽超碰| 日韩美女av电影网| 亚洲午夜短视频在线| 亚洲天堂中文字幕手机在线 | 人妻少妇精品视频专区专区| 天天摸天天天天日少妇av| 少妇花园流浆嗯嗯张开视频| 久久综合精品五月天| 日韩免费一卡二卡三卡四卡五卡| 深夜福利视频一区二区| 日本 高清 中文字幕| 99久久人妻精品免费②区| 久久久久一区二区三区四区| 国产97在线观看视频| 漂亮人妻久久被公侵犯| 亚洲av狠狠的爱一区二区| 77字幕网77中文字幕| 精品少妇人妻av免费麻豆| 美女啪啪啪免费网站视频| 最新黄色天堂av在线资源| 男人把女人桶到爽午夜视频| 熟妇高潮喷水在线120p| 老外插美女在线视频| 中文字幕亚洲天堂av在线| jizz成人在线视频| 亚洲天堂av在线免费看 | 2020最新中文字幕在线| 在线视频成人青青草久热| 国产午夜精品在线播放| 50岁老熟女高潮喷水了| 91大神长腿美女视频在线观看| 日本午夜色视频在线观看| 亚洲天堂aaa一区二区| 免费观看男人操逼的操女人的| 国产福利一区二区三区久久久| 人妻熟妇久久久久久xxx| 91综合久久久久久久久久久| 性美女毛片久久a区| 人妻少妇精品视频专区专区| 92大香蕉一区二区三区| 亚洲国产欧美日韩综合| 日韩在线网站一区二区三区| 四房波波-五月天-四房波波| 国产97在线观看视频| 欧美 亚洲 国产 日韩一| 50岁熟女乱综合一区二区| 91青青青青艹视频在线观看| 黑人久久一区二区三区| 啪啪啪啪一区二区三区四区三级片| 成年视频短视频在线播放| 日韩一级黄色片免费在线观看| 嫩草伊人久久精品少妇av网站| 国产九色视频在线观看| 精品久久久免费av| 北条麻妃超碰av在线播放| 欧美一区二区三区视频在线观看 | 97se狠狠狠狠狼鲁亚洲综合色| 在线看不卡日本av| 亚洲AV永久青草无码士清品| 一区二区三区免费精品| 亚洲美女啪啪邪恶视频| 久久人人妻人人做人人爽涩爱| 亚洲精品久久中文字幕| 日本成年人大片免费观看| 亚洲欧美熟妇另类久久久久久| 老司机福利社免费视频| 91久久久久精品一区二区三区| 富婆按摩高潮一区二区三区91| 白丝大胸美女操批内射视频| 中文字幕成熟丰满人妻| 亚洲嘿嘿网站在线观看| ww久久久久国产喷水18禁| 男人午夜视频在线观看| 欧洲亚洲国产永久精品| 成年视频短视频在线播放| 五月婷婷丁香中文字幕亚洲一区 | 久久久久久久国产黄色片| 久久久久久久亚洲精品中文| 日韩一二三区免费播放视频| 亚洲免费不卡一区二区三区| 国产精品一线二线三区| 最新97在线视频资源| 国产免费av天堂蘑菇视频| 成人教育av在线网站| 九九热在线视频观看最新| 少妇视频播放在线播放免费观看 | 一级黄色片特级黄色片| 97视频免费公开在线播放| 美日韩黄色一级视频| 欧美成在线在线视频| 国产婷婷色三区二区一区| 1234中文字幕内射在线| 色偷偷东京热男人的天堂| 青青青久免费在线视频| 国产av电影网毛片| 啪啪啪1000国产精品| 最近免费中文字幕日韩| 国产精品亚洲精品久| 人人妻,人人干,在线| 熟女人妻 在线观看| 国产精品视频综合一区二区| 在线亚洲视频免费看| 中文字幕少妇av一区二区三区| 999人妻精品中出| 可以免费直接观看的av| 成人中文字幕在线高清| 全国av一卡二卡三卡免费| 蜜臀av在线地址一地址二| 77字幕网77中文字幕| 国产伦精品一区二区三区妓国产 | 精品日产一匹二匹三匹四匹五匹| 538精品视频国产| 黄色av观看一区二区三区| 精品中文字幕高清久久久久三级| 国产美女视频网久久69| 久久香蕉欧美日韩av蜜桃| 亚洲一区二区日韩欧美久久| 国产在线av免费观看| 国产精品一级片免费看| 日产精品免费一区二区三区 | 9久久久久久久久久久| 免费国产一区二区三区在线播放| 日本国产福利视频在线观看| 青青操在线超碰传媒| 亚洲精品在线免费观看视频| 女友97年白嫩漂亮在线看| 日本一区二三区好的精华液| 亲爱的请你原谅我 中文字幕| 国产综合欧美日韩在线观看| 中文字幕=中文字幕| 欧美亚洲自拍偷拍xxx| 国产精品国三级国产av无密码| 日韩三级 欧美精品| 久久久久久久毛片5| 婷婷热re99久久精品国产| 日本jizzjizz少妇| 国产视频在线观看一区二区极品 | 好大好粗好爽好黄c黄片| 69久久夜色精品国产69| 忘忧草精品久久久久久久高清| 77777色婷婷av一区二区三| 97香蕉在线17c| 亚洲熟女资源一区二区| 中文字幕欧美人妻精品精品| 玩弄人妻少妇精品视频在线 | 亚洲va欧美va国产综合定档| 亚洲91色精品一区二区| 国产在线精品免费视频| 天天草天天日天天舔| 韩国美女主播福利在线| 青青久在线观看免费视频| 亚洲欧美激情人妻人妻综合| 亚洲地址一区二区三区四区| 欧美18vide0sex性极品| 强伦轩人妻一区二区三| 操的少妇嗷嗷叫视频| 女人的小鸡鸡真人免费视频| 精品人妻一二三区更新| 欧美美女色视频免费看| 各种玩小处雌女视频| 日本一区二区三区高清在线| 日本女人牲交的视频| 亚洲综合在线蜜臀av| 天天插天天射天天日天天干| 毛片中文aaa五月天| 欧美亚洲综合另类清纯自拍| 91精选国产九色porny| 中文在线播放一区二区三区| 日韩av专场一区二区 | 男女上下差差发哈插插插| 成人国产av精品麻豆入口| 大香蕉太香蕉在线免费看| 91精品丝袜久久久| 69久久夜色精品国产69| 午夜激情片免费在线观看| 天天插天天干天天爽| 免费观看在线黄色大片| 人妻人妻干干干干人妻网站| 欧美视频免费在线看| 中文字幕少妇av一区二区三区 | 亚洲国产精品午夜福利久久| 美女主播一区二区三区| 日韩中文字幕色资源| 亚洲一区二二三区在线gk| 99via精品福利影视| 人妻在线一区二区三区| 久久与久久最新视频| 青青青在线视频免费观看手机版| www精品一区二区三区| 国产55夜色66夜色男人的天堂| 国产天美传媒剧免费观看| 免费高清视频亚洲熟女| a在线观看免费久不卡精品| 99成全re视频免费观看在线看| 日韩激情又爽aaaaa级| 国产91边对白在线播放| 99热在线这里只有精品| 久久精品日产第一区二区三区| 色www亚洲国产张柏芝| 日韩激情又爽aaaaa级| 9久久久久久久久久久| 国产不卡剧情在线观看| 国产精品剧情在线视频| 免费网站黄色在线观看不卡| 卡通动漫中文字幕在线观看| kendralust熟女少妇| 精品国产伦理片1区2区| 三级大尺度无码视频| 三级大尺度无码视频| 午夜高清在线观看免费| 啊啊啊啊在线视频观看| 国产最好看的特效大片av| 淫色网亚洲av日韩av| 制服诱惑,日韩情色| 人妻人妻干干干干人妻网站|