99精品久久精品一区二区-亚洲熟妇无码?v在线播放-日本国产精品无码字幕在线观看-久久久亚洲永夜AV-亚洲一级无码一区二区一-免费国产成高清人在线视频-中文字幕乱码免费观看-国产毛片精品妇女久久久

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

OLED畫線死循環(huán)排查:Bresenham算法邊界條件與嵌入式修復(fù)實(shí)踐

OLED畫線死循環(huán)排查:Bresenham算法邊界條件與嵌入式修復(fù)實(shí)踐 屏幕剛亮起來(lái)系統(tǒng)就卡死。這是我第一次遇到 OLED 一調(diào)用畫線函數(shù)就整機(jī)假死的情況。一塊 128x64 分辨率的 OLED 顯示模塊接在常見(jiàn)的 Cortex-M 系列 MCU 上I2C 接口底層的畫點(diǎn)函數(shù)單獨(dú)調(diào)沒(méi)有任何問(wèn)題顯示字符數(shù)字也正常但只要調(diào)用了畫線功能肉眼可見(jiàn)的就是程序掛在原地不動(dòng)了。剛開始沒(méi)有人往算法頭上想I2C 時(shí)序不對(duì)、復(fù)位引腳沖突、供電毛刺、中斷嵌套卡死這些才是優(yōu)先懷疑對(duì)象。邏輯分析儀抓了半天波形也沒(méi)看出異常最后接上調(diào)試器單步執(zhí)行才逮住真兇Bresenham 畫線函數(shù)內(nèi)部藏了一個(gè)死循環(huán)。這篇文章把這顆雷完整拆開從現(xiàn)象定位、算法原理、死循環(huán)觸發(fā)條件到最終的修復(fù)代碼和驗(yàn)證方案全部講清楚。適合正在調(diào) OLED 圖形庫(kù)的朋友、寫過(guò)畫線函數(shù)但只測(cè)過(guò)正向直線的同學(xué)以及所有不想再被 while 循環(huán)卡到頭皮發(fā)麻的嵌入式開發(fā)者。1. 問(wèn)題現(xiàn)場(chǎng)一次畫線引發(fā)的整機(jī)“假死”1.1 現(xiàn)象描述與初查路徑故障的現(xiàn)象很規(guī)律程序啟動(dòng)后 OLED 正常初始化顯示開機(jī)頁(yè)、清屏、畫字符都沒(méi)問(wèn)題但只要執(zhí)行到“畫線段”的調(diào)用整機(jī)立刻失去響應(yīng)。因?yàn)楫?dāng)時(shí)測(cè)試程序沒(méi)有開看門狗所以 MCU 不是復(fù)位重啟而是硬生生掛死在某個(gè)地方。外部表現(xiàn)就是屏幕停在那不動(dòng)串口調(diào)試助手沒(méi)有任何新輸出按鍵也都沒(méi)反應(yīng)。初查階段我把懷疑點(diǎn)按概率排序分了幾路。第一路是 I2C 通信擔(dān)心畫線過(guò)程中頻繁寫像素把總線搞掛于是單獨(dú)在畫線循環(huán)里加延時(shí)問(wèn)題依舊存在。第二路是屏幕驅(qū)動(dòng)芯片的顯示 RAM 尋址方式有些屏在連續(xù)寫數(shù)據(jù)時(shí)要先設(shè)置頁(yè)地址和列地址如果越界寫到了不存在的頁(yè)地址驅(qū)動(dòng)芯片可能返回異常 ACK 甚至拖死總線但實(shí)測(cè)單獨(dú)寫像素函數(shù)循環(huán)幾千次都沒(méi)問(wèn)題。第三路才是偶然間想到的——拿調(diào)試器暫停程序看 PC 指針停在哪里結(jié)果發(fā)現(xiàn)主循環(huán)被卡在畫線函數(shù)里一個(gè) while 結(jié)構(gòu)上怎么都繞不出來(lái)。這里想先多說(shuō)一句遇到“一運(yùn)行就死機(jī)”的問(wèn)題不要一上來(lái)就重新焊接、換屏、換電機(jī)而是花五分鐘用調(diào)試器暫停一下看程序到底停在哪個(gè)地址。硬件問(wèn)題會(huì)分散在各種中斷或者外設(shè)初始化流程里軟件死循環(huán)則通常指向某幾個(gè)文件里的特定行號(hào)區(qū)別非常明顯。1.2 三條直觀懷疑怎么被排除的我用一張小表記錄當(dāng)時(shí)的排查過(guò)程很多問(wèn)題排查到最后其實(shí)依賴這種“排除法可復(fù)現(xiàn)”的組合。懷疑方向排查方式結(jié)論I2C 總線異常邏輯分析儀抓取畫線前后的總線波形檢查 ACK/NACK波形正常無(wú)總線鎖死OLED 驅(qū)動(dòng)尋址越界單獨(dú)連續(xù)調(diào)用畫點(diǎn)函數(shù)寫入邊界坐標(biāo)單點(diǎn)寫入正常未觸發(fā)異常系統(tǒng)時(shí)鐘/中斷配置不當(dāng)關(guān)閉所有中斷后單獨(dú)調(diào)用畫線函數(shù)仍然死機(jī)排除中斷因素畫線算法內(nèi)部死循環(huán)調(diào)試器暫停后查看 PC 指針與調(diào)用棧定位到 Bresenham 函數(shù)的 while 循環(huán)排除了前三項(xiàng)之后問(wèn)題范圍已經(jīng)縮得很小要么是畫線算法本身在某種參數(shù)下死循環(huán)要么是算法里疊加了超出屏幕范圍的坐標(biāo)寫入把內(nèi)存寫壞。接下來(lái)要做的事情就是老老實(shí)實(shí)把 Bresenham 算法連同它的邊界條件一起重新讀一遍。2. Bresenham 算法的底牌它為什么快又為什么脆2.1 從直線方程到整數(shù)決策一個(gè)具體推演要在 OLED 上畫一條直線最直接的做法是從起點(diǎn)到終點(diǎn)按 x 方向逐點(diǎn)前進(jìn)每個(gè) x 用直線方程算一個(gè)浮點(diǎn) y。y y1 k * (x - x1)其中 k 是斜率。這個(gè)思路本身沒(méi)錯(cuò)但在沒(méi)有硬件浮點(diǎn)單元的 MCU 上每畫一個(gè)點(diǎn)都要做浮點(diǎn)乘法一幀畫面幾百條線就是幾千次浮點(diǎn)運(yùn)算幀率直接被拖垮。Bresenham 的核心思想是把浮點(diǎn)斜率換成整數(shù)誤差項(xiàng)每次只做加法、減法和比較因此特別適合嵌入式場(chǎng)景。我以一個(gè)具體直線為例從 (1,1) 到 (6,4)。這時(shí)候 dx 5dy 3。經(jīng)典寫法會(huì)維護(hù)一個(gè)決策參數(shù) p初始值 pInit 2 * dy - dx 2 * 3 - 5 1。步數(shù)當(dāng)前坐標(biāo)當(dāng)前 p判斷與動(dòng)作更新后的 p0(1,1)1起點(diǎn)直接畫點(diǎn)11(2,2)p 0x 和 y 都加 1p 2dy - 2dx 1 6 - 10 -32(3,2)-3p 0只 x 加 1p 2dy -3 6 33(4,3)3p 0x 和 y 都加 1p 6 - 10 -14(5,3)-1p 0只 x 加 1p 6 55(6,4)5p 0x 和 y 都加 1p 6 - 10 1最終輸出點(diǎn)序列是 (1,1)、(2,2)、(3,2)、(4,3)、(5,3)、(6,4)和真實(shí)直線吻合。這個(gè)推演過(guò)程看起來(lái)毫無(wú)波瀾但它隱藏了一個(gè)前提dx 和 dy 都是正數(shù)而且曲線的整體走向是第一象限、x 方向?yàn)橹鲗?dǎo)。2.2 一個(gè)“能跑但經(jīng)不起考驗(yàn)”的參考實(shí)現(xiàn)網(wǎng)上有很多簡(jiǎn)化版畫線函數(shù)大多數(shù)長(zhǎng)這樣void Line_Basic(int x1, int y1, int x2, int y2) { int dx x2 - x1; int dy y2 - y1; int p 2 * dy - dx; int x x1; int y y1; while (x x2) { OLED_DrawPixel(x, y, 1); x; if (p 0) { p 2 * dy; } else { p 2 * dy - 2 * dx; y; } } }這個(gè)函數(shù)只在“x2 大于 x1、y2 大于 y1、dx 大于 dy”的條件下正確。也就是說(shuō)它只能畫從左下到右上、且比較平緩的直線。第一象限正斜率的一部分線段湊合能畫其余七個(gè)方向基本全錯(cuò)某些方向直接死循環(huán)。真正通用的畫線函數(shù)必須同時(shí)處理坐標(biāo)的四種符號(hào)組合和斜率大于 1 兩種情況這正好是很多 OLED 圖形庫(kù)移植時(shí)翻車最集中的地方。2.3 脆弱點(diǎn)逐個(gè)點(diǎn)名方向、符號(hào)、主循環(huán)軸對(duì)照上面這段代碼可以找出三個(gè)致命設(shè)計(jì)缺陷。第一沒(méi)有處理 dx、dy 的符號(hào)。當(dāng) x2 x1 時(shí)dx 是負(fù)數(shù)pInit 的計(jì)算結(jié)果就完全偏離了正常范圍。比如從 (100,20) 畫到 (10,80)dx 10 - 100 -90dy 80 - 20 60p 2 * 60 - (-90) 210這個(gè)參數(shù)已經(jīng)失去決策意義。第二循環(huán)體里 x 永遠(yuǎn)做自增。如果終點(diǎn)在 x 的負(fù)方向x 每次加 1 只會(huì)離目標(biāo)越來(lái)越遠(yuǎn)。配合 while (x ! x2) 這種寫法x 從 100 出發(fā)目標(biāo)是 10x 朝著 101、102、103 一路跑下去條件永遠(yuǎn)不成立這就是死循環(huán)的直接來(lái)源。如果循環(huán)條件是 while (x x2)反向時(shí)條件一開始就是假循環(huán)體根本不執(zhí)行屏幕畫不出線倒是不會(huì)死機(jī)。第三主循環(huán)軸固定為 x 軸。當(dāng) dy 大于 dx 時(shí)直線更“陡”每一列 x 對(duì)應(yīng)多行 y。如果仍然以 x 為主循環(huán)軸相鄰兩個(gè)點(diǎn)之間 y 方向會(huì)跳變畫出來(lái)的線會(huì)出現(xiàn)明顯斷點(diǎn)俗稱“虛線感”。正確的做法是讓循環(huán)軸自動(dòng)選擇 dx 和 dy 中較大的一方。還有一個(gè)很多人忽視的隱藏問(wèn)題決策參數(shù) p、dx、dy 的類型選擇。如果用了 unsigned int 或者 uint16_tdx x2 - x1 在反向時(shí)會(huì)發(fā)生無(wú)符號(hào)回繞得到一個(gè)巨大正數(shù)后面所有判斷全部錯(cuò)亂。這個(gè)問(wèn)題單獨(dú)拎出來(lái)說(shuō)因?yàn)樗趩尾秸{(diào)試時(shí)非常迷惑人。3. 死循環(huán)的完整推演從(100,20)到(10,80)3.1 逐行跟蹤循環(huán)變量的變化我用一個(gè)具體調(diào)用把死循環(huán)的過(guò)程完整推演一遍。假設(shè)代碼是while (x ! x2) { OLED_DrawPixel(x, y, 1); x; if (p 0) { p 2 * dy; } else { p 2 * dy - 2 * dx; y; } }入?yún)⑹?x1 100y1 20x2 10y2 80。按錯(cuò)誤實(shí)現(xiàn)計(jì)算dx 10 - 100 -90dy 80 - 20 60pInit 2 * 60 - (-90) 210x 100y 20。進(jìn)入循環(huán)第一次迭代畫點(diǎn) (100,20)然后 x 變成 101。因?yàn)?p 是正數(shù)走 else 分支p 更新為 210 120 - 2 * (-90) 210 120 180 510y 變成 21。第二次迭代畫點(diǎn) (101,21)x 變成 102p 繼續(xù)增大。觀察這個(gè)趨勢(shì)就明白了x 每次加 1而終點(diǎn) x2 是 10兩者之差從 90 變成 91、92、93……永遠(yuǎn)不可能相等。y 倒是朝終點(diǎn)方向走但循環(huán)的退出條件只檢查 x 不檢查 y所以算法根本不知道 y 已經(jīng)到位。程序就這樣在 while 里無(wú)限畫點(diǎn)看似瘋狂工作實(shí)則原地空轉(zhuǎn)。如果換成 while (x x2) 這種條件反向畫線時(shí) x 100 大于 10循環(huán)體一次都不執(zhí)行函數(shù)直接返回。這倒是不會(huì)死機(jī)但調(diào)用方期待看到一條從 (100,20) 到 (10,80) 的線實(shí)際什么都沒(méi)畫出來(lái)。兩種寫法都不對(duì)只是后果不同。3.2 另一種隱蔽炸彈無(wú)符號(hào)整型下溢死循環(huán)還有一種非常隱蔽的觸發(fā)方式和算法結(jié)構(gòu)無(wú)關(guān)純粹是 C 語(yǔ)言類型轉(zhuǎn)換在搗亂。假設(shè)把 dx、dy 聲明成 uint16_t那么執(zhí)行 uint16_t dx x2 - x1 時(shí)如果 x2 - x1 是負(fù)數(shù)結(jié)果會(huì)變成一個(gè)巨大的無(wú)符號(hào)數(shù)。舉例來(lái)說(shuō)x1 10x2 100正常應(yīng)該是正 90。反過(guò)來(lái) x1 100x2 10得到 -90按 uint16_t 存儲(chǔ)就是 65536 - 90 65446。后面的 pInit 2 * dy - dx 會(huì)基于這個(gè) 65446 參與計(jì)算得到的決策參數(shù)同樣是天文數(shù)字。p 的正負(fù)判斷因此完全失去意義循環(huán)內(nèi)部的 x、y 增長(zhǎng)方向和終點(diǎn)完全脫節(jié)。單步調(diào)試時(shí)你會(huì)看到變量值在 60000 上下跳動(dòng)第一反應(yīng)往往以為是數(shù)據(jù)長(zhǎng)度不夠很少意識(shí)到它其實(shí)代表一個(gè)負(fù)數(shù)。這種問(wèn)題在“偶爾死機(jī)、不是必然死機(jī)”的故障里更常見(jiàn)。因?yàn)橹挥挟?dāng)坐標(biāo)差值恰好為負(fù)時(shí)才會(huì)觸發(fā)而測(cè)試者可能只在圖上畫了幾個(gè)固定方向的線段恰好避開了反向場(chǎng)景。等后面加菜單、畫波形、畫任意方向箭頭時(shí)死機(jī)就隨機(jī)冒出來(lái)了。3.3 順帶排查 OLED 畫點(diǎn)坐標(biāo)越界定位到死循環(huán)之后我順手做了一次代碼走查又發(fā)現(xiàn)一個(gè)藏在畫點(diǎn)函數(shù)里的隱患。OLED 顯示模塊的坐標(biāo)范圍有限128x64 意味著 x 是 0 到 127y 是 0 到 63。錯(cuò)誤版的畫線函數(shù)在反向場(chǎng)景下會(huì)把 x 推到 128、129、130 甚至更大直接調(diào)用底層畫點(diǎn)函數(shù)。如果底層畫點(diǎn)函數(shù)沒(méi)有做邊界裁剪這些越界坐標(biāo)會(huì)一路寫進(jìn)顯示 RAM 之外的內(nèi)存區(qū)域。更麻煩的是很多 OLED 驅(qū)動(dòng)庫(kù)會(huì)把顯示緩沖區(qū)定義成數(shù)組數(shù)組越界寫入可能覆蓋相鄰的全局變量包括循環(huán)變量、狀態(tài)標(biāo)志甚至函數(shù)返回地址。一旦循環(huán)變量被污染即使你修復(fù)了畫線算法本身程序也可能在別的地方出現(xiàn)莫名字段錯(cuò)誤或死機(jī)。我的建議是底層畫點(diǎn)函數(shù)永遠(yuǎn)保留邊界判斷最差也要做坐標(biāo)裁剪。這個(gè)習(xí)慣能讓上層圖形函數(shù)在調(diào)試期少背負(fù)一類“幽靈 bug”。就算性能緊張畫點(diǎn)函數(shù)里兩個(gè)比較指令的成本也遠(yuǎn)低于一次意外內(nèi)存覆蓋造成的排查時(shí)間損失。4. 修復(fù)與驗(yàn)證一套能覆蓋全象限的畫線函數(shù)4.1 修復(fù)后的完整代碼正確的 Bresenham 畫線函數(shù)有很多種等價(jià)寫法我推薦下面這個(gè)版本它同時(shí)處理了方向符號(hào)、斜率大于 1、主循環(huán)軸自動(dòng)切換三個(gè)問(wèn)題void OLED_DrawLine(int x1, int y1, int x2, int y2) { int dx (x2 x1) ? (x2 - x1) : (x1 - x2); int dy (y2 y1) ? (y2 - y1) : (y1 - y2); int sx (x2 x1) ? 1 : -1; int sy (y2 y1) ? 1 : -1; int err dx - dy; int e2; while (1) { OLED_DrawPixel(x1, y1, 1); if (x1 x2 y1 y2) { break; } e2 2 * err; if (e2 -dy) { err - dy; x1 sx; } if (e2 dx) { err dx; y1 sy; } } }幾個(gè)關(guān)鍵點(diǎn)說(shuō)明一下。dx 和 dy 都取絕對(duì)值這樣后續(xù)判斷不用關(guān)心坐標(biāo)差值的正負(fù)。sx 和 sy 記錄真實(shí)的前進(jìn)方向取 1 或 -1。err 初始值是 dx - dy它像一根“蹺蹺板”哪個(gè)方向落后就朝哪個(gè)方向補(bǔ)一步。e2 是臨時(shí)變量用來(lái)同時(shí)判斷 x 和 y 兩個(gè)方向是否都需要步進(jìn)。這個(gè)實(shí)現(xiàn)沒(méi)有顯式交換 x、y 軸但算法本身天然支持斜率大于 1 的情況當(dāng) dy 大于 dx 時(shí)err 初始值為負(fù)e2 dx 的條件會(huì)更頻繁成立y 方向自然變成主導(dǎo)方向。這也是它比一開始那個(gè)樸素版全面得多的原因。循環(huán)為什么用 while (1) 配合 break而不是 while (x1 ! x2 || y1 ! y2)因?yàn)槊枯喌?x1 和 y1 可能同時(shí)變化也可能只變化其中一個(gè)用 break 在“當(dāng)前點(diǎn)剛好是終點(diǎn)”時(shí)立即退出邏輯更直觀也不容易出現(xiàn)跨越終點(diǎn)的情況。坐標(biāo)值不超過(guò)屏幕范圍時(shí)最多執(zhí)行與長(zhǎng)軸像素?cái)?shù)相同次數(shù)的迭代性能完全夠用。4.2 六個(gè)方向八組用例的驗(yàn)證矩陣修復(fù)完代碼后我沒(méi)有直接燒錄到屏幕上而是先在 PC 上做了一次軟件模擬。做法很簡(jiǎn)單把 OLED_DrawPixel 替換成一個(gè)向控制臺(tái)打印坐標(biāo)點(diǎn)的函數(shù)然后用一組覆蓋全象限的用例跑一遍。編號(hào)測(cè)試直線覆蓋方向預(yù)期結(jié)果1(0,0) - (127,63)左下到右上dx dy完整連續(xù)直線2(127,63) - (0,0)右上到左下反向完整連續(xù)直線3(0,63) - (127,0)左上到右下反向斜率完整連續(xù)直線4(127,0) - (0,63)右下到左上反向斜率完整連續(xù)直線5(0,30) - (127,30)水平線每個(gè) x 對(duì)應(yīng)唯一 y6(64,0) - (64,63)垂直線每個(gè) y 對(duì)應(yīng)唯一 x7(0,0) - (63,63)45 度對(duì)角線無(wú)斷點(diǎn)、無(wú)重復(fù)點(diǎn)8(10,10) - (120,12)接近水平的小斜率線點(diǎn)和真實(shí)直線偏差不超過(guò) 1第一輪模擬就跑出了兩條輕微變形的斜線原因是模擬程序里畫點(diǎn)坐標(biāo)我用了 x、y 直接打印沒(méi)有做坐標(biāo)換行對(duì)齊以為是算法問(wèn)題調(diào)整打印格式后所有用例全部通過(guò)。這也提醒了我算法驗(yàn)證階段一定要把可視化和算法本身剝離開別把顯示層的問(wèn)題怪到算法頭上。4.3 上板驗(yàn)證時(shí)想加的兩個(gè)安全措施模擬測(cè)試通過(guò)之后我又在板子上補(bǔ)了兩道保險(xiǎn)。第一道是給畫線循環(huán)加一個(gè)看門狗喂狗機(jī)制。如果有意外情況導(dǎo)致函數(shù)長(zhǎng)時(shí)間不返回至少系統(tǒng)能觸發(fā)復(fù)位而不是像第一次那樣徹底假死。第二道是在畫線函數(shù)入口和出口各放一條串口日志記錄入?yún)⒆鴺?biāo)和循環(huán)結(jié)束后的實(shí)際坐標(biāo)。這樣跑自動(dòng)化測(cè)試時(shí)如果某條隨機(jī)線段讓函數(shù)“陷進(jìn)去”日志文件里能看到最后一次正常調(diào)用的坐標(biāo)組合復(fù)現(xiàn)概率會(huì)高很多。我還順手寫了一段隨機(jī)線段測(cè)試代碼每輪隨機(jī)生成 1000 組坐標(biāo)坐標(biāo)范圍限制在 0 到 127、0 到 63 之間依次調(diào)用畫線函數(shù)并在每次調(diào)用后檢查一個(gè)全局計(jì)數(shù)器是否增長(zhǎng)。這個(gè)計(jì)數(shù)器放在主循環(huán)里一旦畫線卡住串口調(diào)試助手會(huì)立刻發(fā)現(xiàn)計(jì)數(shù)不再增加。連續(xù)跑了幾萬(wàn)條隨機(jī)線段沒(méi)有再出現(xiàn)死循環(huán)。5. 把死循環(huán)按死在搖籃里避坑清單與排查手段5.1 嵌入式循環(huán)里最常見(jiàn)的七種死法畫線函數(shù)的死循環(huán)只是眾多死法之一。這些年調(diào)試過(guò)不少“程序跑飛”的問(wèn)題總結(jié)出七種最常見(jiàn)的循環(huán)結(jié)構(gòu)誤用逐一列出來(lái)供排查時(shí)對(duì)號(hào)入座。死法典型代碼特征觸發(fā)條件循環(huán)變量方向與判定條件相反while (x ! x2) 但 x反向遍歷時(shí)無(wú)符號(hào)數(shù)參與減法產(chǎn)生回繞uint16_t dx x2 - x1x2 x1 時(shí)for 循環(huán)體內(nèi)修改循環(huán)變量循環(huán)體內(nèi)調(diào)用函數(shù)間接改 i函數(shù)副作用浮點(diǎn)數(shù)判等while (f ! 0.0f)浮點(diǎn)截?cái)鄬?dǎo)致恒不等中斷與主循環(huán)共享變量無(wú)保護(hù)主循環(huán)等待標(biāo)志位清 0中斷修改標(biāo)志時(shí)機(jī)不確定越界寫壞相鄰循環(huán)變量數(shù)組寫越界覆蓋 while 條件特定輸入數(shù)據(jù)時(shí)優(yōu)化器對(duì)循環(huán)變量過(guò)度優(yōu)化volatile 缺失看似無(wú)限循環(huán)實(shí)際被優(yōu)化掉大多數(shù)情況下只要把循環(huán)條件改成可收斂的等價(jià)形式或者明確變量的符號(hào)屬性問(wèn)題都能直接消除。比如 while (x ! x2) 改成 while (x x2) 或者引入方向符號(hào)之后用 while (x ! x2) 才安全。5.2 定位死循環(huán)的三板斧條件斷點(diǎn)、串口日志、看門狗真遇到死循環(huán)我的排查順序有講究。首選是調(diào)試器的條件斷點(diǎn)在循環(huán)入口處設(shè)置斷點(diǎn)條件寫成 x 200這樣變量接近終點(diǎn)時(shí)斷點(diǎn)才觸發(fā)不用單步幾千次。斷點(diǎn)觸發(fā)后查看 x、y、err 三個(gè)變量的變化趨勢(shì)比盲猜高效太多。如果硬件調(diào)試器不方便就用串口日志。在循環(huán)內(nèi)部每 100 次迭代打印一次當(dāng)前坐標(biāo)和 err 值跑幾秒鐘之后看日志規(guī)律是收斂還是發(fā)散一目了然。等到定位完問(wèn)題再把日志刪掉或者變成條件編譯別影響最終性能。看門狗是我建議常開的調(diào)試伴侶。不是靠它解決問(wèn)題而是靠它把“整機(jī)死機(jī)”變成“反復(fù)復(fù)位”配合復(fù)位原因寄存器可以統(tǒng)計(jì)死機(jī)頻率。有時(shí)候問(wèn)題只在特定路徑出現(xiàn)沒(méi)有看門狗你只能手動(dòng)按復(fù)位鍵次數(shù)多了很容易煩躁有看門狗至少能自動(dòng)跑測(cè)試。5.3 一個(gè)值得養(yǎng)成的習(xí)慣先畫坐標(biāo)紙?jiān)俅a代碼最后分享一個(gè)我后來(lái)一直保持的習(xí)慣。任何圖形算法要寫到 OLED 或 LCD 之前先拿一張方格紙把坐標(biāo)系畫出來(lái)左上角是 (0,0)x 正方向朝右y 正方向朝下。然后把你要支持的八個(gè)方向直線全部標(biāo)一遍再對(duì)照代碼判斷每個(gè)方向下 dx、dy、sx、sy、err 各自是什么值。這一步看起來(lái)花了幾分鐘實(shí)際上能擋掉九成以上的邊界 bug。那次 OLED 畫線死機(jī)事件之后我再也沒(méi)有在圖形函數(shù)的邊界條件上翻過(guò)車。后來(lái)寫菜單圖標(biāo)、畫波形、做簡(jiǎn)易指針表盤都是先把方向、符號(hào)、邊界條件寫在注釋里再開始填代碼。調(diào)試器暫停的那一瞬間我看到程序卡在畫線函數(shù)的 while 循環(huán)里心里其實(shí)松了一口氣。因?yàn)閱?wèn)題找到就好辦最怕的是查了兩天找不到原因?,F(xiàn)在回頭想這個(gè)坑本質(zhì)上不是算法太深?yuàn)W而是寫代碼時(shí)只考慮了最常見(jiàn)的正向場(chǎng)景把所有其他方向都當(dāng)成了“用戶不會(huì)用到”的情況。嵌入式開發(fā)里哪有那么多“不會(huì)用到”屏幕一旋轉(zhuǎn)、UI 一換風(fēng)格、坐標(biāo)一反向隱藏的邊角條件立刻集體出動(dòng)。好在 Bresenham 算法本身并不復(fù)雜理解它如何用誤差項(xiàng)在 x、y 兩個(gè)方向之間做取舍這個(gè)坑就永遠(yuǎn)不再是坑。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
日韩精品无码99| 一起草av| 五月深爱网| 3p久久| 五月激情天| 五月丁香啪啪伦理电影| 欧美猛片| 亚洲婷婷丁香五月天激情小说| 九九激情视频| 中文AⅤ大全| 日日夜夜婷婷| 另类专区在线观看| 日本系列_4页_777FP| 男人综合网| 九月激情网| 婷婷五月天天天| anquye伊人| 久久精品系列| 四月婷婷五月丁香| 婷婷久久图片| 五月丁香婷婷婷激情爱爱| 丁香婷婷AV| 操操啪| 最新精品视频99| 成人看片网站| 婷婷五月黄色激情在线| 99这里的视频都是精品| 激情五月天噢美| 亚洲一级色电影| 爱iii做iiii日日| 欧美亚洲色色色色| 五月天丁香婷婷视频网址| 99热精品在线播放| 色色色热| www.婷婷com| 亚洲va综合va国产va中文| 日本91在线| www.日本91| 五月天婷婷7米| 深爱激情五月婷婷| 在线观看免费狠狠色丁香香综合| 狠狠五月激情丁香六月| 亚洲成人免费在线| 99性爱| 婷婷激情综合| 97色婷婷| 久久婷婷五月天丁香| 国产午夜成人免费看片无遮挡| 久久婷婷五月| 碰99在线| 超碰三级片| 色婷婷激情五月天| AV色五月婷婷| 爱iii做iiii日日| 久久久99精品免费观看| 91在线资源| 天天日日| 激情99| 欧美天堂久久| 婷婷色播色五月五色五月天色妇| 九九一综合精品| 丁香六月av| 九六五月天婷婷| 狠狠狠狠狠操| 欧美大道不卡| 99ri在线视频| 国产亚洲AV人片在线| 丁香五月婷婷影视先锋| 色色色婷婷五月| 国产成人综合网| 色之综合网| 婷婷五月天亚洲激情戏精品| 婷婷五月av| 丁香五月天婷婷中文字幕| 99这里只有精品视频| 婷婷五月天伊人| 亚洲秘 无码一区二区三区妃光/1| 玖玖午夜视频| 99在线精品免费视频| 色婷插| 99热在线网站| 狠狠色狠狠干| 国产va视频| 婷婷色中文字幕| 色婷婷五月天| 碰碰人人漕| 天堂资源欧日浪女在线播放| 激情二色月| 天天操天天草天天草天天| 午夜激情五月天| 色五婷婷在线视频| 国产精品久久久久久亚洲毛片| 精品久9| 丁香五月婷婷天堂大香蕉| 久婷婷婷| 99re视频精品| 日韩操逼小电影| 欧美五月丁香| 香蕉AV777XXX色综合一区| 激情婷婷五月社区| 深爱五月激情网| VfJxEwPH| 国产69久久久欧美黑人A片| 9色操| 九九re精品视频在线观看| 天天日夜夜B久久| 丁香五月六月婷婷殴美综合| 日本五月婷婷| www,超碰| 色J香五月天| AA丁香综合激情| 国产午夜伦鲁鲁| 操逼国产91| 久久久久亚洲A∨成人乱码电影| 丁香婷婷六月在线资源观看| 成人av免费观看| 五月婷婷婷色| 色婷丨日丨天丨综合久久| 神马欧美精| 免费观看欧美成人AA片爱我多深 | 五月丁香性爱| 99精品小视频| 怎么样可以看免费的一级av| 综合丁香婷婷五月天| av免费人人| 思思热精品在线| 亚洲av成人一区二区电影在线| 轮奸综合网| 五月色丁香视频精品| 91超级碰碰碰| 色玖玖爱| 日韩久热| 综合激情五月婷婷| 婷婷五月天综合久久| 99久久99九九99九九九| 操碰97| AV性爱在线| 99精品国产乱码久久久人妻| 婷婷久久欧美| 五月丁香婷婷啪啪| 久热这里只有精品性色AV| 噜噜国产| 99爱爱网| 97色热| 噜噜五月天综合| 丁香五月综合图片在线观看| 婷婷色导航| 另类专区在线观看| 亚洲五月婷婷| 欧美日韩99| 操骚货在线| 99色综合久久| 99日这里只有精品| 91碰操| 五月天伊人手机在线播放AV| 99热在线极品极品| 五月丁香六月婷婷网站| 一区操| 婷婷五月婷婷五月天| 五月天色不卡| 色婷婷五月基地在线| 国产性爱亚洲是图| 激情深爱婷婷网| 亚洲色99| 五月天自拍网| 91se精品国产| 国产成人99久久亚洲综合精品| 屁股翘好撅高迎合跪趴| 热这里| 99热个人在线| 欧美美美女性色视频| 亞洲自怕| 婷婷午夜精品久久久| 天色综合网| 欧洲激情精品婷婷| AA久久| 丁香五月欧美激情| 一区二区三区四区五区| 六月丁花香啪啪激情欧美| 天天操,夜夜骑| 东京热五月婷婷| 热久久视频99| 狠狠综合区| 99色热视频在线| 久久亚洲天堂| 亚洲精品视频在线| 狠狠操天天日| 国产综合婷婷| 九九成人| 99热99热不卡| 日韩啪| 青青热久精品视频在线观看| 99久久国产宗和精品1上映| 日日撸日日操| 91色色色18| 超碰大香蕉网| 99热日本| 国产肏屄大片| 欧美槡BBBB槡BBB少妇| 五月综合六月丁| 黄色aa观看aaguochan| 九九99精品视频在线观看| 日本色色网站| 八戒青柠影视剧在线观看| 亚洲色色色色| 色婷婷香蕉| 欧美99| 天天天摸夜夜夜玩| 九九Av| 国产肥白大熟妇BBBB视频| 久久九九99亚洲国产久精综合| 99热色综合| 婷婷5月色| 久久九九99视频| 99热这里是精品| 色婷婷基地| 七七婷婷综合| 另类视频在线| 色五月丁香婷婷| 激情婷婷五月天| 国产黄色在线观看| 99热这里都是精品| 天天狠狠色综合| 性爱五月婷婷| 少妇伦子伦精品无吗| 真实亲子乱子伦高清在线观看| 丁香五月天堂| 成人丁香五月婷| 九九视频这里只有精品| 啪啪六月婷婷| 99re热| 免费啪啪啪网站| 亚洲天堂热| 欧美丁香婷婷五月天| 激情综合五月天| 在线综合亚洲欧美65| 91免费看片| 99re思思热这里| 亚洲一级色电影| 大香蕉久久视频久久视频 | 99久久久免费| 五月丁香激情四射| 亚洲丁香五月在线观看| 99er这里只有精品| 夜夜躁婷婷AV| 91传媒无码人妻精| 中字幕视频在线永久在线观看免费| 夜色综合网| 色婷婷伦理| 香蕉操亚洲| 国产精品24r| 五月天激情网站| 久久亚洲天堂| 六月激情综合| 99只有这里有精品在线视频| 久久婷婷五月天激情唯美| jiujiu热在线视频| 婷婷五月综激情| 伊人超碰在线| 沈娜娜av| 久久婷婷网址| 色色热日| 激情国产五月| 免费视频1区| 99亚洲视频| 丁香五月91| 日韩爱操视频| 99热网站| 五夜丁香| 丁香五月天堂网| 日日爱699| 精品99网站| 开心婷婷五月激情网小说| 综合99综合久久久久久久| 操b视频在线观看一区二区| 五月激香蕉网| 91狼友视频在线观看| 99亚洲天堂| 亚洲国产99| 久久色区| 五月丁香综合激情| 99热中国| 婷婷综合五月天亚洲综合| 五月丁香色播| 这里只有精品视频在线看| 草操AV在线| 97人人干| 五月婷婷六月丁香综合视频在线| 五月天色婷婷av| 99丁香五月婷| 天天综合天天做天天综合| 噜综合| 国产99美少妇| 五月婷婷久久爱| 无码一区二区三区四区五区| 婷婷五月天伦理| 色小说婷婷五月天天天| 色色色色av777| 色婷婷丁香五月高清在线| 天天日夜夜高潮| 欧美美女国产日韩一区二区久 | 人人舔人人色人人高潮| 开心五月激情五月丁香五月婷婷| 五月丁香婷爱在线| 99啪99| 久久五月天色婷婷| 天天爽天天日| 日韩AV免费看| 综合伊人久久| 久色视频在线| 婷婷五月天日日日干干干| 六月丁香激情综合| 亚洲色五月| 婷婷久久网| 丁香五月AV| 亚洲乱码日产精品BD| 五月天婷久久| 91丨九色丨熟女| 丁香六月婷婷久久综合| 激情五月色综合国产精品| 综合激情深爱| 久9久9久9久9久9久9| 久热只有精品| Y11111111111少妇电影院| 成人一区在线观看| 成人深爱丁香五月| 99国产这里只有精品| 色五月婷婷五月| 狼友视频在线观看18| 五月婷婷啪啪| 丁香五月天亚洲综合| 国产色网站| 天天日夜夜B久久| 天天精品视频在线观看视频| 久草视频一,二三四| www.色五月| 色九四色| 丁香六月婷婷久久综合八月| 久久国产色| 日本久久天堂| 免费色婷婷| 99热碰碰热| 五月天欧美 另类小说| 99热免| 国产成人网址| 色婷婷综合电影| 婷婷九月色| 免费观看的AV| 色播播五月天| 国产成人AV在线播放| 婷婷五月天成人动漫 | 开心五月综合激情网| 丁香五月婷婷基地| 婷婷涩涩五月天| 狠狠色丁香99| 丁香色婷婷| 午夜伊人大香蕉| 自拍偷窥99热| 五月天色不卡| 久久五月婷综合| 九九五月天| 色了色综合| 亚洲色在线观看| 五月丁香六月停停停| 久久中文人妻系列| 97色啪| 色婷婷很很十八禁| 天堂爱爱| 婷婷色五月天在线| 9久国产| 99综合一区| 色情综合网| 激情人妻综合| 久久激情网| 国产精品久久久久久久久久| 丁香婷婷综合激情五月色,开心五月丁香花综合网,激情综合五月亚洲婷婷,五月天 | 婷婷久久网| 亚洲另类噜噜| 综合色、色综合| 久久久精品视频79| 六月婷婷av| 五月天综合色| 九九免费精品| 亚洲a片免费观看| 操逼福利视频| 97精品人人A片免费看| 久久婷婷五月天懂色| 久久机热/这里只有精品| 4438亚洲欧美| 伊人久久婷婷五月天激情四射| 岛国AV网| 亚洲综合在线视频| 天天色天天操天天射| AV在线大香蕉| 色99视频| 色噜噜狠狠色综合无码久久欧美| 久久婷婷六月综合| 大香蕉九九| 久久久婷婷五月亚洲97号色| av国产精品偷| 综合激情网五月激情| 大香蕉婷婷五月天| 超碰人人操在线| 九色七七| 婷婷激情综合网| 超碰成人av| 婷婷五月色情| 精品久久9| 久婷久婷| 99久久综合网| 五月婷婷开心亚洲无| 天天干狠狠| 色欲丁香| 91日本在线观看| 立川无码av| www.婷婷| 久久视频在线| 伊人狠狠色婷婷综合丁香一区| 久久国产色| 激情婷婷五月天丁香| 婷婷五月情天| 日本久久性| 九九色大香蕉| 婷婷五月天色色| 操一区| 99视频在线| 五月天婷婷久久| 婷婷五月天激情网址| 99∨VTV| 狠狠人妻久久久久久综合丁香| 办公室少妇激情呻吟A片在线观看| 深爱激情九九五月天| 欧美精品在线观看| 久久99热在线观看| 国产亚洲色婷婷久久99精品91| 天天天天操| 色婷婷视频| 丁香六月婷婷色XXXX| 色XX综合网| 97资源碰碰在线| 91偷拍视频| 婷婷丁香色五月亚洲| 婷婷中文字幕| 色婷五月天综合网| 九九AV在线| 天天干天天操天天上| 一本久婷婷综合| 日91高清无玛| 天天草狠狠擦| 色五月大香蕉婷婷| 超碰在线人妻| 婷婷香五月天| 综合丁香婷婷五月天| 丁香五月婷婷激情四射深爱激情| 天天综合色丁香| 开心久久xxx色| 91碰碰碰久久久久| 综合五月天| 蜜桃婷婷丁香| 色婷婷狠狠爱| 黄色高清无码| 五月天com| 可以免费看AV网站| 久久视这里只有精品| 中国女人内射6XXXXX| 日本五月天婷婷丁香| 丁香五月天AV在线| 97色视频网| 人人摸人人干| 国产激情在线| 婷婷四色成人综合色视| 欧美色图天堂网| 五月天色婷婷综合| 色五月aV| 婷婷亚洲综合| 久久一伦| 国产午夜伦鲁鲁| 七七九色| 婷婷丁香五月综合网上| 青草久久五月婷伊人| 超碰在线观看9| av在线播放网站| AV在线免费播放| 美英法精品无码免费视频| 这里只有精品日韩| 啪啪99| 97久久精品视频| 久久99网| 九色自拍| 五月丁香综合激情| 天天婷婷色六月| 99re久热只有精品6在线直播| 婷婷五月天丁香激情| 亚洲亚洲人成综合网络| 五月丁香六月婷婷久久| 天天干天天干天天| 五月丁香龟婷婷| 丁香五月激情综合在线观看| 婷婷五月天堂| 啪啪黄页网| ztEJj| 丁香五月天论坛| 伦99热| 人妻爽爽爽久久久久久久久| 五月伊人网| 性爱五月婷婷| 五月婷九九草| 四色五月婷婷| 狠狠婷婷日韩| 97久久久久久久久久久| 欧美日韩中文国产一区发布| 在线不卡视频| 婷婷五月天基地| 玖玖午夜视频| 亚洲六月色婷婷| 99热这里只有精彩| 婷婷五月激情五月激情| 久热视频这里只有精品| 日本va欧美va欧美va| 久久99色色| 亚洲激情丁香五月基地| 丁香五月激情综合在线观看| 丁香五月综合福利视频导航| 激情综合五月色在线| 伊人春天av| 色色丁香| 伦乱美欧| 天天干天天 亚洲| 婷婷五月天Av| 99热这里有精品24| 欧美啄木乌丝袜人妻系列| 激情婷婷丁香色五月| 97碰成超视频免费视频| 久久99精品久久久| 大香蕉Av在线| 久9免费视频| 麻豆雪千夏| 亚洲欧洲午夜成人精品av| 婷婷久久影院| 超碰超碰在线| Av性爱网站| 婷婷五六日| 色五月婷婷视频| 久久久区区一久久久久久| 热的无码综合视频| 在线观看中文字幕| www色五月| 色一情一乱一乱一区91Av| 亚洲人妻av| 五月激情在线| 99人妻碰碰久久久禁片| 久久性爱激情| 91操网| 色五月激情问网站| 婷婷五月天在婷| 婷婷五月天电影网| 亚州操人在线视频| 九月丁香久久网| 日本全黄一级999| 99黄色在线视频精品熟女| 91丨九色丨大屁股| 五月天全国最大成人网| 婷婷丁香18| 久久多色| 国产精品久久久久久久久久| 波多野结衣不卡AV| 日韩成人电影在线播放| 色色影院aaaav| 亚洲无码九九| 欧美内射AA| 五月网站| 操日视频| 中文aV网| 玖玖五月| 亚洲精品无AMM毛片| 色婷婷电影| 四LLL少妇BBBB槡BBBB| 97在线天堂| 一逼色综合| 丁香六月婷婷综合麻豆| 婷婷 伊人 久久| 五月天激情四射| 超碰国产一区| 成人电影一区| 五月天婷婷婷| 日本婷婷| 久热久操久热久草国产91| 7月婷婷六月丁香| 亚洲欧美另类在线23p| AV在线中文| 国产性爱在线| 久久久网站| 六月丁香社区| 精品久热| 五月丁香花激情综合网| 五月丁香六月色婷婷| 青青草轻轻操| 丁香五月激情啪啪综合| 五月花婷婷在线精品视频| 人人射人人高潮| www.狠狠| 外国碰视频网站97| 五月婷婷免费看| 99视频| 婷婷色偷拍| 一级性感毛片| 777久久精品| 五月婷婷视频| se色婷婷视频| 欧美大奶熟女噜噜噜噜| 婷婷五月电影| 伊人超碰在线| 五月天婷婷乱| 日本婷婷| 91九色精品女同系列| 五月婷婷婷婷| 婷婷的五月天另类视频| 狠狠另类视频| 开心五月天激情网| 日韩啪| 婷婷丁香五月在线播放| 精品一二三区久久AAA片| 久久98| 婷婷综合一二三| 五月激情综合网婷婷| 色婷丁香五月| 五月天开心网| 国产成人网| 99啪啪网| 九九色区| 天天干一干| 91啦丨九色丨刺激中文| 婷婷五月中文字幕国产| 乱精品一区字幕二区| 超碰成人免费| 五月婷婷大香蕉| 日韩黄色网络| 久草视频一,二三四| 久久激情五月天| 亚洲AV另类| 五月天天爽| 丁香六月综合| 夜夜操激情| 久久婷婷综合五月| 丁香六月毛片| www.99色在线| 深爱五月网| 大大香蕉综合在线| 五月丁香婷爱在线| 色99视| 欧美成人色婷婷| 无码一级片| 99热这里只有精品在线| 三级毛片7979| www.婷婷亚洲基地| 欧美精品99久久久| 五月天色色色| 欧美性爱特黄一级aaaassss| 一二线视频 另类| 1995年关宝慧版蜘蛛女| 人人操9| 五月婷婷在线综合| 亚洲乱码w在线观看| 亚洲啪啪网| 91超碰在线观看| 五月婷激情| 安息电影在线观看完整版| 全部老头和老太XXXXX| 就爱啪啪婷婷| 热99热久| 9有码中文| 综合激情五月天| 最近韩国日本免费高清观看| 无码婷婷五月天| 色情久久久| 黄色三级日本| 99婷婷| 久久婷婷色五月| 色色色色色五月| 成人在线不卡| 久久99热这里只有精品23| 亚洲精品V天堂中文字幕| 婷婷丁香五月天中文字幕| 怡红院91a√| 色情丁香五月婷婷精品| 久er7久热| 日本三级第一页| 亚洲丁香婷婷丁香五月天激情| 伊人久久大香蕉网| 激情第四色| 久久思思精品| 亚洲中文字幕AV| 国产精品久久久久久久久久| 日韩无码色色| 热99精品视频在线观看| av操B网站| 最新av在线观看| 性 色 婷婷| 久久99jiu9| 婷婷五月天综合在线| 色五月婷婷啪啪五月| 色婷婷影| www.夜夜| 色五月婷婷亚洲最大| 人人爽天天莫| 欧美色偷偷大香| 日韩AV大全| 操射国产日本| 婷五月丁香俺| 色涩影院六月丁香| 国产国产乱老熟女视频网站97| 丁香五月亚综合图片| 99热伊人| 婷婷丁香五月天色色| 五月天激情图片| 天天狠天天叉| 六月伊人婷婷| 日本三级中国三级99| 99久久精品免费精品国产_国产精品久久久久久_国产在线|日韩_久久国产精品电影 | 激情婷婷五月丁香啪啪啪| 91碰超| 婷婷综合网站| 伊人五月天男人的天堂在线| 婷婷丁香五月天熟女丝袜| 激情六月天| 丁香九九九九| 五月丁香六月婷婷在线观看| 亚洲五月天天| 五月婷婷AV| 丁香色五月AV在线| 人人人操 超碰| 色婷婷亚洲精品天天综| 丁香五月成人婷婷| 久热a| 综合激情网五月激情| 色情五月天。| 欧美精品狠狠色丁香婷婷| 91久操| 九九热视频99| 丁香五月成人av| 欧洲综合视频在线观看。欧洲,亚洲综合食品在线观看。 | 久久婷婷青草五月天| www久久99| 婷婷五月天.com| 少妇搡BBBB搡BBB搡毛茸茸| 深爱五月天| 色性五月天| 99久久国产宗和精品1上映| 丁香激情网| 色性日本| 青草性爱视频| 激情综合无码| 啪啪夜久久| 97人人操人人拍| 天天干一干| 久久综合婷婷| 午夜婷婷久久| 99色免费视频| 五月色婷婷综合丁香精品无遮挡| 欧美在线看| 五月天婷亚洲天综合网综合| 日本在线视频播放91| 免费V片在线| 精品国产AV色一区二区深夜久久| 国产无套精品一区二区| 九九这里只有精品| 79色色色色| 狠狠色综合网| 天堂婷婷丁香六月网| 婷婷婷久久| 色色欧美色色色| 五月丁香色色网| 91蜜桃婷婷狠狠久久综合9色| 99色在线观看视频| 六月婷婷综合| 婷婷六月丁香五月| 99热99热不卡| 久久婷婷五月综合色丁香| 99精品在线下载| 色婷婷香蕉丁丁网| 天天干天天干天天操| 狠色综合网| 超碰免费人人| 五月丁婷香| 99热99思午夜精品| 成人小说 五月天 婷婷| 插插插色综合网| 五月丁激情| 五月婷婷之六月丁香| 操一操插一插| 九九热免费| 伊人在线视频| 996热re视频精品视频| 国产成人99久久亚洲综合精品| 夜夜操天天干| 国色天香成人网| 亚洲成人日韩无码精品| 91色欲综合| 五月婷婷婷综合网| 五月婷婷六月丁香免费| 欧美综合激情五月丁香| 天天成人丁香美女AV| 天天天操天天天日| 99乱视频| 久久婷婷影院| 182无码| 久操人| 五月天综合久久| 亚洲小说五月婷婷| av在线色五月丁香婷区久| 色色色9| 99日本在线| 五月丁香综合激情| 国产精品成人网址| 色情五月天丁香社区| 无码色色色色色| 五月天影院婷婷在线观看| WWW,五月| 操人91| 亚洲妇女熟BBW| 亚洲啪| 婷婷色中文字幕| www.五月婷婷久久.com| 免费视频无码| 五月激情影院| 99干在线| 婷婷激情丁香五月天综合| 严洲天天插| 女同激情久久av久久| 香蕉久久av一区二区三区| www.1024久久| 色五月丁香六月资源站| 丁香婷婷视频一区二区| 丁香啪啪| 91啦丨九色丨刺激中文| 九九热超碰| 蜜乳中文字| 99视频在线精品| 日本在线观看aaa 99| 激情综合网丁香| 五月天婷婷丁香社区| 色综合色色| 99热人人操人人操| 亚洲午夜精品久久久久久人妖| 五月深爱网| 久久精彩免费视频| 绿色小导航AV| 狠狠干总合| 国产熟女一区二区三区五月婷| 99热99艹在线观看| 久久婷婷综| 亚洲色模骚货| 白人荫道BBWBBB大荫道| 婷婷久久综| 婷婷色成人| 天天做天天爱| 4399在线观看免费毛片| 色婷婷激情视频| 天天爱天天做天天操| 婷婷激情五月天小说| 操逼福利视频| 久久久噜噜噜久久人妻| 五月婷婷六月丁香玖玖玫瑰91| 夜夜天天天天天干天天爽| 亚洲99综合| 久久久色情| 五月丁香婷婷激情| 九九热这里只有精品6| 久久婷婷五月综合色丁香| 丁香激情六月天婷婷| 99热手机在线精品| 一区二区免费看| 天天做天天爱天天要| 国产精品日本一区二区在线播放| 五月色网| 视频一二区| 亚洲第二AV| 开心五月丁香啪| 婷婷五月天综合网| 五月香婷婷| 亚洲成人高清在线| 2013AV天堂| www.深爱激情| 色婷婷五月天视频在线| 天天揷综合网| 五月综合激情图片| 99超级碰免费视频| 久久久网站| 深夜男女福利刺激影院一区完整| 成人在线日韩欧美| 色婷婷六月丁香综合欲精品| 99热在线极品极品| 亚洲99在线视频| 国产在线网| 爱的综合网| 99视频| 五月婷婷和六月| 久久激情视频| 99久热这里有精品| 色五月婷婷五月天| 九九免费精品在线视频| 婷婷色导航| 亚洲小说五月婷婷| 日本天天色| 99久久a线观| 色九九综合| 777.色色| 日本不卡一区二区三区| 五月色欧洲| 日韩国产在线精品| 久久久99精品| 色色五月天 亚洲| 色噜噜婷婷| 婷婷黄色网| 日韩无码色色| 婷婷天堂视频| 五月婷婷天堂| 色色婷| 婷色五月天| 天天日人人爽| 就去色色五月丁香婷婷久久久| 97婷婷五月天| 97香蕉人人在线观看| 影音先锋天天日| 殴美日比视频| 99天堂网| 婷婷五月天人妻| 超碰cap| 99热首页| 99自拍视频网站| 人人摸人人| 五月婷无码| 一本婷婷丁香久久| 久久六月天| 久久婷婷色综合| 夜夜谢天天干| 青青草婷婷综合五月| .肏屄视频一区二区| 99综合网| 天天骑日日爽| 欧美情色一区| 色色色色色色网| 欧美色久| www.夜夜| 婷婷五月天激情五月天深爱五月天| 十区av| 丁香五月六月| 色播婷婷五月天| 99手机在线精品视频| 99久久极情精品一区| 桔色成人官方网站| 激情性爱网站| 亚洲va综合va国产va中文| 久噜久噜| 欧美久久网| 亚洲色色色| www.com五月天| 啪啪91| 亚洲中文字幕AV在线| 色五月综合资源推荐| 久久中文人妻系列| 91国产精品视频播放| 日本视频99| 亚洲婷婷开心五月| 国产永久一黄| 五月婷婷开心网| 婷婷 月 丁香| 日本精品在线噜噜噜| 中文AV网站| 色色操| 这里只有精彩视| 色婷视频| 97超喷视频在线观看| 99综合视频一体| 久久性爱视频这里只有精品 | 五月婷婷丁香| 激情五月色综合国产精品| WWW.久久久久久久| 五月天色色无码| 超碰大香蕉网| 大陆肏屄视频| 五月天婷五月天综合网小说首页-五月天激激婷婷大综合,婷婷亚洲综合五月天小说 | 91人人网| 久久艹 五月天| 亚洲精品成人| 五月深爱网| 婷婷综合另类小说| 停停六月 综合| 色99视频| 色婷婷激情四射视频| 九九九午夜影院成人| 國語久久婷| 日韩人妻在线播放| 久久婷婷视频| 色欲午夜无码久久久久久张津瑜 | 婷婷五月激情在线视频| 日日夜夜狠狠婷婷色| 狠狠色噜噜色狠狠狠综合色 | 日日干夜夜干| 五月婷婷综合在线| 五月丁香啪啪综合网| 99热福利| 免费成人网在线观看| 亚洲乱码日产精品BD| 丁香婷婷网| 五月丁香六月综合激情| 思思热精品免费视频| 色九月| 亚洲 视频 导航 一区| 婷婷狠狠青青| 超碰v| 无码操B| 五月婷婷中文字幕| 人人摸人人干人人做| 婷婷九月激情网| 99色综合网| 九月丁香婷婷综合| 五月婷婷日| 亚洲情欲久久| 99ri网站在线观看| 拍真实国产伦偷精品| 欧美操人| 996er热| 激情五月丁香六月综合AVXXXX| 中文国产五月天| 亚洲XX日本| 激情婷婷五六月天| 亭亭玉立国色天香| 亚洲超碰在线| 99久久久久久| 色色五月天丁香婷婷| 综合色色综合| 久久婷婷激情四射五月天| chaopengdaxiangjiao| 少妇人妻丰满做爰XXX| 色色色五月婷婷| 五月天婷婷在线视频| 综合婷婷| 欧美色图天堂网| 狠狠综合网| 久操热线| 99日本精品视频热| 九九AV在线| 91丨九色丨43老版熟女| 91美女被操| 99日本黄站| 色三级色三级| 天堂A∨在线| 99热在线观看| 久久六月天| 亚洲精品大片| 丁香五月天激情综合| 五月激情六月丁香| www.色五月| 午夜精品人妻无码一区二区三区| 亚洲亚洲人成综合网络| 亚洲欧洲中文日韩久久AV乱码| 99性爱| 欧美叉叉叉BBB网站| 亚洲妇女熟BBW| 大香蕉伊人丁香五月| 一区二区无码视频| 操b视频在线观看一区二区| 五月婷婷黄色毛片| 97碰人人操| 久久六月天| 欧洲色区| 色九四色| 久久婷婷资源| 婷久久| 在线观看熟女少妇| 蜜桃婷婷丁香五月天狠狠久久综合| 午夜九九电影| 激情丁香六月| 国产精品日日躁夜夜躁| 深爱开心激情| 99国产精品久久久久久久久久久| 精品九九九久| 亚洲超级碰| www.久久爱| 另类综合激情| 色五开心五月五月深深爱| 日本五月天网站| 91狠狠综合久久| 欧美槡BBBB槡BBB少妇| 日本色啪| 91九色中文字幕女在线观看| 久久久激情| 五月丁香婷婷激情在线| www.99热这里只有精品| 92久久| 少妇高潮呻吟A片免费看软件 | 国产FREESEXVIDEOS性中国| 日韩在线视频9色| 五月天婷婷丁香花| 、激情六月天| 武汉美女啪啪视频免费一级片 | 婷婷五月天性爱视频| 五月天操逼网| 无码中文一区二区三区| 涩婷婷五月天| 啊v视频在线观看| 免费无码毛片一区二区A片| 色五月自偷自拍婷婷婷婷| 九九热超碰| 这里只有精品69| 五月丁香操婷逼| 亚洲字幕AV一区二区三区四区 | 欧美影院| 亚洲亚洲人成综合网络| 美女91一起草| 玖玖伦理电影| 婷婷久久色| 任你爽视频| 超碰A V在线| 啪啪激情网| 五月丁香六月婷婷手机无线| 五月天婷婷网站888| 久久久99精品免费观看| 超碰资源在线| 六月丁香婷婷天堂| 日韩狠狠色| 亚洲狠狠色丁香婷婷综合久久| 五月天婷婷香蕉狠狠超碰综合| 午夜美女人啪最红院| 五月丁香婷婷视频| 久久精品99国产精品日本| 欧美啪啪9| 99re在线这里只有精品视频首页| 97人人超| 97在线视频 欧美| 日韩好吊操| 激情五月天偷拍综合网| 第四色在线观看| 色色丁香婷婷| 天天做天天爱天天爽综合网| 亚洲乱码日产精品BD| 亚洲熟女色| 亚洲色模骚货| 免费看欧美成人A片无码| 成人综合AV| 在线1青婷| 免费看欧美成人A片无码| 婷婷色丁香五月| 欧美婷婷成人| 久久R激情| 丁香五月天激情婷婷丁香六月| 九九视频在线| 久久综合五月天激情小说网站| 大功率国产在线| 亚洲成人中心| 九 九九九AV| 逼逼AV| 天天影院色| 婷婷九月综合| 婷婷久久丁香| 色五月综合激情网| 久久成人性爱| 激情五月婷婷综合| 久操干| 思思热久热| 97五月婷| 亚洲五月丁| 久久这里只有精品热在99| 99福利导航| 亚洲熟妇无码乱子AV电影| 99情色五月天| 亚洲久久婷婷| 无码少妇高潮喷水A片免费| 掩去也综合五月视频| 色婷婷9| 九九亚洲无码| 五月天激情国产综合婷婷| 影音先锋男士资源网一区| 伊人五月人妻精品| 国产99久久久国产精品免费看| 99热爱爱干干日| 99热在线观看精品| 色五月欧美| 日日干日日| 激情婷婷综合网| 原琪琪色影院| 五月婷婷AV| 青青草原爱爱网| 丁香五月天天高清在线| 免费三级黄色| 深爱激情五月天婷婷网| 中文字幕丰满孑伦无码专区 | 思思热思在线精品视频| 思思热在线视频精品| 日本一级一级一级一级| 五月婷婷影| 成人做爰A片免费看网站找不到了| 99操久久| 欧美色婷婷| 婷婷五月色| 久久婷婷成人视频| 99热伊人| 婷婷丁香午夜综合影视| 免费看欧美成人A片无码| 99re久热只有精品6在线直播| 九九在线视频| 婷婷激情五月综合基地| 婷婷五月丁香图片人人操| 天天综合网亚洲综合网| www.色欲丁香婷婷| 五月婷婷亚洲| 超碰在线99热| 久久xxxx| 亭亭丁香aV| 精国产品一区二区三区A片| 九九草热在线观看| 波多婷婷久久| 思思热精品在线视频| 九九综舍久久| 午夜丁香婷婷| 激情五月综合视频| 日本二级毛片二级毛片| 色婷婷激情五月天| 天天色综| 五月天色色网站| 人妻内射麻豆视频| 伊人婷婷福利网| 丁香五月手机在线| 久婷婷| 天天操夜夜操| 这里只有精彩视| 91日视频| 九九热精品| 99热这里有精品2| 国产亚洲色婷婷久久99精品91 www.riverspirits.org www.hnnun.com www.changh | 美女五月天| 色月九九| 激情六月天| 婷婷开心久久| 殴美激情综合网| 91丨九色丨熟女高潮| 婷婷丁香综合成人| 99久热精品在线| 久操大香蕉| 狠狠色情婷婷| 婷婷伊人视婷婷婷| 婷婷久久五月天| 欧美另类五月激情| 五月丁香在线观看99| 婷婷狠狠操| 日日爽天天| 97干视频| 婷婷五月欧美综合| 人人操AV| 99区视频| 婷婷综合另类| 婷婷五月天色色| 婷婷五月天开心激情网| 五月婷婷色情| 成人婷婷色综合| 大香蕉99| 26uuu亚洲欧美另类| 99热日| 香蕉久久国产AV一区二区| 激情五月天视频| 五月情四婷婷| 91pornav在线| 成人无码髙潮喷水A片| 婷婷五月免费视频| 狠狠88综合久久久久噜噜噜|