日韩精品一区二区三区在线视频放-无码中文字幕V?一区二区-成年片免费观看视频-国内少妇人妻丰满av-国产精品中文字幕免费观看-亚洲成人久久一区二区三区-国内少妇偷人精品视频无缓冲-一区二区国产精品日本一区二区三区在线网

ARTICLE DETAIL

資訊詳情

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

PB03藍(lán)牙5.2二次開發(fā)資料:從SDK到GATT與OTA實(shí)戰(zhàn)

PB03藍(lán)牙5.2二次開發(fā)資料:從SDK到GATT與OTA實(shí)戰(zhàn) 簡介面向使用安信可PB-03藍(lán)牙模塊進(jìn)行二次開發(fā)的嵌入式工程師與物聯(lián)網(wǎng)學(xué)習(xí)者這份資料合集圍繞PHY6252低功耗藍(lán)牙SoC展開重點(diǎn)解決BLE5.2開發(fā)環(huán)境搭建、外設(shè)驅(qū)動(dòng)參考與固件升級(jí)等常見需求。壓縮包共1163個(gè)文件、約66.23MB以C源碼與頭文件為主體輔以Keil工程文件、鏈接腳本、啟動(dòng)匯編、INI配置、批處理腳本及PDF文檔覆蓋從工程配置到編譯燒錄的多個(gè)環(huán)節(jié)并包含串口AT指令、FOTA升級(jí)與低功耗休眠等相關(guān)參考材料。已有2248人學(xué)習(xí)說明其在PB-03二次開發(fā)人群中具有一定參考價(jià)值。讀者可從中獲取較完整的SDK目錄與示例工程結(jié)構(gòu)借助源碼與配置理解UART、GPIO、ADC、PWM、I2C、SPI等接口的調(diào)用方式對(duì)照文檔和工程文件排查編譯、鏈接與下載問題也可為Windows開發(fā)環(huán)境下的二次開發(fā)與固件遠(yuǎn)程升級(jí)提供直接可用的素材。1. PB03 藍(lán)牙 5.2 二次開發(fā)資料一份資料包能省掉哪些摸索手上有一塊 PB03 模組想讓它從「能廣播」走到「能跟自己的 App 收發(fā)自定義數(shù)據(jù)」中間這段路很多人卡過兩三天不知道 SDK 該從哪個(gè)文件下手廣播包改完手機(jī)掃不到燒錄工具一連上就報(bào)握手失敗。PB03 藍(lán)牙 5.2 二次開發(fā)資料這套文檔資料的價(jià)值就在這兒——它把 SDK 工程、硬件設(shè)計(jì)文件、AT 指令手冊(cè)、燒錄工具和幾套可編譯的例程收在一起拿到手就能編譯、能下載、能跟自己的板子對(duì)比差異不是芯片手冊(cè)的中文翻譯版。適合三類人第一次碰 BLE 5.2 模組、需要兩周內(nèi)出樣機(jī)的固件工程師要畫底板、核對(duì)引腳復(fù)用和天線凈空的硬件工程師以及做方案選型、想判斷這顆模組扛不扛得住自己場景的技術(shù)負(fù)責(zé)人。2. 資料包拆解SDK 目錄、協(xié)議棧分層與二次開發(fā)的可改邊界二次開發(fā)資料包最容易出現(xiàn)的浪費(fèi)是不是「東西不夠」而是「不知道哪份東西該信」。同一個(gè)功能AT 指令手冊(cè)里有一套說法例程里又有一套寫法SDK 里的宏開關(guān)還是第三套。第 2 章先把包里的結(jié)構(gòu)捋清哪些目錄只讀、哪些是主要修改區(qū)域、協(xié)議棧哪一層能改哪一層碰了就麻煩以及硬件那份資料該在什么時(shí)候看。等把邊界劃清楚后面編譯、燒錄、調(diào) GATT 才有參照系不然每改一行代碼都像在賭。2.1 目錄分工哪幾個(gè)文件夾看完就該鎖上PB03 這類模組的二次開發(fā)包目錄結(jié)構(gòu)基本是固定的幾個(gè)部分區(qū)別只在命名習(xí)慣。我一般拿到包先做一件事ls一遍把每個(gè)目錄歸到「只讀」和「會(huì)改」兩類里心里有個(gè)地圖再動(dòng)手。下面這張表是按常見組織方式整理的實(shí)際包里的名字可能差一兩個(gè)字但功能對(duì)應(yīng)得上。目錄常見命名典型內(nèi)容二次開發(fā)時(shí)的用途是否修改doc/數(shù)據(jù)手冊(cè)、AT 指令手冊(cè)、天線設(shè)計(jì)指南、功耗實(shí)測表查引腳定義、指令集、射頻指標(biāo)只讀sdk/協(xié)議棧庫文件、應(yīng)用層源碼、Keil 工程、鏈接腳本改業(yè)務(wù)邏輯、加自定義服務(wù)主要修改區(qū)域sdk/lib/預(yù)編譯的協(xié)議棧與射頻驅(qū)動(dòng).lib/.a只調(diào)用不反編譯只讀hw/原理圖、PCB 封裝庫、BOM、匹配網(wǎng)絡(luò)參數(shù)畫底板、核對(duì)引腳復(fù)用只讀tool/燒錄上位機(jī)、串口助手、固件合并腳本、量產(chǎn)工具下載固件、看日志、批量寫參數(shù)只讀example/透傳、主從一體、HID、OTA 四類例程抄配置、對(duì)比差異、當(dāng)回歸基線可改但先備份表里最關(guān)鍵的一行是sdk/lib/。協(xié)議棧以預(yù)編譯庫的形式給出意味著鏈路層、射頻校準(zhǔn)、跳頻這些邏輯你既看不到也改不了出問題只能從應(yīng)用層參數(shù)倒推。這不是資料包偷懶是認(rèn)證和射頻一致性要求的常規(guī)做法。知道自己改不到那一層排查思路就會(huì)變——連不上先懷疑參數(shù)和時(shí)序而不是去翻協(xié)議棧源碼。動(dòng)手的第一步我個(gè)人的習(xí)慣是把sdk/整份復(fù)制一份出來改個(gè)名字比如sdk_myproj/原始包保持原樣。原因很實(shí)際二次開發(fā)過程中一定會(huì)改宏、改鏈接地址、刪例程改亂了想回退重新解壓一遍是最快的后悔藥。同理example/里的透傳例程建議單獨(dú)復(fù)制一份當(dāng)「金標(biāo)準(zhǔn)」你自己的工程跑不通時(shí)把它燒進(jìn)去對(duì)比能立刻區(qū)分是硬件問題還是代碼問題——這個(gè)動(dòng)作在兩塊板子都調(diào)不通的時(shí)候能救命。還要提醒一個(gè)細(xì)節(jié)很多包的doc/里放著兩三個(gè)版本的 AT 指令手冊(cè)文件名只差一個(gè)后綴。別默認(rèn)最新的那份就對(duì)應(yīng)當(dāng)前固件。判斷方法是看手冊(cè)里描述的指令集和你手上模組實(shí)際返回的響應(yīng)是否一致隨手發(fā)一條查詢指令回什么就知道版本對(duì)不對(duì)得上。這個(gè)核對(duì)只花兩分鐘能省掉后面半小時(shí)的自我懷疑。2.2 協(xié)議棧分層GAP 廣播、GATT 屬性、應(yīng)用回調(diào)各管什么BLE 的分層概念網(wǎng)上一搜一大把但落到「我到底能改哪一行」還是得按這個(gè)資料包的實(shí)際結(jié)構(gòu)重新講一遍。從下往上看控制器層含射頻、鏈路層、跳頻以庫形式封裝你只通過 API 配置參數(shù)主機(jī)層的 GAP 負(fù)責(zé)廣播、掃描、連接建立GATT 負(fù)責(zé)屬性的組織和讀寫再往上是你自己的應(yīng)用邏輯和串口協(xié)議。二次開發(fā)里 90% 的工作量集中在 GATT 和 GAP 參數(shù)這兩塊。廣播包內(nèi)容的填充、連接間隔的取值、自定義服務(wù)屬性表的順序、CCCD 的讀寫回調(diào)——這些全在應(yīng)用層改起來不用碰庫。反過來凡是涉及「連接建立之前的射頻行為」和「鏈路穩(wěn)定性」的比如發(fā)射功率、射頻信道、白名單過濾的底層實(shí)現(xiàn)基本都在庫里你只能通過上層參數(shù)間接影響。新手最容易誤改的是啟動(dòng)文件和鏈接腳本。它們長得像普通源碼里面也確實(shí)有可以改的數(shù)字但改錯(cuò)的表現(xiàn)往往不是編譯報(bào)錯(cuò)而是燒進(jìn)去之后跑飛、或者廣播正常但一連接就復(fù)位。我見過有人為了省幾 KB 空間去動(dòng)鏈接腳本里的段地址結(jié)果應(yīng)用區(qū)和 OTA 備份區(qū)重疊升級(jí)一次直接變磚。這類文件在包里通常放在sdk/project/下面看到.sct、.ld、startup_*.s這種后綴動(dòng)之前先備份改完必須做一次完整的燒錄和連接驗(yàn)證。另一處邊界是中斷優(yōu)先級(jí)。協(xié)議棧對(duì)射頻中斷和定時(shí)器中斷的響應(yīng)時(shí)間有隱含要求應(yīng)用層如果把串口中斷優(yōu)先級(jí)配得比射頻還高重負(fù)載時(shí)會(huì)出現(xiàn)連接間隔抖動(dòng)甚至斷鏈。資料包里的例程一般給了一套可用的優(yōu)先級(jí)配置直接沿用比自己重新分配更穩(wěn)非要改就一次只改一個(gè)改完拿連接穩(wěn)定性壓測一遍。2.3 工具鏈版本對(duì)齊編譯器和燒錄工具比你想的挑嵌入式資料包最容易被忽略的一句話是「本 SDK 在某某版本下驗(yàn)證通過」。這句話不是免責(zé)聲明是硬約束。編譯器版本差異會(huì)帶來兩個(gè)后果一是 C 庫行為不同導(dǎo)致的隱性問題比如某些優(yōu)化等級(jí)下的對(duì)齊訪問二是生成的代碼體積變化本來剛好塞進(jìn)應(yīng)用區(qū)的固件突然超了。具體要核對(duì)三項(xiàng)編譯器主版本、器件支持包、燒錄上位機(jī)版本。前兩項(xiàng)決定能不能編譯出行為一致的固件第三項(xiàng)決定能不能把固件寫進(jìn)去。燒錄工具的版本和模組內(nèi)部固件版本之間通常有協(xié)議對(duì)應(yīng)關(guān)系版本差太多會(huì)表現(xiàn)成「能識(shí)別串口但握手失敗」這種報(bào)錯(cuò)信息往往很含糊看著像硬件壞了其實(shí)換個(gè)工具版本就好。串口驅(qū)動(dòng)的坑也值得一提。同一臺(tái)電腦上裝過多個(gè)串口工具時(shí)虛擬串口偶爾會(huì)被別的軟件占用表現(xiàn)是燒錄工具提示打不開端口但設(shè)備管理器里看著一切正常。遇到這種情況先關(guān)掉所有串口助手再試別急著懷疑板子。2.4 硬件資料怎么用天線凈空和電源紋波比原理圖重要hw/目錄里的原理圖很多人掃一眼就跳過直接照著引腳表畫底板。真正會(huì)被忽略又最容易出事的是兩塊天線的凈空區(qū)和電源的紋波要求。天線部分資料里一般會(huì)給一個(gè)推薦布局模組天線端到板邊要保持一段無銅無走線的凈空底下不走線不鋪銅附近不要放電池和金屬結(jié)構(gòu)件。這段距離具體多少看包里的天線設(shè)計(jì)說明但「凈空」這件事必須當(dāng)真。我踩過一次底板為了塞結(jié)構(gòu)把電池挪到天線正下方傳導(dǎo)測試一切正常實(shí)際通信距離掉了一大半查了兩天才定位到。電源部分BLE 模組在廣播瞬間有脈沖電流LDO 選型偏小或者去耦電容離得太遠(yuǎn)會(huì)出現(xiàn)「空閑正常、一廣播就復(fù)位」。資料里的參考設(shè)計(jì)給了電容位置和容值照著抄就行別自己優(yōu)化。表里這幾個(gè)點(diǎn)硬件階段確認(rèn)一次能省掉固件階段一半的玄學(xué)問題。檢查項(xiàng)資料里看哪硬件階段怎么驗(yàn)天線凈空天線設(shè)計(jì)指南目視 卡尺凈空區(qū)內(nèi)無銅無器件匹配網(wǎng)絡(luò)原理圖匹配電路按參考值貼不自行改容感值電源去耦參考設(shè)計(jì)布局電容靠近模組電源腳地平面完整復(fù)位與啟動(dòng)腳引腳定義表上電時(shí)序符合要求不懸空調(diào)試串口引腳復(fù)用表留出測試點(diǎn)方便抓日志3. 跑通第一個(gè)工程宏配置、命令行編譯與燒錄驗(yàn)證把資料包里的例程編譯通過、燒進(jìn)去、手機(jī)能掃到這三步做完心里才算有底。這章按順序走一遍先在 IDE 里改對(duì)幾個(gè)關(guān)鍵宏再用命令行把編譯過程腳本化后面接自動(dòng)化構(gòu)建也方便然后校驗(yàn)固件尺寸別越界最后燒錄并驗(yàn)證廣播。每一步都給出判斷標(biāo)準(zhǔn)做完能明確知道「這一步過了」。3.1 打開工程先改三個(gè)宏別急著編譯第一次打開 Keil 工程不要直接點(diǎn)編譯。先找工程配置里的預(yù)定義宏通常在Options for Target的 C/C 頁確認(rèn)三個(gè)方向上的開關(guān)日志輸出、休眠使能、設(shè)備名與地址來源。日志開關(guān)決定你能不能看到串口打印。出廠狀態(tài)的例程有時(shí)為了省電把日志全關(guān)了燒進(jìn)去串口一片安靜你會(huì)以為程序沒跑起來實(shí)際上是沒打印。調(diào)試階段先打開功能驗(yàn)證完再關(guān)掉關(guān)掉之前記得測一次功耗因?yàn)槿罩颈旧砗芎碾?。休眠使能決定空閑時(shí)會(huì)不會(huì)進(jìn)低功耗。帶休眠調(diào)試連接問題很痛苦因?yàn)閱拘研枰獣r(shí)間某些時(shí)序會(huì)被拉長。我一般調(diào)試期先關(guān)休眠等連接穩(wěn)定了再打開專門測一輪。設(shè)備名和地址來源這一項(xiàng)很多 SDK 用宏來控制是「用芯片內(nèi)部地址」還是「用代碼里寫死的地址」。如果兩片模組廣播出來名字和地址完全一樣手機(jī)端會(huì)出現(xiàn)只能連上一片的情況看著像連接問題其實(shí)是配置重復(fù)。/* 這幾個(gè)開關(guān)通常定義在工程宏或 board_cfg.h 里名字隨 SDK 有差異 */ #define CFG_LOG_EN 1 /* 調(diào)試期開量產(chǎn)關(guān)關(guān)掉能省下幾 mA */ #define CFG_SLEEP_EN 0 /* 調(diào)試期關(guān)穩(wěn)定后再開 */ #define CFG_USE_CHIP_MAC 1 /* 1用芯片唯一地址0用下面寫死的地址 */ #define CFG_DEV_NAME PB03-DEV /* 廣播里的設(shè)備名長度計(jì)入廣播包 */ #define CFG_UART_BAUD 115200 /* 調(diào)試串口波特率和上位機(jī)保持一致 */這段配置不需要解釋太多重點(diǎn)是養(yǎng)成「先確認(rèn)再編譯」的順序。血淚經(jīng)驗(yàn)是改代碼之前先確認(rèn)宏改完之后記錄改了什么否則三五天后自己都不記得當(dāng)初為什么把這行設(shè)成 0。3.2 命令行編譯把錯(cuò)誤從日志里撈出來IDE 里點(diǎn)編譯適合調(diào)試但只要開始多人協(xié)作或者想把構(gòu)建掛到自動(dòng)流程里命令行編譯就必須能跑通。資料包里的工程是標(biāo)準(zhǔn) Keil 工程可以用它的命令行模式批量編譯。#!/usr/bin/env bash # 一鍵編譯并提取關(guān)鍵信息適合本地快速驗(yàn)證或掛到構(gòu)建機(jī) set -euo pipefail KEIL_BIN/c/Keil_v5/UV4/UV4.exe # 按本機(jī)安裝路徑改注意 Windows 路徑在 bash 下的寫法 PROJsdk_myproj/project/pb03_app.uvprojx # 工程文件相對(duì)路徑要先 cd 到倉庫根目錄 LOGbuild/compile_$(date %Y%m%d_%H%M%S).log mkdir -p build build_log # -b 批量編譯(不彈窗) -j0 抑制對(duì)話框 -o 輸出完整日志 $KEIL_BIN -b $PROJ -j0 -o $LOG || true # Keil 的進(jìn)程返回碼不區(qū)分警告和錯(cuò)誤掃日志比看返回碼可靠 echo ---- 錯(cuò)誤與告警 ---- grep -nE error:|Error:|Warning: $LOG | tail -n 30 || echo 無錯(cuò)誤 echo ---- 代碼體積 ---- grep -nE Program Size|Total RO|Total RW $LOG | tail -n 8 || true幾處說明。-b是批處理編譯模式不彈界面適合腳本調(diào)用-j0用來抑制可能出現(xiàn)的模態(tài)對(duì)話框不然在無人值守的構(gòu)建機(jī)上會(huì)卡住等點(diǎn)擊-o把完整日志落盤這是排查的關(guān)鍵——IDE 窗口里滾過去的告警往往被忽略落盤之后grep一遍才發(fā)現(xiàn)有「隱式聲明」這類會(huì)埋雷的告警。|| true是有意加的。Keil 命令行在某些版本下即使編譯成功也返回非零碼直接set -e會(huì)把腳本中斷在成功的那一步。真正判斷成敗看日志里的error:計(jì)數(shù)這也是為什么腳本里要單獨(dú) grep 一遍。如果編譯報(bào)的是「找不到某個(gè)頭文件」九成是工程里的相對(duì)路徑和你移動(dòng)目錄之后的實(shí)際位置對(duì)不上。解決辦法不是改代碼里的#include而是回到工程配置的 Include Paths 里修路徑這樣所有引用同一處配置的源文件都能一起好。3.3 固件尺寸校驗(yàn)別讓應(yīng)用區(qū)越界這一步很多人省略直到 OTA 升級(jí)失敗才發(fā)現(xiàn)固件的末尾壓到了備份區(qū)。做二次開發(fā)尤其是加了自定義服務(wù)和日志之后代碼體積是會(huì)長的靠肉眼判斷不靠譜寫個(gè)腳本卡住更穩(wěn)妥。#!/usr/bin/env python3 按分區(qū)表校驗(yàn)編譯產(chǎn)物是否越過應(yīng)用區(qū)上限防止燒進(jìn)去跑飛或 OTA 變磚。 import sys APP_LIMIT 0x3A000 # 應(yīng)用區(qū)上限改成自己分區(qū)表里的值別照抄 def hex_top_addr(path: str) - int: 遍歷 Intel HEX返回所有數(shù)據(jù)記錄覆蓋到的最高地址。 top 0 with open(path, r, encodingutf-8, errorsignore) as f: for line in f: line line.strip() if not line.startswith(:): continue raw bytes.fromhex(line[1:]) length raw[0] addr (raw[1] 8) | raw[2] rectype raw[3] if rectype 0x00: # 0x00 是數(shù)據(jù)記錄其余類型不影響地址占用 top max(top, addr length) elif rectype 0x04: # 0x04 擴(kuò)展線性地址高 16 位要左移拼接 # 這里只做上限判斷遇到擴(kuò)展地址記錄時(shí)把高位記下來即可 pass return top if __name__ __main__: top hex_top_addr(sys.argv[1]) left APP_LIMIT - top print(ftop0x{top:08X} limit0x{APP_LIMIT:08X} free{left} bytes) sys.exit(0 if left 0 else 1)關(guān)鍵參數(shù)只有一個(gè)APP_LIMIT它的值必須來自你自己的分區(qū)表不是隨便寫的常數(shù)。腳本里的rectype 0x00判斷的是數(shù)據(jù)記錄只有這一類才真正占用 Flash 地址0x04那條分支是留給你擴(kuò)展高位的如果固件地址超過 64KB 就必須補(bǔ)全否則算出來的上限會(huì)偏小反而誤報(bào)。把這個(gè)腳本掛到編譯之后跑一次返回非零就中斷構(gòu)建。養(yǎng)成習(xí)慣之后加功能時(shí)會(huì)不自覺地關(guān)注體積增長比事后救火強(qiáng)。3.4 燒錄與上電驗(yàn)證兩個(gè)判斷標(biāo)準(zhǔn)燒錄一般有兩條路串口 ISP 和調(diào)試器。串口 ISP 需要把啟動(dòng)腳拉到指定電平再上電讓芯片進(jìn)下載模式調(diào)試器則是直接連 SWD 口能順帶在線調(diào)試。第一次建議用調(diào)試器出問題能看到芯片有沒有起來量產(chǎn)和維護(hù)用串口不依賴調(diào)試器。燒完之后的驗(yàn)證分兩步。第一步看串口日志上電后有沒有打印啟動(dòng)信息初始化到哪一步有沒有報(bào)錯(cuò)。日志停在哪一行問題就在那附近。第二步用手機(jī)端的通用 BLE 調(diào)試 App 掃描看能不能掃到設(shè)備名信號(hào)強(qiáng)度是否正常服務(wù)列表里有沒有你預(yù)期的 UUID。判斷標(biāo)準(zhǔn)要具體能掃到但連不上問題在連接參數(shù)或配對(duì)配置能連上但服務(wù)列表是空的問題在屬性表注冊(cè)順序掃都掃不到先查廣播使能有沒有調(diào)用再查天線。這三條分清楚排查就不會(huì)亂撞。4. 自定義 GATT 服務(wù)廣播數(shù)據(jù)、屬性表與連接參數(shù)例程能跑通只是起點(diǎn)真正落地時(shí)一定要加自己的服務(wù)和特征值。這章講三件事廣播包 31 字節(jié)怎么分配、屬性表怎么注冊(cè)出一個(gè)最小可用的自定義服務(wù)、連接參數(shù)和 MTU 怎么先測再定。最后補(bǔ)一段低功耗配置因?yàn)楹芏囗?xiàng)目死在「功能都對(duì)功耗超標(biāo)」這一步。4.1 廣播包與掃描響應(yīng)31 字節(jié)怎么分配傳統(tǒng)廣播包上限 31 字節(jié)每一段都由「1 字節(jié)長度 1 字節(jié)類型 內(nèi)容」組成長度字節(jié)不包含它自己。BLE 5.2 支持?jǐn)U展廣播可以超過 31 字節(jié)但手機(jī)端的兼容性和模組側(cè)的支持度都不統(tǒng)一實(shí)際項(xiàng)目里我一般還是按 31 字節(jié)來規(guī)劃把廠商自定義數(shù)據(jù)放到掃描響應(yīng)里。/* 廣播數(shù)據(jù)長度字節(jié) 1(類型) 內(nèi)容長度 */ static uint8_t adv_payload[] { 0x02, 0x01, 0x06, /* Flags通用可發(fā)現(xiàn)不支持 BR/EDR */ 0x05, 0x09, P, B, 0, 3, /* 0x09 完整設(shè)備名長度 14 */ 0x03, 0x03, 0x0F, 0x18, /* 0x03 完整 16bit UUID 列表 */ }; /* 掃描響應(yīng)單獨(dú)一包也限 31 字節(jié)廠商自定義字段放這里更寬松 */ static uint8_t scan_rsp[] { 0x06, 0xFF, 0x34, 0x12, 0x01, 0x02, /* 0xFF 廠商自定義前兩字節(jié)是廠商 ID(小端) */ }; /* 使能廣播函數(shù)名以實(shí)際 SDK 為準(zhǔn) */ ble_gap_adv_start(adv_payload, sizeof(adv_payload), scan_rsp, sizeof(scan_rsp), 100 /* 廣播間隔 ms100~500 之間按需取 */);最容易錯(cuò)的地方是長度字節(jié)。比如設(shè)備名是 4 個(gè)字符那么長度應(yīng)該是 5類型 1 字節(jié) 名字 4 字節(jié)寫成 4 會(huì)把名字最后一個(gè)字符吃掉手機(jī)端顯示成三個(gè)字母看著像編碼問題。加一段內(nèi)容就重新數(shù)一遍別憑感覺。廣播間隔這個(gè)參數(shù)要權(quán)衡調(diào)小被發(fā)現(xiàn)更快但平均功耗直線上升調(diào)到 500 ms 以上某些手機(jī)的掃描窗口覆蓋不到會(huì)表現(xiàn)為「偶爾能掃到」。100~300 ms 是常見的起步區(qū)間。4.2 屬性表注冊(cè)一個(gè)自定義服務(wù)的最小閉環(huán)GATT 服務(wù)在代碼里就是一張屬性表表項(xiàng)順序決定 handle 順序handle 又是客戶端讀寫的尋址依據(jù)。所以順序不能亂中間也不能插空項(xiàng)。一個(gè)能讀、能開通知的最小服務(wù)需要四項(xiàng)服務(wù)聲明、特征值聲明、特征值本身、CCCD。/* 自定義 128bit 服務(wù)的屬性表順序即 handle 遞增順序 */ static const att_db_item_t user_db[] { /* 1. 服務(wù)聲明主服務(wù) 128bit UUID */ { .type ATT_TYPE_PRIMARY_SERVICE, .uuid_len 16, .uuid USER_SVC_UUID, .perm ATT_PERM_READ }, /* 2. 特征值聲明屬性位決定客戶端能不能開通知這里給讀通知 */ { .type ATT_TYPE_CHARACTERISTIC, .uuid_len 16, .uuid USER_CHAR_UUID, .perm ATT_PERM_READ, .value { .props ATT_PROP_READ | ATT_PROP_NOTIFY } }, /* 3. 特征值本身max_len 要和 MTU 協(xié)商結(jié)果對(duì)齊別寫成 512 占內(nèi)存 */ { .type ATT_TYPE_CHAR_VALUE, .uuid_len 16, .uuid USER_CHAR_UUID, .perm ATT_PERM_READ, .value { .buf user_val, .len sizeof(user_val), .max_len 20 } }, /* 4. CCCD客戶端寫 0x0001 開通知0x0000 關(guān) */ { .type ATT_TYPE_CCCD, .perm ATT_PERM_READ | ATT_PERM_WRITE, .value { .buf user_cccd, .len 2 } }, }; /* 寫回調(diào)里按 handle 分派handle 用注冊(cè)后的返回值別寫死數(shù)字 */ static void on_attr_write(uint16_t handle, const uint8_t *data, uint16_t len) { if (handle user_cccd_handle) { user_notify_en (len 2) (data[0] 0x01); /* 開/關(guān)通知 */ } else if (handle user_val_handle) { /* 業(yè)務(wù)數(shù)據(jù)處理注意 len 可能小于 max_len */ handle_user_cmd(data, len); } }三處說明。max_len 20對(duì)應(yīng)默認(rèn) MTU 23 減去 3 字節(jié)協(xié)議開銷如果后面協(xié)商到更大 MTU這個(gè)值要同步放開但在沒協(xié)商之前設(shè)太大只是白占 RAM。CCCD 必須占一個(gè)獨(dú)立表項(xiàng)漏了它客戶端開不了通知表現(xiàn)是「訂閱了但收不到數(shù)據(jù)」。回調(diào)里判斷 handle 一定要用注冊(cè)后返回的變量寫死數(shù)字在后期插入新服務(wù)時(shí)必然錯(cuò)位而且錯(cuò)位之后的行為很詭異——寫 A 特征值卻觸發(fā)了 B 的邏輯。注冊(cè)完之后手機(jī)端能看到服務(wù)但點(diǎn)開可能是空的。這種情況先確認(rèn)屬性表里的 UUID 字節(jié)序128 位 UUID 在內(nèi)存里通常按小端倒序存放寫反了客戶端解析出的 UUID 和你以為的不一樣服務(wù)會(huì)被當(dāng)成未知服務(wù)折疊起來。4.3 連接參數(shù)與 MTU先測再定別抄別人的數(shù)連接參數(shù)直接決定吞吐、延遲和功耗三者互相牽制。參數(shù)沒有通用最優(yōu)值只能按場景定。先把幾個(gè)參數(shù)的物理含義和邊界搞清楚再用實(shí)測收斂。參數(shù)常見取值影響注意廣播間隔100~500 ms被發(fā)現(xiàn)速度、平均功耗低于 100 ms 收益不明顯功耗接近翻倍最小連接間隔15~30 ms吞吐、響應(yīng)延遲部分手機(jī)端會(huì)向上收斂到它認(rèn)可的粒度從機(jī)延遲0~4空閑時(shí)省電設(shè)太大配合小間隔寫操作容易超時(shí)監(jiān)督超時(shí)2~6 s斷鏈判定速度必須大于 (1延遲) × 間隔 × 2否則頻繁誤判斷鏈MTU23 或 247單包有效負(fù)載默認(rèn) 23即 20 字節(jié)協(xié)商后按實(shí)際值算調(diào)試連接問題光看手機(jī)界面不夠得把空中抓到的廣播和連接行為拆開看。下面這段腳本用來解析抓包工具或串口導(dǎo)出的廣播十六進(jìn)制串檢查 AD 結(jié)構(gòu)是否合法、有沒有超長。#!/usr/bin/env python3 把廣播原始 hex 逐條拆成 AD 結(jié)構(gòu)定位長度寫錯(cuò)或類型寫錯(cuò)的那一段。 def parse_adv(hexstr: str) - None: data bytes.fromhex(hexstr.replace( , ).replace(\n, )) if len(data) 31: print(f[警告] 長度 {len(data)} 超過傳統(tǒng)廣播包 31 字節(jié)上限) i 0 while i len(data): ln data[i] if ln 0: # 0 表示后續(xù)是填充直接結(jié)束 break if i 1 len(data): print(f[錯(cuò)誤] 偏移 {i} 處長度 {ln} 越界包被截?cái)? return ad_type data[i 1] value data[i 2: i 1 ln] print(foff{i:3} len{ln:3} type0x{ad_type:02X} value{value.hex( )}) i ln 1 if __name__ __main__: # 把抓到的廣播 hex 粘進(jìn)來空格可有可無 parse_adv(02 01 06 05 09 50 42 30 33 03 03 0F 18)i ln 1是核心跳過一個(gè)長度字節(jié)加 ln 個(gè)字節(jié)的內(nèi)容。ln 0提前退出是因?yàn)閺V播包尾部常用零填充。這段腳本不依賴任何第三方庫抓包工具導(dǎo)出的數(shù)據(jù)直接粘貼就能用定位「名字少了最后一個(gè)字母」「UUID 類型寫成 0x02」這類問題比肉眼數(shù)快得多。MTU 協(xié)商的結(jié)果要在連接建立后主動(dòng)打印一次。有些平臺(tái)默認(rèn)不協(xié)商你以為能發(fā) 200 字節(jié)實(shí)際每包只發(fā)出去 20 字節(jié)剩余全被截?cái)啾憩F(xiàn)是「指令發(fā)一半設(shè)備不響應(yīng)」。日志里加上協(xié)商前后的 MTU 值這個(gè)問題一眼就能看出來。4.4 低功耗休眠、GPIO 與廣播間隔的取舍功耗超標(biāo)是二次開發(fā)里最典型的翻車點(diǎn)。規(guī)格書上的數(shù)字通常是「僅射頻MCU 廣播」的理想值你板子上多一個(gè)上拉電阻、多一路常開的串口數(shù)字就完全不一樣。第一件事是確認(rèn)休眠真的進(jìn)去了。很多 SDK 有休眠前后的鉤子函數(shù)在里面翻轉(zhuǎn)一個(gè) GPIO用示波器看這個(gè)腳的占空比就知道實(shí)際醒著多久。比看電流平均值直觀得多。第二件事是 GPIO 狀態(tài)。休眠時(shí)懸空的輸入腳會(huì)因電平不確定產(chǎn)生漏電上拉電阻在外部有下拉時(shí)會(huì)持續(xù)耗流。原則是不用的腳配置成模擬或下拉輸出外部上拉能省則省能加大阻值就加大。第三件事是外設(shè)時(shí)鐘。串口、定時(shí)器、ADC 在休眠前該關(guān)的關(guān)掉尤其是串口——調(diào)試完忘記關(guān)一晚掉幾百微安很常見。廣播間隔的調(diào)整放在最后先把漏電堵住再談間隔否則你怎么調(diào)間隔都對(duì)不上規(guī)格書。5. 常見問題排查燒錄、連接、功耗的五條踩坑記錄有些坑幾乎每個(gè)項(xiàng)目都會(huì)踩一遍寫在這里省得重復(fù)試錯(cuò)。下面五條都按「現(xiàn)象 → 原因 → 解決」組織遇到相似癥狀可以直接對(duì)照。需要強(qiáng)調(diào)一點(diǎn)BLE 調(diào)試最忌諱同時(shí)改多個(gè)變量一次只改一處改完立刻驗(yàn)證否則問題解決了你也不知道是哪一步生效的。5.1 燒錄報(bào)握手失敗換線換板都沒用現(xiàn)象燒錄工具能識(shí)別到串口點(diǎn)開始后幾秒提示握手失敗或超時(shí)換 USB 線、換板子癥狀一樣。原因多半是沒進(jìn)下載模式。串口 ISP 需要在復(fù)位釋放的瞬間采樣啟動(dòng)腳電平手動(dòng)按鍵的時(shí)序經(jīng)常對(duì)不上另一種可能是燒錄工具版本與模組內(nèi)部固件版本不匹配協(xié)議對(duì)不上同樣表現(xiàn)為握手失敗。解決先改成調(diào)試器燒錄排除時(shí)序問題確認(rèn)固件本身沒問題如果只能用串口用工具里的「自動(dòng)進(jìn)入下載模式」選項(xiàng)讓工具通過 DTR/RTS 控制復(fù)位和啟動(dòng)腳別手動(dòng)按。工具版本按資料包tool/目錄里配套的那份用不要用電腦上殘留的舊版。5.2 廣播數(shù)據(jù)改了手機(jī)掃到的還是舊名字現(xiàn)象代碼里改了設(shè)備名并重新編譯燒錄手機(jī)端掃出來還是原來那個(gè)名字換一臺(tái)手機(jī)也一樣。原因緩存。手機(jī)端對(duì)已配對(duì)或曾掃描到的設(shè)備會(huì)緩存 GATT 和廣播信息Android 側(cè)尤其明顯另一種情況是編譯產(chǎn)物沒真正燒進(jìn)去燒錄的是舊 hex。解決先在手機(jī)藍(lán)牙設(shè)置里刪除該設(shè)備記錄或在調(diào)試 App 里清緩存再掃同時(shí)核對(duì)燒錄日志里的固件時(shí)間和大小確認(rèn)燒的是新產(chǎn)物。判斷是不是緩存最直接的辦法是換一臺(tái)從沒掃過這個(gè)設(shè)備的手機(jī)。5.3 能連上幾秒鐘后自動(dòng)斷開現(xiàn)象連接建立成功服務(wù)也能看到三五秒后連接斷開反復(fù)重連。原因監(jiān)督超時(shí)配置不合理最常見。監(jiān)督超時(shí)必須大于 (1 從機(jī)延遲) × 連接間隔 × 2如果從機(jī)延遲設(shè)成 4、間隔 30 ms超時(shí)至少要 300 ms 以上配成 200 ms 就會(huì)周期性誤判斷鏈。其次是應(yīng)用層在連接回調(diào)里做了耗時(shí)操作阻塞了協(xié)議棧的事件處理。解決先把從機(jī)延遲改成 0、監(jiān)督超時(shí)放大到 4 s 驗(yàn)證連接是否穩(wěn)定穩(wěn)定后逐步往回調(diào)找到臨界點(diǎn)再留一倍余量。回調(diào)里不要做 Flash 擦寫、不要長延時(shí)重活丟到主循環(huán)里做。5.4 功耗比規(guī)格書高一個(gè)數(shù)量級(jí)現(xiàn)象休眠電流實(shí)測幾百微安規(guī)格書寫的是個(gè)位數(shù)微安。原因串口沒關(guān)、GPIO 懸空漏電、調(diào)試日志沒關(guān)、外部上拉電阻常供這四樣占了絕大多數(shù)。日志這一項(xiàng)最隱蔽因?yàn)楣δ苌贤耆!=鉀Q按順序排查——先關(guān)日志測一次再關(guān)串口測一次再把所有未用 GPIO 配成模擬態(tài)測一次。每關(guān)一項(xiàng)測一次電流變化最大的那項(xiàng)就是主因。用 GPIO 翻轉(zhuǎn)配合示波器看喚醒占空比比盯著萬用表數(shù)字猜有效。5.5 AT 固件和 SDK 固件混著燒功能莫名其妙現(xiàn)象按 SDK 例程燒完串口發(fā) AT 指令沒反應(yīng)或者刷回 AT 固件后自定義服務(wù)消失但廣播名還是自己改的那個(gè)。原因AT 固件和 SDK 固件是兩套完全不同的應(yīng)用共用同一塊 Flash 但入口和分區(qū)不同?;鞜笈渲脜^(qū)殘留舊參數(shù)表現(xiàn)就是「一半新一半舊」。解決切換固件類型前先做一次全片擦除別只擦應(yīng)用區(qū)。切換完成后用默認(rèn)配置跑一遍基礎(chǔ)功能確認(rèn)干凈了再燒自己的業(yè)務(wù)固件。產(chǎn)線上尤其要注意返修板子回爐時(shí)先擦再寫。6. OTA 與產(chǎn)線固化把「能跑」變成「能出廠」樣機(jī)能跑通和能出廠之間隔著 OTA 和參數(shù)固化兩件事。這兩塊資料包里不一定有現(xiàn)成腳本但基于里面的例程補(bǔ)起來不難。OTA 的核心是分區(qū)。常見做法是應(yīng)用區(qū) 備份區(qū)雙 bank新固件先整包寫進(jìn)備份區(qū)校驗(yàn)通過后把啟動(dòng)標(biāo)志指過去重啟由 bootloader 搬運(yùn)或直接跳轉(zhuǎn)。判斷 OTA 是否可靠別只看「升級(jí)成功」這一條要專門測三個(gè)場景升級(jí)過程中斷電、升級(jí)包被截?cái)唷⒔导?jí)回滾。斷電測試最容易被跳過但它恰恰是現(xiàn)場最容易發(fā)生的——用戶在升級(jí)時(shí)鎖屏走了。/* OTA 狀態(tài)機(jī)的最小實(shí)現(xiàn)關(guān)鍵是每一步都落標(biāo)志位掉電后可恢復(fù) */ typedef enum { OTA_IDLE, OTA_RECEIVING, OTA_VERIFYING, OTA_READY, OTA_FAIL } ota_state_t; static void ota_on_packet(const uint8_t *data, uint16_t len, uint32_t offset) { /* 1. 先寫備份區(qū)絕不直接覆蓋運(yùn)行區(qū) */ if (flash_write(OTA_BAK_ADDR offset, data, len) ! 0) { ota_set_state(OTA_FAIL); /* 寫失敗立刻標(biāo)記下次上電重來 */ return; } /* 2. 每包寫完更新進(jìn)度標(biāo)志掉電后從標(biāo)志處續(xù)傳 */ ota_set_progress(offset len); ota_set_state(OTA_RECEIVING); } static void ota_on_finish(uint32_t total_len) { ota_set_state(OTA_VERIFYING); /* 3. 整包 CRC 校驗(yàn)通過才允許切啟動(dòng)標(biāo)志 */ if (crc32_check(OTA_BAK_ADDR, total_len) 0) { ota_set_state(OTA_READY); ota_commit_boot_flag(); /* 這一步之后才真正生效 */ } else { ota_set_state(OTA_FAIL); /* 校驗(yàn)失敗保留舊固件不切標(biāo)志 */ } }這段代碼的重點(diǎn)不在語法在順序先寫備份區(qū)、再校驗(yàn)、最后切標(biāo)志。把切標(biāo)志放到校驗(yàn)之前一次傳輸錯(cuò)誤就能讓設(shè)備變磚現(xiàn)場只能返修。進(jìn)度標(biāo)志要落在獨(dú)立的配置區(qū)別和固件放一起否則搬運(yùn)固件時(shí)會(huì)一起被擦掉。產(chǎn)線固化是另一件事。每臺(tái)設(shè)備需要寫入唯一的 MAC、設(shè)備名、校準(zhǔn)參數(shù)和密鑰這些不該靠改代碼重新編譯。常規(guī)做法是在 Flash 里劃一小塊參數(shù)區(qū)產(chǎn)線工具通過串口指令寫入應(yīng)用啟動(dòng)時(shí)讀取。參數(shù)區(qū)要帶版本號(hào)和 CRC升級(jí)固件后參數(shù)仍然有效參數(shù)格式變了則按版本號(hào)做兼容遷移。驗(yàn)證方法我一般分三層單機(jī)功能回歸廣播、連接、讀寫、通知四項(xiàng)走一遍、異常注入斷電、斷鏈、超長包、錯(cuò) CRC、小批量老化十幾臺(tái)連續(xù)跑 24 小時(shí)統(tǒng)計(jì)斷鏈次數(shù)和電流波動(dòng)。三層都過才敢說這批固件能出廠。從那以后我每次改完固件都強(qiáng)制走一遍「擦全片 → 燒固件 → 斷電重啟 → 手機(jī)端刪緩存重掃」這四步不管改動(dòng)多小。省下的那兩分鐘往往要用兩天去找回來。希望幫到你。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
一区在线国产播放| 深夜福利黄片| 亚洲欧洲日韩国产自在线| 五月开心久久AV官网| 99国产精品视频尤物| 国产精品午夜成人福利| 久久香蕉综合一本到3atv| 亚洲色交| 久久夜夜| 色噜噜综合在线| 亚洲影院365| 色 婷97| 亚洲九九视频在线观看| 久久99热这里只频精品6学生| 亚洲成人碰碰| 国产午夜福利电影免费在线观看 | 亚洲天堂人妻一区二区| 日韩黄片视频试看| 日本 情色 1区| 午夜毛片高清免费不卡| 大香蕉色十月| 国产大学生口爆吞精合集| 日日超碰亚洲| 激情天天视频| 老熟女综合| 国产av热热色| 91挑色欧美| 美女黄色一级A视频| 成人毛片免费| 亚洲欧美伦综合| 久久综合久色欧美综合狠狠 | 国产有码一区| 激情四射五月天| 国产强奸乱伦xd| 亚洲综合伊人无码久久| 亚洲国产丝袜在线观看| 目产99999久久999| 色综和网| 少妇人妻激情四射| 麻豆一区在线| 91挑色欧美| 淫色网综合| 欧美激情综合| 五月色网| 精品人妻一区二区免费蜜桃| 开心五月天激情网| 99自拍视频在线| 国产一级不卡在线观看| 精品亚洲黄色片 国产精品导航一区二区| 在线日韩日本亚洲国产| 日韩熟女乱伦中出| 亚洲四虎熟女精品| 欧洲熟妇xxXx欧美老妇裸体| 国产精品久久久久久片| 国产熟女免费观看久久| 精品国产肉丝袜在线拍国语| 日本综合色图| 日本免费二区三区| 欧美少妇高潮视频| 亚州综合在线| 国产精品高潮呻吟av久久4虎| 欧美日本不卡| 啊啊啊好大好深| 午夜在线播放| 嗯嗯不要 视频| 久久99九九九九6666免费观看软件| 欧美后入式| 啊啊啊啊无码| 岛国福利在线精品播放| av最新免费中文字幕| 国内亚洲高清无码| 亚欧日韩成人| 99色视频| 美女黄页| 伊人网在线观看| 欧美91网站| 天天色怡春院| 91四海无码日韩欧美| 美女91| 日产精品久久久一区二区| 九九操久久国产免费视频| 青青草原伊人网| 综合欧美亚洲| 一区二区娱乐网站| 女同亚洲欧美一二三区久久电影| 超碰中文字幕人妻草一区| 亚洲凸凹超碰成人| 久久久久久九九九| AA特级绝黄| 玖玖色综合| 97午夜剧场日韩| 亚洲三级网址久久最新| 亚洲男人天堂视频| 国产精品人妻无码久久久互動交流| 熟妇xxxxx性春色| 大香蕉黄色一级片免费看| 亚洲强奸乱伦影视网| 九九av| 午夜欧美J进J出白浆流出久久久| www.91视频网| 思思热影视| 日韩亚洲美女一区久久| 99re6在线视频精品免费完整版安卓版| 九九九九亚洲| 欧美日韩 强奸乱伦| 久久免费中文字幕在线观看| 亚洲精品97p| 偷拍偷窥与盗摄视频专区| jizzjizz欧美| 青青草精品| 天天天操天天天爱| 精品成人亚洲午夜电影| 亚洲欧美校园另类春色| 一级AAA片一区二区三区| 青娱乐999| 91一起操| 色偷偷超碰亚洲| 9久精品| 五月天激情婷婷| 黄日韩| 97超碰色色| 亚洲一区二区性爱电影| 2003天天干夜夜操| 一个人免费HD91视频| 亚洲 se图 欧美电影| 欧美性少妇| 欧美日韩在线视频网站| 96久久科窝| 久久高潮妇女视频| 五月花婷婷| 91女优在线观看| 精品毛片av一区二区| 天天淫人人妻日日色| 殴美色网| 熟女色综合久久| 香港成人一级视频在线青青草| 人人操人人摸超碰| 91嫩草欧美| 无码人妻一区二区三区色欲aⅴ| 精品丰满人妻一区二区三区免费观| 九一国产精品| 国产成人网站在线观看| 99精品综合久久久久五月天| 操操啪| 超碰欧美COM| 玖玖玖玖精品国产剧情| 精品无人区麻豆乱码1区2区图片| 久久久久人妻| 午夜小电影在线插入淫高潮| 亚州综合AⅤ| 熟妇的味道HD中文字幕| 插入粉嫩少妇视频| 成人av免费观看| 欧美热图99| 人妻少妇视频在线播放| 看免费一级在线播放毛片| 96精品久久久久中文字幕| 啪啪视频亚洲第一| 精品妇操一区二区三区| 免费看美国人人爽,人人操| 偷拍精品一区二区三区| 综合网亚| 3P乱轮视频| 99精品无码| 激情五月天网| 天美传媒AV在线| 久草福利在线资源站| 天天搞欧美| 久久精品99| 精品对白久久不卡| 亚洲国产蜜臀系列在线观看| 亚洲国产尤物yw在线观看| 人妻少妇精品无码专区二区密桃| 亚熟在线| 精品少妇一区二区三区在线视频| 偷拍 亚洲 欧美| 美女91在线观看| 婷婷中文网| 电家庭影院午夜69久久夜色精品国产69乱| 亚av顶级裸体一区二区三区四区五区| 亚洲色综合| 亚欧毛片基地国产毛片基地| 九九九九热| 色网综合网| 丁香六月天| 无套内射人妻在线播放| 国产熟女无套内射| 91久久国外网| 97色97好| 大香蕉婷婷| 日本操逼视频不卡直接放| 97射欧美| 欧美日韩大陆黑人少妇99| 5月婷婷6月六月丁香| 91精品人妻偷情| 青青久日| 久久久精品中文字幕麻豆| 日日夜夜天天| 国产无码一二三区| .精品人妻一区二区三| 91艹逼精品| 九九综合| 国产精品天干天干综合网麻豆| 乱欲一区二区| 人人操人人叉人人插人人| 色色五月婷| 婷婷色婷婷| 亚洲色系另类精品国产| 国产一区二区二区按摩精品啪视频| 亚洲老司机123专区| 99在线精品视频| 26uuu国产免费观看| AV一区观看| 中文字幕一区二区视频在线观看| 日韩无码人妻中字久久三区四区| 熟妇高潮精品一区二区三区下载| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 久久啊啊啊| 精品视频97| 99啪| 欧亚第一综合网| 亚洲另类久操网| 亚洲成人免费电影| 色穴精品| 免費人妻夜夜爽天天爽爽一区| oumeisetu综合| hd成人一区二区在线| 欧美操逼熟女| 天天日天天干天天整| 91快色色色色色| 日本成人A片免费看| 免费黄色片。| 国产精品爽爽v| 日韩欧美大力操| av毛片aaaaa免费看| 黄色无码高清黄色无码网站| 久久精品国产Aⅴ| 97亚洲综合影院| 加勒比色99999| 人妻少妇精品无码专区二区密桃| www.AV有限公司一区| 日本啊啊啊啊啊视频| 中文字幕日韩精品一区二区三区| 91欧美丝袜| 熟妇国产免费一区| 啊啊啊啊啊啊在线| 欧美视频一| 日韩亚洲精品一区二区| 色乱二区| 人妻久久久| 久久久9视频| 日本 免费 一区二区三区 久久香蕉 | 久久夜黄色无码A级大片| 狠狠色噜噜狠狠狠狠狠色综合久久 | 在线观看不卡一区二区三区| 岛国视频一二三区| 天天干天天爽| 不卡人妻少妇精品毛片一区23区视频 | 野狼激情网| 小草精彩毛片| 91人妻久久久久久久久久久久久| wuyechaopeng| 在线啊啊啊| 综合夜夜| 欧亚性爱视频免费看| 五月丁香| 二级毛片| 中文?日韩?免费?精品| 约操熟妇| 真实高潮91| 91美女高潮| 国产精品午夜AV完会免费| 国产精品白领在线观看| 大香蕉五月天| 91伊人久久在线| 婷婷久久五月综合激情| 亚洲综合激情五月久久| av在线浏览| 中文字幕日韩电影人妻| 中文字幕在线观看第二页| 大学生美女口爆| 精品人妻少妇| 大香蕉在线免| 啊啊啊啊免费视频| 国产精品免费日韩| 日本加勒比无码专区| 乱性AV| 色五月激情网| 日产成人久久| 午夜精品久久久久久久久久蜜桃 | 97视频在线免费看| 国产后入式在线观看| 久久久久久久久久va| av大香蕉| 国内精品99999| 精品人妻av在线播放| ss久久| 中文字幕1区2区| 久久一区二区高清免费| 青青11操操操操操操操操| 99精品综合久久久久五月天| 狠狠色狠狠色狠狠五月| av亚洲天堂资源网站| 久久专区| 久久久久久中文字幕中文字幕最新| 欧美第一页| 樱花蜜乳av| 亚洲国成人情色好看电影| 91热热色| 啊a一区在线| 人妻久久| 欧美日韩国产中文超碰| 青娱乐999| 嗯嗯嗯好爽| 综合亚洲欧美| 欧美亚洲丝袜人妻制服99| 亚洲另类在线观看| 精品人妻一区二区三区四区| 五月激情小说| 亚洲欧美999| 99热只有| 国产成年女黄特黄| 熟女欧美日韩综合婷婷| 天堂俺去俺来也www久久婷婷| 欧洲中文字幕| 成人影院永久免费观看网址| 欧美白嫩在线放| 日韩福利综合一区| 亚码激情| 色欲天天综合久久久无码网中文| 狠狠干精品一二三四五六2022| 日本孕妇一区二区视频操逼免费看| 超碰超碰欧美| 天天懆天天日| 偷拍亚洲情色| 亚洲无套久久嗯嗯| 操B视频日韩无码| 欧美日韩99精品麻豆传媒| 91性网| 96精品在线| 国产偷人伦激情在线观看| 熟妇人妻一区二区三区| 久久鲁干| 日韩一二三区| 九九九草| 五月天成人综合| 人妻少妇精品视频一区二区三区| 亚洲AV乱码专区国产噜噜亚洲| 日韩成人性日韩成人性爱视频在线免费观看| 97久精品| 国产精品爽爽va在线观看98| 人人妻人人爱人人玩| 乱码熟妇人妻久久久| 国产成人免费观看在线视频| 男人天堂电影院| 精品久久青青草| 国产高清精品一区二区三区毛片 | 欧美亚洲日本视频久久久| 9精品久久久久| 蜜臀精品1区2区| 亚洲诱惑| 欧亚揄拍偷拍精品视频| 久久久久久久9最新免费视频观看| 色拍偷亚洲| 欧美国产精品久久九九| 亚州欧美综合| 偷窥自拍亚洲色图| 国内精品久久久久影院亚洲| 中文字幕高清精品一区| 丰满人妻-区二区三区免费看| 国产白嫩漂亮KTV在线| 免费一级视频特黄色大片| 97精品国产97久久久久久免费| 国产精品一区av在线| 日韩欧美麻豆 | 女人 A一级| 97综合网| julia国产在线 | 青娱乐国产盛宴视频| 国产精品播放| 亚洲综合骚逼| 人人搡人人肉久久精品| 国产久久一区二区三区野外在线| 久久精彩免费视频| 免费综合亚洲中文| 欧美性爱精品七区| 91综合熟女| 一二三四区操操Av| 999九九九九国产动| 久久偷拍人| 极品色社| 亚洲高清在线| 乱老女人一区二区视频| 极品尤物在线观看| 国产精品视频精品一二| 一个人免费HD91视频| 精品国产无码中文| 黄色AV免费| 国产成人超碰在线| 久久人妻熟女一区二区 | 先锋音影AV| 一区二区三区精品黑丝白丝酒店对鸡 | 久久久蜜桃一区二区三区| 日本人人操人人操| AV 少妇 人妻 偷拍| 91狼人| 大屁股xxxxx| 人人扣人人操| 狠狠操狠狠插| 肉丝网站91| 亚洲情色五月天 | 天天视频网站黄| 性色AV蜜色av色欲av| 蜜臀网址在线| 综合色久欲| 偷窥自拍亚洲| 婷婷久月| 日本日逼高清| 黄色av一区二区在线| 极品尤物在线观看| 亚洲情色五月天 | 1二区9| 人妻无码视频一区二区三区久久| 国产91丝袜 在线播放| 久久欧美激情| 中文字幕精品免费一区二区| 狠狠色伊人亚洲综合网站色| 上海一级黄片| 婷婷五月综合在线| 欧美啪啪女女| 亚洲熟妇乱女区二区三区| 天堂av2019| 亚洲男人的天堂网| 伊香蕉综合久久久久久久噜噜噜 | 99久久精品欧美国产| 国产呦精品系列在线观看| 日韩精品在线放| 美女极品一区二区三区| 26uuu欧美| 91欧美美女日韩国产婷婷| 91伊人久久在线| 天天色欧美| 美国人人操人人操| 五月天婷婷综合网| 色诱avtt| 97超碰精品图片| 中文操逼字幕| 人人扣人人操| 久久一二三四不卡| 免费国产视频| 极品欧美一区二区三区| 色综合99| 久久9精品网站| 放黄片放3级黄片没穿衣服| 久久国内| www鬼畜国产男人的天堂| 好舒服视频| 日韩97P| 青青伊人这里只有精品| 97干色天堂| 熟女少妇一区二区三区| 日本欧美亚洲高清在线看| 亚州再线| 91精品国产91久久福利| 五月丁香网站| 天操天操夜操夜月月年年操操 | 久久久久久久九九九九九九| 日本欧美韩国日产片片在线看免| 夜夜黄| 久久永久无码人妻视频| 日本99热| 国产免费小视频| 色翁荡息又大又硬又粗又爽| 午夜天天碰综合视频| 欧美成人精品一区二区男人蜜臀| 天天插夜夜操| 美日韩一卡二卡三卡免费人妻精品| 超碰久草| 67194国产| 亚州 综合 色图| 欧美性爱第1 页| 91亚洲黑人| 日韩无码第3页| 国产激情在线观看| 蜜桃午夜视频一区二区| 欧洲熟妇xxXx欧美老妇裸体| 91无码人妻| 一起草日韩| 久久夜夜夜| 久久超碰网| 欧美综合骚| 欧美色就是色| 九九热精品在线| 日韩偷拍一区二区三区| 久久超碰av在线| 国产亚州日韩欧美看片| 91骚熟女| 精品成人女人久久| 色婷婷亚洲婷婷| 最新无码国产| 免费的av网| 东京热视频网| 欧美第一页| 91精品丝袜在线观看| 丰满熟妇大乳做爰| 色色亚洲| 欧美精品二区视频在线| 天美传媒Av在线| 国产高清无码一区三区二区| 成人久久久精品| 九九探花视频在线观看| 亚洲性高潮| 中文字暮97| 日本羞羞的视频在线播放| 日本精品人妻少妇一区二区| 亚洲精品免费中文字幕| 亚洲国产丝袜在线观看| 五月婷婷六月天| A级片一区| 精品乱码久久久久| 五月激情小说| 一区二区三区黄色片a| 这里都是精品| 综合91网| 久久久亚洲精品电影免费看| 激情视屏国产乱伦强奸| 欧美精品成人一区二区在线观看| 超碰久久网| 岛国小电影| 一区三区啪啪| 久久性爱视频99| AV男人天堂网| 白丝少妇一区二区| 99re这里只有精品中心播放| 中文字幕精品资源在线| 四虎国产精品永久地址入口| 国产精品剧情| 亚洲精品电影| 激情视频图片| 亚洲偷91色| 四虎884a| 少妇人妻精品| 欧色综合| JULIA人妻风俗店中出电影| 亚洲黄色影视| 婷婷久久大香蕉| 日本性爱不卡视频| 日韩在线性爱免费视频| 欧美日韩啪啪电影| 欧美一级AAAAAAA| 国产9区| 国产精品播放| 偷拍盗拍亚洲色图图片| 91A欧美电影网站| 大香蕉性欧美| 天堂亚洲欧美| 亚洲三级。日韩三级| 新91视频.cmp| 久久精品区| 大香蕉手机在线| 密臀国产在线| 亚洲色图8| 久久久久久久久久久精| 91高清日| 欧美性夜| 国产真实子伦对白| 午夜亚洲WWW湿好大| 亚洲婷婷综合网| av亚欧| 欧美传媒| 伊人精品久久网站| 黄片aaaaa一区| 亚洲乱码国产乱码精网站| 亚洲国产精品成人无码久久久| 97人人操人人摸| 日本性爱少妇| 五月婷婷丁香六月| 亚洲人精品久久久喷水| 欧美丝袜激情| 久久久久久久久久久久久女过产乱-少妇高潮一区二区三区喷水-成人AV | A片 AV一级在线播放观看免费| 国产成人免费观看在线视频| 久久激情网| 国模限制级电影| 欧洲乱码视频| 大色网久久| 国产一级高清免费观看| 岛国片在线播放| 在线综合色| 美女黄频a美女大全免费皮| 九九探花视频在线观看| 精品国产乱码久久久久久影片| 婷婷久草一区二区三区| 久日91在线| 韩国嫰模上门援交视频| 亚洲丝袜少妇在线| 偷拍亚洲熟女视频播放| 国产欧美日韩精品中文| 吻戏激情性巴克| 精品国产91久久久久久一区黄无| 欧美性生活内射| 欧美色图片色哟哟| 精品人妻中文字幕高清| 亚洲色图日韩精品| 96精品在线| 色香伊人| 欧美性夜| 国产成人手机视频激情| 综合色图区| 亚洲男人的天堂网| 美女久久久久久久久久久| 快灬快灬 一下爽蜜桃在线观看| 91香蕉国产尤物视频| 亚洲欧洲综合成人av一区| 伊人99热| 九九成人精品| 丁香九月婷婷| 欧美经典一区二区三区 | 日日噜噜夜夜久久亚洲一区二区| 国产9熟妇视频网站| 人人操我人人干| 丰满的三级少妇欧美久久久| 97久久精品国产| 亚洲色欧| 日韩国产欧美伦理在线| 欧美色图片91| 精品无码少妇| 91精品丝袜在线观看| 熟妇一区二区三区| 成人一区二区三区四区| 9久在线视频只有精品| 黄色欧美性爱视频| 日本新免费二区三区| 国产久久久| 丁香五月影院| 久久人妇| 精品无码欧美三级| 一品道视频一区二区三区| 亚洲麻豆18发?| 九九精品99| 超碰在线一区| 思思热在线| 超碰这里有精品| 天天澡天天爽日日AV| 五月天激情小说| 亚洲男人天堂视频| 国产av美女被艹的乱叫| 超碰中文字幕人妻草一区| 国产精品白领在线观看| 青青国产精品在线| 综合色久欲| 国产九九九九九九九九| 60秒免费视频| 国产色呦呦| 一二三四视频在线社区中文字幕| 久久久久久久伊人精品| 久久亚洲天天做| 熟妇一区二区| 日日爽夜夜爽| 欧美色91| 日韩午夜啪啪视频| 97超碰9| 国产一二三福利视频网| 国产精品久久99日日| 天天插天天操天天摸天天射天天看| 黄色无码高清黄色无码网站| 超碰日本97美女人妻人人玩人人爱| 天天拍夜夜| 五月婷婷无码| 乱欲视频| 色好看av| 欧美老妇曰批的视频| 亚洲色丰满少妇高潮| 人人干人人操人人..com| 欧美日韩人妻少妇 一区二区三区| 国产精品黄色三级av| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 国产在线能看的你懂的| 国产盗摄美女如厕大神作品在线观看| 丰满人妻被猛烈进入中| 白丝在线一区| 无码抄逼网| 91亚洲高清| 一道本东京热加勒比一区二区三区| 蜜臀久久99精品久久久电影| 日本大香蕉| 中文一区在线视频| 91制服丝袜中文字幕| 91亚洲精品青草| 福利视频一区二区微拍| 91无码人妻精品一区二区三区蜜桃| 黑操B| 午夜a成v人电影| 国产视频大全| 天天操夜夜操| 天天激情综合站| 色欧美在线| 免费看美国人人爽,人人操 | 鸥美精品一区二区久久婷婷| 日韩女模中文造逼| 丰满熟女一区二区三区在线播放| 国产自产91区13区| 91操人| 亚洲图片另类| 久久九九精品一区二区 | 婷婷激情五月综合| 一区不卡在线观看av| 久久女女| 久操大香蕉超碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰 | 十八禁一区二区无码观看| 婷婷伊人綜合中文字幕| 岛国黄片网站| 天天干18禁| 亚洲视频小说| 天天日日舔舔| 欧美在线观看综合国产| 男女激烈网站最新| 欧美精品一二三| 欧美日本视频一区| 91网亚洲| 成人网站 免费观看| 亚洲高清无毛一区二区| 2017天天插| 国产中文字幕在线观看| 亚州色站 日韩电影| 920日本午夜免费| 久久人人舔人人爽舔人人av片| 中国AAAAAA黄色片| 久久草视频污视频| 欧美精品在线观看| 婷婷五月天影院| 亚洲欧美自拍偷拍| 男女做爰猛烈动高潮A片免费应用| 啊啊啊男女| 超碰97最新人妻| 无套内射性感少妇视频| 青娱乐国产精品| 在线无码视频| 老司机福利青青草| 91精品老女人| 精品一级| 夜夜躁狠狠躁日日躁av| 67914在线兔费成人视频| 日韩三级性| 欧美性生活内射| 白丝少妇一区二区| 第四色亚洲色图| 极品内射| 久久免费看高潮毛片韩国| 亚洲男人的天堂V| 在线观看一卡二卡| 欧美少妇大量自拍视频在线观看| 九九热精品| 又黑又大又粗| 91亚洲黑人| 青苹果影院男人的天堂| 老熟女91av| 97WW精品| 无码欧美有限公司| 天天日老熟妇| 欧美熟妇乱码在线一区| 久久久爆乳翘臀一线天伦理视频| 精品精品精品| 国产馆极品诱惑| 精品无人区麻豆乱码久久久| 日韩精品人妻中文字幕有码午| 国内操逼视频二区| 男人天堂婷婷五月天校园春色| 日本一级黄色电影| 久久久91| 另类图片天天影视| 国产无码精品久久久久久| 三级精品三级在线观看| 国产精品视频自拍在线| 久久久久久精品免费看A级| 秋霞一级视频在线观看免费| 999久久久精品国产| 按摩中文字幕| 日韩人妻丝袜美腿中文| 久久久999国产| 国产色产精品在线观看| 91性高朝久久久久久久久| 亚洲一卡2卡3卡4卡乱码网站 | 国产在线精品偷| 乱精品一区字幕二区| 黄色成品网站| 久久久九| 亚洲综合第一页| 日本午夜操逼| 99热在线观看| 东京热不卡视频| 国产后入式在线观看| 欧美精品69性爱| 国产网站在线播放| 国产欧美美女免费观看视频| 久久鲁夜| 丝袜AV一区二区三区| www.av家庭乱伦| 成人网站 免费观看| 大香交伊人网| 2017超碰| 国产精品一二三| 日韩欧美性吧婷婷乱伦大香蕉| 国产毛片毛片4p懂色| 99久久婷婷丁香| 99热66| 欧美性综合| 中文字幕后石码三区四区| 在线观看中文av字幕| 2020视频1区2区3区| 久9爱经典视频| 在线视频免费观看午夜| 婷婷色导航| 欧洲精品一区二区三区| 久久超碰网| 粉嫩不卡一区二区性爱 | 91高清欧美| 再深点灬舒服灬太大了添视频| 五月天综合| 欧美草草| 日韩综合成人免费视频| 美女露胸露尿口| 日韩有码回春沙龙第一页| 成人一级性爱| 久久无码精品| 婷婷五月天福利| 2019午夜福利视频| 亚洲精品白浆高清久久久久久 | 亚洲天堂男人天堂网| 91在线无码精品秘 软件| 裸模AV女优| 国产综合色精品在线观看| 婷婷五月天色| 精品国产乱码久久久久久免费| 狠狠操狠狠操操| 污到发麻的视频 国产| 亚洲精品一区中文字幕乱码| 欧美性综合| 国产综合网站在线播放| 你草精品在线视频| 超碰在线人妻中文字幕| 天美麻豆精品视频99| 久夜操| 婷婷丁香六月| 午夜视频久久久| 操操啪| 超碰偷拍| 色色色999| 亚洲风情综合网| 99久久网站| 欧美,亚洲,日韩,v,天堂,手机在线观看| 日韩人妻播放| 白丝在线一区| 2018色综合天天操| 91亚.色| 亚洲宅男天堂| 国产9熟妇视频网站| 婷婷五月激情综合| 亚洲欧美高清| 性色乱AV一区二区| 欧美综合娱乐久久| 精品国产乱码久久久兰草影视| 久操网线| 中文字幕一品色图| 丁香九月激情| 青青草久草| 欧美激情欧美精品| 亚洲日本激情| 情色图区| 国产av白丝| 大香蕉视频一二三区| 天天日熟妇| 99热这里只有精品9| 日本影视久久免费| 大香蕉一人在线| 黄网色一区二区三区四区精品| 亚洲精品97p| 91色碰| 人妻干天天| 玖玖综合视频| 欧美久久婷| 欧美日韩不卡a片| 风月影院十八禁| 精品一区二区成人动漫| 日本一线产区和二线产区伦理片| 蜜桃色色网站视频三区| 黑人中出21连凳花野真衣| AV天堂因数| 日本 免费 一区二区三区 久久香蕉 | 天天综合网1| 精品一区二区综合熟妇| 4虎在线观看| 午夜呻吟欧美| 日本欧美国内在线| 女性91网站| 欧美洲精品一级| 在线观看精品国产免费| 日本东京热久久久电影| 男女性扦B| 爱爱动态120秒| 每日更新AV| 欧美 亚洲 在线| 91女优在线观看| 激情开心五月天| 中文字幕一区二区韩| 婷婷色一区| 亚洲综合有玛| 中文字幕在线免费观看视频| 四虎884| 人人做天天爱| 婷婷激情丁香| 久久久久久久久久久久久久久乱码 | 91性高| 亚洲男人天堂Av| 欧美久久伊人| 久久久久久久久久va| 97精品网| 日韩av电影网站| 久操 高清| 校园春色 男人天堂 | 91色碰| 激情综合久久| 国产精品久久久久久久黄无码 | 91精品人妻一区二区-全集完整版免费正片国语-B02AV | 国产麻豆福利av在线播放| 国产强奸乱伦欧美| 亚洲图片视频小说| 超碰视97中文| 欧美中字二区| 五十路熟女工口 | 黄色激情电影在线观看| 久久黄人人爽视频| 久九九九九九九九热| 日韩精品系列| 男人天堂综合| 97资源欧美| 欧美九九爱| 天天操天天插| 色999五月色| 九九热精品在线| 久热9| 国产黄色 A 片免费看| 亚洲无码免费看| 日本成人免费一区二区三区| 中文操逼字幕| 色香av| 亚洲女人91| 96精品久久| 中国韩国明星一极片一区乱码毛片人妻熟女一区二区三区 | 欧美婷婷| 婷婷五月综合在线| 国产免费一区二区三区最新不卡 | 国产强奸超碰AV| 国产又操| 日韩乱插| 人人摸人人干| 亚洲天堂,男人| www.狠狠干.coom | 亚洲二区精品在线观看| 黄片aaaaa一区| 国产97色在线| 加勒比无码一区二区三区| 日本在线一二 | 欧美色人| 俄罗斯一区二区视频在线观看| 小视频玖玖| av在线一区二区三区| 国产欧美一区激情交| 亚洲啪啪性视频| 麻豆天美国美国产| 97色涩| 天天操狠狠日夜夜干超大胆开放com大香蕉视频在线观看 | 韩国一区二区精品亚洲| 欧美 综合| 久久精品成人一区二区三区蜜臀 | 亚洲人妻中文在线视频| 无码高清操逼网址| 亚洲一区二区中文字幕| 91粉嫩萝控精品福利网站_精品影音先锋国 | 中文字幕日韩电影人妻| 国产区性爱在线视频秋霞豆| 国产乱伦性爱AV| xxx亚洲午夜天堂| 亚洲少妇色图自慰直播| 99AV| 亚洲成人性爱网站在线播放| 国产亚州精品美女久久久免费| 蜜桃臀av在线观看| 99999精品成人| 玖玖资源视频一区二区三区| 亚洲av成人精品一区| 超97在线精品视频| 久久国产精品一级二级三级| 精品然女一区二区| 男人天堂2019| 狠狠中文字幕| 五月色网| 国产午夜视频| 中文字幕神马久久| 欧美亚洲中文| 在线看免费无码AV天堂的| 亚洲精品久| 9久9久9久9久视频网站| 久久国产在线一区二区| 国产超碰| 裸体1区| 欧美 亚洲 第一页 | 亚洲少妇综合在线播放| 欧美|91色综合| 五月开心久久AV官网| 国产精品com| 人人天天干干| 超碰碰激情97+久| 欧美第一页| 秋霞一级视频在线观看免费| 三级网站超变态精品| …亚洲黄色厕厕女女在线播…| 在线观看成人性爱免费小视频| 亚洲色图久久成人| 午夜精品久久久99热蜜桃的功能特点| 91被操| 色av中文字| 欧美性五月| 麻花传媒免费网站在线观看| 婷婷啪啪| 91综合天天| 久久香蕉综合一本到3atv| 亚洲不卡av在线| 成人怡红院| 婷婷啪啪| 国产女主播视频在线观看| 强奸国产精品视频| 国产久久久9999| 亚洲超碰97| 亚洲第一页色| 久久精品国产97欧美精品亚洲 | 五月丁香黄色网| 婷婷五月天成人| 欧美性性性| 日韩精品在线观看观看| 欧美日韩亚洲天堂网| 国产福利电影| 久久99国产综合精品女同| 97色亚洲| 高清不卡视频| 欧亚日韩中文在线| 久无码| 人妻色偷色噜| 澳门人妻久久| 五月天我淫我色av| 97超碰无码网| 超碰人人操97碰| 欧亚成人在线视频| 国产女人和拘做爰视频 | 国产激情在线观看| 国产精品电| 亚洲中文字幕网| 亚洲天堂2020| 亚洲性爱高潮影院| 欧美夜夜草视频| 思思99热| 私人尤物在线精品不卡| 91夜夜蜜桃臀1区2区3区| 永久免费av无码网站国产app | 99热销国产这里有精品| 中文高清一区二区的| 起碰97| 蜜臀色乳| 亚洲精品aa久久伊人| 亚洲日本大香蕉1| 国产欧美日韩女同性恋ww喷水精品| 亚洲国产成人精品久久久国产成人一区二区 | 亚洲丝袜99| 日韩精品在线观看网站| 自拍六区| 男生女生啊啊啊啊| 无码逼| 亚洲男人在线观看天堂| 欧美内射少妇| 吖在线不卡一区二区国产剧情| 天天大干大香蕉| 91视频国品一二三区| 日本欧美中文字幕| 久久99草| 久久久一区二区三区四曲免费听| 好色综合| 后入式五六区| 久久久久密| 久久久久亚洲?V片无码V| 99999久久精| 天天综合AV| 中文字幕在线观看永久| 91精品导航| 亚洲人成网www| 免费精品人妻一区二区三| 婷婷丁香六月天| 国产偷人伦激情在线观看| 夜夜免费视频| 色性荡荡荡荡视频| av在线免费一区二区| 亚洲影视综合| 亚洲综合 欧美| 亚州精品一区二区三区香中文字幕在线| 免费黄色片。| 国产一级内射高清视频| 中文一区在线日| 伊人综合色网| 国产在线精品偷| 啪啪综合网| 清纯唯美第一页| 久草精品一区 | 男人的天堂2018| 老鸭窝在线视频播放| 国产suv精品一区二区四| 欧美国产日韩高清在线| 亚洲国产尤物yw在线观看| 91n处女在线观看| 青青欧美| 91殴美大片| 天天爽天天操| 3p国产欧美99热| 奇米四色影视777久久久| 91男女| 精品一区二区三区四区外站 | 97精品97| 欧美亚综合色图| 国产av美女被艹的乱叫| 五月天我淫我色av| 天天澡天天爽日日AV| 欧美日韩狠狠爱| 另类专区加勒比| 久草精品一区| 日韩电影天堂视频一区二区| 伊人天堂在线| 日本一天色道久久久精品视频| 亚洲成人碰碰| 激情久久久| 91在线免费精品视频| 日日夜夜模| 99色| 久久亚洲av成人无码国产| 成人八戒网站| caoni国产亚洲av| 国产传媒日韩欧美| 九九热九九| 97视频在线看| 午夜性刺激视频免费观看| 久久精品国产亚洲粉嫩| 超碰久超碰久| 国产AV中文| 青青五月天| 中文字幕乱亚洲美女精品一区| 美女91| 日本欧美不卡| 大香蕉中文在线| 国产9区| 免费国产电影一区二区| 亚洲无线观看久久| 日韩av免费一级电影| 欧美黄色片在线播放|