欧美成人午夜精品久久久,国产?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
返回資訊列表
99九九这里有免费视频| 婷婷在线中文字幕| 就爱操www com| 日本乱子人伦在线视频| 另类小说激情五月天| 在线日韩视频| 五月天精品视频| 韩日AV片| 午夜69成人做爰视频| 夜夜做夜夜愛| 色色热99| 天堂综合久| 综合色播| www,天天干| www.97碰碰com| 丁香五月婷久久| 天天日,夜夜爽| 久七香蕉| 大鸡巴伊人网| 国产乱子轮XXX农村| 五月涩涩网| 久久在线大香蕉| 狠狠做深爱婷婷久久综合一区| 青青草a在线| 婷婷色一二三区波多野结衣| 97人人妻人人艹| 色在线99| 伊人在线视频| 欧州色色| 丁香五月,激情五月,深爱五月| 色情五月天。| 色婷婷丁香社综合| 日韩青青| 久久中文网| 91超级碰在线视频| 99九无网码| 五月婷婷免费视频| 停停色综合伊人| 在线观看av网站| 婷婷五月丁香图片人人操| 97操碰在线视频| 国际国外精品欧洲南美洲专区无码不卡| 五月天丁香综合在线| www.色五月| 色五月欧美| 婷婷五月天改成什么了| www,8050,午夜三级| 亚洲成人av在线观看| 六月婷婷五月天| 五月丁香六月综合激情无码软件亮点| 天天做天天爱天天玩夜夜爽| 五月婷久久在线| 天天肏夜夜肏| 亚洲人人96@| 色狠狠婷婷| 丁香桃色网| 久久金品黃色| 超碰在线观看9| 久色欧美| 9九色首页| 婷婷放心五日爱| 久久WW| 五月激情小说| 国产av天天插天天操天天爽| 91熟妇大香蕉| A级毛片高清免费不卡播放谢谢谢谢| 99艹精品在线观看| 国产做爰视频免费播放| 激情性爱五月天网页| 色综合色色| 五月丁香六月激情欧美综合| 久久婷婷伊人| 国产精品电| 精品香蕉99久久久久网站| 狠狠操狠狠操| 大香网伊人久久综合| 六月婷婷八月丁香| 99视频这里有精品| 丁香五月AV| 婷婷综合| 超级碰 久久9| 丁香六月啪啪啪| 婷婷五月天精品| 欧美久人人| 色综合久久88色综合天天| 综合色色五月| 啪色综合| 久久与婷婷| 九九热这里有精品23| 久色姿源| 婷婷五月天小说| caop在线视频| 五月婷婷色欲| 婷婷狠狠97| 玖玖精品婷婷| 一本色道久久88加勒比—| 欧美亚洲成人在线| 色婷婷成人丁香| 国产丁香五月天婷婷| 青青草日本亚洲| 久久久婷丁香五月| 激情五月婷| 99九九精品| 任你躁XXXXX麻豆精品| 中国操逼99| 激情五月婷婷| 97久人人| 插插五月天| 丁香五月综合在线观看| 九九热精品视频| 久热免费| 国产亚洲精品久久久久久郑州 | WWW五月婷婷| 日日天天天| 天天天添天天操| 激情五月天偷拍综合网| ..真实国产乱子伦对白在线_欧| 婷婷最新地址| 伊人综合婷婷| 色五月婷婷激情五月| www.99情趣网| 变态 另类 在线| 99热碰碰| 99色在线观看免费| 狠狠色丁香婷婷久久综合| 成人电影一区| 久热 91| 五月色 亚洲| 欧美成人性爱网| 97久久久久| 亚洲欧洲中文日韩久久AV乱码| 国产伊人大香蕉| 婷婷激情丁香五月婷婷激情丁香五月婷婷| 婷婷五月,偷窥偷拍网| 久久99网站| 超碰人人操人人9| 天天狠狠婷婷在线| 色婷婷综合久久久久| 懂色av粉嫩av蜜臀av| 91凹凸在线| 综合亚洲五月天| 九九热在线精品视频| 日本狠狠干| 热久久色| 深爱激情综合网| 成人无码髙潮喷水A片| 国产黄大片在线观看画质优化| 在线看黄色| 婷婷五月综合在线视频| 色婷婷成人做爰A片免费看网站| 久久精彩免费视频| 五月天天天综合| 色色色色色色色色色色色色色97| 精品人妻伦九区久久AAA片| 香蕉操亚洲| 亚洲视色| 婷婷刺激综合| 激情綜合網址| www.91婷婷| 青青草原99热| 涩玖玖免费视频| 天堂婷婷丁香六月网| 96丁香六月婷婷蜜桃综合久久| 香蕉网久久| 五月天激情综合在线| 天天在线XXX| 久久探花91swag| 天堂爱爱| 少妇性按摩无码中文A片| 亚洲六月婷婷| 99网| www,色婷婷| 五月色婷婷中文字幕| 免费看无码视频A级| 五月丁香欧美综合| 色青青五月| 操人妻AV| 深爱激情六月天| 大香蕉五月天婷婷| 欧美天天五月丁香免费观看| 精品无码久久久久久久久| 色五月丁香六月资源站| 九色91视频| 日本欧美成人片AAAA| 丁香五月综合激情性爱| 婷婷综合网站| 五月天快乐开心激情网| 五月婷婷av| 久久99久久久| 怡红院视频| 91丨九色丨大屁股| 丰满少妇猛烈A片免费看观看 | www.91久久| 五月天综合久久| 五月婷婷,六月丁香| 思思久久精品视频| 大香蕉人人人| 香蕉97碰碰碰欧美| 91热久久| 久久婷婷综合五月天| 久久激情五月天| 欧美内射AAAAAAXXXXX| 伊人AV五月婷| 草操AV在线| 丁香五月婷婷国产av| 日日干日日| 深爱婷婷基地| 久操激情| 综合玖玖偷拍| 99久操视频| 91日本在线观看| 欧美经典片免费观看大全| 日本天堂久久| 国产97色在线 | 日韩| 九九综合色综合| 成人在线视频网| 99热这里只有的精品视| 亚洲性爱干干| 五月激情婷婷图片基地| 玖玖综合色| 久久91久久精品久久| 成人欧美日韩| 91肏| 激情综合一| 五月天激情婷婷五月天久久| 五月丁香婷婷综合在线| 狠狠色丁香| 欧美啪啪五月天| 日本女色人人| 色婷婷成人做爰A片免费看网站| 综合色色婷婷| 亚洲综合五月| 日本欧美成人片AAAA| 色情五月天婷婷| 久久婷婷激情五月天一区二区| 日韩无码性爱| 国产中文字幕在线视频免费观看 | 激情综合网激情五月天| 色九亚洲| 人人操97| 91超级碰| 丁香五月精品视频| 激情五月丁香综合蜜桃| 人人爱天天摸摸天天爱| 婷婷五月天六月综合| 丁香五月大香蕉| 9热久久| 亚洲色婷婷| 丁香五月婷婷基地| www.婷婷,com| 天天干,天天日| 激情五月婷婷在线区| 色综合久久天天综合网| 久久9久久| 五月婷婷97| 五月天色小说| 免费看欧美成人A片无码| 九九综合| 99这里有精品视频| 91热在线| 天天插天天插| 青草青草视频2免费观看| 成人 在线 日韩| 99色热| 亚洲丁香网| 亚洲性爱99| 可以免费看av网站| 国熟女视频| 五月情四婷婷| 色情播放| 三十路磁力链接| 开心六月丁香五月婷婷| 综合图区激情| 亚洲最大激情无码| 玖玖爱伊人| 成人AV中文字幕| www激情com| 五月丁香婷婷激情在线| 99精品综合| 色五月婷婷小说亚洲中文字幕组| 婷婷五月丁香五月| 国产91视频| www..999热久| 51精品国自产在线| 天天久久婷婷| 久热黄色| 操日本人妻视频| 日日夜夜青青草| 99热精品在线播放观看| 婷婷五月天亚洲丁香| 亚洲性色XXXXX| 啪啪干伊人婷婷| 色婷婷五月天成人网| 色欲香综合网| 婷婷操超碰| 精品久久久999| 91色噜噜狠狠狠狠色综合| 99热九九热| 国产亚洲精品久久久久久牛牛| 丁香婷婷久久| 任我肏视频精品| 五月丁香婷婷综合网色欲| 色偷偷人人| 日韩成人免费电影| 丁香五月婷在线| 成人免费va| 激情网五月天| 日本精品久久久久中文字幕 | 91久久精品国产91性色TV| 一本色道久久88综合日韩精品| 香蕉久久av一区二区三区| 日本免费91| 99性视频| 开心五月深爱五月丁香五月激情五月| 99精品无码| 色九月婷婷综合| 五月婷婷中文| 九九干视频| 婷婷五月在线综合| 激情五月天综合| 激情色播| 成人免费网站免费看| 免费看欧美成人A片无码| 天天肏天天肏天天肏| 99久在线精品99re8热| 色插综合网| 天天澡天天狠天天天做| 91九九| 国产伦亲子伦亲子视频观看| 99这里只有精品国产| 天天插,天天射| 亚洲欧洲另类| 日本黄色精品| 亚洲爱爱无码婷婷色五月| 丁香六月狠狠干| 青草视频在线播放| 婷婷色在线| 色五月第四色| 欧美日韩中文国产一区发布| 最新热中文字幕| 色婷婷狠狠18| 天天干在线播放| 欧美99视频| 99热只有这里才是精品| 久热这里| 欧美成人无码一区二区三区| www.99久久久| 色玖玖玖| 亚洲婷婷欧美婷婷| 久久婷婷丁香花综合网| 色婷婷香蕉丁丁网| 无码激情AAAAA片-区区| 九九人妻福利| 五月丁香六月婷| 99天堂在线观看免费视频| 99在线爽| 91丨九色丨国产打屁股| 婷婷五月天色色| 五月天网站亭亭| 激情内射人妻1区2区3区| 黄页免费一级视频懂色| 天堂在线9| 亚洲色频| 综合五月丁香六月婷婷| 丁香五月开心七月| 亚洲乱码成人| 色停停影院五月天| 婷婷六月激情综合| 狠狠干狠狠操狠狠爱| 91啪级电影| 俺去也婷婷| 六月欧美综合色情| 狠狠精品干练久久久无码中文字幕| 九热...av| 来吧亚洲综合网| 91av成人| 欧美日韩成人一区二区| 99黄色在线视频精品熟女| 天天天综合网| 五月婷婷九九热| 五月丁香成人视频| 开心五月六月婷婷| 精品夜夜澡人妻无码AV| 99热这里有精品2| 天天做天天爱天天爽| 久久五月天大美女| 婷婷中文综合网| 五月婷婷说| 综合久久8| 五月激情久久综合网| 色婷青青| 成人视频一区| 日 日干 日日做| 成人片黄网站色大片免费毛片| 丁香六月婷婷综合激情欧美 | 日本人人xxx| 玖玖婷婷免费| 色色色综合网| 狠狠操狠狠爱| 久久久婷婷色五月资源网| 桔色成人在线| 91操熟女| 日本4399天堂中出| 色色亚洲五月天| 婷婷色色五月天| 天天爱天天爽| 另类五月激情| 婷婷精品在线| 成熟妇人A片免费看网站| 五月天激情av| 99热新网址| 五月丁香啪啪| 久久这里99| 亚洲av无码影院| 91日本在线观看| 狠狠操天天操天天操| 九七色色六月丁香| 婷婷情色五月天| 美女五月激情| 激情综合区| 久久精品99国产精品日本| 五月天激情社区| 丁香 久久| 九九热精品视频| 五月婷婷 激情五月| 男人的天堂五月丁香| 香蕉久久国产AV一区二区| 五月色丁香综合| 99视频综合| 色色色免费视频| 久久精彩视频99| 色婷婷四色| 99热这里只有精品青草| 亚洲第一精品成人999久久精品| 热99这里只是精品| 无码人妻一区二区一牛影视| 天天天天天天操| Www,五月天| 婷婷色啪| 91婷婷丁香五月| 丁香婷婷老熟女综合网| 97福利视频| 五月婷婷精品无在线| 色综合久久天天综合网| 99婷婷国产最新视频| 欧美怡红院黄站| 91九色国产熟女| 激情五月天婷婷视频| 天天操无码| 婷婷五月综合啪| BBWCUCKOLD精品熟妇| 久久五月天色婷婷| 天天做天天爱天天爽综合网| 另类综合激情| 久久视频婷婷| 五月天伊人久久| 99久久99综合| 9久久精品| 婷婷五月天堂| 久久丁香五月婷婷| 美女网黄| 日本九九视频| 婷婷91| 伊人玖玖婷婷| 九九这里有精品| 69激情小说| 都市激情久久| 天天成人五月天| 九九99免费理论| 五月天伊人久久久久| 婷婷丁香五月在线观看91| 欧美色片中文字幕久久久久| 成人无码髙潮喷水A片| 色人久久| 久久婷婷五月天| 激情丁香婷婷| 99re在线播放| 中文字幕按摩做爰| 99精品偷自拍| 情欲禁地| 伊人大香蕉在线视频| 五月停亭久久电影| 中文字幕人妻一区二区| 在线综合亚洲欧美65| 天天操夜夜操| www.婷婷五月天,com| 免费三级黄色| 婷婷五月丁香激情图片| 91性人人| 丁香五月天色综合| 亚洲色婷婷99一9|| 五月丁香激情欧洲啪啪| 六月综合在线| 色偷偷综合| 五月天成人在线视频网站| 九九热视频精品| 深爱激情五月网| 久久婷婷成人综合色怡春院| 久久久久久久久18久久| 九九色video| 久久婷婷桃花五月天| 五六月婷婷久久| 一本久久婷婷| 97婷婷五月丁香| 丁香婷婷五月人体| 久热久| 亚洲综合视频天天精品| 五月丁香色| www.色婷婷| www.99热这里只有精品| 欧美色综合天天久久综合精品 | 超级碰碰97在线| 婷婷五月花.97| 奇米影视777在线_在线观看午夜_h小视频在线观看_岛国大片 | 国产婷婷色五月| 超碰91在线| 五月婷婷开心爱| 亚洲 小说 欧美 激情 另类| 五月丁香久久综合| 中文字幕丰满孑伦无码专区| 国产一区男女| 婷婷六月天激情| 超碰成人免费| 99热官网精品在线| 婷婷99狠狠| 99亚洲大片精品永久在线观看| 综合久久99| 天天激情站| 午夜无码熟熟妇丰满人妻| 丁香亭亭激情四射| 视频这里只有精品| 久大香蕉| 成人五月天综合网| 最新av在线观看| www.狠狠干| 激情av| 北条麻妃伊人 | 色碰碰视频| 色婷婷丁香A片区毛片区女人区| 国产三级在线播放| 九月丁香八月婷婷久久综合久97| 五月天色婷婷小说| 大香蕉综合| 久久99久久99久久99| 超碰9| AV人人操| 久久综合九色综合97婷婷| 极品九九九九九九| 大伊久久| www。久久久久一b。Cc| 啪啪啪综合网| 天天爽天天| 强辱丰满人妻HD中文字幕 | 激情五月天婷婷久久久久久久久久久| 色婷婷五月视频| 久久久婷丁香五月| 欧美在线骚货| 五月丁香六月香香蕉| 男女激情久久| 99久久久| 激情综合色婷婷啪啪五月天| 这里只有精彩小视频视频网站| 热99这就是精品视频| 思思99精品视频在线观看| 五月丁香偷拍| 婷婷丁香五月天色色| 日本本土色网第一区| 亚洲热久久| se99热久久一本| 狠狠狠狠狠草| 性av| 玖玖资源天天无码| 色综合综合综合| 日本精品。999| 97人人草| 情婷婷五月天在线| 狠狠干综合| 婷婷丁香五月天综合AV| 99久久6| 综合亚洲六月婷婷在线| 久久婷婷视频| 伊九九三级区| 人人摸人人搞| 很操日本7| 97精品人人A片免费看| 婷婷丁香六月| 日本色五月| 丁香五月婷婷六月婷| 天天爱天天爽| 色噜噜,噜噜色| 丁香五月激情五月| 婷婷丁香五月天亚洲| 国产精品成人AV在线观看春天| 久久亚洲婷婷综合色五月| 激情五月综合网| 五月丁香婷婷成人伊人网| 欧美性猛交 XXXX 乱大交| 五月天成人在线视频丁香| 婷婷久久网| 五月天深爱激情网| 丁香色影院| 玖玖五月丁香| 丁香九月激情| 人人操超碰| 五月丁香啪啪综合| 超碰免费大香蕉| 91精品婷婷国产综合久久| 99九九在线| 99ri在线视频| 成人国产欧美大片一区| 吉澤明步Av一區二區| 六月撸婷婷| 99热啪啪| www狠狠| www.综合久久.com| 99操| 五月天玖玖狠狠色色| 九九精品re免费视频| 五月丁香婷婷综合| 五月丁香拍拍激情综合| 婷婷五月天亚洲综合网| 丁香五月欧美午夜视频| 激情综合网,婷婷五月天| 亚洲一二三网| 丁香五月综合婷婷| 婷婷五月天激情综合深爱| 99精品97| 最近韩国日本免费高清观看| 香蕉综合网| 青青操绿aaa一区日v| 丁香五月久久| 久久精彩视频99| 五月婷婷婷| www.97碰碰com| 天天操夜夜啊| 激情玖玖综合网| 五月色网| 色五月丁香婷婷| 色婷婷五月天亚洲| www色婷婷com| 色婷婷成人做爰A片免费看网站| 五月天激情小说网| 日日色五月天| 婷婷久久综| 深夜男女福利刺激影院一区| 色婷婷成人| 丁香五月天激情网址| 狠狠 久久| 超碰97在线操| 日日夜夜婷婷| www激情| 久久久婷婷| 人人色AV| 成人丁香五月| 日韩情色在线观看| 91人久| 久婷婷婷| 久久92| 婷婷五月天亚洲图片| 五月丁香六月婷综合成人综合 | 国产精品男人AV不卡| 成人日韩欧美| 亚洲婷婷免费| 狠狠干在线| 五月丁香六月停停| 激情婷婷五月黑人| 欧美噜噜免费观看| 亚洲综合在线播放| 五月亭大香蕉| 婷婷五月中文字幕| 91色欲综合| 精品爱欲五| 中文字幕无码人妻少妇免费视频| 久久久激情视频| 色综合色| 91人人网| 丁香五月婷婷亚洲综合精品| 九九色色| 日韩五月天婷婷| 婷婷成人五月天一区| 久久最新色色色| www.99热在线观看| 精品思思久久| 中文字幕在线播放视频| 狼人狠狠操| 五月婷婷久久爱| 亚洲乱码日产精品BD| 91碰碰| www.99在线| 亚洲亚洲人成综合网络| 欧美交换配乱吟粗大25P| 色五月激情五月天| 欧美顶级少妇做爰HD| 国自产拍偷拍精品啪啪一区二区 | 欧美123区免| 日韩啪啪视品| 亚洲日比视频| 五月婷婷五月丁香| 丁香五月六月婷婷怡红院| 亚洲va欧美va国产综合久久久| 丁香五月综合网亚洲综合欧美狠狠| 五月综合六月丁| 五月天堂在线| 99在线精品免费视频| 丁香五月色五月| 超碰二区| 97人妻碰碰中文无码久热丝袜| 青草视频在线播放| 亚洲无码免费看| 一级七香蕉| 玖玖色综合网| 夜夜躁狠狠| 五月情婷婷五月| 五月天婷婷xxx| 狠狠色精品综合| 色婷婷视频在线| 狠狠操天天干| 天堂无码人妻精品AV一区| 9色91视频| 狠狠爱婷婷五月天| WWW,色五月| 一区二区三区四区五区| 天天干com| 九九香蕉网| www.99热| 色色热日| 久久婷五月婷| 久久99性爱视频| 欧美大香蕉视频| 久久性爱视频| 91色在线| 甈吧vv| www.久热| 色婷婷六月| www.精品久9| 久久综合激情五月天| 夜夜干夜夜操| 精品久久久人妻| 狠狠色 综合色区| 色10月婷婷视频| 夜夜撸日日骑| 久色视频| 久久综合无| 六月婷伊人| 五月丁香啪啪| 五月丁香 狠狠爱| 日韩成人无码人妻| 婷婷碰碰| 色五月激情问网站| 饮料下药迷倒漂亮女同事强干| 天天综合在线网| 伊人五月天| 精品一区二区三区三区| 99这里只有精品视频在线| 激情综合网 激情五月天| 婷婷五月天成人网| 月丁香久久久| 五月色丁香国产在线视频| 青青草成人网| 国产第99页| 婷婷的五月天另类视频| 五月开心网| 亚洲成人网站在线| 日本熟女内射| 大香蕉伊人丁香五月| 色婷婷狠狠| 人妻久久久久久久 | 色婷操逼| 91九色国产熟女| www.夜夜.com| 五月激情在线| 婷婷五月成年人| 9久国产| 东北熟女高潮99综合99| 五月色网| 国产精品久久久爽爽爽麻豆色哟哟| 日韩不卡DvD| 久久99精品久久久久久噜噜| 丁香五月亚洲综合| 综合五月亭亭9| 五月天激情网图片| 色噜噜婷婷| 婷婷久久五月天丁香| 五月激情婷婷国产精品久久久久久| 99热日本| 免费观看全黄做爰的视频| 色狠狠伊人久久五月丁香| 涩涩五月天| 538任你爽| 狠狠五月天| 五月天婷婷色| 激情婷婷五月基地| 久久精品女人天堂AAA| 欧美性爱5月天天天看| 成 人片 黄 色 大 片| 日日撸天天干| 国产偷人爽久久久久久老妇APP| 99久久久| 亚洲午夜电影| 97资源欧美日韩大香蕉超碰一区| 超碰人人插| 欧美激情五月| 久久99人人| 色香欲综合| 五月婷婷之综合激情在线| 丁香综合网| 97欧美在线| 成人在线综合| 丁香婷色| 亚洲成av人影院| 精品综合久久久久久五月天| 国产精产国品一二三在观看 | 色99网站| 综合热无码| 99久99久| 色色日本| 天天日天天舔天天摸| 激情婷婷五月天| 久久久久婷婷五月热综合| 综合天堂AV久久久久久久| 99热这里精| 超碰免费人人肏| 99精品热视频| 色婷五月婷婷| 亚洲色无码A片一区二区麻豆| 丁香婷婷婷五月| 日本免费91| 999婷婷综合| 思思热性操| 微拍92| 亚洲五月综合色播| 成人网在线视频| 这里只有精品视频99| 思思w99| 中文字幕第四色.999| 五月天丁香成人| 五月激情偷拍婷婷| 久久女人九九| 99综合久久| 久色五月婷婷综合| 久久9999| 狠狠爱综合网| 色婷婷日本| 99国产er热视频| 97艹| 久久久久婷婷| 79精品视频| 婷婷五月天天天日日夜夜| 视频一区二区在线| 婷婷丁香成人| 亚洲综合五月| 色五月婷婷少妇人妻| 色情五月综合婷婷| 草综合网| 国产精品24r| 99这里有精品视频| 美女五月狠狠| 夜夜骑操AV| 97操碰视频| 欧美A级成人婬片免费看理论| 久久性爱视频久久性爱视频| 成人婷婷桔色| 久久精品五月天| 奇米影视777在线_在线观看午夜_h小视频在线观看_岛国大片 | 97搞在线| 狠狠色噜噜狠狠狠狠综合| 婷婷综合五月天激情| 五月婷婷综合影院| AA片在线观看视频在线播放| 狠狠狠狠狠狠狠狠| 五月天啪啪| 日韩综合网络男女香蕉a片| 欧美激情久| 国产精品人人做人人爽人人添| 爱射综合| 综合色色色| 色色色在线免费视频| 91精品久久久久| 潮汕成人AV片在线| 人妻人人操| 婷婷伊人综合中文字幕| 国产,欧美,日韩,性爱| 男人综合网| 天天舔天天插天天爱| 久久久久激情网| 婷婷久久图片 | 天天色99| 玖玖九九超碰| 91在线观看九区| 桃色成人网| 色情婷婷| 大香蕉九九| 亲子乱AV一区二区三区下载| 久9热| 婷婷五月天在线看| 国产免费AV在线| 婷婷激情九月| Www99热| 中文网婷婷字幕婷| 久久99精品视频| 五月天com| 五月天婷婷激情综合| 开心五月深爱五月婷| 五月天婷婷黄色| 午夜九九电影| 丁香五月欧美色综合| 亚洲日韩26uuu| 五月色婷婷综合色| ss99热| 欧美性丁香色色五月天| 99久久精品视频女神1| 日本色婷婷| 爱射综合| 亚洲日本韩国| 九九九九精品精| 婷婷五月超碰| 青青999| 先锋男人91资源| 大香蕉五月天婷婷丁香91| 亚州综合色| 色色五月天婷婷| 色五月婷婷久久| 39视频第二区| 99自拍视频在线观看| 婷婷五月天黄色| 色综合爱综合| 少妇口诉沐足视频播放器网址| 日日狠狠久久偷偷四色综合免费| av免费人人| 激情五月,婷婷五月,丁香五月| 久久久久网站| 99热在这里只有精品| 爱99干99| 九月婷婷综合色干| 射琪琪| 99热这里只有99| 五月综合在线婷婷图片| 五月天婷婷丁香| 日本天堂免费99| 欧美成人A片AAA片在线播放| 天天日天天舔| 少妇高潮A片无套内谢麻豆传| 大香蕉视频婷婷| 色色色97| 五月天成人在线视频丁香| 狠狠干青青草| 色99日韩| 99ER热精品视频| 亚洲AV久久久久久久久久久久久久久久| 亚洲XX网| 狠狠色丁香五月婷巨| 久久A V无码视频| 五月丁香无码| 丁香五月偷拍| 国产精品久久久爽爽爽麻豆色哟哟| 免费碰碰视频久| 色色色综合网| 丁香五月婷婷欧美成人色图| 26uuu欧美日本| www久久久久久久久久久| 超级久久久| 这里只有精品,日韩视频| 色噜噜狠狠狠综合曰曰曰| 婷婷五月天成人| 日韩二区搞逼插逼毛片| 久久婷婷精品| 色婷婷在线视频综合| 综合五月天天天天天五月| 日本在线视频www色| 日本欧美成人片AAAA| 伊人婷婷大香蕉| 伊人国产婷婷五月天| 狠狠干婷婷| 激情六月婷婷啪啪| 国产免费性爱| 丁香五月婷婷性爱| 26uuu国产| 久久ri精品| 久久综合婷婷五月| 黄色片avv| 99,色| 五月丁香婷婷网在线在线| 天天日日夜夜| 99精品偷自拍| www.99热国产| 碰97久久| 美女91一起草| 成人五月天在线视频在线观看 | 九九综合九色欧美狠狠| 最新激情五月天| 一起草无码| 色999亚洲人成色| 日本人妻操| 婷婷激情综合色五月久久,色婷婷丁香花,丁香婷婷五月情天,久久婷婷五月综合色 | 成人操呦av| 综合五月丁香六月婷婷| 婷婷97C| 99久久这里只有精品免费官网| 五月婷婷色综图片| 日韩欧美婷婷丁| 无月播播激情在线观看视频| 超碰av在线| 久久五月网| 久久五月天视频| 嘿嘿视频免费看9| 九九热这里只有精品在线观看| www狠狠| 俺也去在线久久精品23欧美综合视频网站,丰满人妻一区二区三区在线视频53,丰满 | 国产精品久久久99视频| 五月激情婷婷播播开心| 婷婷之玖玖| 日夜夜天天| 丁香五月天大香蕉啪啪| 99热在线爱| 涩涩五月天| 99黄色性生活| 婷婷色综合| 超碰超碰在线| 操逼123网| 99青青草99| 亚洲性图一区二区| 五月J香蕉婷婷| 婷久看人爽| 婷婷综合性爱网| caopeng97日韩| 久操香蕉| 丁香5月婷婷| 久久久免费图片视频| 五月WWW| 97成人超碰免| 日日夜夜狠狠操| 97日在线视频| 国产九九一区二区三区| AVV黄| 色五月综合| 欧美精品999| 99综合| 98毛片| 99年操人人爽| 久久96热| www.99热精品| 婷婷色在线视频| 免费国产VA国产免费| 六月丁香网| 99.色| 超碰人人摸AV| 99热综合网| 无码啪啪| 99视频| 五月丁香婷爱在线| 五月伊人网| AV人人操| 丁香婷婷激情综合五月激情 | 色五月综合激情| 9l视频自拍9l九色9l成人| www狠狠| 久久青草国| 六月99天天婷婷激情综合| 大香蕉av在线| 90色免费视频| 五月天婷婷在线播放| 色色色综合色| 激情AV| 综合网亚洲| www.五月婷婷久久.com| 草草夜夜操| 色五月婷婷色五月婷婷色五月婷婷| 色综合丁香婷婷| 婷婷色中文字幕| 视频色色色色色色| 日本高清久| 九月丁香久久网| 色婷婷五月天激情在线观看| 99久久免费性爱视频`| 亚洲V国产V欧美V久久久久久| 激情综合激情综合| 丁香九月婷婷| 色欲色香,www,com| 91avse| wwwC0maV五月花| 99色精品| 大香蕉福利导航| 国产在线黄色| 久久五月天色| 丁香六月综合激情| 婷婷久久婷婷| 久久激情综合| 九九热最新| 99热这里有精品6| 亚洲综合草草| 精品成人无码A片观看香草视频| 婷婷五月天AV在线| 五月天婷婷六月| 日本3级片偷拍网站| 偷拍丁香九月激情| 五月天婷婷基地| 深爱激清网| 亚洲色婷婷婷婷人人爽| 色五月婷婷自拍| 婷婷综合九色伊人| 伊人五月综合网| 91九色欧美| 热99久久这里只有精品| 婷婷色色五月天| 五月色激情综合网| 狠狠干五月| 天天色亚洲| 99九九在线| 五月婷婷 激情五月| 五月丁婷婷| AAA久久久| 99热丁香| 亚洲综合网在线| 色婷婷五月综合| 去干网最新版本亚洲版| 凹凸探花电影| 日韩xx在线| 超碰成人黄色网| 久久99国产综合精品免费| 色色综合激情| 激情网五月| 五月丁香六月欧美| 人人干Av| 五月噜噜噜色综合| 婷婷五月激情网站| AV无码免费| 久热黄色| 狠狠色婷婷7777久综合| 五月婷婷亚洲色图| 婷婷色影音天| 丁香婷婷欧美综合| 亚洲综合色色色| 天天色天天日天天舔| 日本丁香五月| 色五月在线观看| 成功精品影院| 久久99性爱| 天天日天天日天天搞| 亚洲五月色| 五月丁香爱婷婷深深| 激情深爱婷婷网| 好吊丝aV| 日韩99色| 深爱激情av| 天天色色婷婷| www.26uuu.com亚洲电影| 五月色丁香成人| 日本欧美国产| 色了色综合| 噜噜吧天天爱| 激情综合丁| 99视频在线| 丁香五月天网站| 中文字幕在线不卡| 欧美99热| 久久丁香| 成人AV播放| 日本色99网站| 天天干天天操天天射| 97久久精品| 大香蕉人妻| 久久这里只有精品网| 五月丁香久久呀| 六月综合婷婷开心伊人| www.99热这里精品| 九九青青草成人| 99re热视频这里只精品| 欧美叉叉叉BBB网站| 亚洲乱啪| 人人操操| 香蕉婷婷色五月| 伊人青涩网| 六月丁AV| 日日色综合| 五月天综合色| 久久五月婷婷综合网| 九九AV在线| 五月激情六月丁香| 无码人妻AV久久久一区二区三区 | 国产精品涩涩涩视频网站| 欧美狠狠色| 久久久精品AV| 久久综合五月| 丁香五月婷婷啪啪| 日本三级成人秘书精品片| 激情综合文学| 自拍视频在线观看9| 久久婷狠狠色| 日韩无码人妻一区二区三区综合 | 九九色区| 涩五月婷婷| 天天操天天操| 亚洲六月色| 99色热| 99热个人在线| av五月丁香| 五月丁香婷婷福利| 激情婷婷六月| 婷婷中文字幕| 五月婷婷欧美| 五月刺激丁香月综合| 俺来也综合网精品一区| 欧洲激情五月天| 亚洲国产成人在线| 夜精品无码A片一区二区蜜桃| 五月婷婷,狠狠操| 五月丁香黄色| 99热免费精品热久久66| 五月婷婷综合丁香视频| 五月婷六月| 大香焦A∨| www.91.com黄| 婷婷五月图片小说网| 99婷婷| 色婷婷综合影院| 激情婷婷狠狠干| 欧美成人va| 丁香婷婷五月激情四射网| 狠狠做五月| 九九热这里只有精品31| 日本99热| 影音先锋91资源站| 婷婷激情五月综合在线视频| 婷婷五月天网| 亚洲国产另类av| 3p日韩网站视频| 久久婷婷丁香| 停停六月 综合| 久久开心五月婷婷| 九九热超碰| 婷婷色操| 日日肏夜夜干| 婷婷色情 | 五月天激情站| 狠狠色成人影片| 久久婷婷桃花五月天| 婷丁五月| 99精品热| 九九热视频99| 久久久久久人妻久久久久久久久久人妻久久久| 国外亚洲成AV人片在线观看| 日本精品干| 99热这里精品| 久久九九一區| 丁香婷婷五月天色播| 99精品网| 精品婷婷| 激情久久丁香| 丁香五月综合久久| 开心五月婷婷99| 中文字幕中文有码在线| 丁香五月天婷婷中文| 五月色色网| 99热碰碰热| 热99热9| 五月丁香激情综合| 激情综合五月色在线| 日本久久综合| 日夜操B| 夜夜谢天天干| 91人人网| 97色碰| 俺也去婷婷五月天第五色| 五月丁香 啪啪| 国产99热| 五月天 无码|