欧美成人午夜精品久久久,国产?V天堂一区二区三区,欧美精品va在线观看,亚洲一区二区三区免费在线观看,av无码精品一区二区久久,欧美性爱视频不卡一区三区,欧美乱人伦视频在线观看,国产一级牲交高潮

ARTICLE DETAIL

資訊詳情

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

STM32WB5x BLE OTA卡死原因分析與分層超時復(fù)位策略

STM32WB5x BLE OTA卡死原因分析與分層超時復(fù)位策略 前幾天又遇到一次典型的STM32WB5x BLE OTA卡死問題手機(jī)端顯示固件包傳輸?shù)揭话脒M(jìn)度條不再前進(jìn)設(shè)備側(cè)此時本來應(yīng)該在收包、寫Flash但就是沒有任何回包。等了幾分鐘手機(jī)端BLE連接超時斷開之后不管怎么掃描都找不到設(shè)備廣播。重新上電也一樣——好像固件升級把整臺設(shè)備送進(jìn)了某個“黑洞”狀態(tài)。這個問題的標(biāo)題很直接STM32WB5x BLE OTA gets stuck mid-update with no way to reconnect — is a firmware-side timeout/reset the right approach? 我先說結(jié)論不能用一套簡單的 timeout reset 邏輯去掃尾但也不能完全不處理。關(guān)鍵是要找到卡在哪個階段、誰在卡、以及復(fù)位后從哪里啟動。這篇文章就圍繞這個思路把 STM32WB5x 上 BLE OTA 卡死的原因、排查手段、分層超時設(shè)計和可落地的復(fù)位策略完整拆開聊。1. 卡死現(xiàn)場從“傳輸中”到“徹底失聯(lián)”的三種表現(xiàn)1.1 下載階段卡住數(shù)據(jù)傳著傳著就沒有ACK了第一種卡死最容易被誤判為“藍(lán)牙斷連”?,F(xiàn)象是手機(jī)APP通過 BLE 自定義服務(wù)向設(shè)備持續(xù)發(fā)送固件分片前面幾十個包都正常設(shè)備也回了 Write Response 或 Notify ACK在某個分片之后設(shè)備突然不回任何 Confirm 了。手機(jī)端要么等本次 GATT 寫操作超時要么等到 BLE 連接事件丟失最終報錯斷開。這種卡在下載階段的問題根源幾乎都不在協(xié)議棧而在 M4 應(yīng)用核。STM32WB5x 的雙核架構(gòu)里M0 核負(fù)責(zé) BLE 協(xié)議棧M4 核負(fù)責(zé)用戶的業(yè)務(wù)代碼。GATT 寫請求來了M0 會把數(shù)據(jù)通過 IPCC 放進(jìn)共享內(nèi)存然后通知 M4 去取。M4 收到數(shù)據(jù)后要做的是把分片寫入目標(biāo) Flash。如果這段 Flash 寫入邏輯寫得很“霸道”——比如在擦寫整個扇區(qū)時長時間關(guān)中斷或者HAL_FLASH_Program一次寫入后再做 CRC 校驗(yàn)?zāi)敲?M4 處理完這個分片的時間可能超過 BLE 的連接間隔M0 側(cè)的 ACK 隊(duì)列就會越積越多。積壓到一定程度M0 的接收緩沖區(qū)滿協(xié)議棧開始丟棄新的 GATT 寫請求。手機(jī)端發(fā)出去的包沒人應(yīng)答連接事件也會因?yàn)闆]有及時交換空包而觸發(fā)鏈路監(jiān)督超時。此時設(shè)備并沒有死只是 M4 忙到忘記喂 BLE 協(xié)議??雌饋砭拖癖豢ㄋ懒?。1.2 安裝階段卡住FUS 一張接管設(shè)備直接消失第二種卡死比下載階段更迷惑人。所有固件分片都傳完了校驗(yàn)也通過了然后 APP 端發(fā)送“開始安裝”的命令設(shè)備收到命令后可能回了一幀 ACK然后連接斷開。此后無論怎么掃描設(shè)備再也不會廣播。重新上電也一樣設(shè)備仿佛人間蒸發(fā)。如果你用 ST-Link 接上芯片很可能會發(fā)現(xiàn) M4 還在跑但 M0 停在某個 FUS 服務(wù)里——這時設(shè)備并不是“壞了”而是進(jìn)入了無線棧固件升級Wireless Stack Update的安裝流程。STM32WB5x 的 FUSFirmware Upgrade Service運(yùn)行在 M0 核上負(fù)責(zé)安全安裝無線棧固件、管理密鑰等。當(dāng) FUS 開始安裝或者擦寫無線棧區(qū)域時BLE 協(xié)議棧必然停止運(yùn)行所有無線活動都會終止。這個階段本來就不應(yīng)該期望還能搜索到設(shè)備。問題在于FUS 安裝完成后可能需要幾秒到幾十秒一旦安裝失敗或 FUS 卡在某個內(nèi)部狀態(tài)設(shè)備就永遠(yuǎn)停留在“沒有無線??膳堋钡木置孀匀灰膊粫袕V播。1.3 復(fù)位后卡住看起來是醒了其實(shí)在裸奔第三種情況出現(xiàn)在“timeout/reset 已經(jīng)寫進(jìn)固件”的設(shè)備上。工程師發(fā)現(xiàn) OTA 卡住后在 M4 側(cè)加了一個看門狗或者收到“開始安裝”后倒計時 10 秒強(qiáng)制NVIC_SystemReset()。結(jié)果是設(shè)備確實(shí)能重啟但重啟后既不廣播、也不進(jìn)入正常應(yīng)用調(diào)試器連上去發(fā)現(xiàn)程序跑飛或死在 HardFault。這通常是復(fù)位后的啟動入口出了問題。OTA 過程如果已經(jīng)把新的應(yīng)用固件寫入了當(dāng)前運(yùn)行分區(qū)但復(fù)位后 bootloader 沒有做“鏡像有效性檢查”直接跳轉(zhuǎn)到一個寫了一半或者 CRC 校驗(yàn)失敗的鏡像CPU 就會取指失敗卡在啟動階段。還有更隱蔽的一種OTA 期間使用獨(dú)立看門狗 IWDG但喂狗邏輯放在主循環(huán)里。當(dāng) M4 阻塞等待 FUS 回復(fù)時主循環(huán)停擺IWDG 超時復(fù)位。運(yùn)氣好時復(fù)位后舊應(yīng)用還在但升級標(biāo)志被寫壞運(yùn)氣不好正趕上 Flash 擦寫中途復(fù)位導(dǎo)致 Flash 內(nèi)容不完整設(shè)備便再也沒能起來。2. 雙核架構(gòu)下的OTA到底是誰在“卡”誰2.1 先理清 M4、M0 和 FUS 的職責(zé)邊界要處理卡死問題首先得把 STM32WB5x 里的三角關(guān)系搞清楚。M4 核跑應(yīng)用邏輯也就是你寫的產(chǎn)品代碼M0 核跑 BLE 協(xié)議棧對外呈現(xiàn)為“無線核”。兩個核通過 IPCC 硬件單元和共享內(nèi)存通信。M4 不需要知道 BLE 連接的底層細(xì)節(jié)它只負(fù)責(zé)從共享內(nèi)存里取數(shù)據(jù)和發(fā)送命令。FUS 是 M0 上的一套系統(tǒng)服務(wù)類似一個運(yùn)行在無線核上的 mini bootloader。M4 可以通過 IPCC 向 FUS 發(fā)送命令比如查詢版本、安裝無線棧、刪除無線棧、管理安全密鑰等。FUS 有自己的安全狀態(tài)和錯誤碼。當(dāng)執(zhí)行覆蓋無線棧區(qū)域的寫操作時FUS 會暫停當(dāng)前無線棧運(yùn)行因此 BLE 連接一定會斷。很多第一次做 STM32WB OTA 的人會以為“BLE OTA”就是把數(shù)據(jù)寫到 Flash 然后跳轉(zhuǎn)但實(shí)際上要區(qū)分升級對象升級用戶應(yīng)用固件數(shù)據(jù)寫入應(yīng)用分區(qū)通常與 FUS 無關(guān)。升級無線棧固件必須通過 FUS 或類似機(jī)制不僅要寫 M0 的代碼區(qū)域還要更新藍(lán)牙棧版本和配置。同時升級兩者先升級用戶應(yīng)用再升級無線棧或反過來中間需要明確的狀態(tài)管理。如果沒有做這個區(qū)分就會在應(yīng)用 OTA 過程中試圖調(diào)用 FUS或者在無線棧 OTA 過程中關(guān)閉了 FUS導(dǎo)致整個狀態(tài)機(jī)錯亂。2.2 應(yīng)用固件OTA和無線棧OTA是兩條完全不同的路應(yīng)用固件 OTA 通常走雙 Bank 方案當(dāng)前從 Bank1 啟動新固件寫入 Bank2寫完后置位切換標(biāo)志復(fù)位后 bootloader 檢查標(biāo)志并嘗試從 Bank2 啟動如果 Bank2 無效則自動回退 Bank1。這種方式的好處是即使新固件寫壞了Bootloader 還能救回來前提是 Bank1 的舊固件仍然可用。無線棧 OTA 就復(fù)雜一點(diǎn)。無線棧代碼和 FUS 安全性綁定不能由 M4 直接寫入只能讓 FUS 去處理。M4 要做的是把無線棧固件包傳給 FUS再由 FUS 完成校驗(yàn)、擦寫、安裝。這個過程中 M4 與 FUS 通過 IPCC 異步交互不能一邊等 FUS 一邊又把 BLE 協(xié)議棧殺掉。從調(diào)試角度看應(yīng)用 OTA 卡住大多能在 M4 用戶代碼里找到原因無線棧 OTA 卡住則要優(yōu)先查 FUS 返回的錯誤碼和 M0 狀態(tài)。兩者排查手段完全不同所以“一堆 timeout 邏輯走天下”在雙核 OTA 里根本行不通。2.3 “無法重連”的深層原因往往不在BLE超參數(shù)而在于狀態(tài)機(jī)遇到設(shè)備不能重新連接時很多人的第一反應(yīng)是調(diào) BLE 廣播參數(shù)縮短廣播間隔、打開可發(fā)現(xiàn)模式、延長連接超時。這些參數(shù)調(diào)整可能有效但治標(biāo)不治本。真正的深層原因往往是沒有把 OTA 狀態(tài)持久化。比如OTA 下載了一半設(shè)備復(fù)位舊應(yīng)用還在但 SFlash 里某個“升級進(jìn)行中”的標(biāo)志位被誤寫成了“升級完成”。新固件寫入 Bank2 后由于復(fù)位發(fā)生在標(biāo)志位寫入之后、CRC 校驗(yàn)完成之前Bootloader 檢查標(biāo)志時認(rèn)為可以切換結(jié)果跳到損壞的 Bank2。FUS 安裝無線棧時M4 因?yàn)槌瑫r執(zhí)行了復(fù)位復(fù)位后 FUS 尚未完成安裝M0 沒有任何可運(yùn)行的無線棧設(shè)備自然無法廣播。這些問題不是靠“多等幾秒”或“多復(fù)位幾次”能解決的。你得有一個“升級狀態(tài)機(jī) 啟動驗(yàn)證 回退路徑”讓設(shè)備無論什么時候掉電都能從持久化狀態(tài)里判斷該繼續(xù)升級、該回退舊版本、還是進(jìn)入恢復(fù)模式。3. 排查套路從復(fù)位原因到FUS狀態(tài)都翻一遍3.1 上ST-Link先看芯片還能不能連上調(diào)試口遇到 OTA 卡死別急著改代碼先把芯片接到 ST-Link打開 STM32CubeProgrammer。如果連接成功你能讀出器件 ID、Flash 大小、當(dāng)前 FUS 版本和無線棧版本。這一步能立刻確認(rèn)設(shè)備是否“活”著以及是哪個核在跑。如果連接失敗優(yōu)先檢查目標(biāo)板電源以及在 CubeProgrammer 連接設(shè)置里選擇正確的接口模式和復(fù)位模式。有時設(shè)備運(yùn)行在不正常狀態(tài)需要把 BOOT0 拉高進(jìn)入系統(tǒng) Bootloader 再連接。不過 STM32WB5x 的內(nèi)部 Bootloader 走的是 USART/USB不是 SWD所以如果 SWD 連不上通常說明芯片內(nèi)部時鐘或電源出了大問題或者調(diào)試引腳被 M4 代碼復(fù)用并配置成了模擬輸入。3.2 第二眼看RCC_CSR這臺設(shè)備是“怎么死的”如果 SWD 能連上下一步我會讀取復(fù)位原因寄存器RCC_CSR。這個寄存器能告訴你最后一次復(fù)位是由誰觸發(fā)的上電復(fù)位 / 欠壓復(fù)位外部復(fù)位引腳獨(dú)立看門狗 IWDG 復(fù)位窗口看門狗 WWDG 復(fù)位軟件復(fù)位 NVIC_SystemReset其他原因在項(xiàng)目里用一個調(diào)試命令把復(fù)位原因打印出來會非常有價值。比如你發(fā)現(xiàn)設(shè)備每次 OTA 卡死后的復(fù)位原因是 IWDG那說明問題出在“沒有及時喂狗”如果復(fù)位原因是軟件復(fù)位說明你的超時邏輯真的執(zhí)行了NVIC_SystemReset()但顯然它沒有解決問題。讀取代碼如下uint32_t csr RCC-CSR; if (csr RCC_CSR_RMVF_Msk) { RCC-CSR | RCC_CSR_RMVF_Msk; // 清除復(fù)位標(biāo)志 } // 判斷 if (csr RCC_CSR_WDGRSTF_Msk) { // IWDG復(fù)位 } else if (csr RCC_CSR_SFTRSTF_Msk) { // 軟件復(fù)位 }我在實(shí)際項(xiàng)目中遇到過很隱蔽的情況設(shè)備上電后RCC_CSR里的 IWDG 復(fù)位標(biāo)志一直存在而代碼里沒有在啟動早期清除它導(dǎo)致 Bootloader 以為上一次 OTA 異常退出不斷觸發(fā)回滾。這種“歷史復(fù)位原因”沒有清理干凈也會造成奇怪的啟動行為。3.3 第三步翻FUS狀態(tài)和無線棧版本STM32CubeProgrammer 有一個專門的 FUS 頁面打開后能直接看到 FUS 版本、無線棧版本、當(dāng)前運(yùn)行的安全狀態(tài)以及上一次 FUS 命令的執(zhí)行狀態(tài)。如果上位機(jī)顯示無線棧區(qū)域?yàn)榭栈蛘?FUS 狀態(tài)不是 Running那基本可以判斷設(shè)備是卡在無線棧升級的安裝階段。此時你要么重新通過腳本刷入一套完整的無線棧固件要么用 Flash 全擦除后重建。注意STM32WB5x 的無線棧區(qū)域有安全校驗(yàn)單純在 MDK 里隨便寫一個地址是沒用的必須走 FUS 或官方工具鏈。在自定義 OTA 流程中我建議把 FUS 命令的返回碼納入日志系統(tǒng)。比如FUS_ERROR_IMG_NOT_AUTHENTICATED固件包簽名校驗(yàn)失敗。FUS_ERROR_OP_ABORTED操作被中斷。FUS_ERROR_NO_DEVICE_ACCESSM4 沒有對應(yīng)權(quán)限。這些錯誤碼能幫你判斷問題出在 OTA 包的合法性還是出在 FUS 命令交互流程。3.4 如果連SWD都連不上優(yōu)先懷疑Flash被寫花假設(shè)設(shè)備徹底沒反應(yīng)SWD 也連不上這時不要上來就懷疑芯片壞了。先強(qiáng)制進(jìn)入系統(tǒng) Bootloader把調(diào)試口重新救出來。如果 STM32CubeProgrammer 能連接系統(tǒng) Bootloader再對 Flash 做整片擦除擦除后一般都能通過 SWD 重新連接。這種情況多發(fā)生在 FUS 安裝過程中被 M4 側(cè)硬復(fù)位打斷。雖然 STM32WB5x 在 Flash 擦寫上做了一些保護(hù)但復(fù)位發(fā)生在閃存編程時序中間仍可能導(dǎo)致無線棧區(qū)域處于不穩(wěn)定狀態(tài)。而一旦無線棧區(qū)域內(nèi)容損壞M0 無法啟動協(xié)議棧整顆芯片就表現(xiàn)為“BLE 完全消失”但 M4 可能還在空轉(zhuǎn)。所以從設(shè)計層面講任何可能中斷 Flash 編程的操作都必須格外小心。尤其是無線棧升級期間不是萬不得已不要用 M4 側(cè)看門狗去打斷 FUS 流程。4. 固件側(cè)timeout/reset能解決什么不能解決什么4.1 超時機(jī)制的正確分層傳輸層、安裝層、啟動層回到標(biāo)題里的問題firmware-side timeout/reset 到底是不是正確方案我的答案是timeout 是必須的但 reset 要分級、分層不能一把梭??梢园颜麄€ OTA 流程分成三個層次層次典型超時場景正確處理方式是否建議直接復(fù)位傳輸層長時間沒有收到下一個固件分片中止本次下載保持廣播等待重連通常不需要復(fù)位安裝層FUS 安裝無線棧超時查詢 FUS 狀態(tài)記錄錯誤再決定復(fù)位謹(jǐn)慎需先保護(hù)標(biāo)志啟動層Bootloader 檢測到鏡像無效回退到上一分區(qū)或進(jìn)入恢復(fù)模式通過跳轉(zhuǎn)邏輯完成不屬于普通復(fù)位4.2 傳輸層超時該中止但不該急著復(fù)位傳輸層的超時最簡單。M4 收到固件分片后維護(hù)一個last_rx_tick。如果超過某個閾值比如 5 秒沒有收到新的分片就認(rèn)為本次傳輸已經(jīng)失敗。此時正確的做法是把 OTA 狀態(tài)機(jī)切到OTA_STATE_FAILED。記錄失敗的偏移量和錯誤碼。釋放本次 OTA 占用的緩存。判斷當(dāng)前正在運(yùn)行的應(yīng)用是否有效如果有效繼續(xù)跑舊應(yīng)用同時繼續(xù)保持 BLE 可連接。如果舊應(yīng)用已經(jīng)被部分覆蓋比如采用了單 Bank 原地升級則應(yīng)讓設(shè)備停留在“可發(fā)現(xiàn)且可重新下載”的狀態(tài)等待手機(jī)端重連后重新把完整固件包傳一遍。為什么不要立即復(fù)位因?yàn)閭鬏攲映瑫r往往只是手機(jī)空中的射頻干擾、BLE 連接參數(shù)不匹配、或手機(jī)端 APP 異常此時設(shè)備本身沒有掛。你復(fù)位自己反而會讓手機(jī)端徹底丟掉連接不復(fù)位至少手機(jī)端還能通過當(dāng)前連接繼續(xù)補(bǔ)發(fā)幾包。我在實(shí)測中發(fā)現(xiàn)BLE OTA 傳文件時如果手機(jī)屏幕熄滅或系統(tǒng)進(jìn)入省電模式連接會進(jìn)入 dormant 狀態(tài)幾秒鐘沒有數(shù)據(jù)是很正常的。把傳輸超時設(shè)成 2 秒會誤傷設(shè)成 10 秒又會讓卡死恢復(fù)太慢。一般建議根據(jù)實(shí)際數(shù)據(jù)包間隔設(shè)置比如你的 APP 每 20ms 發(fā)一包可以設(shè) 2 秒如果每 100ms 發(fā)一包可以設(shè) 4~5 秒。4.3 安裝層超時需要“先確認(rèn)狀態(tài)再決定是否復(fù)位”安裝層指的就是“固件傳輸完成開始擦寫/切換”這個階段。如果是應(yīng)用固件雙 Bank 切換整個過程很短M4 直接操作 Flash超時主要關(guān)注擦寫時間是否異常。如果是 FUS 安裝無線棧過程可能跨越數(shù)秒到幾十秒此時 M4 與 FUS 基于 IPCC 異步交互。這個階段最忌諱的就是“M4 等不到回復(fù)后直接調(diào)用NVIC_SystemReset()”。為什么因?yàn)?FUS 可能在擦寫無線棧 Flash此時硬復(fù)位可能會打斷 FUS 的擦寫流程。STM32WB5x 的 FUS 內(nèi)部有一定恢復(fù)機(jī)制但你在錯誤的時間點(diǎn)打斷它可能讓無線棧區(qū)域處于“存在但校驗(yàn)失敗”的狀態(tài)。與其這樣不如在進(jìn)入安裝前就設(shè)計好先通過 FUS 查詢當(dāng)前狀態(tài)如果 FUS 還活著讓它繼續(xù)跑或者主動發(fā)送一個放棄命令。如果查詢 FUS 也得不到響應(yīng)才考慮復(fù)位并且復(fù)位后要檢查無線棧版本和 FUS 錯誤碼決定是否進(jìn)入“恢復(fù)模式”。4.4 啟動層回退把最后一道防線放在bootloaderOTA 中最重要的一道防線不是“超時復(fù)位”而是“啟動時驗(yàn)證”。無論你采用雙 Bank 還是單 BankBootloader 都要在跳轉(zhuǎn)到應(yīng)用之前驗(yàn)證目標(biāo)鏡像的有效性。STM32WB5x 的雙 Bank 結(jié)構(gòu)非常適合做 A/B 升級。你可以在 Bootloader 里做以下檢查讀取用戶分區(qū)頭部的鏡像 CRC 或簽名。如果 CRC 有效正常跳轉(zhuǎn)。如果 CRC 無效檢查另一個 Bank 的 CRC。如果另一個 Bank 有效切換啟動。如果兩個 Bank 都無效進(jìn)入串口或 BLE 恢復(fù)模式。我在項(xiàng)目里把這條規(guī)則固化為“啟動鏈”Bootloader - App A / App B。OTA 寫入只寫非運(yùn)行 Bank寫完置位 “pending” 標(biāo)志復(fù)位后 Bootloader 根據(jù)標(biāo)志和校驗(yàn)結(jié)果決定正式切換還是回滾。這樣一來即使安裝階段復(fù)位時機(jī)不對只要舊 Bank 還完整設(shè)備至少能回到舊版本而不是“徹底失聯(lián)”。回退機(jī)制雖然不能替代超時復(fù)位但它能在超時復(fù)位做錯時兜底。很多“OTA 卡死無法重連”的最終原因其實(shí)是 Bootloader 沒有做鏡像有效性檢查啟動鏈斷了。5. 一套可以落地的OTA超時復(fù)位參考設(shè)計5.1 狀態(tài)標(biāo)志和數(shù)據(jù)布局先行在設(shè)計 OTA 邏輯之前先確定狀態(tài)標(biāo)志放在哪。ST 官方的雙 Bank 方案一般會使用幾個 Flash 字或 Option Byte 作為升級標(biāo)志。由于 Flash 寫入要擦除不建議頻繁修改同一個字。更穩(wěn)妥的做法是用一個獨(dú)立的配置扇區(qū)專門保存 OTA 狀態(tài)。一個簡單的狀態(tài)結(jié)構(gòu)體大概長這樣typedef struct { uint32_t magic; uint32_t ota_state; // 0: idle, 1: transferring, 2: pending_switch, 3: failure uint32_t transfer_offset; uint32_t target_bank; // 目標(biāo)啟動區(qū)域 uint32_t last_error_code; uint32_t crc32_of_struct; } OtaPersistentStatus;每次更新狀態(tài)后先計算整個結(jié)構(gòu)體的 CRC32再寫入保存區(qū)。Bootloader 啟動時先檢查 magic 和 CRC32如果校驗(yàn)失敗就認(rèn)為狀態(tài)不可信強(qiáng)制走安全啟動路徑。別小看這一步很多 OTA 卡死就是狀態(tài)標(biāo)志半寫半不寫造成的。5.2 傳輸超時的計算和喂狗節(jié)奏傳輸超時不能拍腦袋定。先量一下你的 BLE 連接實(shí)際帶寬手機(jī)端每隔多少毫秒收到一個 Write Response如果平均間隔是 30ms那 3 秒內(nèi)沒有任何包就說明鏈路已經(jīng)斷了或者對端已經(jīng)放棄。設(shè)計喂狗時也要注意喂狗不能放在while(1)主循環(huán)里因?yàn)?OTA 接收數(shù)據(jù)時主循環(huán)可能長時間阻塞。更好的做法是“事件驅(qū)動 后臺任務(wù)輪詢”void OTA_BleOnWrite(uint8_t *pData, uint16_t len) { // 接收更多數(shù)據(jù) OTA_Context.rx_data_happened true; OTA_Context.last_rx_tick HAL_GetTick(); // 寫Flash或者緩存 } void App_MainLoop(void) { uint32_t now HAL_GetTick(); if (OTA_Context.state OTA_STATE_TRANSFERRING) { if (now - OTA_Context.last_rx_tick OTA_TRANSFER_TIMEOUT_MS) { OTA_AbortTransfer(); } } // 其他任務(wù) HAL_IWDG_Refresh(hiwdg); // 不要在Flash擦寫期間長時間不進(jìn)這里 }如果在接收回調(diào)里直接寫 Flash而且 Flash 擦寫時間比較長要注意在擦寫前開一個足夠?qū)捜莸目撮T狗窗口。或者干脆把接收緩沖做深一點(diǎn)數(shù)據(jù)先放進(jìn) RAM后臺慢慢寫 Flash。這樣 BLE 協(xié)議棧能更及時地回 ACK連接不容易斷。我在實(shí)測中比較推薦“RAM 緩沖 后臺 Flash 寫入”的模式。每次 BLE 收滿一個扇區(qū)大小的數(shù)據(jù)就把數(shù)據(jù)優(yōu)先緩存到內(nèi)部 SRAM 或外部 PSRAM然后在主循環(huán)的批量寫入階段統(tǒng)一寫 Flash。缺點(diǎn)是占用 RAM但能極大降低傳輸層卡死的概率。5.3 安裝階段復(fù)位策略的偽代碼思路當(dāng)所有固件包接收完成進(jìn)入安裝階段時我會把流程拆成三步void OTA_StartInstall(void) { // 1. 持久化狀態(tài)進(jìn)入 install 階段 OTA_SaveStatus(OTA_STATE_INSTALLING, target_bank); // 2. 等待FUS或Flash切換完成 uint32_t timeout HAL_GetTick() OTA_INSTALL_TIMEOUT_MS; while (HAL_GetTick() timeout) { HAL_IWDG_Refresh(hiwdg); // 對FUS安裝流程輪詢FUS查詢命令 FUS_Status_t st FUS_QueryStatus(); if (st FUS_STATUS_READY) { OTA_SaveStatus(OTA_STATE_COMPLETED, target_bank); return; } if (st FUS_STATUS_ERROR) { OTA_HandleFusError(st); return; } } // 3. 超時處理先記錄錯誤再考慮復(fù)位 OTA_SaveStatus(OTA_STATE_FAILURE, OTA_GetCurrentBank()); NVIC_SystemReset(); }注意第 3 步的復(fù)位不是首選項(xiàng)。如果 FUS 查詢命令能響應(yīng)我寧可用 FUS 命令去中止或確認(rèn)而不是直接系統(tǒng)復(fù)位。只有 FUS 已經(jīng)無響應(yīng)、且確認(rèn)繼續(xù)等下去沒有任何進(jìn)展時才執(zhí)行復(fù)位。復(fù)位后用 Bootloader 的鏡像校驗(yàn)來兜底。5.4 實(shí)測驗(yàn)證哪些方案能“救回來”哪些會“越救越死”我實(shí)際測試過三種策略結(jié)果差別很大策略 A傳輸層超時后立即NVIC_SystemReset()。結(jié)果設(shè)備重啟后能起來但如果 OTA 有大量緩存沒有落盤導(dǎo)致寫了一半Bootloader 沒有回退邏輯設(shè)備卡死。越救越死。策略 B傳輸層超時后中止升級但保持廣告等待重連。結(jié)果設(shè)備能重新被發(fā)現(xiàn)手機(jī)端重新連接后可以重新傳輸雖然浪費(fèi)時間但可靠。策略 CFUS 安裝階段從HAL_GetTick()到 30 秒超時后硬復(fù)位。結(jié)果有幾次設(shè)備能恢復(fù)正常有幾次無線棧區(qū)域被寫壞需要用 ST-Link 全擦后重刷。風(fēng)險很高。綜合來看最可靠的設(shè)計是傳輸層盡量不重啟安裝層盡量不硬復(fù)位啟動層盡量依賴 Bootloader 自動回退。6. 幾個關(guān)鍵決策和給后來者的建議回到最開始的問題firmware-side timeout/reset 是不是正確做法我的看法是timeout 必須放在 OTA 的每一層但 reset 是最后手段不能放在傳輸層“每等不到回包就復(fù)位”。正確姿勢是把 OTA 設(shè)計成狀態(tài)機(jī)每個狀態(tài)都有明確的超時行為、持久化標(biāo)志和恢復(fù)路徑。復(fù)位只是所有恢復(fù)路徑都不生效時的最終兜底。我在實(shí)際項(xiàng)目里踩過坑尤其建議注意這幾點(diǎn)第一不要讓 M4 在等待 FUS 回復(fù)時完全阻塞。哪怕是一個 5ms 的HAL_Delay也要保證主循環(huán)仍然能喂狗、能處理其他后臺任務(wù)。第二復(fù)位之前一定要保存錯誤信息。你可以把last_error_code和ota_state寫到備份寄存器或者 Flash 的專用區(qū)域這樣復(fù)位后可以通過日志直接看到“上次是為什么復(fù)位”。沒有這一步你只能靠猜。第三升級無線棧之前先確認(rèn)當(dāng)前 FUS 版本和無線棧版本確保無線棧固件包與 FUS 兼容。版本不匹配導(dǎo)致 FUS 安裝失敗的情況比硬件問題常見得多。使用官方 OTA 例程時也要看清示例中給的無線棧版本不要隨手拿別的版本刷進(jìn)去。最后再分享一個排查技巧OTA 卡死時用 STM32CubeMonitor 或一個簡單的串口日志把 M4 側(cè)收到的 BLE 數(shù)據(jù)字節(jié)數(shù)和 FUS 返回的每一條命令狀態(tài)都記錄下來。我靠這招定位過很多“看起來像玄學(xué)”的升級失敗——其實(shí)只是某個包在傳輸層丟了但上層一直沒等回來。把日志打印到 Flash 尾巴上掉電也不丟。這樣即使設(shè)備徹底失聯(lián)接上 ST-Link 還能從 Flash 里把最后的現(xiàn)場數(shù)據(jù)讀出來比盲猜高效得多。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
丁香六月婷婷久久综合| 久久婷婷六月综合| 五月婷婷在线短视频| 五月天开心色色网| 极品人妻VIDEOSSS人妻| 狠狠综合| 国产综合色婷婷精品久久| 久久99这里只有精品视频| 久草a片| 婷婷色综合| 五月激情婷婷在线| 激情五月丁香综合网站| 丁香五月亚洲婷婷| caopeng97日韩| 久婷婷五月天影院| 丁香五月综合久久| 欧美日韩日韩成人| 亚洲Av成人在线观看| 怡红院AV亚洲一区二区三区H| 婷婷涩涩五月天| 丁香五月天成人| 久久97| 婷婷伊人视婷婷婷| 五月丁香六月| 丁香六月狠狠| 婷婷丁香五月麻豆| 激情视频网址| 婷婷激情性爱| 色综合综合色| 玖玖婷婷五月天| 婷婷瑟瑟五月天| 538久久| 色情婷婷| 天天在线天天综合网色| 色婷综合| 东京热免费视频网站| 成人国产欧美大片一区| 五月丁香亭亭激情操逼网| 九九香蕉网| 丁香五月天激情| 超碰在线综合| 91丨九色丨熟女高潮| 天天爱综合网| 丁香婷婷九月| 日韩色色视频| 无码激情AAAAA片-区区| 日韩精品一区二区三区,四区,五区视频| www.夜夜操.com| 九九色影院| 久久精品视频99| 天天日天天草| 丁香九月激情| 久碰视频| 淫视馆av三区| www、丁香五月天| 日本9区视频| 久久伊人婷| 热久69| 婷婷第一页| 狠狠 久久| 超碰啪啪网| 亚洲黄色操逼| 99超级碰碰| 丁香六月婷婷久久综合| 久久伦乱| 91丨九色丨东北熟女| 欧美日韩999| 婷婷综合在线| 伊人大香久久| 亚洲激情综合| www开心激情网| 激情五月丁香六月综合AVXXXX| 丁香五月六月婷婷殴美综合| 伊人网大香| 色婷婷亚洲婷婷| 激情www| 看片视频在线免费日产在线看| 丁香婷婷色五月激情综合| 五月天精品视频| 亚洲色啪| 91趴趴| 精品久久婷婷| 激情久久五月网| 天天激情| 五月丁香综合| 五月婷婷精品视频| av高清无码| 亚洲激情Av| 丁香色情五月综合激情| 99久热在线精品| 亚洲综合网 665566| 婷婷五月天av| 五月六月婷婷| 激情五月婷婷| 天堂色色色| 婷婷在线精品| 99久久性爱| 99自拍视频网站| 99久在线精品99re8热| 午夜电影网VA内射| 成人AV在线电影| 精品少妇人妻AV无码专区偷人| 狠狠狠狠狠草| 婷婷丁香无码专区| 婷婷精品在线| 亚洲色综合性| 五月丁香激情综合啪| 成人丁香五月| 九九99偷拍视频| 久99在线视频| 桔色成人在线| 色色欧美色色色| 色综合久久88色综合天天看| 亚洲天天综合| 欧美成人AAA片一区国产精品| 色综合久久综合| 丁香六月激情| 色色色色色五月| 丁香婷婷激情综合五月激情| 亚洲综合99| 五月天综合网| 色婷婷9| 综合色五月天| 激情开心五月天| 丁香婷婷五月色综合| 51XX午夜影福利| 色婷婷六月综合| 久热 91| 91操黄| 91狠狠综合久久久久久| 棕合影院色色| 9月色婷婷| 五月婷婷色| 99久久終合| 79亚洲精品少妇| 97人人看| 婷婷激情性爱| 五月丁香激情婷婷| 国产精品色婷婷99久久精品| 九九热在线精品视频| 色狠狠色噜噜AV天堂五区| 亚洲精品99| 26uuu国产| 99爱操| 熟女婷婷网站一婷婷五月一丁香婷婷一婷婷激情网 | 97干在线播放| 九九热精品视频在线观看| 9精品久久999| 色五月婷婷自拍| 91精品91久久久中77777| 99看片| 久超超碰| 热99在线| yazhochengrenavwang| 狠狠草综合网| 亚洲天堂色| 色狠狠综合网| 九一娱乐在线观看视频| 五月婷婷真爱激情网| 免费看成人747474九号视频在线观看| 婷婷丁香五月综合| 欧洲激情网站| 99热这里是精品| 7777激情基地| www久| 亚洲综合色婷婷| 影音先锋一区| 五月天激情偷拍| 思思热视频在线| 伊人色综合影院视频| 99亚洲视频| 绿色小导航AV| 丁香五月香蕉| AV大香蕉| 丁香五月天婷婷久久| 婷婷五月天色| 五月丁香六月婷婷在线播放| 久久全色| 欧美 日韩 成人在线| 激情图片婷婷| 99热91| 日本妈妈乱| 久热大香蕉| 人人澡天天色天天做| 久久久久久久人妻| 丁香五月综合亚洲| AV成人在线播放| aa久久| 九九99精品视频在线观看| 9色视频在线| 丁香六月激情综合| 91大操| 五月综合婷婷五月| 91精品丝袜久久久久久| 九九操屄| 久久久久久久久99精品| 99超在线| 婷婷久久图片 | 色婷婷97| 五月丁香啪啪啪啪| 婷婷趴趴| 日日干夜夜干| 五月天婷婷爱| 久久五月网| 欧美97超碰| 狠狠色噜噜狠狠狠888| 色五月天堂| 色五月欧美| 97婷婷丁香五月天激情图片| www.久久爱.c n| 夜夜爱网站| 狠狠婷婷色| 26uuu欧美激情另类| 九九综合图片网| 久久婷婷热| 久久成人性爱| 99超碰在线免费| 六月丁香五月天| 第四色婷婷最爱| 久久精品天| 丁香五月婷婷啪啪| 久久婷婷综合五月天| 欧美一级色| 婷婷婷狠狠| 99免费在线视频| 激情婷婷五月亚洲| 大伊香蕉玖玖爱| 六月丁香网| 青草青青草| 五月天婷婷基地丁香| 91色色色视频| 少妇性BBB搡BBB爽爽爽视頻| 丁香五月久久| 婷婷在线激情| 狠狠五月激情婷婷直播片| 婷婷色五月激情强奸四射| 欧美私人家庭影院| 五月丁香成人网| 女力报到正好爱上你| 在线成人网站| 五月婷婷综合性爱噜噜| 9 7总站超级碰免费视频| 久久久久er热| 91人人网| 色五月中文网| 国产另类综合| 久久久er热| 玖玖激情五月天| 亚洲黄色网址| 怡红院院久久| 亚洲五月天第一综合干| 激情99热| 成人网丁香五月| 极品人妻VIDEOSSS人妻| 亚洲九区| 99精品在线播放| 婷婷亚洲综合| 四月丁香五月婷婷久久| a久久免费视频| 国产99精品免费视频| 九九色播五月丁香| 婷婷自拍| 18久久| 日韩AV免费电影在线播放| 色婷婷狠狠| 日日夜夜天天| 婷色五月天| 99热在线观看这里只有精品| 热的无码综合视频| 久久成人精品视频| 天天成人综合视频| 99只有这里是精品| 伊人深爱综合| 五月丁香趴趴| 久9热插入| 亚洲中文字幕在线观看| 色情婷婷| 欧美日韩123| 天天揷综合网| 婷婷色情网| 婷婷伊人綜合中文字幕小说| 丁香五月激情综合| 女同激情久久av久久| 99在线观看精品视频| 激情五月天色婷婷| 操骚货在线| 欧美婷婷五月丁香| 丁香六月激情| 五月天丁香综合久久国产| 深爱激情六月天| 丁香六月亚洲综合| 五月天天天色| 九九精品亚洲| 久热成人| 国内外色色色色色成人视频| 无码人妻丰满熟妇奶水区码 | 裸体做A爰片毛片A片免费| 色五月婷婷五月天| 国产黄色在线观看| 伊人大香久久| 激情亚洲婷婷| 五月天丁香啪啪综合| 伊人丁香六月婷婷| 爱婷婷五月| 久久在线人妻| 99热这里只有精品8| 激情五月色婷婷| 99色干| 另类视频一区| 99网| 久久久久视剧HD| 伊人热婷婷| 午夜婷婷久久 | 色五月亚洲| 亚洲无线视频| 欧美日韩成人在线| 日本英国美国欧美亚洲国产精亚洲日韩精品在线观看 | 大香蕉中文| 亚洲成人av在线播放| 久久婷综合网| 五月天激情小说婷婷| 热久久77777| 99热这里只有精品一| 人人人舔人人人操人人人摸人人人97| 99色五月| 免费看欧美成人A片无码| 1级欧美日韩| 丁香六月婷婷色播| 热的国产,热的综合,热的有码| 碰碰女| www.99免费视频| 丁香六月婷婷综情欧美| 激情五月天在线观看色婷婷| 狠狠色综合网站| 激情综合六月| 婷婷六月啪啪| 婷婷五月欧美综合| 影视av久久久噜噜噜噜噜三级| 婷婷五月色| 九九色99| 亚洲最大视频| 丁香97综合| 在线日韩视频| 欧洲亚洲精品| 国产又爽又猛又粗的视频A片| 丁香婷婷婷婷十二月在线观看视频| 熟女激情网| 奸逼视频| 另类天堂| 激情久久婷婷| 五月丁综合在线观看| 成年人最刺激的综合网| 1024操逼| 99er6免费视频热播| 五月婷婷无码专区| 99热精品免费| 精品99在线| 婷婷五月天成人| 亚洲婷婷综合视频| 天天做天天爰天天爽天天无遮挡| 99re热在线观看| 九九色综合| 人人搡人人| 婷婷久久视频| 丁香九月激情| 九九人人看| 五月天色婷婷av| 五月综合激情| 九九re视频在线视频| 五月天开心成人网| 日本丁香五月| 九九色综合网| 久热免费| 色婷婷色和| 天天插天天很| 26uuu日韩| 91色干| 五月天中文网| 日韩一本操| 99小视频在线| 久久香蕉影院| 影音先锋噜一噜| 色视频五月天| a免费在线| 丁香五月亭亭六月综合激情网| 久热91精品| 丁香五月色激情| 99热在这里只有免费精品| 香蕉国产2013| 综合久久五月天| 久久少妇视频| 在线亚洲综合| va婷婷| 色www久视频| 久久视这里只有精品| 五月天婷综合| 久9精品视频| 狠狠插日日干撸| 色五月激情五月| 99热这里在线精品| 色五月激情综合网| 久久99最新| 激情综合五月天| 五月婷在线观看| www.五月天婷婷| 国产小网站| 婷婷十月激情综合网| 五月婷久久久久综合| 激情久久五月网| 五月婷丁香久久久| AA片在线观看视频在线播放| 影音先锋 91工厂| 国产精品18久久久| 激情五月天开心网丁香无码| 国产黄色在线| 五月婷婷六月少妇激情| 在线99精品| 久久美女五月天| se99热久久一本| 噜噜狠狠色| 久久婷婷亚洲无码一起| 九九操操| 99热这里只有精品手机在线观看| 国产AV一区二区三区最新精品| 激情五月天之六月婷婷| 拍色综合| 久碰婷婷视频| 久久精彩综合视频| 国产AV一区二区三区最新精品| 五月天婷婷久色| 欧美69久成人做爰视频| 中国激情网| 看逼中文字幕| 婷婷操逼| 五月天色综合服务平台| 97国产精品女人碰碰| 五月天婷综合| 久久在线视频只有这里有精品| 99精品视频在线观看| 六月婷婷亚洲| 色五月大| 99久久婷婷国产综合| 丁香伊人综合| 激情五月份婷婷| 五月丁香色| 六月婷婷网| 激情图片亚洲| 欧美三日本三级少妇三99| 亚洲精久久| 99色综合| 色五月综合| 色婷婷黄色网络| 激情五月婷婷| 欧美 日韩 成人| 综合色情网| 99热国产精品| 免费色色色| 丁香九月婷婷色| 色婷婷五月基地在线| 丰满少妇猛烈A片免费看观看| 亚洲夜夜操| 色爽干| 色色色.COM| 成人免费在线电影| 538在线精品| 天天免费日日夜夜夜夜| 久久综合首页| 国产精品美女久久久久AV超清 | 中文字幕久久婷九女同| 五月天激情站| 五月婷婷婷色| 99爱在线免费视频| 精品色| 日本久久99| 国产高清av黄色看片| 五月婷婷婷婷婷| 五月丁香久久网| 国产欧美性成人精品午夜| 亭亭五月色男人| 激情五月激情综合俺也去婷婷小说| 亚洲色就是色色色| 色色婷婷五月天| 无码激情AAAAA片-区区| www.婷婷,com| 99黄色在线视频精品熟女| 久久久五月天| 婷婷五月天天爽| 99热精品网| 好色婷婷| 99综合97| 五月婷色| 婷婷久久亚洲| 色婷婷丁香五月天在线观看| 五月天色婷婷av| 色99在线观看| ou洲色吧| 国产精品美女久久久久AV超清 | 久久九九爽| 婷婷九月丁香久久| 五月激情丁香久久综合网| 亚洲精品成人片在线播| 中国无码av| 久久人人看| 97碰碰在线观看视频| 99精品在线下载| 97热精品| 久啪欧美| 亚洲精品**不卡在线播he| 久操无码| 五月天开心婷婷激情网站 | 色婷视频| 狠狠狠狠狠操| 久色成人| 五月天激情在线视频| 情色五月天网站| 综久久久| 激情五月瑟瑟| 五月九九综合| 精品欧美性爱超级爽| 思思热在线观看| 欧美97色| 成人av在线电影| 色婷婷综合视频| 婷婷激情啪啪| 婷婷五月久久| 丁香5月婷婷| 五月婷婷久久激情| 五月丁香亭亭成人电影| 美女天天艹人人爽| 99热综合| 亚洲无码免费看| 日韩人妻AV在线| 无码人妻丰满熟妇奶水区码 | 色五月婷婷影视| 大香蕉 婷婷| 粉嫩AV久久一区二区三区| 久久综合激情| 婷婷97狠狠成人网站| 五月天色综合| 天堂成人A片永久免费网站| 99热在线观看精品| 99热最新| 一二线视频 另类| 国产欧美精品AAAAAA片| 婷婷色色综合| 日本在线观看91| 999九九九久久久99HD| 9久热在线视频| 成人精品视频99在线观看免费| www.zbzhongsen.com| 色五月激情综合网| wwwav大香蕉| 色五月天婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷 | 色五月亚洲开心网| 婷婷五月中文字幕国产| 人人操人av| 婷婷五月天在线一区| 五月人妻婷婷视频| 色婷婷a v| 99操视频| 色五月首页| 欧美性生交XXXXX无码小说| 久9久视频精品| 五月天大香蕉视频| 97色97干| 九九综合久久丁香婷婷,开心激情综合网| 婷婷四月 成人 狠狠干| 久久久99精品| 久久天堂| 99热最新| 六月丁香婷婷爱| 超碰爱爱爱| 亚洲av午夜精品一区二区| 色婷狠狠| 操91| 天天干天天操天天爱| 人人爱人人摸人人澡| 97资源碰碰| 久久婷婷五月天| 婷婷99视频在线| 99久操| 婷婷丁香六月| 五月天夜夜爱夜夜操| 色欲影香| 国产成人精品亚洲线观看| 天天综合区| 色~性~乱~伦~噜| 激情婷婷综合| 人人摸人人| 9久久精品| 久综合4| 超碰无码318604| 99热6这里之有精品| 99成人小视频| 久久久久9| 91操女| 99热都是精品| 亚洲五月花| 色婷婷网| 丁香五月天婷婷91| 婷婷激情区| 99性爱| 国产精品久久欧美久久一区| av在线中文| 奸逼视频| 91日本在线观看| 婷婷丁香大香蕉| 99超级碰免费视频| 综合久久99| 伊人久久婷婷| 综合色色婷婷| 亚洲人成网站999久久久综合| 99九九精品| 成年人看Va免费视频| 九九在线精品| 色五月婷婷激情基地| 丁香婷婷激情五月| 亚洲a色| 日韩性爱无码| 五月综合六月丁| 天天操婷婷| 婷婷玖玖丁香| 丁香五月婷婷色播艳门照| 99热8| 丁香久月婷| 99热成人在线观看| 色五月激情五月| 秋霞A V毛片| 色五月中文网| 97luluse| 亚洲成人乱码av网站| 色九月婷婷| 第四色五月婷婷| 常久最新免费的色吊丝| 日韩一区二区A片免费观看| 五月天开心色情网| 五月婷啪| 无码髙清| 激情婷婷色五月| 国产又黄又爽又色的免费| 六月丁香久久| 丁香五月性| 丁香婷婷色情| 久久精品人妻| 性色av大香综合| www色综合| 久久免费少妇高潮99精品| 色狠狠999综合网| 婷婷在线精品| 99色在线视频| 五月婷婷基地| 色五月激情网| 99热激情| 丁香色五月婷婷17C| 九九久久精品| 九九色99| 久/久精品99看9| 男女99免费视频| 丁香五月婷婷亚洲综合精品| 99热最新精品| WWW,五月| 婷婷色五月婷婷姐妹| 色久综合| www久久五月com| www.99热| 丁香五月宝贝激情网| 丁香桃色综合网| 亚洲操操操| 亚洲无码成人网| 亚洲精品婷婷| 熟女五月天久久综合| 99热免费| 精品99只有。| 99玖玖视频| 亚洲五月天另类小说图片| 久久久五月婷婷| 97资源欧美日韩大香蕉超碰一区| 亚洲99综合| 五月丁香六月婷| 插插插丁香五月婷婷| 精品爱欲五| 99视频只有这里精品| 99久久久精品| 久久人人九九| 99综合色色色| 日日干天天射| 九九热狼人| 夜夜爽天操| 色呦呦在线| 九九热在线精品视频| 婷婷久久精品| 人人草人人爱| 国产精品视频久久99| 人妻六月天| 五月丁香色| 亚洲五月丁香综合网| 亚洲乱码日产精品BD| 久播影院免费观看电视剧大全最新网| 婷色视频| 91操碰| 开心五月婷婷99| 五月婷婷香蕉| 人妻久久人妻久久第一区| 色色五月天丁香婷婷| 九九色色| 欧美VA在线观看| 婷婷色中文| 婷婷亚洲综合| 亚艹艹| 久久婷婷五月天懂色| 蜜桃人妻无码AV天堂三区| 99热日韩| 中文字幕婷婷五月天| 综合色七七| 久九色| 五月丁香六月合| 欧美在线视频9| 天天做天天爱天天高潮| 欧美成人五月天| 亚洲午夜av| 都市激情蜜桃婷婷五月天| 久一这里有精品国产| 99九九这里有免费视频| 中文AV在线播放| 欧美97p| 五月天婷婷爱| 五月婷婷视频| 丝袜大香蕉| 欧美成人精品一区二区 | 天天搽天天射| 色婷婷综合电影| www.婷婷| 少妇人妻人伦A片| 深爱网深爱综合网| www.99久| 激情婷婷综合网| 少妇AB又爽又紧无码网站| 丁香五月六月婷婷综合| 性爱电影科技贸易有限公司| 六月丁香综合| 91女人18毛片水多国产| 人妻22p| 五月精品| 国产资源91在线| 天天爱天天做天天舔| wWW九九在线播放| 人人肏逼视频在线一区二区| 丁香五月天婷婷激情| 激情综合网五月婷婷| 天天做天天要天天爽| 91成人品| 97久操视频| 婷婷5月久久综合网站| 人人操av| 久热人妻| 久久精品系列| 99久久网站| 操啊操av| 99热最新网址| 狠狠88综合久久久久噜噜噜| 婷婷五月亚洲激情| 亚洲99综合| 日韩三及成人AV片| 91人人妻人人操人人爽| 国产精品人妻欲求不满| 青青草搞屄视频网站| 玖玖精品婷婷| 婷婷香草网| 五月婷婷综合在线| 婷婷中文字幕| 99久久99久久综合| 爽极品色| 九九热欧美| 99久久玖玖| 九热视频这里只有精品| 婷婷色系婷色| 成人必爱视| 亚洲va日| 五月婷婷激情综合在线| 一级片sese片.COM| 婷婷五月av| 亚洲AV综合在线观看| 日本久久婷| 婷婷五月综合色拍| 久婷五月| 日韩色色色色色| 99综合视频在线| 永久无码色| 激情五月深爱五月| 狠狠色狠狠干| 人妻内射麻豆视频| 五月丁香WWW| 五月丁香综合久久| 六月丁香综合网| 噜噜噜色噜噜| 无人区码一码二码三码医生系列| 五月丁香网中文字幕| 操碰色一区就去操| 久久婷婷色| 中文字幕人妻熟女在线| 狠狠的日| 色屌丝中文字幕| 欧美另类五月激情| 天天色天天色天天色天天色天天色| 99re这里有精品手机在线| 新激情五月开心五月婷婷五月丁香五月 | 中文字幕 中文字幕明步| 久久久久久久久人妻| www.minyis.com【JT】实力收量可预付QQ2101460746 | www.激情com| 五月婷婷深深爱| 五月五婷婷网| 婷婷久久五月天亚洲欧美国产日韩在线观看 | 九九伊人网| www.夜夜操| 99国产精品久久久久久久久久久 | 丁香香五月激情免费视频| 很很操很很操| 色五月激情婷婷| 182TV大香蕉| 亚洲天堂色色| 精品一二三区久久AAA片| 日韩一级淫乱片一区二区三区| 五月深情久久| 久9久9热久热| 人人舔人人色人人高潮| 五月天激情社区| 久久人妻视频| 色五月av| 97se在线视频| 色婷婷久久综合| 九九婷婷五月天影视| 婷婷五月天激情免费在线观看| 婷婷玖玖五月天| 99热地址| 九九热这里只有精品9| 亚洲AV无码一区二| 激情五月天婷婷免费观看| 五月婷婷色情| 狠狠爱婷婷爱| 欧美电影在线播放| 丁香五月激情欧美| 轮奸综合网| 五月之婷婷| 91碰视频| 99色嘟嘟精品网站| 亚洲综合视频在线| 六月婷婷色宗合| 99.N在线视频| 精品夜夜澡人妻无码AV| 啪啪六月婷婷| ...婷婷国产成人亚洲日韩| 婷婷五月天伦理| 婷婷六月天| 97精品人人A片免费看| 碰碰碰91| 【乱子伦】黄色| 丁香六月婷婷综合缴| 日本久久天堂| 91狼友视频网页更新| 99热大香蕉| 婷婷六月激情啪啪| 夜夜 操无码| 男人大jjc女人免费视频| 色婷婷婷婷| 五月激情婷婷开心| 日本三级韩三级99久久| 色五月婷婷伊人| 亚洲开心激情网| 涩综合网| 97精品人人A片免费看| 99伊人性爱在线影院| 日本五月视频| 欧美日综合| 一区二区乱码视频| 久久久五月四色| 久久er99热精品一区二区| www.五月天婷婷| 日日舔夜夜操| 少妇人妻人伦A片| 日韩成人av在线| 六月丁香综合| 五月天综合| 99视频在线播放大全| 精品无码99| 天堂成人A片永久免费网站| 婷婷涩五月| 天天做天天爱天天爽| 99日韩| 51XX午夜影福利| 六月合五月婷| 五月婷婷六月激情| 婷婷激情五月天激情在线| 九色91视频| 国产精品视频网| 99re这里只有精品首页| 九九久久综合| 婷婷丁香五月天欧美| 第四色大香蕉| 99色在线| 人人干人人干骚美女| 日本在线视频播放91| 99啪视频在线观看| www.26uuu.com亚洲电影| 免费无码毛片一区二区A片| 久久婷婷色| 婷婷五月花| 久久精品五月| 这里只有精品免费| 一本到不卡高清DVD| 九六五月天婷婷| AV九九| 激情综合4月| 九九热在线观看视频| 五月丁香| 色五月天在线观看| 玖玖无码中文| 天天久久狠狠色综合| 123草逼网| 99色在线观看视频| 26uuu偷拍亚洲欧洲综合| 丁香色婷婷五月天| 97操碰人人| 这里有精品| 亚洲综合视频网| 五月婷啪| 噜噜噜狠狠色综合| 99精品综合| 成人必爱视| 夜精品无码A片一区二区蜜桃| 午夜理论片最新午夜理论剧| 99这里有精品| 色播五月丁香婷婷| 无码少妇高潮喷水A片免费| 色五月婷婷大| 97人人干视频| 色99在线视频| 免费AV在线| 久久久婷婷| 成人天天爽| 91九色最新视频| 99热这只有| 午夜天天精品视频| 激情99在线视频| 伊人综合婷婷| 在线观看的av| 五六月婷婷| 被男人添B超爽视频| 激情综合六月| 日韩AV中文字幕在线| 五月天激情四射网站| 婷婷天堂综合| 极品人妻VIDEOSSS人妻| 五月亭亭综合五码| 丁香五月九九| 91成人视频| 亚洲婷婷丁香五月在线| 色婷婷小说网| 五月天性色| 日韩人妻白浆视频系列| 五月天精品| 激情丁香九九五月综合网| 五月综合激情网| 丁香久久AV| 5Www色5夜| 情色婷婷五月天| 九九爱这里只有精品| 四色五月婷婷| 日本99在线视频| 婷婷五月天.com| 4438亚洲欧美| 日韩精品一区二区亚洲AV观看| av九九| 久久艹 五月天| 天天天天操| 婷婷五月丁香基地在线视频官网| 中国女人内射6XXXXX| 五月婷婷六月丁香五月| 97色色-99久久| 青青久久91| 九九五月天| 国产精品视频久久99| 亚洲综合草草| 久久精品国产一区二区三区四区| 亚洲精品永久久久久久| 国产伦理精品高清在线观看网站一区二区| 五月婷婷色色爱| 久久综合丁香| 成人婷婷深爱综合网| 综合九九中文字幕| 激情五月天色播| 亚洲激情五月天| 黄色AV日韩| 天天操天天操天天操天天操天天操天天操天天操天天操天天操 | 久艹大香蕉| 中文字幕日产A片在线看| 婷婷五月综合网| 99热 在线观看| 欧美日韩国产一区二区| 一本色道久久88综合日韩精品| 色婷婷的五月天| 日韩av干| 婷婷天堂综合网| 99无码视频| 秋霞A V毛片| 5月丁香六月婷婷| 高清无码.com| 91日韩美女被插视频| 懂色av粉嫩av蜜臀av| 综合色色婷婷| 五月丁香婷婷激情视频| bbwcuckold精品熟妇| 伊久久婷婷| 色色999三级片| 少妇被下春药玩弄A片| 色色激情网| 亚美欧色影院| 五月丁香网中文字幕| 色色五月天婷婷| 九九这里是免费的视频5| 五月天婷婷影院影院| 激情综合国产| 99ri6在线视频| 五月丁香啪| 男女99免费视频| 狠狠操狠狠操AV| 99综合一区| 久久99热免费| 日韩黄黄| 97欧美在线| 婷婷六月偷拍| 久cao香蕉影院| 99热啪啪| 中文久久久人妻| 欧美A片在线视频免费观看| a在线观看| www.99热| 天天影视天天爽天天草| 中文在线视频久1| 色婷婷丁香AV综合| 婷婷五月天视| 色999亚洲人成色| 日韩无码专区| 激情五月天啪啪| 69综合在线| 91啪啪啪啪| 丁香婷婷婷婷十二月在线观看视频| 91se精品国产| 这里只有精品1| 天天噜噜| 99热资源在线| 日本五月天激情| 丁香五月天啪啪| 五月丁香六月综合激情无码软件亮点| 99热精品综合| 九九热区一区二区三区| 另类国产综合| 五月五丁香婷婷| 思思re视频在线| 丁香五月激情婷婷| 就去涩涩丁香五月天| 婷婷激情六月天视频| 天天操,夜夜骑| 夜夜综合色| 国产综合激情五月久久| 五月婷婷少妇之| 色婷婷色五月综合| 久久综合天天综合| 26uuu另类| 五月激情六月婷婷| 99热97| 99色热视频| 五月婷婷开心丁香| 九九99一区| 亚洲天天操| 99ri在线观看视频| 五月丁香| 无码少妇高潮喷水A片免费| 色五月 婷婷, 大香蕉| 97日本在线播放| ou洲色吧| www.99精品视频| 欧美视频五区| 人妻久久做| www.狠狠狠.com| 人人看人人草人人摸| 九九热精品6| 91激情五月开心| 色人久久| 日本人妻伦在线中文字幕| 久久久五月天婷婷| 99九九中文字幕视频| 九九黄色网| www.精品99| 激情网五月婷婷| 婷婷 伊人 久久| 99久热| 99国产精品久久久久久久久久久 | www.久久9| 五月天婷婷久草丁香| 六月丁香大香蕉| 欧美色播综合在线观看| 五月婷婷啪啪网| 久久综合五月天| 欧美交换配乱吟粗大25P| 婷婷五月成人社区| 婷婷色五月丁香六月欧美啪| 成人羞羞啪啪 全 视频| 伊人狠狠干| 天天日天天摸| 激情综合五月婷婷| 久草x色在线观看99| 99ri精品在线| 婷婷六月丁香1| 丁香五月深爱五月婷婷| 四色五月婷婷| 久久五月丁香| 婷婷五月丁香99| 狠狠大香婷婷爱| 狠狠干五月丁香综合网| 欧洲不卡视频| 大香蕉五月婷婷丁香| 久操97| 国产va在线视频| 久久WW| 蜜臀AV在线观看| 成人在线网站| 色在线五月天免费| 九九性爱网| 日本人妻伦在线中文字幕 | 五月丁香婷婷中文| 天天日夜夜操五月| 97碰碰视频在线观看免费| 超碰人人草| 精品九九九久| 99国产er热视频| 26uuu最新地址| 91丨九色丨43老版熟女| 婷婷黄色五月| 天天爽日日搞| 久久综合丁香| 超碰色热| 99在线观看免费精品视频| 开心激情综合| 国产成人精品亚洲线观看| 99久在线观看| 五月丁香六月婷婷中文版| 婷婷久久亚洲| 激情五月天婷婷丁香| 成人五月天色天堂| 99国产精品久久久久久久久久久 | 丁香五月亚洲激情婷婷射| 开心激情播播五月天| 狠狠综合| 色热久| 天天做天天爱天天爽夜夜揉| 天天插天天插天天插天天插| 可以看的av网站| 久久亚洲天堂| 激情黄色小说五月天| 91九色首页| 国产精典视频在线观看| 激情五月天婷婷丁香| 亚洲精品久久久久久久久久飞鱼| 五月玖玖| 人人草人人看| av国产精品| 色性综合| 思思热久久艹| 中文字幕不卡视频| 五月色丁香激情| 99精品视频在线观看| 五月综合色| 91干在线| 久9精品| 亚洲夜夜操| 精品国产一区二区三区四区阿崩| 人人色人人摸人人看| 丁香五月91| 99久久色| 激情丰满熟妇五月| 色9999日韩国产| 四月婷婷五月色综合| 曰日爽日日操| 日噜噜色| 狠狠色噜噜| 色综啪啪网| 久久96热| 色五月天婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷 | 天天玩天天摸| 久久伊人婷婷| 五月天色色婷婷| 99国产精品久久久久久久久久久| 大香蕉伊然在亚洲90| 亚州精品久久久久AV无码| 黃色三级三级三级三级 qixing300.shrkbk.com www.jinbozs.com tianmiaosw.com | 亚洲乱码日产精品BD| 五月丁香婷婷无码中文| 五月丁香色色网| 午夜免费试看| 午夜天堂啪啪| 婷婷久久五月| 激情五月天综合网| 国产黄色一级片| 人人草人人爱| 色婷婷色综合| 欧美色播综合在线观看| 国产在这里只有精品| 色一情一乱一乱一区91Av| 久久激情网| 欧美va亚洲va| 天天插天天干| 激情五月天综合图片小说网站| 伊人99热| 五月丁香啪啪| 九九亚洲| 呦呦视频无码播放| 五月丁香综合激情| 亚洲AAAA网| 天天操天天国产三级片处女学生妹| 五月婷丁香在线视频在线| 欧美精品中文字幕亚洲专区| 青草热视频这里只有精品| 成人无码精品1区2区3区免费看| 五月丁香婷婷激情在线| 99ri网站在线观看| 99热综合在线观看| 9久热在线视频| 日本婷色| 色婷婷情片| 丁香六月啪啪| 开心五激情网| 色操综合| 色5月丁香婷婷| 91操碰| 日本久久爱| 色播播婷婷| 99久久这里只有精品| 能看的AV网站| 国产高清视频91九九九久久久| 天天干天天拍| 久鲁鲁色网 | 亚洲欧洲国产精品| 婷婷丁香色五月亚洲| 伊人激情AV一区二区三区| 婷婷六月伊人| 99久久婷| 丰满少妇猛烈A片免费看观看| 激情色情五月天| 狼人婷婷综合| 色色亚洲| 久久久久思思热| 中文字幕婷婷| 婷婷五月激情四射手| 天天色噜| 开心五月六月婷婷| 超碰免费人人肏| 色爱亚洲| 18av天堂| av首页在线| 97色婷婷成人综合在线观看| 婷婷 激情 五月| 九九热在线99| 高清无码网址| 99乱视频| 五月天婷亚洲综合在线嫩草网|