亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

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

STM32官方Bootloader串口IAP升級:原理、實操與避坑指南

STM32官方Bootloader串口IAP升級:原理、實操與避坑指南 做嵌入式開發(fā)的朋友都應(yīng)該遇到過這種情況產(chǎn)品已經(jīng)在客戶那邊跑了大半年突然發(fā)現(xiàn)一個邏輯Bug或者客戶提了新需求要改功能。這時候最頭疼的不是改代碼本身而是怎么把手里的新固件刷到設(shè)備里去。拆機、接燒錄器、連線、下載一套流程下來費時費力不說遇到封裝比較小或者打了膠的板子簡直想砸東西。我最早做STM32F103C8T6項目的時候也被這個問題卡了很久后來把官方bootloader配合串口做IAP升級這套玩法徹底摸透了才算是真正解脫出來。所謂官方bootloader就是STM32芯片出廠時在系統(tǒng)存儲器System Memory里固化的一段引導(dǎo)程序用戶既不能修改也不能擦除。它的作用很單純通過串口、CAN或USB等接口把用戶代碼直接寫入芯片內(nèi)部的Flash。對于STM32F103C8T6這顆芯片來說最常用的就是USART1串口下載方式。我們不需要額外寫任何引導(dǎo)代碼只需要把BOOT0引腳拉高讓芯片上電后從系統(tǒng)存儲器啟動再用PC端的下載工具把編譯好的HEX文件通過串口發(fā)過去就能完成固件更新。對開發(fā)階段快速調(diào)板、小批量產(chǎn)線刷機、售后遠程協(xié)助升級來說這套方案性價比極高硬件成本就是幾塊錢的USB轉(zhuǎn)TTL模塊軟件工具則完全免費。這篇文章適合誰看如果你是剛接觸STM32的小白想搞明白怎么不借助ST-Link也能給板子燒程序或者你已經(jīng)在做產(chǎn)品正在糾結(jié)如何設(shè)計可靠的固件升級方案這篇文章都能提供一個直接可落地的參考。我會把原理、接線、工具配置、操作步驟、中斷向量表重映射這些關(guān)鍵細節(jié)一次講透也會把那些資料里很少寫、但實際開發(fā)中一定會踩的坑全部翻出來。1. 先搞懂原理為什么BOOT0拉高就能下載程序1.1 三種啟動模式與官方bootloader的定位STM32F103系列芯片上電后CPU會從哪個地址開始取指是由BOOT0和BOOT1兩個引腳的電平狀態(tài)決定的。具體映射關(guān)系如下表所示BOOT0BOOT1啟動區(qū)域說明0任意主Flash正常運行用戶程序也就是我們平時的工作模式10系統(tǒng)存儲器運行出廠固化的bootloader用于串口下載程序11SRAM調(diào)試用程序在RAM中運行掉電即失很多人第一次看到這張表會有點懵其實理解起來很簡單芯片上電后第一件事就是去讀取0x00000000地址處的初始棧指針以及0x00000004地址處的復(fù)位向量然后跳過去執(zhí)行代碼。這三種啟動模式本質(zhì)上是把不同的物理存儲區(qū)域映射到了0x00000000這個地址上。當(dāng)BOOT01、BOOT10時0x00000000映射到System Memory也就是那一段出廠固化的指令區(qū)。注意這里有個關(guān)鍵細節(jié)STM32F103C8T6的引腳上那個BOOT1其實是PB2引腳在芯片內(nèi)部已經(jīng)下拉所以很多時候我們只控制BOOT0一個引腳就夠了。1.2 官方bootloader到底做了什么當(dāng)芯片從系統(tǒng)存儲器啟動后CPU執(zhí)行的是ST出廠時寫好的引導(dǎo)程序。這段程序會初始化USART1PA9為TXPA10為RX等待PC端下載工具發(fā)送特定的命令幀。它以固定的通信協(xié)議接收數(shù)據(jù)將固件數(shù)據(jù)寫入用戶Flash區(qū)域并支持擦除、校驗、讀保護設(shè)置等操作。整個過程完全由ROM里的代碼完成我們在應(yīng)用層不需要做任何干預(yù)。這里要順帶澄清一個概念。嚴(yán)格來說通過官方bootloader下載程序標(biāo)準(zhǔn)術(shù)語叫ISPIn-System Programming在系統(tǒng)編程而在應(yīng)用運行時跳轉(zhuǎn)到自研bootloader再更新固件的做法才叫IAPIn-Application Programming在應(yīng)用編程。但國內(nèi)嵌入式圈子里大家交流時經(jīng)?;煊眠@兩個詞既然標(biāo)題用了“IAP升級”我后面就順著這個叫法但心里要清楚門道。真正的IAP方案需要自己寫bootloader我在文章最后會展開講。1.3 為什么選擇官方bootloader而不是自研引導(dǎo)程序STM32F103C8T6的官方bootloader方案最大的優(yōu)勢就是零代碼成本。芯片內(nèi)置的引導(dǎo)程序經(jīng)過ST官方長期驗證穩(wěn)定性有保障不需要占用用戶Flash空間來存放bootloader整個64KB Flash全部可以留給應(yīng)用程序支持HEX文件直接下載不需要額外的格式轉(zhuǎn)換配合FlyMcu或STM32CubeProgrammer這類工具操作非常直觀。它適合的場景包括產(chǎn)品開發(fā)階段頻繁更新固件、小批量產(chǎn)線燒錄、現(xiàn)場售后通過串口升級等等。而自研bootloader的優(yōu)勢在于可控性更強可以實現(xiàn)應(yīng)用內(nèi)升級、加密校驗、回滾機制等高級功能但它會占用Flash空間而且一旦bootloader本身有Bug設(shè)備變磚的風(fēng)險也比較大。官方bootloader方案作為第一步能讓我們用最少的成本跑通整個升級鏈路理解原理之后再去設(shè)計自研方案就有了一個非常扎實的基礎(chǔ)。2. 動手前的準(zhǔn)備工作接線、跳線、工具鏈2.1 需要準(zhǔn)備哪些東西硬件方面最核心的就是一塊STM32F103C8T6最小系統(tǒng)板我試過市面上的Blue Pill開發(fā)板也可以用自己畫的板子。一個USB轉(zhuǎn)TTL模塊CH340或CP2102都可以注意模塊的IO電平必須是3.3V如果買到5V電平的模塊輕則通信異常重則燒芯片。還需要幾根杜邦線。軟件方面推薦準(zhǔn)備兩個工具FlyMcu和STM32CubeProgrammer。FlyMcu是國內(nèi)開發(fā)者做的老牌工具界面簡潔一鍵下載的體驗做得很順手STM32CubeProgrammer是ST官方出品的編程工具功能更全面支持HEX、BIN、ELF等多種格式后續(xù)做批量生產(chǎn)也用它。2.2 進入系統(tǒng)存儲器模式的跳線設(shè)置拿最常見的Blue Pill開發(fā)板舉例板上有一個標(biāo)著BOOT0和BOOT1的跳線帽。要讓芯片進入官方bootloader需要把BOOT0跳線撥到1位置高電平BOOT1跳線保持在0位置低電平。然后按一下復(fù)位鍵或者直接重新上電芯片就會運行系統(tǒng)存儲器里的引導(dǎo)程序。這里有個經(jīng)驗修改BOOT0跳線之后必須復(fù)位或者重新上電才會生效。如果你只是把跳線從0撥到1芯片仍然在跑舊程序很多新手就在這一步卡了很久。2.3 串口接線必須交叉連接官方bootloader使用USART1作為下載接口對應(yīng)引腳是PA9和PA10。USB轉(zhuǎn)TTL模塊和STM32之間需要交叉連接這一點極其重要電腦USB轉(zhuǎn)TTL模塊STM32F103C8T6TXDPA10USART1_RXRXDPA9USART1_TXGNDGND請注意GND必須共地否則通信波形不穩(wěn)定經(jīng)常會出現(xiàn)能識別芯片但是下載中途失敗的情況。3.3V電源線可以接也可以不接如果開發(fā)板使用獨立供電就只接TXD、RXD和GND三根線如果使用USB轉(zhuǎn)TTL模塊直接給板子供電則把3.3V也接上。但務(wù)必確認(rèn)模塊的輸出電壓是3.3V且供電電流足夠否則在擦寫Flash這種電流較大的操作時電壓跌落會導(dǎo)致整片F(xiàn)lash數(shù)據(jù)損壞。3. 核心實操用FlyMcu完成一次完整固件下載3.1 第一步讓Keil生成HEX文件在寫下載步驟之前先說一個前置條件。默認(rèn)情況下Keil MDK編譯STM32工程只會生成AXF文件需要額外勾選一個選項才會生成HEX文件。操作路徑是Options for Target → Output選項卡 → 勾選Create HEX File。這個選項勾上之后每次編譯成功工程目錄下的Objects或Listings文件夾里就會多出一個.hex文件FlyMcu下載時選它即可。如果你希望把APP放到偏移地址并在Flash開頭放一個跳轉(zhuǎn)引導(dǎo)程序那么還需要在Target選項卡里設(shè)置IROM1的起始地址和大小。舉例來說如果Flash總共64KB引導(dǎo)程序占16KBAPP就從0x08004000開始那么IROM1的Start設(shè)為0x08004000Size設(shè)為0xC000。這個設(shè)置直接決定了鏈接器生成的代碼地址一旦搞錯下載成功也會跑飛。3.2 第二步FlyMcu的連接參數(shù)配置把USB轉(zhuǎn)TTL模塊插到電腦上打開設(shè)備管理器確認(rèn)串口號。然后打開FlyMcu左側(cè)區(qū)域進行如下配置選擇串口就是剛才記錄的COM號波特率默認(rèn)115200即可如果下載線質(zhì)量好、環(huán)境穩(wěn)定可以改到460800提高速度勾選“校驗”勾選“編程后執(zhí)行”下拉框里選擇“STM32F10x Low-density/Med-density”或者自動檢測FlyMcu會自動識別芯片型號。這個工具已經(jīng)多年不更新但對付F103系列完全夠用。關(guān)于“編程后執(zhí)行”這個選項需要特別解釋一下。它表示下載完成后由bootloader跳轉(zhuǎn)到0x08000000處執(zhí)行用戶程序。如果你的APP鏈接地址就是0x08000000勾選上之后燒完就能直接運行省去手動復(fù)位的步驟。但如果你的APP放在偏移地址而0x08000000處沒有有效的引導(dǎo)程序那么勾選這個選項沒有任何效果甚至可能跑飛。3.3 第三步一鍵下載流程FlyMcu最方便的一點是支持通過串口的DTR和RTS信號線自動控制復(fù)位引腳和BOOT0引腳實現(xiàn)一鍵下載免去手動跳線的麻煩。前提是你的硬件電路上做了USB轉(zhuǎn)TTL模塊的DTR/RTS到NRST/BOOT0的連接很多開發(fā)板在設(shè)計時已經(jīng)內(nèi)置了這個電路。界面上對應(yīng)的是“DTR的低電平復(fù)位RTS高電平進BootLoader”這個復(fù)選框如果板子上有一鍵下載電路就勾上沒有就保持不勾選手動操作BOOT0跳線。操作步驟在FlyMcu中點擊“...”按鈕選擇編譯生成的HEX文件確認(rèn)串口、波特率等參數(shù)無誤如果手動跳線方式先確保BOOT01復(fù)位板子點擊“開始編程”觀察日志輸出窗口正常流程會依次顯示連接成功、芯片識別、整片擦除、寫入Flash、校驗成功看到校驗成功后把BOOT0跳回0按一下復(fù)位鍵程序開始運行整個過程大概十幾秒比接ST-Link還快。實測下來115200波特率最穩(wěn)定460800雖然快但在某些CH340模塊或長線上容易出現(xiàn)偶發(fā)校驗失敗。3.4 備用方案STM32CubeProgrammer下載步驟如果你更喜歡用ST官方工具流程也非常直觀打開STM32CubeProgrammer在右上角選擇UART模式Port選擇對應(yīng)串口波特率設(shè)為115200確保BOOT01并復(fù)位板子點擊Connect按鈕連接成功后在左側(cè)編程區(qū)點擊Open file選擇HEX文件點擊Download按鈕開始下載下載完成后點擊DisconnectBOOT0跳回0復(fù)位運行CubeProgrammer的優(yōu)勢在于對ST芯片的支持最權(quán)威協(xié)議實現(xiàn)完全貼合官方bootloader幾乎不會出現(xiàn)兼容性問題。如果你用了FlyMcu怎么都連不上換個CubeProgrammer往往能解決問題。3.5 兩種部署方式全量覆蓋與分區(qū)引導(dǎo)使用官方bootloader下載時HEX文件里其實自帶了絕對地址信息。也就是說下載工具會按照HEX里記錄的目標(biāo)地址把數(shù)據(jù)寫到Flash的對應(yīng)位置。這就衍生出兩種不同的部署方式。第一種最簡單APP鏈接地址就是0x08000000下載時直接覆蓋整個Flash。這種情況下不需要做中斷向量表重映射因為CPU復(fù)位后從0x08000000取中斷向量本身就是APP自己的向量表完全匹配。對于不少Demo性項目、或者Flash只有64KB的小容量產(chǎn)品這種方式夠用。第二種是把Flash分成兩個區(qū)域0x08000000放一段跳轉(zhuǎn)引導(dǎo)程序偏移地址放真正的APP。兩次下載或者生成合并HEX就能讓設(shè)備啟動時先執(zhí)行引導(dǎo)程序再由引導(dǎo)程序跳到APP。這種部署已經(jīng)接近真正的IAP架構(gòu)但牽扯到中斷向量表重映射的問題繞不開我單獨用一章講清楚。4. 繞不開的坑中斷向量表重映射4.1 APP偏移后為什么必須處理向量表Cortex-M3內(nèi)核的中斷機制決定了任何中斷響應(yīng)時CPU都會從一個固定的地址0x00000000讀取向量表。如果APP放在0x08008000這類偏移地址而0x00000000仍然映射到Flash首地址那么中斷來了以后CPU去0x08000000查向量表找到的是Flash開頭那一小段引導(dǎo)程序的數(shù)據(jù)根本不是APP的中斷服務(wù)函數(shù)地址自然就進不了中斷函數(shù)表現(xiàn)就是程序一觸發(fā)中斷就死機、進入HardFault或者干脆復(fù)位重啟。很多初學(xué)者把APP放到偏移地址后發(fā)現(xiàn)主循環(huán)跑得挺好一按按鍵或者一收串口數(shù)據(jù)就死機就是這個原因。4.2 一個關(guān)鍵知識點STM32F103沒有VTOR寄存器Cortex-M3內(nèi)核定義了向量表偏移寄存器VTOR用來重設(shè)中斷向量表的位置但這是一個可選實現(xiàn)。很遺憾STM32F1系列出于成本考慮沒有集成VTOR寄存器所以不能像F4、F3那樣直接寫一個SCB-VTOR APP_ADDR就完事。網(wǎng)上很多教程拿F4的例子來教F103屬于典型的藥不對癥。F103的正確做法有兩種一種是把整個APP的中斷向量表復(fù)制到SRAM開頭然后把SRAM重映射到0x00000000地址另一種是保留Flash開頭一段空間通過跳轉(zhuǎn)和查表實現(xiàn)軟重定向。實際產(chǎn)品中第一種更簡單可靠。4.3 標(biāo)準(zhǔn)的向量表重映射代碼實現(xiàn)下面是經(jīng)過驗證的重映射函數(shù)在APP的main函數(shù)第一行調(diào)用#define APP_BASE_ADDR 0x08008000u // 根據(jù)實際偏移修改 #define VECTOR_NUM 96u // F103C8T6實際中斷向量數(shù)量約48個取96足夠 static void VectorTableRemap(void) { uint32_t i; uint32_t src APP_BASE_ADDR; uint32_t dst 0x20000000; // 1. 將APP向量表從Flash復(fù)制到SRAM起始地址 for (i 0; i VECTOR_NUM; i) { *(__IO uint32_t *)(dst (i 2)) *(__IO uint32_t *)(src (i 2)); } // 2. 設(shè)置SYSCFG_CFGR1的MEM_MODE位將SRAM映射到0x00000000 __DMB(); SYSCFG-CFGR1 | SYSCFG_CFGR1_MEM_MODE_0; __DSB(); __ISB(); }使用時要檢查一下你的APP工程里棧頂SP初始值也就是0x08008000地址前4字節(jié)的內(nèi)容它會被復(fù)制到SRAM的0x20000000處。程序啟動時CPU已經(jīng)通過Flash讀取過一次棧指針此時棧區(qū)已經(jīng)初始化完成所以覆蓋SRAM開頭這384字節(jié)96個向量乘以4字節(jié)不會影響正在運行的程序只要鏈接腳本里設(shè)置的棧頂?shù)刂凡辉?x20000000到0x20000180之間即可。以F103C8T6的20KB SRAM為例把棧頂設(shè)置在0x20005000附近向量表就穩(wěn)穩(wěn)地和棧區(qū)隔開了。4.4 一個更省事的方案把引導(dǎo)程序也做進Flash向量表重映射確實容易出問題那有沒有更省事的方法有一種做法是把跳轉(zhuǎn)引導(dǎo)段做得更聰明一點Flash開頭不放簡單的跳轉(zhuǎn)指令而是放一個“影子向量表”每個中斷向量都對應(yīng)一個跳轉(zhuǎn)指令跳轉(zhuǎn)到真正的APP中斷服務(wù)函數(shù)。這種方案能避免SRAM的開銷但代碼復(fù)雜度高而且每加一個中斷都要同步維護兩個表我實際用過一次就不再用了。對于絕大多數(shù)產(chǎn)品向量表重映射配合SRAM重映射是最合適的。5. 實戰(zhàn)排雷我遇到的7個典型故障5.1 串口連接失敗FlyMcu報“無法連接”這是出現(xiàn)頻率最高的問題。排查思路按順序來先確認(rèn)BOOT0確實撥到1且芯片已復(fù)位再確認(rèn)TXD/RXD接線是否交叉然后用萬用表量一下USB轉(zhuǎn)TTL模塊的TXD引腳是否有電平跳變最后檢查串口號是否被其他軟件占用以及波特率是否太高。還有一個容易被忽略的點官方bootloader的USART配置是8位數(shù)據(jù)、偶校驗、1個停止位即8E1而普通串口助手的默認(rèn)配置往往是8N1。FlyMcu和CubeProgrammer會自動協(xié)商這部分一般不用手動管但如果你拿自己的串口調(diào)試工具發(fā)命令就要注意這個區(qū)別。5.2 能識別芯片但擦除或?qū)懭霑r報錯這種情況大多是供電問題或線材太長。擦寫Flash時芯片電流需求會突然增大如果USB轉(zhuǎn)TTL模塊的3.3V輸出能力不足電壓跌落就會導(dǎo)致寫入失敗。解決方法是改用獨立穩(wěn)壓供電把USB轉(zhuǎn)TTL模塊和STM32之間線長控制在15cm以內(nèi)。另外飛線時杜邦線接觸不良也會有同樣表現(xiàn)我建議接線后先輕輕晃一晃確認(rèn)接觸牢靠。5.3 燒寫成功但按下復(fù)位沒反應(yīng)程序沒有跑起來。一般原因有三個一是下載的是偏移地址的APP但Flash開頭的0x08000000沒有引導(dǎo)程序二是Boot0跳線沒有撥回0芯片還在系統(tǒng)存儲器模式自然跑不了用戶程序三是KEIL里沒有勾選Create HEX File實際下載的是舊文件。5.4 APP能運行但一進中斷就死機這就是上一章講的問題APP放在偏移地址但沒有做中斷向量表重映射。解決辦法就是調(diào)用重映射函數(shù)并注意在跳轉(zhuǎn)時進入APP之前關(guān)閉全局中斷在APP里重新初始化外設(shè)。5.5 下載完成后自動執(zhí)行會死機手動復(fù)位就正常FlyMcu的“編程后執(zhí)行”功能是通過設(shè)置PC指針直接跳轉(zhuǎn)到0x08000000實現(xiàn)的。如果你的APP在偏移地址而0x08000000沒有有效代碼勾選這個選項就會死機。遇到這個情況取消勾選“編程后執(zhí)行”燒完后手動復(fù)位即可。5.6 使用了國產(chǎn)替代芯片下載失敗現(xiàn)在很多項目用GD32F103、APM32F103等國產(chǎn)替代芯片。這些芯片的系統(tǒng)存儲器bootloader設(shè)計大體兼容ST但通信時序和Flash操作細節(jié)可能有差異。遇到下載失敗優(yōu)先換STM32CubeProgrammer試試如果仍然失敗需要查閱對應(yīng)芯片手冊確認(rèn)USART1在boot模式下是否有特殊配置。我試過GD32F103C8T6用FlyMcu的STMCU自動檢測模式偶爾失敗選對型號后正常。5.7 板子被寫保護無法擦除之前調(diào)試時用ST-Link給芯片設(shè)置了讀保護或者下載工具設(shè)置了選項字節(jié)再想用串口下載就會失敗。解決辦法是用FlyMcu的“解除讀保護”功能或使用STM32CubeProgrammer在Option Bytes頁面吧Read Out Protection設(shè)置為AA并Apply。執(zhí)行完這個操作后Flash會被整片擦除注意提前備份數(shù)據(jù)?,F(xiàn)象可能原因解決方案無法連接BOOT0未拉高、接線交叉錯誤、串口被占用檢查跳線和接線換串口號寫入報錯供電不足、線材過長、接觸不良獨立供電縮短線材重插杜邦線運行無反應(yīng)Flash開頭無引導(dǎo)、BOOT0未復(fù)位、HEX未生成檢查鏈接地址BOOT0跳回0勾選HEX中斷死機向量表未重映射增加重映射函數(shù)自動執(zhí)行死機勾選了“編程后執(zhí)行”且Flash開頭無有效代碼取消勾選手動復(fù)位寫保護無法擦除選項字節(jié)設(shè)置了讀保護解除讀保護注意會格式化Flash6. 進階思考官方方案之外如何設(shè)計真正的IAP升級6.1 官方bootloader方案的邊界在哪里官方bootloader方案的局限其實很明顯。第一每次升級都需要人手去撥BOOT0跳線或者配合一鍵下載電路無法做到“設(shè)備在應(yīng)用運行中自行升級”。第二官方bootloader通過串口接收數(shù)據(jù)時沒有加密和校驗機制關(guān)鍵產(chǎn)品直接暴露在不安全環(huán)境中會引入風(fēng)險。第三它不具備覆蓋保護機制升級斷電容易變磚。這些局限決定了它更適合開發(fā)調(diào)試和小批量維護而不是一個需要遠程升級、高可靠性的量產(chǎn)產(chǎn)品方案。6.2 自研bootloader的標(biāo)準(zhǔn)架構(gòu)如果要做真正意義上的IAP需要自己在Flash中實現(xiàn)一個輕量級引導(dǎo)程序并讓APP具備觸發(fā)跳轉(zhuǎn)的能力。標(biāo)準(zhǔn)分區(qū)方式如下0x08000000自研bootloader區(qū)存放串口/無線接收、Flash寫入、跳轉(zhuǎn)邏輯0x08008000APP區(qū)存放應(yīng)用功能代碼0x0800F000參數(shù)區(qū)存放升級標(biāo)志、版本號最后一次下載前校驗成功后將升級標(biāo)志寫死APP啟動后檢查是否需要跳轉(zhuǎn)bootloaderAPP接收完新固件后先校驗固件完整性CRC或SHA256寫入升級標(biāo)志然后執(zhí)行系統(tǒng)復(fù)位。復(fù)位后bootloader檢查到升級標(biāo)志進入固件接收模式接收完成后跳轉(zhuǎn)新APP。這樣整個升級觸發(fā)出自應(yīng)用本身操作流程變?yōu)樵O(shè)備端收到升級指令→APP下載固件→跳轉(zhuǎn)bootloader→bootloader校驗后寫入Flash→運行新APP。配合雙Bank方案還可以實現(xiàn)升級失敗自動回滾可靠性遠超官方方案。不過如果做遠程升級串口方式就不夠用了需要給APP加網(wǎng)絡(luò)模塊或者無線透傳模塊把固件數(shù)據(jù)通過網(wǎng)口/4G/WiFi接收下來這時候bootloader內(nèi)部的接收邏輯要改成通過共享內(nèi)存或串口從APP模塊獲取數(shù)據(jù)復(fù)雜度又上一個臺階。很多人把這套系統(tǒng)叫OTA升級本質(zhì)是IAP的傳輸通道擴展。6.3 一些實際操作體會做自研bootloader時我踩過最深的坑是Flash扇區(qū)分配問題。STM32F103C8T6的每一個Flash扇區(qū)是1KB擦除必須按扇區(qū)來所以APP區(qū)起始地址必須對齊扇區(qū)邊界。如果APP區(qū)設(shè)為0x08008000這個地址除以0x400剛好是整數(shù)對齊沒問題如果設(shè)為0x08007000對齊就亂了寫擦除時很容易誤擦掉bootloader代碼直接變磚。有幾次我把bootloader的啟動流程和Flash驅(qū)動分開調(diào)試剛寫完驅(qū)動測試時不小心把bootloader區(qū)也擦掉了只能上ST-Link救回來。另外一點固件傳輸協(xié)議設(shè)計要帶幀序號和ACK機制。一開始我把固件分包發(fā)送但沒做ACK數(shù)據(jù)稍大就丟包升級成功率慘不忍睹。后來改成每一包都要應(yīng)答超時重發(fā)對端校驗通過才發(fā)下一包成功率一下就上去了實測一次幾萬字節(jié)的大型固件傳輸基本是一包都不丟。寫在最后的一個小技巧最后分享一個我常用的升級流程閉環(huán)。無論是官方bootloader還是自研方案升級完成后一定要做一次版本校驗并記錄到Flash參數(shù)區(qū)。對于官方bootloader方案下載工具自帶的校驗功能能保證寫入數(shù)據(jù)準(zhǔn)確性但保證不了寫入之后APP的邏輯是否完整所以建議在APP啟動時讀一次自身Flash區(qū)域的版本號和固件CRC值寫到日志里。這樣現(xiàn)場一旦出問題第一件排查的事就是回看日志里的版本記錄能省下大量吹牛歸零的時間。我自己在正式產(chǎn)品中都保留了官方bootloader作為“最后一道門”即使自研bootloader寫崩了還能通過串口把官方bootloader調(diào)出來做強制恢復(fù)。這套組合用熟了之后再復(fù)雜的固件升級場景心里都有底。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
精品999一区二区| 亚洲色图91| 懂色AV网| 日本高清一本二本免费不卡| 台欧久久精品视频| 综合色图区| 无码人妻丰满热妇又大又粗| www.亚洲成人一区| 亚洲熟女av中文字幕| 日本三级人妻a人妻一在线| 探花精品 一区二区| 久久久久九九九九九| 久久国产视频专区一二三| 国产激情av女片自拍| 激情黄色片在线观看| 97中文综合| 成人精品水蜜桃久久久久久久| 粉嫩国产精品久久粉嫩| 日本91白丝| 中文字幕jul-617人妻熟女| 日本熟女免费視颖| 成人性爱av.com| 翔田千里AⅤHD无码| 成人国产视频在线观看| 搡老女人911熟妇老熟女| 澳门色噜噜色噜噜色噜噜色噜噜色噜噜| 国产精品天干天干综合网麻豆| 久久侵犯人妻爽爽爽| 激情四射五月天| 亚洲毛片一级带毛片基地| 家庭乱伦麻豆| 国产精品网址| 图片区小说区| 久久婷婷五月天| 色婷婷综合网站| 欧美刺激色黄片免费看| 五月天婷婷综合| 色婷婷影院| 亚洲中文字幕97久久精品少妇| 韩国一级婬片A片AAAAA| 五月天激情小说网| 亚洲男人天堂2012| 另类视频在线| 在线二区不卡| 国产女同视频在线播放| 久操视频资源站公开| 无码日韩人妻av一| 久久婷婷五月天| 校园春色之综合网| 日韩9999| 亚洲色电影在线| 亚洲欧洲日本精品中文a∨| 亚州91| 日本爽爽爽爽爽爽免费视频| 午夜无码精品免费看性色| 国内毛片国产专区二| 日本污ww视频网站| 97欧美精品综合| 伊人青青草久久| 欧美综合传媒| 69视频入口| 欧美性生活男人的天堂| 插欧洲美女欧美精品| 丁香五月激情五月| 久久机热| 天美国产精品| 久啪| 久久久久久久9| 国产高清成人免费视频| 国产日韩区| 97摸视频| 啊好爽受不了无码| 亚洲 欧美 第一页| 在线a v| 96AV精品| 97干在线| av婷婷色网| 91精品久久久久久| 人人天天干干| 亚洲、日韩、综合、另类| 久久99999| 国产一二三在线视频五十路| 看黄片视频免费| 九九热精品在线| 99re在线视频| 中文字幕奈奈美被公侵犯| 99免费在线视频| 夜夜综合| 国产精品无码成人精品| 思思热在线视频精品| 18禁久极品美女久久哦哟呀!| 97ai亚洲| 色色色天美视频| 日韩三级网址| 综合网亚洲| 最近的最新的中文字幕视频| 中文字幕无码不卡啪啪| 精品少妇一区二区三区在线视频| 久久伦理视频久久大香蕉视频| 久久精品黄色| www.夜夜操| 蜜臀在线看片| 国产AV无码AV| 欲香欲色天天天综合和网| 黄页av| 午夜男人一级A片7777| 日韩图区| 色y情视频免费看| 殴美,日韩国产伦精品| 国产熟码AV| 殴美在线AⅤ| 超碰人妻久久人妻中文97| 97天堂| 超碰调教97| 男人精品区| 97人人模人人爽人人| 啊啊啊好疼| Blackedraw视频一区二区| 一及黄久一点| 成人性爱av.com| 97在线观视频免费观看| 伦理片秋霞免费影院| 欧美激情久久久久| 婷婷丁香熟妇综合网| 大香蕉日韩欧美| 五月天婷精品激情| 成人性交午夜免费片| 国产毛片精品一区二区色欲黄A片| 日本免费一区二区不卡| 4399成人黄A片| 97欧美综合网| 日本九九久久99播| 欧美日韩国产三级黄色| 98福利在线视频| 95自拍视频在线观看| 色婷婷久久综合超碰| 淫荡熟女乱伦网| 欧美熟妇亚洲版| 国产超碰| 欧美色人| 中文久久96| 日本一级二级三级网站| 91亚洲网站| 色五月婷婷麻豆在| 欧美区亚洲区偷拍区 | 狠狠狠一区二区三区| 青青草久草| 色鬼在线综合| 新版天堂中文资源8在线| 亚洲综合在线91| av优播| 中文字幕日韩专区精品系列| 中文子幕一二三| 久久香蕉网| 欧美性爱18观看| 试看60秒| 高清不卡一二三区视频......| AV麻豆免费一区| 嫩草 我啊~嗯~在线| 丁香六月婷婷| 精品国产www久久| 欧美色图20p| 热热热热日日漂亮永久永久国产日| 黄aaaaaaaaaaaaaaaaaa色网站| 超碰在线一区二区三区| 老女人碰碰在线碰碰视频| 日本在线不卡v二区| 好吊色青靑草| www久久精品| 天天碰操中国年青熟妇| 爱我干综合| 超碰午夜| 污色区网站| 欧美三级偷拍| 久热大香蕉网站| 操穴国产| 国产成人亚洲精品自产在线| 日本性爱不卡视频| 亚洲精品尤物yw在线影院| 日韩无码人妻中字久久三区四区| 青青欧洲黑| 国产欧美日韩女同性恋ww喷水精品| 26uuu性| 美女极品一区二区三区| 国产精品久久久久中文字幕| 性暴力欧美猛交在线直播| 9Ⅰ老熟女| 97久久久久久久久久| av72网| 99操| 中文字幕在线2| 欧美一二三区四五区| 中文字幕精品一区二区精品| 新版天堂中文资源8在线| 日韩综合无码色欲vv| 日本淫乱女一区二区三区视频| 久久97视频| 2020中文字幕在线| 亚洲一区二区中文字幕| 亚洲色天| 91AV入口| 欧美视频一区二区在线| 亚洲午夜福利在线影院 | 伊人991| 有码色中文字幕在线观看| 发朗少妇买婬全视频中文| 国产精品秘 福利姬在线观看| 精品国产www久久| 国产精品亚洲一级av第二区| 国产av又色又爽又黄| 国产一区自拍欧美日韩| 无码区蜜乳| 日韩精品国产一区二区| 一级毛片久久久久久久女人18| 18禁止看精品中文字幕| 乱伦Av网| 婷婷伊人网| 婷婷色五月激情| 狠狠狠狠狠干| 亚洲宗合电影| 亚洲亚洲亚洲天堂天堂| 日本三级精品| 伊人国产成人av网站| 五月丁香黄色网| 亚洲小电影免费涩涩成人在线高清| 亚洲国产尤物yw在线观看| 在线综合色| 亚洲1区| 黑操B| 日本不卡二三区| 曰韩少妇无码| 96超碰网| 欧美一级特黄淫片在线观看| ?亚洲伊人伊成久久人综合网| 91性高潮久久久久久久久| 校园春色之综合网| 亚洲男人天堂2016| 嗯嗯啊啊啊好爽| 国产美女在线精品免费看| 麻花豆传媒剧国产MV出差| 狠狠色狠狠色狠狠五月| 91 手机在线播放 绯色| 婷婷九月国产| 中文字幕欧美丝袜07资源| 欧美v亚洲v综合v国产v妖精| 99热66| 韩国女主播青草在线| 人妻蜜桃臀| а√天堂资源官网在线资源| 91精品丝袜久久久久久| 老熟妇综合| 大香蕉99re| 亚洲黄色视频在线观看视频| 激情婷婷五月天| 九九九久千久久激情蜜桃在线看 | 黄色不卡视频| 亚洲欧美碰碰| 大香网伊人久久综合| 蜜臀精品1区2区| 亚洲高清在线se| 日韩性爱小视频| 欧美顶级黄片AAAAA在线免费看| 九九视品黄色| 男人的天堂com| 岛国在线免费视频| 校园春色制服丝袜中文字亚洲| 欧美页片| 超碰97人妻免费在线| 99操碰| 操曰本熟女| 中文字幕人妻资源在线| 色五月婷婷五月天| 91白虎| 久久精视频美日韩在线视频| 久久99精品国产| 国产在线综合福利网站| 欧美色997| 一级乱伦网站| 日韩久久超碰色| 2017天天插| 亚洲国产一区二区三区四区国产| 97爱b| 一级性爱视频免费在线| 欧美日韩免费专区在线| 国产中出内射一区二区| 久久久999网站| 偷偷人人精品女女久久| 婷色五月| 日韩三级av片| 激情小说五月天| 男人的天堂久久| 精品人人插人人操| 亚洲一区二区三区婷婷| 嗯嗯嗯好爽| 天天射夜夜操| 欧美性后入| 高清无码久操视频| 久久久久久久久久精| 岛国色情视频在线观看| 色偷偷综合91久久噜噜| 久久草在线综合视频| 天天综合站| 日本色婷婷| 日比av无码| 99精品在线| 青草一区二区| 亚洲天堂另类小说男人| 脫衣舞一区二区三区| 日韩中文字幕宗合在线| 一区二区三区欧美激情| 97亚洲精品| 人妻精品综合中文字幕在线| 欧美性爱日韩高清| 亚洲91大片| 国产高清成人传媒影视| 91丝袜美女视频| 欧美日韩国第一区| 美中日韩无码| 久久99九九九九6666免费观看软件| 大香樵伊人网| 中国一级特黄大片护士| 少妇熟女视频一区二区三区| 精品一区二区啪啪啪| 欧美组图日韩亚洲中文字幕| 亚洲熟妇综合久久久久久| 久久久久久久久久8888| 欧美18 在线观看| 青青草久草AV| 久操黄色视频| 国产 亚洲 丝袜 制服| 91色亚洲| 加勒比综合a∨| 亚洲AV成人在线| 成人精品在线免费视频| 九九人妻| 欧美97日韩| 久草福利在线资源站| 日本操逼视频免费| 日夜尻逼网| 97久久超碰国产网站| 欧美亚洲国产日本在线,久久精品国产| 亚洲怡春院| 久久久久亚洲Av无码专区老牛影视| 超碰性爱97| 欧美成人一区二区三区在线播放 | 三级激情网站| 久热热| 91爰爱欧美| 色性综合| 亚洲熟女av日韩熟女| 亚洲 欧美 日韩 国产一区二区| 青青三级视频| 久久九七| 人妖欧美一区二区| 久久99人妖视频国产| 超碰天天操| 96AV精品| 欧美亚洲综合色| 欧美日韩国产色图在线| 精品无码不卡视频| 中文字幕黄片在线| 亚洲综合电影| 青娱乐999| 91精品老女人| 亚洲在饯| 黄页av| 91欧美少妇| 天堂涩涩| 精彩久久中文| 欧美大片一区二区三区| 亚熟hd视频在线| 有码人妻系列| 用力操死我| 91亚洲精品青草| 丁香五月激情网| 开心五月深爱五月| 91综合在线| 婷婷伊人| 亚洲AV无码天美传媒一区| 99久久久| 中文字幕日韩国产传媒欧美精品| 91亚·色| 亚洲限制级在线| 97欧美精品综合| 裸模AV女优| 亚洲免费日韩在线一区二区| 日韩钢筋无码高清啾啾啾| 中文字幕版| 10000部十八禁看电影| 亚洲视频,小说| 91丝袜在线视频| 国产女人9999| 国产精品农村妇女| 国产午夜精品理论片a大结局| 日本不卡五区| yw尤物av无码点击进入麻豆| 一区操逼日比视频| 五月丁香色情| 日本三级人妻a人妻一在线| 人妻一区久久二区三区色播| 96久久久精品| 亚洲女优有码无码高清| 视频国产欧美在线播放| 欧美十八禁导航成人| 综合欧美日韩在线观看| 亚洲一区二区三区久久 亚洲一区二区| 国产suv精品一区二区四区999 | 久久久久久免费电影| 夜夜无码| 国产精品视频91久久| 久热在线精品免费观看| 婷婷亚洲五月***久久| 69人妻精品一区二区绯色| 18一区二区三区| 欧美日韩亚洲天堂网| julia ann久久| 亚洲欧美另类小说| 成人三一级一片aaa| 色色色综合网| 超碰到97情色| 欧美极品美女aaaaaa级黄片| 热99这里只有精品| 国精综合一二三区影视| 天天拍夜夜| 免费1级a做爰片观看| 综合色播| 日韩综合97P| 精品人妻一区二区三区在| 3d成人精品一区二区| 欧美另类色图片| 亚洲精品 欧美精品| 精品亚洲天堂| 色香色欲天天综合网天天来吧| 欧美大香蕉卡久久| 人妻激情视频| 啪一啪免费视频| 中文有码第五页| 黄色交缠性感爆操91国产精品免费一区二区三区| 91亚洲人| 日韩在线观看中文字幕视频| 无码人妻精品一区二区三区九九| 国产精品人妻无码久久久老鸭窝| 日本肉体xxxx裸交| 97se综合| 午夜AV人气不卡| 日韩偷拍色图| 久热一区二区| 日本免费中文一区二区三区四区| 国产蜜臀在线| 一起草精品人妻| 久久m| 99亚洲精品| 18精品一区| 麻豆精品.欧美精品.日韩精品.| 永久免费发布性爱网| 91中文精品日韩欧美在线| 91五十路| 97超级久久强资源| 久久久久久久9| 丁香五月AV| 中文字幕第二页| 日本在线视频导航| 伊人9| 激情五月天社区| 亚洲女人毛茸茸91| 看日韩操逼| 超碰欧美97资源| 99久久久er直播网址| 九九热在线精品视频| 日欧操屄| 91成人社区| 巨爆乳一区二区爆乳区| 最新精品久久蜜桃| 东北丰满熟女国产一区| 国产情色第一第二页在线观看| 在线综合 亚洲 欧美中文字幕| 爱欲AV| 十八禁视频一区二区| 欧美熟女妇同| 日韩国产乱子伦App| 91黑丝操| 99re视频在线观看这里只有精品| 色汉综合| 精品十三区| 久久精品国产亚洲AV无码做| 清纯唯美综合亚洲| 超碰三级秋霞| 亚洲?V无码专区在线电影| 日日夜夜模| 亚洲中文字幕av| 久久九色| 久操视频免费观看| 大香交伊人网| 黄色电影在线播放综合网站| 91成人亚洲色图| 欧美综合站| 高清无码在线播放网站| 国内外毛片在线观看| 骚逼高潮久久精品| 婷婷丁香九月| 风韵犹存大大大大香蕉| 久久只有精品一区二区三区| 999国产精品999| 玖玖爱影院| 国产一区二区三区,在线观看观看| 国产又操| 国产欧美在线观看免费观看| 风月影院男女十八禁| 啊…啊…操我用力操我| 国产精品 久久久精品一牛| 欧美日韩国产精品久久色婷婷| 天天日B狠狠操| 夜间福利片1000无码| 97爱| 青青草在线视频播放器| 女生自91网站| 97WW精品| 激情丁香婷婷| 中文字幕亚洲永久精品| 视频不卡中文字幕| 91色夜| 强奸熟女一区二区三区| 九一综合精品视品av| 人妻熟女av国产网站| 亚洲国产成人精品999| 97国产|免费| 91日产欧美| 人妻天天操天天爽视频免费| 久久久婷婷婷| 成人美女av| 一本色道久久天天射天天干| 91性色| henhen91| 色哟哟av| 欧美亚洲清纯| 丰满人妻一区| 美美91成人国产精品欧美精品久久久久久久| 五月天婷婷久久| 日韩精品黄片免费观看| 日韩操逼HD| 另类图片欧美激情综合| 亚洲色图91| 啊啊啊啊啊啊在线| 欧美激情精品久久久久久| 久久久精品久久| 色老牛| 日韩少妇无吗| yy少妇精品久久| 一区| 久久6热精品99视频| 97操在线| 午夜AV污污污| 天天性射网| 亚欧美无遮挡| 日本久久久久久久久久| 久久久精选| 97ai亚洲| 欧美激情综合| 久久透逼视频| 东北丰满熟女国产一区| 日本操大逼| 爆操无码| 丰满人妻-区二区三区免费| 色婷婷久久| 九九九九久久久| 大香蕉伊利av| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 人妻aa| 色呦呦呦在线观看视频| 天天天天天天天天天天干美女| 久久国产热视频97电影| 亚洲成A∨人影院在线欢看| 熟女人妻一区二区三区| 成人av免费观看| 大香蕉操久久| 禁十八久久| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 三级色综合| 日韩欧美午夜视频在线| 天天干天天干天天干| 亚州宗合另类| 亚洲熟久久| 91女色| 97超碰磁| 色综合网1| 97人肏| 国产视频第2页| 日韩97超碰| 亚洲影院成人| 国产强奸超碰AV| 欧美淫穴| 亚洲国产亚洲天堂| 97综合久久| 久久成人午夜精品影院 | 久久男人| www.91人妻.com| 青草av在线| 中美日韩毛片| 日本黄色精品| 久操网无码在线| 五月天偷拍| 成熟熟女国产精品一区二区| 狼人狠干| 操高情无码| 欧美久久婷| 亚春色色| 激情网色| 丰满少妇人妻久久久久久| 久久精品成人一区二区三区蜜臀| 国产女大学生AV| 日本操BAV| 91色图片| 中文字幕蜜乳av| 在线视频日韩欧美国产| 污污污8888| 嗯嗯啊啊操我| 噜噜在线| 蜜臀99久久精品久久久久久| 日韩性爱毛片操骚逼| 97色伦欧美| 性生活性生大爱77AV国产| 黄色av网站在线播放| 爆乳免费黄网站| 91精品人妻一品二品三品| 久久黄色性爱视频| 少妇500双飞99| 97人妻免费中文字幕| 人人手机欧洲亚洲国产人妻| 91精品丝袜久久久久久| 天天日B夜夜干B时时操B| 精品无人区麻豆乱码久久久| 夜夜爽夜夜高潮夜夜爽| 久久久久婷婷| 亚洲在线A| 亚欧性爱ab| 日韩av情韩国爱禁区av一区二区| 密乳AV免费观看| 亚洲自拍另类丝袜综合| 亚洲一区日韩精品| 综合亚洲情色| 100啪啪视频大全| 午夜情侣自拍网站| 2024黄色视频| 中文久久一区| 人人操人人摸人人看人人插| 97大色网| 一起草日韩| 九一性生活免费视频| 国模艳艳啪啪一区| 九一国产精品| 久久婷综合| 啊啊啊慢点| 成人综合色网| 99精品国产户外露出| 日本九九久久99播| 国产精品久久久久久久电影渣男| 97超碰免费人人性爱| 欧美另类综合久久| 婷婷探花久久精品一区| 天天做天天爱| 久久精品一区二区一8| 伊人久久国产免费观看视频| 人妻丰满熟妇一区二区三| 性爱AV天堂| 黄色av片三级三级三级免费看| 国产三级中文字幕粉嫩| 五月综合久久| 亚洲国产一级黄色视频| 日韩精品电影| 日韩无码专区| 一级毛片电影免费看| 九九夜精品九九在线| 日韩亚洲中文字幕在线| 欧美色蜜桃97| 欧美成人精品一区二区三区| 人人操人人操人人操人人操人人操人人人11.CM | 日日天天久久啊啊aaa| 国产精品久久久久久久AV大片| 欧美性综合| 99热综合| 欧美性爱免费短视频| 中出在线视频| 日本熟妇熟色97一本在线观看| 成人一级性爱| 国产免费内射视频| 日韩 欧美 校园一区| 亚洲精品国产精品乱码不99| 免费岛国一级片| 91男同| 国产超碰国产97| 夜夜影视四色| 日韩三级伦理中文字幕| 日本精品一区二区三| 亚洲AV免费在线观看| 91足交| 国产精品美女久久久久久网站| 亚洲性少妇| 久热69九色熟妇97| 国产九九九九九九九九| 亚洲性网| 亚洲深夜福利| 久久亚洲色图中文字幕| 日本美女性生活久久久久久久| 久久亚洲AV成人精品无码| 97免费在线观看| 韩日自拍| 日韩图区| 国产一区麻豆免费观看| 久久人妻精品| 一级久久性爱视频| 一区二区你上我| 操逼网站地址| 18禁中文字幕| 国产精品久久久久久久久久梁医生| 日韩久射综合| 日日干夜夜骑| 在线情色电影 91大 | 99老司机精品视频在线观看| 欧美色网| 熟女精品日韩一区二区三区| 久久精品男人的天堂| 欧美激情色婷婷花野真衣一区二区 | 亚洲双插| 一区二区三区四区五区久久久久久| 97爱爱影院| 狼人综合婷婷激情四射 | 国产久久男人天堂| 亚av顶级裸体一区二区三区四区五区| 日韩三级网址| 99re这里只有精品中心播放| 天堂蜜桃无码视频一区二区| 色五月婷婷在线| av资源在线播放天堂| 色官网色综合| 老司机深夜影院18未满| 国产精品无码av嫩草| 日韩欧美成人午夜福利| 国产极品精品美女视频| 中文字幕乱码人妻二区三区| 18禁无码永久免费无限制| 亚洲性爱成人| 天天操人人操狠狠插| 日韩免费三级黄片电影| 日小BB小视频| av在线一区二区三区| 黄片免费久久久久久久| 秋霞免费AV| 中文字幕一区二区三区视频播放| 天堂8在线新版官网| 欧美黄色大香蕉一区二区| 爽 好舒服 无码刺激久久| 秋霞视频一区二区 | 久久9久| 蜜臀无码视频在线观看| 精品久久久久久AV无码| 男女性感激情网站| 久久精品国产亚洲AV片多多| 欧美性爱在线无码| 中文字幕在线观看丝袜| 国产suv精品一区二区四| 97超碰逼| 久草老司机| 综合 亚洲 欧美| 国内毛片欧美香蕉精品| 福利社区午夜一区二区| 爱我干综合| 欧美性爱97超碰| juliaann丝袜大战黑鬼| 久久久成人免费av电影| 中文字幕三四五区| 黄色片A级一区二区三区| 欧美性爱www免费版| 色99视频| 亚欧中文字幕在线视频| 欧美日韩精品久久久久东北老熟妇| 深夜视频| 丁香六月激情| 亚洲精品男人的天堂| 69人妻精品丰满熟女区| 青草伊人久久| 亚洲国产一级黄色视频| 激情接吻视频久久久久久| 夜夜操天| 最新9久久久9免费视频| 国产精品九九九| 国产99久久99热这里只有精品15| 麻豆人妻精品一区二区| 欧美亚州色的图| 日本色日夜干| 女同性恋久久| 亚州色图狠狠干| 天天天干977| 日韩免费大片一级播放| 久热伊人99re| 精品在线78| 一区操逼日比视频| 女人妻一区| 天堂网亚洲区手机版| 久久久久人妻二区精品叶可怜| 日韩一区二区精品视频| 精品人妻无码一区二区三区不卡-精品人妻无码一区二区...|精品少妇一区二区三 | 久久激情亚洲精品无码?V| 大香蕉AV丝袜| 我要色综合网站| 久久久久亚洲AV无码专区少妇| 禁片 高清 在线观看视频网站| 久欲AV| 成人av影院在线观看| 精品国产嫩穴视频| 99re6在线视频播放免费精品| 亚洲 欧美 偷拍 唯美| 欧美人妻精品| 中文字幕在线免费观看 | 少妇色综合| 中文字幕日韩专区精品系列| 美女尤物福利视频| 清纯唯美第一页| 国产无码一二三区| 日产123区精品免费观看| 亚洲精品白浆高清久久久久久| 欧美超碰9798| 亚洲天堂男人天堂网| 九九碰九九爱97超碰| nuu12国产麻豆精品| 人人摸人人添人人操| 亚洲揄拍网| 国产强奸乱伦xd| 久久97资源 网| 18禁在线视频| 少妇与黑人高潮在线| 男啪女色黄无遮挡免费观看| 亚洲午夜免费狠狠干| 91无码精品| 五月丁香成人网| 天堂综合网| 欧插网站| 国产精品又黄又猛又粗| 中文字幕丝袜人妻| V A在线| 美腿丝袜偷拍亚洲欧美| 1000部熟女视频在线观看| 黄色二级片网站| av毛片aaaaa免费看| 亚州操操穴网| 无码免费在线观看黄色片| 啊啊啊好舒服好爽啊啊啊视频| 人人妻人人爽 97人人看碰人免费公开视频| 久久一二区四| 秋霞网—男女啪啪亚洲免费体验区| 有码色中文字幕在线观看| 亚洲国产av中文字幕久久 | 屁屁影院一区二区三区国产| 色香综合天天影视综合 | av影片在线观看不卡| 欧美三级免费伊人| 少妇人妻好深太紧了vr91| 天天插天天操天天摸天天射天天看| 嫩草一区二区在线观看| 四虎av在线| 97操97色| 天天搞在线综合网| 东京热,男人的天堂| 91亚洲黑人| 人人操人人操人人人操| 国产精品97超碰| 男人精品天堂一区| 久久精品一区二区三区不卡| 日韩人妻操B| 99久国产精品午夜性色福利| 久久人妻少妇| 91 刺激在线| 欧美性爱18观看| 激情久久日韩精品中文字幕麻豆| 五月丁香在线| 高清无码一区二区三区| 欧美色图自拍| 9/A片| 老熟女乱子伦中文字幕一区二区| 日韩射图| 日韩少妇丰满亚洲| 欧美精品自慰系列寂寞少妇 | 探花一区二区三| 97国产|免费| 啊啊啊啊啊好大好舒服想要| 日本中文字幕在线视频| 91色人妻| 97久久久久| 国产精品不卡一区二区三区| 久久乐| 在免费jIzzjIzz在线视频| 人妻三级在线中文字幕| 伊人96在线| 有码人妻系列| 91碰碰| 91人妻中文| 国产精品美女久久久久久网站| 加勒比久久av| 国产精品色哟哟| 欧美亚洲国内自拍| 激情综合五月丁香| 人妻 中文 日韩| 日本成人免费一区二区三区| 亚洲综合在线91| 精品少妇人妻| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 淫乱图区 | 日韩一级二级三级| 色天使AV天堂| 69久久久久久久久久久久久| 男人的天堂在线2| 屌色在线97视频| 色婷婷五月综合激情中文字幕| 国产一区自拍欧美日韩| 久久亚洲AV无码白度| 亚洲av资源| 天天碰久久入| 亚洲日韩黑丝| 97视频新免费| 好舒服视频| 国产不卡中文字幕免费avi| 天天干一区二区| 天天做天天爱| 久久女婷| 九九热最新| 丁香婷婷色五月| 日韩成人综合网| 国产精品亚洲免费| 麻豆国产免费影片| 去干网最新版| 欧美99热| 国产精品色色| 精品一区二区三区蜜桃臀赵总 | 国产一区96在线| 水野优香在线观看| 久久久无码国精品无码三区三区| 色99视频| 国产伊人自拍| 用力操死我| 少妇500双飞99| 久操大香蕉超碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰 | 天天91~综合入口| 国产人妻精品久久久一区二区三区 | 中文久久一区| 亚州久久9| 激情黄色五月天| 久久久91福利姬| 久久久一区二区三区麻豆| 99精品九九九九九九| 男人天堂新| 欧美组图日韩亚洲中文字幕| 在线人成亚洲视频免费观看| 又大又长又粗又爽又黄| av日韩在线观看电影| 97香蕉碰碰人妻国产欧美| 三级三级三级日本99| 天天欧美色| 青青草日本中文字幕| 97干综合网| 欧美视频一区二区三区| 欧美色狠| 天天操天天射天天日| 日本性爱少妇| 超91综合网| 四虎视频在线观看| 骚货 中文字幕 av| 亚洲综合首页| 国产精品无码av嫩草| 欧美中出1| 欧美中文字幕男人天堂久久精品| 亚洲欧美九九九| 黄色av播放免不| 欧美天天综合网| 人人操人人摸人人看人人干| 99在线观看| AV丝袜少妇| 大逼色网站| 久久性爱精品一区| 丁香六月啪| 啊啊啊好舒服好爽啊啊啊视频| 亚洲AV色图一区| 天美精品原创av片国产| 中文字幕日韩人妻视频一区二区三区 | 最新欧洲欧美日本激情网站| 神马午夜久久久| 99re99在线视频| 久操操AV电影| 色99视频| 国产女人9999| 沈阳熟女高潮对白视频| av婷婷色婷婷色六月| 2025亚洲男人天堂| 日韩AV噜噜噜一区二区三区四区| 国产极品粉嫩馒头一线天av| 亚洲av乱伦色图网站| 日日黄色三级网站| 久久黄人人爽视频| 美女国产一区二区久久| 美女啊啊啊啊pc| 97在线观看视频| 成 人片 黄色大片| 狼人综合婷婷激情四射| 老熟乱一区二区三区四区| 91午夜无码| 日本不卡码黄色 | 亚洲国产第一页综合视频| 亚洲色图伊人网| 91伊人久| 久久久久密| 亚洲欧美清纯| 韩国一级婬片A片AAAAA| 久久久久久久久久精| 97精品一区二区视频| 六月婷婷激情| 4tube欧美女厕所| 日韩国产乱子伦App| 九草在线大香蕉| 亚洲欧美日韩制服另类| 大香蕉碰| 美女网站91| 久久一二三四五六七八九区区区 | 国产美女口爆吞精视频| 亚洲 欧美都市激情| 男人的天堂VA| 大地资源在线观看中文第二页| 91精品婷婷国产综合久久竹菊| 欧美亚洲自拍另类人妻| 97精品国产97久久久久久| 久久久亚洲精品中文字幕人妻| 黄片www.| 五月天AV资源| 日韩不卡a级视频专区| 色偷偷男人的天堂麻豆| 成人八戒网站| 女上位精品在线| 精品亚洲国产成人AV制服丝袜| 久久亚洲天堂| 亚洲一区二区精品福利| 精品妇操一区二区三区| 国产一区二区三区导航| 久久一区二区加油站| 99久久久er直播网址| 日日日日做夜夜夜夜做无码97| 伊人久久大香线蕉无码| 欧美玖玖爱免费玖玖| 日本www操操操| 欧美丝袜亚洲| 天天干天天插| 国产h小视频在线观看免费| 亚洲欧洲小说图片视频| 日本精品一级二级三级| 黄色不卡视频| 色综合av男人天堂| 久久亚洲欧美一区二区三区-亚洲国产精品第一区二区 | 国产欧美亚洲精品a第2页| chaopen97久久| 亚洲国产第一页综合视频| 97超碰色| 1204金沙人妻懂旧版免费| 尤物一级在线免费观看| 日本男人天堂| 欧美曰韩国产精品| 看日韩操逼| 99精品人妻| 国产丰满熟夫69mpp| 久久久久久久久成人av解说| 97在线免费公开视频| 嗯嗯啊中文字幕| 欧美十八禁视频| 久久精品成人一区二区三区蜜臀| 1024日韩| 黑人白女精品一区| 精品人妻久久久久一区二区三区| 97色冈| 欧美顶级黄色大片免费| 综合色91| 青青三级视频| 欧美成人9797| 国产操偷| 综合另类| 伊人在线大香蕉二。| 日本有码影片下载 | 玖玖资源视频一区二区三区| 美女诱惑1区2区| 综合五月婷婷亚洲一区| 色五月av| 日韩不卡一二三四| 丰满人妻一区二区三区四| 3P乱轮视频| 亚洲啪啪综合?v一区综合精品区| 久久精品视| 91暧暧| 婷婷九月色| 黄在线| 国产精品内射婷婷一级二| 青草伊人久久| 日日夜夜青青草母狗| 色色色综合| 久久久久国产精品喷潮免费观看臀 | 蜜桃视频成a人v在线| 亚洲色图综合| 97中文字幕一区| 中文字幕精品乱码| 黄色大片一区二区密桃丝袜| 美国一区二区免费视频| 久久久久久99AV无码免费网站| 亚洲自拍小说| 日韩欧美天天爽爽爽天天爽爽| 97视频网站在线观看| 国产综合操逼高清| 亚洲欧美日韩免费电影| 超碰78| 91色婷婷综合久久中文字幕二区| 热热色色综合| 日本精品免费一区二区三区四区| 99久在线精品99re8| 999久久久九| 色婷婷视频| 爱av免费| 国产精品一区午夜福利| 一级性爱视频免费在线| 4虎在线观看| 中出20p| 少妇色综合| 区二区亚洲婷| 久草色悠悠在线视频| 天天操女人| 99这里都是精品| 97人人模人人爽人人| 久操视频资源站公开| 中文字幕一区二区在线日韩精品| 乱性AV| 亚洲婷婷综合网| 极品销魂美女一区二区| 九九九九九九九九九国产精品 | 97伊人网| 外国91| 91人妻少妇| 久操精品| 看日韩黄片| 日韩无码一级黄色av片| 伊人国产成人av网站| 免费精品无码一级毛片牛牛影视| 啊啊啊啊网站| 日韩国产精品人妻无码久久久| 91bbb| 91精品无码久久久久久久 | 久久精品中文| 免费超碰97久久| 欧美最大综合网| 国产久9| 嗯嗯不要视频| 久久久久亚洲Av无码专区老牛影视| 偷拍亚洲| 91看黄片| 久久直播国产| 黄色片大香蕉| 激情丁香五月| 夜夜爽妓女| 九九热在线精品视频| 97视频在线观看网站|