亚洲爆乳成AV人在线视菜奈实_欧美一进一出抽搐大尺度视频 _日本十八禁免费看污网站_国产一区二区怡红院_6080YY新视觉影院_蜜臀AV无码人妻精品_成人影院YY111111在线_成人欧美一区二区三区1314_少妇饥渴偷公乱A级无码

首頁 新聞 工控搜 論壇 廠商論壇 產(chǎn)品 方案 廠商 人才 文摘 下載 展覽
中華工控網(wǎng)首頁
  P L C | 變頻器與傳動 | 傳感器 | 現(xiàn)場檢測儀表 | 工控軟件 | 人機界面 | 運動控制
  D C S | 工業(yè)以太網(wǎng) | 現(xiàn)場總線 | 顯示調(diào)節(jié)儀表 | 數(shù)據(jù)采集 | 數(shù)傳測控 | 工業(yè)安全
  電 源 | 嵌入式系統(tǒng) | PC based | 機柜箱體殼體 | 低壓電器 | 機器視覺
gdb調(diào)試一個通過串行線同PC相連的嵌入式系統(tǒng)
中華工控網(wǎng)
收藏本文     查看收藏
鄒思軼(syzou),西南交通大學(xué)在讀研究生整理提供<BR> 1. 概論<BR> 我們將學(xué)習(xí)使用gdb來調(diào)試通過一個通過串行線同PC相連的嵌入式系統(tǒng).<BR> Gdb可以調(diào)試各種程序,包括C、C++、JAVA、PASCAL、FORAN和一些其它的語言。包括GNU所支持的所有微處理器的匯編語言。<BR> 在gdb的所有可圈可點的特性中,有一點值得注意,就是當(dāng)運行g(shù)db的平臺(宿主機)通過串行端口(或網(wǎng)絡(luò)連接,或是其他別的方式)連接到目標(biāo)板時(應(yīng)用程序在板上運行),gdb 可以調(diào)試對應(yīng)用程序進行調(diào)試。這個特性不光在將GNU工具移植到一個新的操作系統(tǒng)或微處理器時侯很有用,對于那些使用GNU已經(jīng)支持的芯片的嵌入式系統(tǒng)進行開發(fā)的設(shè)計人員來講,也是非常有用的。<BR> 當(dāng)gdb被適當(dāng)?shù)募傻侥硞嵌入式系統(tǒng)中的時候,它的遠(yuǎn)程調(diào)試功能允許設(shè)計人員一步一步的調(diào)試程序代碼、設(shè)置斷點、檢驗內(nèi)存,并且同目標(biāo)交換信息。Gdb同目標(biāo)板交換信息的能力相當(dāng)強,勝過絕大多數(shù)的商業(yè)調(diào)試內(nèi)核,甚至功能相當(dāng)于某些低端仿真器。</P><P> 2.Gdb在嵌入式領(lǐng)域的功能實現(xiàn)<BR> 當(dāng)調(diào)試一個遠(yuǎn)端目標(biāo)設(shè)備時,gdb依靠了一個調(diào)試stub來完成其功能。調(diào)試stub即是嵌入式系統(tǒng)中一小段代碼,它提供了運行g(shù)db的宿主機和所調(diào)試的應(yīng)用程序間的一個媒介。<BR> Gdb和調(diào)試stub通過GDB串行協(xié)議進行通信。GDB串行協(xié)議是一種基于消息的ASCII碼協(xié)議,包含了諸如讀寫內(nèi)存、查詢寄存器、運行程序等命令。由于絕大多數(shù)嵌入式系統(tǒng)設(shè)計人員為了最好的利用他們手中特定的硬件的特征,總是自己編寫自己的stub。所以我們有必要清楚的了解一下gdb的串行通信協(xié)議。在后面我們會詳細(xì)介紹。</P><P> 為了設(shè)置斷點,gdb使用內(nèi)存讀寫命令,來無損害地將原指令用一個TRAP命令或其它類似的操作碼(在此假定,被調(diào)試的應(yīng)用程序是處在RAM中的,當(dāng)然,如果stub有足夠好的性能,硬件也不錯的話,這個條件也不是必須的)代替,使得執(zhí)行該命令時,可以使得控制權(quán)轉(zhuǎn)移到調(diào)試stub手中去。在此時,調(diào)試stub的任務(wù)就是將當(dāng)前場景傳送給gdb(通過遠(yuǎn)程串行通信協(xié)議),然后從gdb處接收命令,該命令告訴了stub下一步該做什么。</P><P> 為了說明,下面的代碼是Hitachi SH-2處理器的一個TRAP異常處理程序:</P><P> /*將當(dāng)前寄存器的值存儲到堆棧中*/<BR> /* 然后調(diào)用gdb_exception. */<BR> asm("<BR> .global _gdb_exception_32<BR> _gdb_exception_32:</P><P> /* 將堆棧指針和r14壓入堆棧*/<BR> mov.l r15, @-r15<BR> mov.l r14, @-r15</P><P> /*當(dāng)執(zhí)行一個陷阱異常時,sh2 自動的將pc 和sr 放入堆棧 */<BR> /*所以我們必須調(diào)整我們給gdb的堆棧指針值,以此來說明這個特別的數(shù)據(jù) */<BR> /* 換言之,在該陷阱被執(zhí)行前,gdb想看看堆棧指針的值,*/<BR> /* 而不是陷阱被執(zhí)行當(dāng)前時的值。*/<BR> /*所以,從我們剛壓入堆棧的sp值中減去8*/<BR> /*(pc和sr都是4個字節(jié)的 )*/</P><P> mov.l @(4,r15), r14<BR> add #8, r14<BR> mov.l r14, @(4,r15)</P><P> /*將其它寄存器值壓入堆棧 */<BR> mov.l r13, @-r15<BR> mov.l r12, @-r15<BR> mov.l r11, @-r15<BR> mov.l r10, @-r15<BR> mov.l r9, @-r15<BR> mov.l r8, @-r15<BR> mov.l r7, @-r15<BR> mov.l r6, @-r15<BR> mov.l r5, @-r15<BR> mov.l r4, @-r15<BR> mov.l r3, @-r15<BR> mov.l r2, @-r15<BR> mov.l r1, @-r15<BR> mov.l r0, @-r15<BR> sts.l macl, @-r15<BR> sts.l mach, @-r15<BR> stc vbr, r7<BR> stc gbr, r6<BR> sts pr, r5</P><P> /* 調(diào)用gdb_exception, 令其異常值=32 */<BR> mov.l _gdb_exception_target, r1<BR> jmp @r1<BR> mov #32, r4</P><P> .align 2<BR> _gdb_exception_target: .long _gdb_exception<BR> ");</P><P> /* 下面是一個從調(diào)試stub返回對某個應(yīng)用程序的控制的樣例(針對Hitachi SH2)*/<BR> /*如果用C語言寫,那么該語句的原型為:*/<BR> /* void gdb_return_from_exception( gdb_sh2_registers_T registers );*/<BR> /* 總而言之,我們可以用同gdb_exception_nn把寄存器壓入堆棧同樣的方式*/<BR> /* 將其從堆棧中彈出。然而,通常返回指針同我們的返回堆棧指針不一樣。*/<BR> /*所以如果我們在拷貝pc和sr到返回指針之前將r15彈出的話,我們就回*/<BR> 丟失掉pc和sr。<BR> */ <BR> asm("<BR> .global _gdb_return_from_exception<BR> _gdb_return_from_exception:</P><P> /*恢復(fù)某些寄存器*/<BR> lds r4, pr<BR> ldc r5, gbr<BR> ldc r6, vbr<BR> lds r7, mach<BR> lds.l @r15+, macl<BR> mov.l @r15+, r0<BR> mov.l @r15+, r1<BR> mov.l @r15+, r2<BR> mov.l @r15+, r3<BR> mov.l @r15+, r4<BR> mov.l @r15+, r5<BR> mov.l @r15+, r6<BR> mov.l @r15+, r7<BR> mov.l @r15+, r8<BR> mov.l @r15+, r9<BR> mov.l @r15+, r10<BR> mov.l @r15+, r11<BR> mov.l @r15+, r12</P><P> /* 將pc和 sr彈出到應(yīng)用程序的堆棧*/<BR> mov.l @(8,r15), r14<BR> mov.l @(16,r15), r13<BR> mov.l r13, @-r14<BR> mov.l @(12,r15), r13<BR> mov.l r13, @-r14</P><P> /* 完成恢復(fù)寄存器的工作*/<BR> mov.l @r15+, r13<BR> mov.l @r15+, r14<BR> mov.l @r15, r15</P><P> /*調(diào)整應(yīng)用程序的堆棧,來說明pc, sr */<BR> add #-8, r15</P><P> /* ...返回到應(yīng)用程序*/<BR> rte<BR> nop<BR> ");</P><P> <BR> 當(dāng)處理器遇到了一個TRAP指令(該指令是由gdb 設(shè)置的,做斷點用)時,該指令使得處理器的當(dāng)前場景轉(zhuǎn)向一個名為gdb_exception()的函數(shù)。最終,目標(biāo)調(diào)用了gdb_return_from_exception()函數(shù),該函數(shù)恢復(fù)了處理器的場景并將控制權(quán)交給應(yīng)用程序。</P><P> 遠(yuǎn)程串行協(xié)議的步進命令稍微更有挑戰(zhàn)性些,特別當(dāng)目標(biāo)處理器不提供一個"跟蹤位"或類似的功能時。在這些情況下,唯一的替代辦法就是讓stub把將要執(zhí)行的指令反匯編。這樣它就會知道程序下一步要執(zhí)行到何處。<BR> 幸運的是,在gdb的源代碼中也提供了關(guān)于如何一些實現(xiàn)這些步近命令的建議。對于Hitachi SH-2芯片而言,在gdb/sh-stub.c文件中說明了函數(shù)doSStep()的使用,對于其它種類的芯片,函數(shù)的名字也差不多,請看文件gdb/i386-stub.c和gdb/m68k-stub.c</P><P> 3.gdb的其它功能 <BR> Gdb還可以求解在控制臺中輸入的任意的C表達式的值,包括包含有對遠(yuǎn)端目標(biāo)的函數(shù)功能調(diào)用的表達式。我們可以輸入如下命令:</P><P> print foo( sh_sci[current_sci]->smr.brg )</P><P> gdb就會將mr.brg的值傳送給foo(),并報告其返回值。<BR> 當(dāng)然,gdb也可以反匯編代碼。只要可能的話,它還可以很好的為所需的數(shù)據(jù)提供等價的符號信息。例如,gdb用下列輸出:</P><P> jmp 0x401010 <main + 80></P><P> 告訴了我們,所顯示的地址與從函數(shù)main()的起始地址起偏移80個字節(jié)的地址相等。<BR> Gdb 可以顯示其自身和所調(diào)試的目標(biāo)間的遠(yuǎn)程串行調(diào)試信息,也可以將該信息記錄到日志文件中去。這些特性對于我們調(diào)試一個新的stub,了解stub是如何使用遠(yuǎn)程串行協(xié)議來實現(xiàn)用戶對數(shù)據(jù)、程序內(nèi)存、系統(tǒng)調(diào)用等等的需求是十分有用的。</P><P> Gdb擁有腳本語言,允許對目標(biāo)自動的設(shè)置和檢測。該語言是對目標(biāo)處理器獨立的,所以應(yīng)用程序從一個目標(biāo)處理器移植到另外的處理器時,腳本可以重用。</P><P> 最后,gdb還提供了跟蹤點的功能,該功能可以記錄某個運行程序的信息,而盡可能的不打斷程序收集數(shù)據(jù)。跟蹤點需要特別的調(diào)試stub來實現(xiàn)。 </P><P> 4.一個典型的gdb會話過程<BR> 現(xiàn)在我們已經(jīng)探討了gdb的通用功能,現(xiàn)在我們來看看gdb的執(zhí)行。下面給出了一個典型的gdb 調(diào)試會話過程。在該過程中,gdb初始化了同一個運行調(diào)試stub的遠(yuǎn)端目標(biāo)間的通信,然后下載程序,設(shè)置斷點,并運行該程序。當(dāng)遇到斷點時,調(diào)試stub通知gdb,gdb然后就將其源代碼行顯示給用戶。接著,用戶顯示了一個變量,步近執(zhí)行一個指令,然后推出gdb 。<BR> 請注意,下面并未顯示用戶在使用gdb時所見到的內(nèi)容。用戶所見到的是一個終端,顯示的內(nèi)容都是用英文寫成的源代碼、要顯示的變量等等。但是,下面顯示的腳本說明了當(dāng)用戶鍵入命令時在幕后發(fā)生的內(nèi)容。 </P><P> 典型的gdb會話過程的描述</P><P> <br><A HREF="/editor/uploadfiles/learns01/200382910381371880.jpg" TARGET=_blank><IMG SRC="/editor/uploadfiles/learns01/200382910381371880.jpg" border=0 alt=按此在新窗口瀏覽圖片 onload="javascript:if(this.width>580)this.width=580"></A><BR> <br><A HREF="/editor/uploadfiles/learns01/200382910384964469.jpg" TARGET=_blank><IMG SRC="/editor/uploadfiles/learns01/200382910384964469.jpg" border=0 alt=按此在新窗口瀏覽圖片 onload="javascript:if(this.width>580)this.width=580"></A></P><P> 上圖中,左邊一欄顯示了gdb控制臺的一部分。在此用戶鍵入命令并監(jiān)視數(shù)據(jù)。右邊一欄顯示了一些使用GDB遠(yuǎn)程串行協(xié)議在宿主機和嵌入式設(shè)備之間的通信消息。在方括號中是一些解釋信息。如果想清楚的了解這些信息的含義,請見附錄《GDB遠(yuǎn)程串行協(xié)議》部分。</P><P> 5.Gdb調(diào)試stub的源代碼<BR> 雖然遠(yuǎn)程軟件調(diào)試具有依賴于目標(biāo)的特性,但是還是可以創(chuàng)建一個有高度的可移植性的調(diào)試stub,在不同的嵌入式處理器芯片之間可以被重用,而所需的修改最小。<BR> 有人已經(jīng)嘗試了這方面的工作。如果各位感興趣,可以去上網(wǎng)查閱相關(guān)的資料。例如<img align=absmiddle src=pic/url.gif border=0><a target=_blank href=http://sourceforge.net/projects/gdbstubs>http://sourceforge.net/projects/gdbstubs<;/a>。</P><P> 處理器特定的代碼包含在與處理器相關(guān)的文件名中,例如gdb_sh2*.c。我們可以針對我們特定的處理器下載相關(guān)的文件(例如gdb_m68k*.c),然后在用其替代我們機器上的相關(guān)內(nèi)容。</P><P> 6.關(guān)于改造gdb來解決特定問題的考慮<BR> gdb使用了一個模塊化的體系結(jié)構(gòu)來實現(xiàn),那么對它某些不適合我們需要的特性就可以很直接的加以處理。例如,如果我們的產(chǎn)品僅僅有一個通信端口,而它使用的并不是gdb的通信協(xié)議的話,那么,可以修改gdb,使得調(diào)試器的信息同我們產(chǎn)品已經(jīng)使用的信息包相匹配。</P><P> 類似地,如果我們的產(chǎn)品沒有串行端口,而有些別的通信接口(例如CAN端口),那么我們可以加強gdb的遠(yuǎn)程通信功能,來適應(yīng)該端口。<BR> 我們也可以修改gdb的工作方式使其同我們嵌入式應(yīng)用程序更加的相容。例如,如果我們正在使用TRAPA #32來做些同gdb無關(guān)的工作,我們就可以改變gdb為了設(shè)置斷點而使用的操作碼,或者我們可以使用gdb來產(chǎn)生一個新的消息告訴我們的目標(biāo)板開啟指令追蹤的功能或使能芯片內(nèi)的斷點產(chǎn)生硬件。<BR> 文件gdb/remote.c包含了gdb的遠(yuǎn)程串行協(xié)議的實現(xiàn)過程。對于研究gdb的模塊化的實現(xiàn)是如何允許我們快速的將其改造以適應(yīng)特定的調(diào)試目標(biāo)而言,該文件是個很好的起點。其它的文件,例如gdb/remote-hms.c 和gdb/remote-e7000.c,使用了該模塊化的結(jié)構(gòu)來為諸如Hitachi, Motorola等公司的芯片的調(diào)試器和仿真器提供支持。<BR> 7.總結(jié)<BR> gdb對于調(diào)試目標(biāo)(包括對其內(nèi)存的使用,通信媒介等等方面)的可適應(yīng)性使得它對于目標(biāo)板的調(diào)試而言,常常是唯一的選擇。考慮到單芯片高集成度、基于IP的嵌入式產(chǎn)品的普及,情況更是如此。在今天,嵌入式設(shè)備的復(fù)雜性與日俱增,在進行新的設(shè)計時,其供選擇的技術(shù)的選擇也越來越多,要找到一個商業(yè)的開發(fā)產(chǎn)品是越來越困難了。<BR> 而使用GNU工具將是個很好的選擇。GNU工具對各種流行的嵌入式處理器的支持意味著,當(dāng)我們正在使用的開發(fā)工具對我們將要在下一個設(shè)計中使用的處理器不支持時,我們可以減少尋找新的開發(fā)工具所帶來的危險。<BR>
 

狀 態(tài): 離線

公司簡介
產(chǎn)品目錄

公司名稱: 中華工控網(wǎng)
聯(lián) 系 人: 客服中心
電  話: 0755-26546361
傳  真: 0755-26585268
地  址: 深圳市南山區(qū)創(chuàng)業(yè)路現(xiàn)代城華庭1棟6A
郵  編: 518054
主  頁:
 
該廠商相關(guān)技術(shù)文摘:
智能儀器儀表的發(fā)展特點與前景分析
電動機性能虛擬儀器測試系統(tǒng)設(shè)計與實現(xiàn)
視頻監(jiān)控護航高鐵安全運營
基于PLC,觸摸屏及變頻器對吹膜機的改造
永宏P(guān)LC應(yīng)用于自助圖書借還終端機
基于永宏P(guān)LC的GSM通訊原理及其應(yīng)用
改善汽車生態(tài)學(xué)、安全性和舒適性,四大測試分析是關(guān)鍵
改善汽車生態(tài)學(xué)、安全性和舒適性,四大測試分析是關(guān)鍵
數(shù)控技術(shù)的發(fā)展趨勢及產(chǎn)業(yè)化
數(shù)控技術(shù)發(fā)展戰(zhàn)略與發(fā)展途徑的思考
用Energid 的軟件進行機器人的抓取和操作
如何借助RFID技術(shù)升級企業(yè)信息管理水平
更多文摘...
立即發(fā)送詢問信息在線聯(lián)系該技術(shù)文摘廠商:
用戶名: 密碼: 免費注冊為中華工控網(wǎng)會員
請留下您的有效聯(lián)系方式,以方便我們及時與您聯(lián)絡(luò)

關(guān)于我們 | 聯(lián)系我們 | 廣告服務(wù) | 本站動態(tài) | 友情鏈接 | 法律聲明 | 不良信息舉報
工控網(wǎng)客服熱線:0755-86369299
版權(quán)所有 中華工控網(wǎng) Copyright©2022 Gkong.com, All Rights Reserved

SUNTEK中老年人女妈妈秋装| 国产成人午夜高潮毛片| 八戒八戒WWW资源网在线观看| AV无码免费一区二区三区| 99久久99久久精品免费看蜜桃| 24种男女插秧法| 99久久免费国产精品四虎99久久精品免费看国产一区二区 | 久久久久人妻精品一区三寸蜜桃| 久久国产精品成人无码网站| 久久精品国产一区二区电影| 久久久久久国产精品无码下载 | 2021精品亚洲中文字幕| YIN荡护士揉捏乱P办公室视频| ぱらだいす天堂中文网.WWW| 爆乳女教师 高清BD| 成年女人18级毛片毛片免费| 成人网站在线进入爽爽爽| 道德沦丧一家3口小说| 高潮久久久久久久久不卡| 观看国产色欲色欲色欲WWW| 国产交换配乱婬视频偷| 国产免费无遮挡吸乳视频在线观看| 国产欧美日韩专区发布| 韩国的无码AV看免费大片在线| 精产国品一二三产品区别视频手机 | 国产成人无码A区视频在线观看| 国精产品一区二区三区有限公司| 狠狠色狠狠色综合久久| 精品香蕉久久久午夜福利 | 日本护士HD人XXXX| 男女啪啪摸下面喷水网站| 欧美激情XXXX| 人人狠狠综合久久88成人| 日韩在线看片免费人成视频播放| 熟妇性MATURETUBE另类| 无人区一码二码三码四码| 亚洲AV无码成人精品网站漏男| 亚洲国产另类久久久精品 | 亚洲 熟 图片 小说 乱 妇| 亚洲H在线播放在线观看H| 亚洲熟妇AV综合网五月| 在线观看特色大片免费网站| 97人妻人人揉人人躁人人| しぼっちうぞ2在线观看1一| 国产成人一区二区精品视频| 妓女妓女影院妓女影库妓女网 | 精品无码久久久久久久久水蜜桃| 蜜臀av无码少妇一区二区三区| 欧美交换配乱婬粗大| 色综合视频一区中文字幕| 无码中文字幕VA精品影院| 亚洲爆乳AⅤ无码一区二区| 在线观看AV片永久免费| 草木影视在线视频免费观看| 国产欧美亚洲日韩图片| 久久久一本精品99久久精品| 区产品乱码芒果精品P站| 色综合热无码热国产| 亚洲AV永久无码精品一区二区| 亚洲一线产区二线产区区别在| 越南少妇BBV叉叉叉| 被滋润的娇妻疯狂呻吟| 国产成人亚洲精品无码MP4 | 国产乱码一卡二卡3卡4卡网站| 狠狠色噜噜狠狠狠狠色综合久AV | 被几个人摁住玩弄隐私作文| 国产欧美成AⅤ人高清| 久久亚洲精品中文字幕波多野结衣| 农村风流大炕作爱| 日韩AV一区二区三区| 无码H黄肉动漫在线观看999| 亚洲国产成人精品无码区在线网站 | ZZIJZZIJ亚洲日本少妇| 国产乱人伦AV麻豆网| 久久免费看少妇高潮V片特黄| 女人被躁到高潮嗷嗷叫游戏| 日本无人区码卡3卡4卡区别| 亚洲乱码1卡2卡3乱码在线芒果| 又大又黄又粗又爽的免费视频| A级毛片免费观看播放器| 成人中文乱幕日产无线码| 国精品无码一区二区三区左线 | 久久国产乱子伦精品免费女人| 欧美一区二区在线视频人妻| 熟妇的奶头又大又粗视频| 亚洲AV无码专区亚洲猫咪 | 国产大屁股视频免费区| 久久久久无码精品国产AV蜜桃1| 日本边添边摸边做边爱喷水| 无码免费伦费影视在线观看| 亚洲欧美日韩国产手机在线| 97久久精品午夜一区二区| 多毛丰满日本熟妇| 国色天香果冻传媒国卡1区| 奶酥1V2双C高| 无码超乳爆乳中文字幕久久| 又粗又硬又大又爽免费视频播放| 成在人线AV无码免费高潮水老板| 国模和精品嫩模私拍视频| 女高中生自慰污污网站| 无码人妻精一区二区三区| 在镜子面前看我是怎么爱你的| 丰满少妇熟女高潮流白浆| 黑人又大又粗又长欧美网站| 欧美裸体XXXX极品少妇| 天天摸天天碰天天添| 亚洲欧美日韩中文字幕在线一区 | 娇小萝被两个黑人用半米长| 人成午夜免费大片| 亚洲成AV人在线观看成年美女| 中文字幕精品亚洲人成在线 | 久久国产精品无码一区二区三区 | 亚洲欧美偷拍内射白浆| 被夫の上司に犯中文字幕| 几天没C是不是又痒了网站| 人人妻人人妻人人片AV| 亚洲精品456在线播放| 被强迫的爱人 电影| 精品久久久无码中文字幕天天| 拗女稀缺资源一区二区| 性中国VODAFONEWIFI| AE成品免费下载网站| 国语第一次处破女| 人妻AV无码一区二区三区| 亚洲精品色无码AV试看| JEΑL0USVUE成熟50M| 黑人巨大BBWBBW| 人人爽人人模人人人爽人人爱| 亚洲精品欧美精品日韩精品 | 午在线亚洲男人午在线| 在线A级毛片无码免费真人| 国产成人无码免费视频79| 蜜臀AV网站在线| 亚欧洲精品在线视频免费观看| A级毛片成人网站免费看| 护士奶头又白又大又好摸视频| 欧美高清VIVO最新| 亚洲A片成人无码久久精品色欲| 按摩师的巨大滑进我的身体 | 伊人久久中文字幕| 动漫人物桶动漫人物免费观看网站| 久久久久亚州AⅤ无码专区首| 天堂…在线最新版在线| 一本大道香蕉久97在线播放| 从大树开始的进化漫画| 久久久亚洲熟妇熟女ⅩXXX直播 | 国产又粗又湿又刺激18禁| 嫩BBB槡BBBB搡BBBB| 亚洲AV无码精品国产成人| 斑马视频电影免费观看| 久久精品久久久久久久精品 | 亚洲午夜福利在线观看| 丰满熟女高潮毛茸茸欧洲视频| 麻豆精品久久久久久中文字幕无码| 少妇与子乱A级全毛片| 中文日产幕无限码一区有限公司 | 亚洲AV无码一区二区三区少妇| 波多野结衣AV一区二区全免费观看 | 中文字幕AV无码一区电影DVD| 国产午夜精品无码理论片| 女人自熨全过程视频免费| 亚洲成人无码一区| 丰满少妇偷人51视频在线观看| 麻豆星空传媒果冻传媒大象| 我把英语课代表按在桌子上抄| 中国OLDWOMAN老熟妇| 国产精品门事件AV| 美女把尿口扒开让男人桶爽| 亚欧成人中文字幕一区| 不充钱看全部超污视频| 两个奶被揉的又硬又翘是怎么回事 | 欧美成人精品第一区二区三区| 性中国VODAFONEWIFI| 差差差很疼30分钟视频| 老阿姨哔哩哔哩B站肉片茄子芒果 浪货趴办公桌~H揉秘书电影无码 | 精品国产一区二区三区2021| 日本护士OOXⅩXXHD| 在C点用力把桌腿A抬离地面时游| 国产又粗又猛又爽又黄的视频在线| 日韩精品视频一区二区三区| 中国少妇精品久久久久无码AV| 韩国电影理伦片完整| 色欲狠狠躁天天躁无码中文字幕| 27邪态恶动图GIF喷水赞一把| 精品国产一区二区三区无码蜜桃| 熟肉OVA初恋时间2附前作| AV天堂亚洲国产AV| 久久久久久久久毛片精品| 性偷窥TUBE凸凹视频| 东京热加勒比无码少妇| 女色窝人体色777777九色| 亚洲色播爱爱爱爱爱爱爱| 够了够了到高C了| 欧美激情一区二区三区蜜桃| 亚洲线精品一区二区三八戒| 国产精品一区二区高清在线| 日本熟妇厨房XXXXX乱| 性欧美牲交在线视频| 韩漫漫画在线观看页面免费漫画入| 日韩AV高清在线观看|