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

ARTICLE DETAIL

資訊詳情

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

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

STM32官方Bootloader串口IAP升級(jí):原理、實(shí)操與避坑指南 做嵌入式開發(fā)的朋友都應(yīng)該遇到過這種情況產(chǎn)品已經(jīng)在客戶那邊跑了大半年突然發(fā)現(xiàn)一個(gè)邏輯Bug或者客戶提了新需求要改功能。這時(shí)候最頭疼的不是改代碼本身而是怎么把手里的新固件刷到設(shè)備里去。拆機(jī)、接燒錄器、連線、下載一套流程下來費(fèi)時(shí)費(fèi)力不說遇到封裝比較小或者打了膠的板子簡(jiǎn)直想砸東西。我最早做STM32F103C8T6項(xiàng)目的時(shí)候也被這個(gè)問題卡了很久后來把官方bootloader配合串口做IAP升級(jí)這套玩法徹底摸透了才算是真正解脫出來。所謂官方bootloader就是STM32芯片出廠時(shí)在系統(tǒng)存儲(chǔ)器System Memory里固化的一段引導(dǎo)程序用戶既不能修改也不能擦除。它的作用很單純通過串口、CAN或USB等接口把用戶代碼直接寫入芯片內(nèi)部的Flash。對(duì)于STM32F103C8T6這顆芯片來說最常用的就是USART1串口下載方式。我們不需要額外寫任何引導(dǎo)代碼只需要把BOOT0引腳拉高讓芯片上電后從系統(tǒng)存儲(chǔ)器啟動(dòng)再用PC端的下載工具把編譯好的HEX文件通過串口發(fā)過去就能完成固件更新。對(duì)開發(fā)階段快速調(diào)板、小批量產(chǎn)線刷機(jī)、售后遠(yuǎn)程協(xié)助升級(jí)來說這套方案性價(jià)比極高硬件成本就是幾塊錢的USB轉(zhuǎn)TTL模塊軟件工具則完全免費(fèi)。這篇文章適合誰看如果你是剛接觸STM32的小白想搞明白怎么不借助ST-Link也能給板子燒程序或者你已經(jīng)在做產(chǎn)品正在糾結(jié)如何設(shè)計(jì)可靠的固件升級(jí)方案這篇文章都能提供一個(gè)直接可落地的參考。我會(huì)把原理、接線、工具配置、操作步驟、中斷向量表重映射這些關(guān)鍵細(xì)節(jié)一次講透也會(huì)把那些資料里很少寫、但實(shí)際開發(fā)中一定會(huì)踩的坑全部翻出來。1. 先搞懂原理為什么BOOT0拉高就能下載程序1.1 三種啟動(dòng)模式與官方bootloader的定位STM32F103系列芯片上電后CPU會(huì)從哪個(gè)地址開始取指是由BOOT0和BOOT1兩個(gè)引腳的電平狀態(tài)決定的。具體映射關(guān)系如下表所示BOOT0BOOT1啟動(dòng)區(qū)域說明0任意主Flash正常運(yùn)行用戶程序也就是我們平時(shí)的工作模式10系統(tǒng)存儲(chǔ)器運(yùn)行出廠固化的bootloader用于串口下載程序11SRAM調(diào)試用程序在RAM中運(yùn)行掉電即失很多人第一次看到這張表會(huì)有點(diǎn)懵其實(shí)理解起來很簡(jiǎn)單芯片上電后第一件事就是去讀取0x00000000地址處的初始棧指針以及0x00000004地址處的復(fù)位向量然后跳過去執(zhí)行代碼。這三種啟動(dòng)模式本質(zhì)上是把不同的物理存儲(chǔ)區(qū)域映射到了0x00000000這個(gè)地址上。當(dāng)BOOT01、BOOT10時(shí)0x00000000映射到System Memory也就是那一段出廠固化的指令區(qū)。注意這里有個(gè)關(guān)鍵細(xì)節(jié)STM32F103C8T6的引腳上那個(gè)BOOT1其實(shí)是PB2引腳在芯片內(nèi)部已經(jīng)下拉所以很多時(shí)候我們只控制BOOT0一個(gè)引腳就夠了。1.2 官方bootloader到底做了什么當(dāng)芯片從系統(tǒng)存儲(chǔ)器啟動(dòng)后CPU執(zhí)行的是ST出廠時(shí)寫好的引導(dǎo)程序。這段程序會(huì)初始化USART1PA9為TXPA10為RX等待PC端下載工具發(fā)送特定的命令幀。它以固定的通信協(xié)議接收數(shù)據(jù)將固件數(shù)據(jù)寫入用戶Flash區(qū)域并支持擦除、校驗(yàn)、讀保護(hù)設(shè)置等操作。整個(gè)過程完全由ROM里的代碼完成我們?cè)趹?yīng)用層不需要做任何干預(yù)。這里要順帶澄清一個(gè)概念。嚴(yán)格來說通過官方bootloader下載程序標(biāo)準(zhǔn)術(shù)語叫ISPIn-System Programming在系統(tǒng)編程而在應(yīng)用運(yùn)行時(shí)跳轉(zhuǎn)到自研bootloader再更新固件的做法才叫IAPIn-Application Programming在應(yīng)用編程。但國內(nèi)嵌入式圈子里大家交流時(shí)經(jīng)?;煊眠@兩個(gè)詞既然標(biāo)題用了“IAP升級(jí)”我后面就順著這個(gè)叫法但心里要清楚門道。真正的IAP方案需要自己寫bootloader我在文章最后會(huì)展開講。1.3 為什么選擇官方bootloader而不是自研引導(dǎo)程序STM32F103C8T6的官方bootloader方案最大的優(yōu)勢(shì)就是零代碼成本。芯片內(nèi)置的引導(dǎo)程序經(jīng)過ST官方長(zhǎng)期驗(yàn)證穩(wěn)定性有保障不需要占用用戶Flash空間來存放bootloader整個(gè)64KB Flash全部可以留給應(yīng)用程序支持HEX文件直接下載不需要額外的格式轉(zhuǎn)換配合FlyMcu或STM32CubeProgrammer這類工具操作非常直觀。它適合的場(chǎng)景包括產(chǎn)品開發(fā)階段頻繁更新固件、小批量產(chǎn)線燒錄、現(xiàn)場(chǎng)售后通過串口升級(jí)等等。而自研bootloader的優(yōu)勢(shì)在于可控性更強(qiáng)可以實(shí)現(xiàn)應(yīng)用內(nèi)升級(jí)、加密校驗(yàn)、回滾機(jī)制等高級(jí)功能但它會(huì)占用Flash空間而且一旦bootloader本身有Bug設(shè)備變磚的風(fēng)險(xiǎn)也比較大。官方bootloader方案作為第一步能讓我們用最少的成本跑通整個(gè)升級(jí)鏈路理解原理之后再去設(shè)計(jì)自研方案就有了一個(gè)非常扎實(shí)的基礎(chǔ)。2. 動(dòng)手前的準(zhǔn)備工作接線、跳線、工具鏈2.1 需要準(zhǔn)備哪些東西硬件方面最核心的就是一塊STM32F103C8T6最小系統(tǒng)板我試過市面上的Blue Pill開發(fā)板也可以用自己畫的板子。一個(gè)USB轉(zhuǎn)TTL模塊CH340或CP2102都可以注意模塊的IO電平必須是3.3V如果買到5V電平的模塊輕則通信異常重則燒芯片。還需要幾根杜邦線。軟件方面推薦準(zhǔn)備兩個(gè)工具FlyMcu和STM32CubeProgrammer。FlyMcu是國內(nèi)開發(fā)者做的老牌工具界面簡(jiǎn)潔一鍵下載的體驗(yàn)做得很順手STM32CubeProgrammer是ST官方出品的編程工具功能更全面支持HEX、BIN、ELF等多種格式后續(xù)做批量生產(chǎn)也用它。2.2 進(jìn)入系統(tǒng)存儲(chǔ)器模式的跳線設(shè)置拿最常見的Blue Pill開發(fā)板舉例板上有一個(gè)標(biāo)著BOOT0和BOOT1的跳線帽。要讓芯片進(jìn)入官方bootloader需要把BOOT0跳線撥到1位置高電平BOOT1跳線保持在0位置低電平。然后按一下復(fù)位鍵或者直接重新上電芯片就會(huì)運(yùn)行系統(tǒng)存儲(chǔ)器里的引導(dǎo)程序。這里有個(gè)經(jīng)驗(yàn)修改BOOT0跳線之后必須復(fù)位或者重新上電才會(huì)生效。如果你只是把跳線從0撥到1芯片仍然在跑舊程序很多新手就在這一步卡了很久。2.3 串口接線必須交叉連接官方bootloader使用USART1作為下載接口對(duì)應(yīng)引腳是PA9和PA10。USB轉(zhuǎn)TTL模塊和STM32之間需要交叉連接這一點(diǎn)極其重要電腦USB轉(zhuǎn)TTL模塊STM32F103C8T6TXDPA10USART1_RXRXDPA9USART1_TXGNDGND請(qǐng)注意GND必須共地否則通信波形不穩(wěn)定經(jīng)常會(huì)出現(xiàn)能識(shí)別芯片但是下載中途失敗的情況。3.3V電源線可以接也可以不接如果開發(fā)板使用獨(dú)立供電就只接TXD、RXD和GND三根線如果使用USB轉(zhuǎn)TTL模塊直接給板子供電則把3.3V也接上。但務(wù)必確認(rèn)模塊的輸出電壓是3.3V且供電電流足夠否則在擦寫Flash這種電流較大的操作時(shí)電壓跌落會(huì)導(dǎo)致整片F(xiàn)lash數(shù)據(jù)損壞。3. 核心實(shí)操用FlyMcu完成一次完整固件下載3.1 第一步讓Keil生成HEX文件在寫下載步驟之前先說一個(gè)前置條件。默認(rèn)情況下Keil MDK編譯STM32工程只會(huì)生成AXF文件需要額外勾選一個(gè)選項(xiàng)才會(huì)生成HEX文件。操作路徑是Options for Target → Output選項(xiàng)卡 → 勾選Create HEX File。這個(gè)選項(xiàng)勾上之后每次編譯成功工程目錄下的Objects或Listings文件夾里就會(huì)多出一個(gè).hex文件FlyMcu下載時(shí)選它即可。如果你希望把APP放到偏移地址并在Flash開頭放一個(gè)跳轉(zhuǎn)引導(dǎo)程序那么還需要在Target選項(xiàng)卡里設(shè)置IROM1的起始地址和大小。舉例來說如果Flash總共64KB引導(dǎo)程序占16KBAPP就從0x08004000開始那么IROM1的Start設(shè)為0x08004000Size設(shè)為0xC000。這個(gè)設(shè)置直接決定了鏈接器生成的代碼地址一旦搞錯(cuò)下載成功也會(huì)跑飛。3.2 第二步FlyMcu的連接參數(shù)配置把USB轉(zhuǎn)TTL模塊插到電腦上打開設(shè)備管理器確認(rèn)串口號(hào)。然后打開FlyMcu左側(cè)區(qū)域進(jìn)行如下配置選擇串口就是剛才記錄的COM號(hào)波特率默認(rèn)115200即可如果下載線質(zhì)量好、環(huán)境穩(wěn)定可以改到460800提高速度勾選“校驗(yàn)”勾選“編程后執(zhí)行”下拉框里選擇“STM32F10x Low-density/Med-density”或者自動(dòng)檢測(cè)FlyMcu會(huì)自動(dòng)識(shí)別芯片型號(hào)。這個(gè)工具已經(jīng)多年不更新但對(duì)付F103系列完全夠用。關(guān)于“編程后執(zhí)行”這個(gè)選項(xiàng)需要特別解釋一下。它表示下載完成后由bootloader跳轉(zhuǎn)到0x08000000處執(zhí)行用戶程序。如果你的APP鏈接地址就是0x08000000勾選上之后燒完就能直接運(yùn)行省去手動(dòng)復(fù)位的步驟。但如果你的APP放在偏移地址而0x08000000處沒有有效的引導(dǎo)程序那么勾選這個(gè)選項(xiàng)沒有任何效果甚至可能跑飛。3.3 第三步一鍵下載流程FlyMcu最方便的一點(diǎn)是支持通過串口的DTR和RTS信號(hào)線自動(dòng)控制復(fù)位引腳和BOOT0引腳實(shí)現(xiàn)一鍵下載免去手動(dòng)跳線的麻煩。前提是你的硬件電路上做了USB轉(zhuǎn)TTL模塊的DTR/RTS到NRST/BOOT0的連接很多開發(fā)板在設(shè)計(jì)時(shí)已經(jīng)內(nèi)置了這個(gè)電路。界面上對(duì)應(yīng)的是“DTR的低電平復(fù)位RTS高電平進(jìn)BootLoader”這個(gè)復(fù)選框如果板子上有一鍵下載電路就勾上沒有就保持不勾選手動(dòng)操作BOOT0跳線。操作步驟在FlyMcu中點(diǎn)擊“...”按鈕選擇編譯生成的HEX文件確認(rèn)串口、波特率等參數(shù)無誤如果手動(dòng)跳線方式先確保BOOT01復(fù)位板子點(diǎn)擊“開始編程”觀察日志輸出窗口正常流程會(huì)依次顯示連接成功、芯片識(shí)別、整片擦除、寫入Flash、校驗(yàn)成功看到校驗(yàn)成功后把BOOT0跳回0按一下復(fù)位鍵程序開始運(yùn)行整個(gè)過程大概十幾秒比接ST-Link還快。實(shí)測(cè)下來115200波特率最穩(wěn)定460800雖然快但在某些CH340模塊或長(zhǎng)線上容易出現(xiàn)偶發(fā)校驗(yàn)失敗。3.4 備用方案STM32CubeProgrammer下載步驟如果你更喜歡用ST官方工具流程也非常直觀打開STM32CubeProgrammer在右上角選擇UART模式Port選擇對(duì)應(yīng)串口波特率設(shè)為115200確保BOOT01并復(fù)位板子點(diǎn)擊Connect按鈕連接成功后在左側(cè)編程區(qū)點(diǎn)擊Open file選擇HEX文件點(diǎn)擊Download按鈕開始下載下載完成后點(diǎn)擊DisconnectBOOT0跳回0復(fù)位運(yùn)行CubeProgrammer的優(yōu)勢(shì)在于對(duì)ST芯片的支持最權(quán)威協(xié)議實(shí)現(xiàn)完全貼合官方bootloader幾乎不會(huì)出現(xiàn)兼容性問題。如果你用了FlyMcu怎么都連不上換個(gè)CubeProgrammer往往能解決問題。3.5 兩種部署方式全量覆蓋與分區(qū)引導(dǎo)使用官方bootloader下載時(shí)HEX文件里其實(shí)自帶了絕對(duì)地址信息。也就是說下載工具會(huì)按照HEX里記錄的目標(biāo)地址把數(shù)據(jù)寫到Flash的對(duì)應(yīng)位置。這就衍生出兩種不同的部署方式。第一種最簡(jiǎn)單APP鏈接地址就是0x08000000下載時(shí)直接覆蓋整個(gè)Flash。這種情況下不需要做中斷向量表重映射因?yàn)镃PU復(fù)位后從0x08000000取中斷向量本身就是APP自己的向量表完全匹配。對(duì)于不少Demo性項(xiàng)目、或者Flash只有64KB的小容量產(chǎn)品這種方式夠用。第二種是把Flash分成兩個(gè)區(qū)域0x08000000放一段跳轉(zhuǎn)引導(dǎo)程序偏移地址放真正的APP。兩次下載或者生成合并HEX就能讓設(shè)備啟動(dòng)時(shí)先執(zhí)行引導(dǎo)程序再由引導(dǎo)程序跳到APP。這種部署已經(jīng)接近真正的IAP架構(gòu)但牽扯到中斷向量表重映射的問題繞不開我單獨(dú)用一章講清楚。4. 繞不開的坑中斷向量表重映射4.1 APP偏移后為什么必須處理向量表Cortex-M3內(nèi)核的中斷機(jī)制決定了任何中斷響應(yīng)時(shí)CPU都會(huì)從一個(gè)固定的地址0x00000000讀取向量表。如果APP放在0x08008000這類偏移地址而0x00000000仍然映射到Flash首地址那么中斷來了以后CPU去0x08000000查向量表找到的是Flash開頭那一小段引導(dǎo)程序的數(shù)據(jù)根本不是APP的中斷服務(wù)函數(shù)地址自然就進(jìn)不了中斷函數(shù)表現(xiàn)就是程序一觸發(fā)中斷就死機(jī)、進(jìn)入HardFault或者干脆復(fù)位重啟。很多初學(xué)者把APP放到偏移地址后發(fā)現(xiàn)主循環(huán)跑得挺好一按按鍵或者一收串口數(shù)據(jù)就死機(jī)就是這個(gè)原因。4.2 一個(gè)關(guān)鍵知識(shí)點(diǎn)STM32F103沒有VTOR寄存器Cortex-M3內(nèi)核定義了向量表偏移寄存器VTOR用來重設(shè)中斷向量表的位置但這是一個(gè)可選實(shí)現(xiàn)。很遺憾STM32F1系列出于成本考慮沒有集成VTOR寄存器所以不能像F4、F3那樣直接寫一個(gè)SCB-VTOR APP_ADDR就完事。網(wǎng)上很多教程拿F4的例子來教F103屬于典型的藥不對(duì)癥。F103的正確做法有兩種一種是把整個(gè)APP的中斷向量表復(fù)制到SRAM開頭然后把SRAM重映射到0x00000000地址另一種是保留Flash開頭一段空間通過跳轉(zhuǎn)和查表實(shí)現(xiàn)軟重定向。實(shí)際產(chǎn)品中第一種更簡(jiǎn)單可靠。4.3 標(biāo)準(zhǔn)的向量表重映射代碼實(shí)現(xiàn)下面是經(jīng)過驗(yàn)證的重映射函數(shù)在APP的main函數(shù)第一行調(diào)用#define APP_BASE_ADDR 0x08008000u // 根據(jù)實(shí)際偏移修改 #define VECTOR_NUM 96u // F103C8T6實(shí)際中斷向量數(shù)量約48個(gè)取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(); }使用時(shí)要檢查一下你的APP工程里棧頂SP初始值也就是0x08008000地址前4字節(jié)的內(nèi)容它會(huì)被復(fù)制到SRAM的0x20000000處。程序啟動(dòng)時(shí)CPU已經(jīng)通過Flash讀取過一次棧指針此時(shí)棧區(qū)已經(jīng)初始化完成所以覆蓋SRAM開頭這384字節(jié)96個(gè)向量乘以4字節(jié)不會(huì)影響正在運(yùn)行的程序只要鏈接腳本里設(shè)置的棧頂?shù)刂凡辉?x20000000到0x20000180之間即可。以F103C8T6的20KB SRAM為例把棧頂設(shè)置在0x20005000附近向量表就穩(wěn)穩(wěn)地和棧區(qū)隔開了。4.4 一個(gè)更省事的方案把引導(dǎo)程序也做進(jìn)Flash向量表重映射確實(shí)容易出問題那有沒有更省事的方法有一種做法是把跳轉(zhuǎn)引導(dǎo)段做得更聰明一點(diǎn)Flash開頭不放簡(jiǎn)單的跳轉(zhuǎn)指令而是放一個(gè)“影子向量表”每個(gè)中斷向量都對(duì)應(yīng)一個(gè)跳轉(zhuǎn)指令跳轉(zhuǎn)到真正的APP中斷服務(wù)函數(shù)。這種方案能避免SRAM的開銷但代碼復(fù)雜度高而且每加一個(gè)中斷都要同步維護(hù)兩個(gè)表我實(shí)際用過一次就不再用了。對(duì)于絕大多數(shù)產(chǎn)品向量表重映射配合SRAM重映射是最合適的。5. 實(shí)戰(zhàn)排雷我遇到的7個(gè)典型故障5.1 串口連接失敗FlyMcu報(bào)“無法連接”這是出現(xiàn)頻率最高的問題。排查思路按順序來先確認(rèn)BOOT0確實(shí)撥到1且芯片已復(fù)位再確認(rèn)TXD/RXD接線是否交叉然后用萬用表量一下USB轉(zhuǎn)TTL模塊的TXD引腳是否有電平跳變最后檢查串口號(hào)是否被其他軟件占用以及波特率是否太高。還有一個(gè)容易被忽略的點(diǎn)官方bootloader的USART配置是8位數(shù)據(jù)、偶校驗(yàn)、1個(gè)停止位即8E1而普通串口助手的默認(rèn)配置往往是8N1。FlyMcu和CubeProgrammer會(huì)自動(dòng)協(xié)商這部分一般不用手動(dòng)管但如果你拿自己的串口調(diào)試工具發(fā)命令就要注意這個(gè)區(qū)別。5.2 能識(shí)別芯片但擦除或?qū)懭霑r(shí)報(bào)錯(cuò)這種情況大多是供電問題或線材太長(zhǎng)。擦寫Flash時(shí)芯片電流需求會(huì)突然增大如果USB轉(zhuǎn)TTL模塊的3.3V輸出能力不足電壓跌落就會(huì)導(dǎo)致寫入失敗。解決方法是改用獨(dú)立穩(wěn)壓供電把USB轉(zhuǎn)TTL模塊和STM32之間線長(zhǎng)控制在15cm以內(nèi)。另外飛線時(shí)杜邦線接觸不良也會(huì)有同樣表現(xiàn)我建議接線后先輕輕晃一晃確認(rèn)接觸牢靠。5.3 燒寫成功但按下復(fù)位沒反應(yīng)程序沒有跑起來。一般原因有三個(gè)一是下載的是偏移地址的APP但Flash開頭的0x08000000沒有引導(dǎo)程序二是Boot0跳線沒有撥回0芯片還在系統(tǒng)存儲(chǔ)器模式自然跑不了用戶程序三是KEIL里沒有勾選Create HEX File實(shí)際下載的是舊文件。5.4 APP能運(yùn)行但一進(jìn)中斷就死機(jī)這就是上一章講的問題APP放在偏移地址但沒有做中斷向量表重映射。解決辦法就是調(diào)用重映射函數(shù)并注意在跳轉(zhuǎn)時(shí)進(jìn)入APP之前關(guān)閉全局中斷在APP里重新初始化外設(shè)。5.5 下載完成后自動(dòng)執(zhí)行會(huì)死機(jī)手動(dòng)復(fù)位就正常FlyMcu的“編程后執(zhí)行”功能是通過設(shè)置PC指針直接跳轉(zhuǎn)到0x08000000實(shí)現(xiàn)的。如果你的APP在偏移地址而0x08000000沒有有效代碼勾選這個(gè)選項(xiàng)就會(huì)死機(jī)。遇到這個(gè)情況取消勾選“編程后執(zhí)行”燒完后手動(dòng)復(fù)位即可。5.6 使用了國產(chǎn)替代芯片下載失敗現(xiàn)在很多項(xiàng)目用GD32F103、APM32F103等國產(chǎn)替代芯片。這些芯片的系統(tǒng)存儲(chǔ)器bootloader設(shè)計(jì)大體兼容ST但通信時(shí)序和Flash操作細(xì)節(jié)可能有差異。遇到下載失敗優(yōu)先換STM32CubeProgrammer試試如果仍然失敗需要查閱對(duì)應(yīng)芯片手冊(cè)確認(rèn)USART1在boot模式下是否有特殊配置。我試過GD32F103C8T6用FlyMcu的STMCU自動(dòng)檢測(cè)模式偶爾失敗選對(duì)型號(hào)后正常。5.7 板子被寫保護(hù)無法擦除之前調(diào)試時(shí)用ST-Link給芯片設(shè)置了讀保護(hù)或者下載工具設(shè)置了選項(xiàng)字節(jié)再想用串口下載就會(huì)失敗。解決辦法是用FlyMcu的“解除讀保護(hù)”功能或使用STM32CubeProgrammer在Option Bytes頁面吧Read Out Protection設(shè)置為AA并Apply。執(zhí)行完這個(gè)操作后Flash會(huì)被整片擦除注意提前備份數(shù)據(jù)?,F(xiàn)象可能原因解決方案無法連接BOOT0未拉高、接線交叉錯(cuò)誤、串口被占用檢查跳線和接線換串口號(hào)寫入報(bào)錯(cuò)供電不足、線材過長(zhǎng)、接觸不良獨(dú)立供電縮短線材重插杜邦線運(yùn)行無反應(yīng)Flash開頭無引導(dǎo)、BOOT0未復(fù)位、HEX未生成檢查鏈接地址BOOT0跳回0勾選HEX中斷死機(jī)向量表未重映射增加重映射函數(shù)自動(dòng)執(zhí)行死機(jī)勾選了“編程后執(zhí)行”且Flash開頭無有效代碼取消勾選手動(dòng)復(fù)位寫保護(hù)無法擦除選項(xiàng)字節(jié)設(shè)置了讀保護(hù)解除讀保護(hù)注意會(huì)格式化Flash6. 進(jìn)階思考官方方案之外如何設(shè)計(jì)真正的IAP升級(jí)6.1 官方bootloader方案的邊界在哪里官方bootloader方案的局限其實(shí)很明顯。第一每次升級(jí)都需要人手去撥BOOT0跳線或者配合一鍵下載電路無法做到“設(shè)備在應(yīng)用運(yùn)行中自行升級(jí)”。第二官方bootloader通過串口接收數(shù)據(jù)時(shí)沒有加密和校驗(yàn)機(jī)制關(guān)鍵產(chǎn)品直接暴露在不安全環(huán)境中會(huì)引入風(fēng)險(xiǎn)。第三它不具備覆蓋保護(hù)機(jī)制升級(jí)斷電容易變磚。這些局限決定了它更適合開發(fā)調(diào)試和小批量維護(hù)而不是一個(gè)需要遠(yuǎn)程升級(jí)、高可靠性的量產(chǎn)產(chǎn)品方案。6.2 自研bootloader的標(biāo)準(zhǔn)架構(gòu)如果要做真正意義上的IAP需要自己在Flash中實(shí)現(xiàn)一個(gè)輕量級(jí)引導(dǎo)程序并讓APP具備觸發(fā)跳轉(zhuǎn)的能力。標(biāo)準(zhǔn)分區(qū)方式如下0x08000000自研bootloader區(qū)存放串口/無線接收、Flash寫入、跳轉(zhuǎn)邏輯0x08008000APP區(qū)存放應(yīng)用功能代碼0x0800F000參數(shù)區(qū)存放升級(jí)標(biāo)志、版本號(hào)最后一次下載前校驗(yàn)成功后將升級(jí)標(biāo)志寫死APP啟動(dòng)后檢查是否需要跳轉(zhuǎn)bootloaderAPP接收完新固件后先校驗(yàn)固件完整性CRC或SHA256寫入升級(jí)標(biāo)志然后執(zhí)行系統(tǒng)復(fù)位。復(fù)位后bootloader檢查到升級(jí)標(biāo)志進(jìn)入固件接收模式接收完成后跳轉(zhuǎn)新APP。這樣整個(gè)升級(jí)觸發(fā)出自應(yīng)用本身操作流程變?yōu)樵O(shè)備端收到升級(jí)指令→APP下載固件→跳轉(zhuǎn)bootloader→bootloader校驗(yàn)后寫入Flash→運(yùn)行新APP。配合雙Bank方案還可以實(shí)現(xiàn)升級(jí)失敗自動(dòng)回滾可靠性遠(yuǎn)超官方方案。不過如果做遠(yuǎn)程升級(jí)串口方式就不夠用了需要給APP加網(wǎng)絡(luò)模塊或者無線透?jìng)髂K把固件數(shù)據(jù)通過網(wǎng)口/4G/WiFi接收下來這時(shí)候bootloader內(nèi)部的接收邏輯要改成通過共享內(nèi)存或串口從APP模塊獲取數(shù)據(jù)復(fù)雜度又上一個(gè)臺(tái)階。很多人把這套系統(tǒng)叫OTA升級(jí)本質(zhì)是IAP的傳輸通道擴(kuò)展。6.3 一些實(shí)際操作體會(huì)做自研bootloader時(shí)我踩過最深的坑是Flash扇區(qū)分配問題。STM32F103C8T6的每一個(gè)Flash扇區(qū)是1KB擦除必須按扇區(qū)來所以APP區(qū)起始地址必須對(duì)齊扇區(qū)邊界。如果APP區(qū)設(shè)為0x08008000這個(gè)地址除以0x400剛好是整數(shù)對(duì)齊沒問題如果設(shè)為0x08007000對(duì)齊就亂了寫擦除時(shí)很容易誤擦掉bootloader代碼直接變磚。有幾次我把bootloader的啟動(dòng)流程和Flash驅(qū)動(dòng)分開調(diào)試剛寫完驅(qū)動(dòng)測(cè)試時(shí)不小心把bootloader區(qū)也擦掉了只能上ST-Link救回來。另外一點(diǎn)固件傳輸協(xié)議設(shè)計(jì)要帶幀序號(hào)和ACK機(jī)制。一開始我把固件分包發(fā)送但沒做ACK數(shù)據(jù)稍大就丟包升級(jí)成功率慘不忍睹。后來改成每一包都要應(yīng)答超時(shí)重發(fā)對(duì)端校驗(yàn)通過才發(fā)下一包成功率一下就上去了實(shí)測(cè)一次幾萬字節(jié)的大型固件傳輸基本是一包都不丟。寫在最后的一個(gè)小技巧最后分享一個(gè)我常用的升級(jí)流程閉環(huán)。無論是官方bootloader還是自研方案升級(jí)完成后一定要做一次版本校驗(yàn)并記錄到Flash參數(shù)區(qū)。對(duì)于官方bootloader方案下載工具自帶的校驗(yàn)功能能保證寫入數(shù)據(jù)準(zhǔn)確性但保證不了寫入之后APP的邏輯是否完整所以建議在APP啟動(dòng)時(shí)讀一次自身Flash區(qū)域的版本號(hào)和固件CRC值寫到日志里。這樣現(xiàn)場(chǎng)一旦出問題第一件排查的事就是回看日志里的版本記錄能省下大量吹牛歸零的時(shí)間。我自己在正式產(chǎn)品中都保留了官方bootloader作為“最后一道門”即使自研bootloader寫崩了還能通過串口把官方bootloader調(diào)出來做強(qiáng)制恢復(fù)。這套組合用熟了之后再復(fù)雜的固件升級(jí)場(chǎng)景心里都有底。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
丁香婷婷五月色成人网站| 国产,欧美,日韩,性爱| 久久婷综| 91蜜桃婷婷狠狠久久综合9色| 久久机热这里只有精品| 婷婷五月天激情综合| 婷婷影院欧美| 亚洲天堂制| 日日操天天操| 五月丁香综合激情网| 66精品成人免费网站在线观看| 大香蕉五月丁香| 婷婷六久久| 亚洲激情在线| 国产超碰在线| 综合婷婷| 色播五月婷婷| 玖玖热视频| 66色在线日韩| 久久综合影院| 99视频35精品视频在线观看| 久青操| 插插五月天| www.99热| 99九九久久| 思思热视频| 欧美丁香六月激情视频| 欧美猛片| 五月综合婷婷久久在线| 综合图区激情| 天天天操天天天日| 丁香色五月婷婷| 久热这里精品免费| 狠狠操.COM| 激情网五夜婷婷| 五月婷啪| 婷婷五月丁香五月丁香| 99这里只有免费的精品| 丁香五月另类小说在线阅读| 五月丁香色播| 五月婷婷丁香社区| 2017人人操| 天天干狠狠| 午夜丁香五月天综合| 五月丁香婷婷成人伊人网| 狠狠狠狠免费| 99精品网站| 五月婷婷天天色| 激情五月综合视频| 另类丁香综合| 婷婷狠狠18禁久久| 99色综合网| 99久久99九九99九九九| 亚洲 日韩色色| 精品网站99| 色天天综合天天综合频道。 | 99思思| 色香蕉影院| 91久久| 色欲五月婷婷| 婷婷久久五月| 九九色婷婷Av| 色婷精品91| 激情99热| 久久久月丁香| 天天干天干| 天天综合在线网| 五月丁香六月情| 丁香五月天在线| 这里只有精品视频99| 婷婷开心六月| 亚州色婷婷| 五月丁香六月综合激情| 天天影视天天爽天天草| 开心激情网五月天| 4399无码视频二区| 在线视频你懂得| 亚洲无码成人网| 先锋资源 996| 91成人视频| 91狠狠色丁香婷婷综合久久| 丁香五夜激情四射夜夜夜| 丁香九月激情久久| 思思99热在线| 99色在线视频| 极品人妻XXXXOOOO| 五月天婷婷情色| 婷婷月五天在线在线看| 色女伊人| 五月天婷婷影院| 人妻丰满精品一区二区A片| 大香蕉在九| 成人VAV视频在线观看| 色婷婷久久综| 99国产性感视频| www.婷婷,com| 狠狠色综合图片| 久Se视频在线观看| 亚洲综合婷婷六月丁香五月| 少妇综合网| 婷久久久| 色色色综合视频| 天天色综网| 九九热99热| 婷婷婷婷午夜| 99精品视频在线6| 丁香六月激情综合啪啪| 精品夜夜澡人妻无码AV| 久久婷婷伊人| 爱婷婷都市激情| AV人人操| 婷婷99热| 日日懆天天懆| 日本色婷婷| 天堂亚洲 在线| 婷婷五月在线免费| www激情| 热成人网| 91九色首页| 亚洲最大视频网站| 五月天五月婷五月激情网| 99热主页日本| 免费在线a| 视色网在线播放| 欧美日比视频| 精品九九网| 台湾综合丁香五月蜜桃| 五月婷色| 婷婷九月激情| WWW.17C亚洲精品| 激情五月婷婷| 99热久只有| 激情中文在线| 黄久久久| 丁香五月六月综合激情| 怡红院成人AV| 四色五月婷婷| 国产小网站| 五月天婷婷激情小说| 六月婷婷av| 任你干线上免费视频有3吗| 另类五月婷婷| 亚洲中文字幕在线观看| 综合99在线| 97色色婷婷| 婷婷激情六月综合| 99热在线观看精品| 最新色色五月天| 色色亚洲五月天| 激情四射亚洲| 99精品免费欧美小视频 | 六月婷综合| 欧美日本综合网| 91seav| 1区2区视频| 五月丁香在线综合| 婷婷五月天黄色| 久草久青福利| 久久99热这里只有| 九九久久99| 婷婷91| 五月天婷婷影院影院观看| 五月天社区| 婷婷激情伍月网| 99re免费精品视频| 丁香婷婷人妻| 激情五月婷婷| 婷婷五月天激情基地| 91麻豆国产三级精品福利在线观看| 婷婷免费成人视频| 伊人久久大香线蕉精品| 五月宗合激情网| 色和综合网| 五月综合婷婷网| 99re6在线视频精品免费| 婷婷欧美偷拍综合| 97caop| 五月丁香好婷婷A片网| JAPANRCEP老熟妇乱子伦视频 | 丁香五月婷婷啪啪| 嫩BBB槡BBBB搡BBBB视频| 日本操B视频在线观看| 亚洲精品久久久久久久久久吃药 | 涩涩五| 日本乱子人伦在线视频| 色五月综合婷婷| 热99视频精品在线| 女人被男人吃奶到高潮| 久久这里都是精品免费| 国内精品99| 精品成人a v无码内射| 手机在线视频观看9| 日本色五月婷婷| 亚洲无aV在线中文字幕| 99性爱视频| 思思99精品视频在线观看| 色婷婷五月天| 婷婷丁香十月| 五月亭亭六月色| 亚洲人妻av伦理| 五月丁香六月婷婷手机无线| WWW·色色色·COM| 婷婷五月天丁香花| 开心激情五月天网| 77799热| 色狠狠婷婷| 婷婷婷婷婷开心无码播放| 亚洲无aV在线中文字幕| 精品一二三区久久AAA片| 这里只有精品视频看看| 99热主页日本| 91无码一起草| 婷婷俺去也| 丁香五月激情视频在线| 超碰成人在线观看| 五月丁香 狠狠爱| 国产97色在线 | 日韩| 2014天天爽| 亚洲AV成人精品网站在线播放| 国产婷婷综合| 九色色| 婷婷伊人综合中文字幕| 亚洲中文AV| 99日在线视频| 开心激情综合| 五月丁香激情综合欧美| 嫩草视频在线观看| 国产性爱色| 五月天婷婷色| 五月丁香综合中文| 天天日天天做天天操| 99碰碰视频| ..真实国产乱子伦对白在线_欧| 亭亭玉月丁香| 五月丁香婷婷成人综合网| 五月色色色| 日本色啪| 精品亚洲国产成AV人片传媒| 亚洲综合在线视频| 久久99热这里只频精品6学生| 成人必爱视| 99视频91| 色噜婷婷| 亚洲综合色激情色五月| 免费无码毛片一区二区A片| 婷婷成人五月天| 婷婷五月天影视| 99这里有精品视频| 五月天婷婷社区久久综合| 国产AV一区二区三区最新精品| 婷婷五月天天爽| 婷婷夜夜夜夜| 色婷婷在线综合色播网| 99er日韩| 丁香蜜臀黄色婷婷五月天| 狠狠爱成人综合网| 精品二区| 色高清无码视频| 丁香五月综合激情性爱 | 色婷婷亚洲综合天堂| 久久综合人妻| 日本天天操| 色五月色图| 欧美成人五月天| 黄色99网| 六月综和久久| 婷婷久久国产视频| 五月丁香婷色| 天天操天天爽天天爱| 无码激情| 九九99久久| 亚洲免费99| 人妻中文字幕网| 亚洲AV成人在线观看| 三十熟女| 69凹凸成人综合网| 婷婷最新地址| 伊人影院久久网| 欧美婷婷丁香社区在线播放| 情色五月天 网站| 久久久天堂国产精品女人| 亚洲六月婷婷| 亚洲乱码日产精品BD在线观看| 538在线精品| 久操大| 人人爱摸视频| 婷婷丁香五另类网站| 99熟女啪啪视频| 婷婷五月色情天| 激情综合色| 九九热思思热| 狠狠色综合久久| 热99只有里视频| 色狠狠综合| 嫩草AV久久伊人妇女超级a| 综合五月亭亭9| 狠狠操天天操天天操| 五月丁香色婷婷伊人| 国产精品久久久99视频| 99精彩视频在线观看| 五月婷无码| 婷婷久久免费看| 狠狠狠激情网| 天天干天干| 五月天网站免费欧美| 亚洲成人婷婷| 亚洲综合色婷婷| 久热这里只有精品6| 一本色道久久综合狠狠躁小说| 久久婷色| 激情综合五月丁香六月婷婷| 超碰电影在线播放| 色爱综合视频| 性爱视频99| 91丨九色丨白浆| 一起草AV| 丁香五月婷婷免费视频| 伊人色五月| 大香蕉520| 色五月五月天| 九九热99免费视频| 国产3p露脸普通话对白| 91pornav在线| 国产精品在线视频| 色五月婷婷五月天激情综合| 婷婷六月色| 亚洲无AV在线中文字幕| 色天堂操| 亚色网站小视频| A A色色| 激情文学五月丁香六月婷婷| www.五月.com| 99热99日天天干| 亚洲免费观看高清完整版AV线| 天天做天天爱天天爽夜夜揉| 婷婷五月天电影在线| 一起草无码| 图片区 小说区 区 亚洲五月| 99色综合久久| 99re6热在线精品视频播放速度| 亚洲久久婷婷丁香五月天| 色爱五月天| 婷婷五月色天| 99视频在线观看视频| 欧美日韩99| 色情免费视频播放| 丁香五月色| 日美三级| 妻久久久久| 五月天婷婷社区| 五月综合视频| 婷婷五月AV| 天天操天天日天天爽| 超碰在线免费9| 五月丁香婷婷激情在线视频| 91九色熟女| 国产精产国品一二三在观看| 狠狠操综合| 久久五月激情| 少妇大叫太大太粗太爽了A片| 综合五月丁香97| 久久综合网免费视频| 99在线小视频| 90色免费视频| 亚洲熟妇AV综合网五月丁香伊人 | 香蕉婷婷色五月| 婷婷丁香五月天综合在线日韩| 久久女人天堂| 久久色亭亭五月天| 国产精品黑丝| 亚洲婷婷丁香五月视频| 久久激情五月| 亚洲成人网站在线观看| 色色色网站| 香蕉人妻AV久久久久天天| 欧美日本国产欧美日本韩国99| 丁香五月激情性色郤| 亚洲精品婷婷| 久热大香蕉| 很很干天天干| 伊人超碰在线| 深爱1激情网| 成人综合网站| 婷婷五月激情丁香激情| 激情色播| 99人这里只有精品| 俺去也婷婷| 99人妻碰碰碰久久久久禁片| 五月丁香 啪啪| 久99综合婷婷| 色婷婷色| 五月丁香六月婷婷色日| 色九综合| 综合久久99| 二区成人视频| 亚洲五月停停| 超碰99热精品| 久久五月激情综合| 国产9色在线/日韩| 情色五月天网站| 亚洲成人网站在线| 久热中文字幕| 五月天婷婷色| 激情久久久| 在线观看熟女少妇| 人妻少妇色综合| 99国产小视频2013| 国产伦亲子伦亲子视频观看| 婷婷六月丁香1| 五月天激情综合网| 久久五月丁香综合17C| 超碰在线91| 色丁香五月婷婷婷| 高清无码网址| 婷婷五月婷婷五月天| 风流少妇A片一区二区蜜桃| 五月天婷亚洲天综合网综合| 久久怡红院| 96人人操人人操人人| 久热这里| 久久草婷婷丁香网站| 一二线视频 另类| 五月丁香六月婷婷综合网| 国产3p露脸普通话对白| 久久婷婷五月综合啪| 亚洲无码免费看| 91日视频| 色五月天婷婷| 六月丁香五月亭亭| 久青草大香蕉| 在线另类视频| 婷婷五月天另类视频| 97夫妻超碰| 26uuu欧美宗合| 五月婷九九草| 人妻综合网| 激情五月开心五月在线视频| 玖玖爱伊人网| 国产精品色| 亚洲美女高潮久久久久久69| 中文字幕欧美日韩VA免费视频| 亚洲综合视频一下| 婷婷va| 久久婷婷精品| 五月婷丁香亚洲| 五月婷婷www| 97人人搞| 五月丁香六月婷婷免费| 婷婷色五月天色| 丁香花五月天激情| 伊人婷婷色激情丁香| 2005天天干天天1| 久久网日本| 99色啊| 婷婷狠狠青青| 在线另类| 亚洲99精品欧美一区| 九九久久五月天| 国产毛多水多女人A片| 小视频久久久aaa| 超碰在线国产| 婷婷五月欧美| 97人人干| 婷婷久久五月天丁香| 日本天天综合| 综合色五月天| 99只有这里是精品| 天天久久66xxx| 国产内射婷婷| 九九成人视频| 天天骑天天操| 激情五月综亚网| 亚洲黄3级片网站欧美| 噜噜视频| 色婷婷综合影院| 69午夜成人影片| 婷婷成人AV| 国产古装妇女野外A片| 五月丁香六月天| 美女100%露全身无挡网站| 五月婷婷黄| 国产国产乱老熟女视频网站97| 久热这里| 婷婷五月天综合中文| 欧美婷婷| 综合久久高清| 超碰丁香五月| 婷色天堂| 99性爱| 97九色视频| 另类综合国产| 五月天无码视屏播放| www.91婷婷| 五月色情精品| 免费无码毛片一区二区A片 | 日日舔夜夜操| 五月天色婷婷小说| 综合狠狠伊人| 爱操人妻| 五月天天堂久久| 99色在线视频观看| avh片在线观看| 日本乱子人伦在线视频| 另类小说五月天综合| 九色自拍| 99热碰碰热| 亚洲蜜乳AV| 婷婷5月久久综合网站| 大香蕉520| 六月婷婷激情| 日本啪啪天堂| 九九综合九九| 色欲婷婷五月天丁香| 日本操逼九九九九58日本操逼| 嫩草综合网| 5月婷婷视频网站综合| 激情久久久久| 久久资源网五月婷| 99婷婷国产最新视频| 天天操精品| 免费在线观看av网站| 日韩AV免费看| 99久操视频| 亚洲欧洲中文日韩久久AV乱码| 97人人干人人操| 色情成人五月天| 天天搞天天爽| av大香蕉| 91.www综合| 天天综合色| 久久婷色| 97caop| 香蕉久操| 青青操日本摸摸看看| 婷婷五月精品| 蜜乳人妻一区二区三区| 亚洲免费观看高清完整版AV线| 91疯狂操操操操| 九九人人自拍| 九九热黄色| 这里只有精品在线视频精品| 99高级会所久久| 亚州精品色情在线观看| 天天撸夜夜爽| 天天爽日日爽夜夜爽| 五月婷婷,六月丁香| 婷婷五月天欧美| 天天色天天操天天射| 色婷婷综合影院| 玖玖综合色| 久久久免费精彩视频| 日本久久99| 亚洲精品V天堂中文字幕| 99久久超级| 国产综合丁香五月天| 九九色天堂| 七七九色| 五月丁香婷婷AV天堂| 五月丁香婷中文| 深情五月天| 五月丁香六月激情综合| 久久久这里有精品| 97人碰人操| 色婷婷综合影院| 婷婷激情性爱| 五月丁香六月婷婷亚洲激情综合| 色 色 色综合com| 综合AV在线| 色婷婷丁香A片区毛片区女人区| ..真实国产乱子伦毛片| 婷婷丁香五月91| 男人的天堂999| 婷婷娱乐丁香综合网| 操一操干一干| 久久ww| 中文字幕成人版| 丁香五月婷婷激情四射| 2025中文在线视频字幕免费观看| 狠狠xx| 色综合色色色| 亚洲色区17| 另类图片天天影视在线观看| 亚洲色vA| 婷婷伊人网| www,setingting| 99ri在线观看视频| 丁香五月婷婷成人网| 丁香伊人网| 4399啪啪视频| 九九五月天| 五月亭亭综合五码| 婷婷五月天小说网| 欧美69色| 人人人人人人人人人草| 黄色一级影片| 中文字幕成人版| 六月丁香婷婷色狠狠久久| 日本激情综合| 九九热精品| 丁香五月激情网| 26UUU精品一区二区c〇m| 日韩久久色| H亚洲| bbwcuckold精品熟妇| 五月婷婷69| 激情五月婷婷| 狠狠色丁香久久久婷| 婷婷六月天激情| 成人午夜天| 9l视频自拍九色9l视频自拍九色9l社区 | 国产精品涩涩涩视频网站| 91精产品自偷自偷综合| 热热久久99| 色综合天天| 国产97色在线| 五月天亚洲综合网| 久久综合站| 思思99精品视频在线观看| 成人丁香色| 色婷婷成人久久| 激情五月天啪啪| 99热免| 超碰网站在线观看| 97色色色色色| 亚洲中文字幕翔田千里| 午夜精品777| 久久98| 五月天婷婷色色| 天天做天天爱天天高潮| 九九九九中文字幕| 色五月丁香六月欧美综合| 九九视频在线观看视频6| 99色综合网| 久草五月婷婷| 丁香九月综合| 91丨九色丨熟女| 激情久久丁香| 激情综合激情综合| 狠狠久久婷婷| 五月婷婷亚洲| 另类丁香综合| 婷婷五月天电影网| 久久九九re热| 91久久电影| 热久久色| 天堂久久性| 六月大香蕉| 九九热这里只有精品556| 综合久久十三| 中文字幕 久久9999| 国产毛片精品一区二区色欲黄A片| 久久婷婷激情| 99热婷婷| 99在线观看| 丁香五月成人社区| 夜夜爽天天| 99精品网| 国产五月婷| 大香蕉综合视频在线| 色婷婷六月精品| 亚洲激情四射色| 99综合一区| 久久蜜臀婷婷| 五月婷婷深深爱| 五月婷婷久久久| 色播丁香| 色婷婷最爱五月| 99干日日干| 色综合天天天天做夜夜| 日本毛片内射| www.久久爱| 激情久久四色| www免费在线视频| 九九热精品视频九九| 人人97操| 久热 91| 久久婷婷五月| 亚洲综合网在线| 这里只有精品视频99| 热99在线精品| 超碰精品在线| 天天视频亚洲| 丁香五月婷婷色情综合| 五月婷婷激情综合| 日逼免费视频 | 精品人妻久久久| 婷婷97C| 婷婷少妇激情| 激情婷婷综合| 亚洲综合欧美色丁香婷婷888月图片 | 精品乱码久久久久| 五月婷婷色| 免看黄大片AA | 久久五月天激情| 99激情在线| 丰满人妻妇伦又伦精品国产| 狠狠高潮精品亚洲1| 99色在线视频| 国产九月婷婷| 大香蕉手机视频| 日日噜狠狠色综合久久| 九九人人精品| 丁香五月激动深爱欧美| 九九热re99re6在线精品| 就要去操亚洲成人精品五月天丁香婷婷| 九九九九精品精| 综合五月丁香六月婷婷| 六月色狠狠色| 激情AV在线| 亚洲V国产V欧美V久久久久久| 丁香五月六月综合激情| 777久久综合视频| 国产综合久久久777777| 激情99| 26uuu欧美| 天天综合.com| 五月婷婷综合久久| 亚洲色99综合天堂| 另类激情综合| 丁香婷婷激情| www狠狠| 九九这里只有精品在线视频| 激情淫乱男女| 中文字幕有多少字| 精品五月天| 色色色色色色网| 五月丁香六月欧美综合| 丁香五月综合激情啪啪| 国产97在线日韩亚洲女人被黑人巨大| 五月丁香综合激情网| 丁香 婷婷 亚洲 熟女| 精品九九在线观看视频| 14色综合婷婷| 色五月激情问网站| 免费看欧美成人A片无码| 97久久久久| 色综合色综合色综合| 青草性爱视频| 色婷婷综合视频| 丁香五月婷婷99| 久久综合五月天激情小说网站 | 99热综合网| 人妻操在线看| 天天日人人| 99色在线| 婷婷五月激情欧美| 99久久五月天| 美女被肏网站在线看| 久久国产一区二区三区| 五月婷丁香| 色五月婷婷中文字幕| 日本九婷婷| 亚洲亚洲永久无码777777| 99热久久最新地址| 九九综合精品| 五月丁香六月婷婷综合在线| 99九色视频在线观看| www.9797国产| 密臀av无码人妻精品| 色综合色色色色色色综合| 欧美性生交xXxX久久久| 少妇AB又爽又紧无码网站| 9l视频自拍9l九色成人| 99精品网| 五月婷婷激情| 久久草大香蕉| 婷婷亚洲天堂| 少妇大叫太大太粗太爽了A片 | 这里只有精品96| 国产无套精品一区二区| 人妻体体内射精一区二区| 天天综合精品| 农村熟妇高潮精品A片| 丁香五月电影| 国产亚洲成AV人片在线观黄桃| 色狠狠综合| 久久曰曰| 亚洲乱码日产精品BD| 久操操| 久久精品99国产精品日本 | 色99在线观看| 丁香婷婷大香蕉| 五月丁香婷婷啪啪| 亭亭玉月丁香| 丰满少妇猛烈A片免费看观看| 久久香蕉影院| 国产真实乱对白精彩| 影音先锋91网站在线观看| 激情图片亚洲| 久久久人人操A V| 伊人久久综合| 婷婷丁香97| 这里只有精彩小视频视频网站| 五月天伊人av| 色婷婷在线视频综合| 丁香五月欧美激情| 色婷婷丁香五月| 亚洲啪视频| 99ri精品| 亚洲丁香花五月丁香花| 久久码久久无清| 啪啪婷婷五月天激情| 综合色五月| www久久五月com| 综合色综合| 可以看的AV| 综合色五月| 婷婷久久综合久| 欧美久久九九| 久99久视频免费观看| 婷婷中文字幕| 高清无码中文字幕aVDV| 日韩啊啊啊| 五月色婷婷综合| 美女久久婷婷| 91久久五月天| www.99热视频在线观看| 国产精品日韩十五区| 色婷精品91| 久久精品99国产精品日本| 成人 AV播放| 色婷婷狠狠18禁| 激情影院免费视频婷婷五月天| 玖玖资源站中文| 99精品在线| 男人大jjc女人免费视频| 婷婷五月天精品| 久久久思思热| 日本社区五月天激情| 色五月婷婷色| 激情综合网激情五月俺也去| 97色色综合| 激情综合网,五月| 激情婷婷六月天| 99热这里只有精品青草| 六月婷婷天堂| 涩五月婷婷| 人人人舔人人人操人人人摸人人人97 | 热99视频精品在线| 婷婷永久在线| 男人的天堂五月丁香| 九九性视频| 丝雨一区二区| 天天玩天天摸| 久久久久久人妻| 裸体做A爰片毛片A片免费| 色青五月天| 婷婷综合网在线| 99在线观看精品| 免费91久久精品| 欧亚洲在线高清视频| 婷婷六月情| 99久久婷婷国产综合精品草原| 9视频1在线| 26UUU亚洲欧美| 丁香大香蕉| 69久久久| 日韩av干| 99视频这里有精品| 色五月欧美| 就去涩涩丁香五月天| 婷婷精品| 国产免费av在线| 五月天色网站| 五月丁香| 亚洲综合色婷婷| 天天天天天天操| 91人在线观看| 亚洲性受XXXX五月丁香| 思思热在线观看| 97午夜一区二区| 99这里只有免费的小视频在线观看| 国产精品视频免费看| 五月婷婷性爱网| 五月婷婷丁香大陆免费| 婷婷丁香18| 欧美色色色色色色色| 激情综合五月婷婷六月丁香| www.97视频| 老司机午夜福利视频金瓶梅| 欧美99热| 久久综合丁香| 婷婷丁香五月综合免费视频百花| 9热成人在线视频| 丁香六月 婷婷六月| 9久久精品| 182TV大香蕉| 99色精品| 色婷婷色五月综合| 五月婷婷丁香狠狠撸久久| 国产SUV精品一区二区883| 97丁香花五月天激情小说| 在线不卡视频| 婷婷午夜精品久久久| h在线看免费版在线看| 激情综合婷婷久久| 99性视频| 亚洲精品另类| 黄色AAAAA| 男人的天堂99| 日韩爱操视频| 人操91在线| 色综合色综合网| 一级内射毛片| 九九精品在线观看视频6| 色插人人| 色色五月婷婷丁香| 日韩成人无码片| 五月花综合视频| 久久婷婷色综合老司机| 色色色色av色色色色| 丁香五夜激情四射夜夜夜| 色五月首页| 五月丁香A片| 天天骑天天操| 九色在线观看91av| 日本久久人| 色婷婷av在线| 九九热在线99| 亚洲激情图文小说| 国产精品久久久久9999小说| 五月婷婷视频ab| 丁香亭亭激情四射| 丁香六月婷婷综合缴| 色婷婷综合成人| 狠狠操综合| 夜夜人妻五月天| 免费看欧美成人A片无码| 亚洲行行色色| 999精品久久久久久久| 丁香五月天在线观看| 探花搜索结果 - 黄上黄| 伊人激情综合网| 思思99热热热99| 国产SUV精品一区二区883| 激情网综合| www,超碰| 久久激情网| 五月天色婷婷视频| 色婷婷色综合| 国产三级片91| 亚洲丁香婷婷五月天综合色| 综合色、色综合| 日日杆天天| 丁香五月色色| 国产成人精品一区二三区熟女在线| 六月丁香激情婷婷| 亚洲操B视频| 日韩AAAAA| 欧美97p| 夜夜爱影院| 久久五月视频| 国产色五月| 丁香婷婷五月综合影院| 中文字幕黄色片| 5月婷婷五月天| 99色视频在线观看最新| 婷婷大香蕉| www.婷婷.com| 九九这里只有精品在线视频| 在线视频婷婷| 日韩成人电影在线播放| 就爱啪啪婷婷| 99五月婷| 亚洲人妻av伦理| 99热这里只有精品青草| site:xiongshengzz.com| www.com久久久久久久久久久久久久久久久| 五月婷婷五月色| 中文字幕丰满乱孑伦无码专区| 综合在线观看99| 91viP在线看| www,婷婷五月天,com| 五月综合激情| 久久一级AV| 超碰成人在线观看| 婷婷五月天熟妇| 996热re视频精品视频| 91干婷婷| 色优久久| 人人摸人人搞| 亚洲婷婷丁香五月天激情小说| 欧美色碰| 午夜不卡久久精品无码免费| 婷色五月天| 99热99热| 久久久久久久五月婷婷六月丁香综合,开心激情综合网 | 亚洲AV网址| www.五月丁香av| 五月婷婷基地| 亚洲五月天色色| 情欲禁地| 超碰久热| 九九这里有精品| 99精品7| 丁香五月在线人妻| 成人网站av免费网站推荐| 成人免费黄色短视频| 六月婷婷色综合| 日本在线va| 亚洲九九99精品视频在线播放| 超碰激情网| 日本一级大片| 91精品激情9| 婷婷五月天网| 激情综合网五月丁香| 色色色色色网站| 日本ww亚洲| 激情五月综合色| 大香蕉婷婷丁香| 久9热插入| 国产av一区二区三区| 五月天婷婷久久视频| 色婷婷激情四射视频| 五月开行婷婷色五月| 五月激情另类| www.婷婷五月天,com| 欧美日本黄色| 久久丁香社| 丁香婷婷综合影院| 超PEN精品在线| 婷婷97狠狠成人网站| 婷婷五月天久久| 欧美在线干| 99a级片| 五月婷婷丁香| 停婷丁五月在线| www五月天com| 欧美综合激情五月天| 五月激情网五月综合网| 丁香五月婷婷婷婷欧美综合| 久久女婷| 99熟女| 天天操无码| 91九色丨国产丨爆乳| 99毛片| 五月婷婷丁香大陆免费| 人橾人| 第四色五月婷婷| 71在线精品视频一区| 伊人久久大香天蕉亚洲特级| 亚洲欧洲一二| 大香蕉娱乐| 99玖玖人人| 天堂色色色| 国产激情av| 丁香五月人妻| 中文字幕不卡+婷婷五月| 任你日视频| 大香蕉婷婷丁香天堂AV| 久久曰曰| 五月色婷婷综合色| 综合综合色色| 五月永久激情| 日本性激情色播| 日日夜夜爽| 天天插综合| 婷婷五月天综合在线| 久久婷婷亚洲| 色婷婷a v| 色婷婷丁香五月天| 热九九精品| 国产做爰视频免费播放| 碰99在线| 久久婷婷综合色丁香| 美国不卡视频| 亚洲六月色婷婷| 婷婷五月69| 丁香婷婷少妇| 玖玖资源站蜜臀| 欧美成人性爱网| 九九热大香蕉| 人妻无码精品一区| 欧美大肥婆大肥BBBBB| tingtingcaobi| 国产色99| 亚洲精品国产成人AV在线| 99色6爱9热| 婷婷五月开心中文字幕在线| 深爱激情网综合| 99精品在线观看| 热99在线| 操碰色一区就去操| 中文字幕黄色电影网址| 五月婷婷六月丁香综合| 欧亚色色| 丁香五月23111| 婷婷狠狠97| 超碰在线国产| 97色射| www,com,五月色色| 噜噜色五月| 五月天激情av| 九九这里是免费的视频5| 久久九九免费视频| 亚洲激情四谢| 久久久久久久久久91| 亚洲色色图片| 欧美丁香婷婷五月天| 九九伊人网| 久久婷婷五月天激情新地址| 五月丁香综合中文| 色之综合网| 国产婷婷色综合AV蜜臀AV| 丁香婷婷网| 六月五月天婷婷涩播在线| 久久久久99精品成人网站| 色色色视频免费无码| 九九99视频| 亚洲综合激情五月久久| 亚洲成人无码专区| 色婷婷久久综合久色综| 深爱网深爱综合网| 国产精品色| 99视频| 婷婷丁香五月91| 天天综合五月| 丁香五月影视| 玖玖九九超碰| 色5月婷婷| 五月婷导航| 五月激情六月丁香| 97AV人人插人人操| 色色色在线播放| 91热视频色网站| 日韩二区搞逼插逼毛片| 激情久久综合| 天天插AV丝袜中| 激情丁香五月婷婷| 日韩AV在线免费观看| 69er小视频| 五月丁香| AV在线收看| 99在线视频在线观看| 久久久五月天| 热99.com婷婷| 亚洲欧洲色色| 51XX午夜影福利| 色碰97| 色丁香综合影院| 色婷视频| 超碰国产在线观看| 五月涩涩网| 九九久久99| 超碰免费大香蕉| 丁香婷婷婷五月| 成人无码精品1区2区3区免费看| 久久久久久97| 日日.c| 亚洲精品第一色色色色色色| 久久99综合| 操逼巨乳91| #NAME?| 99热这里只有精品13| 六月婷婷开心| 91久久精品无码一区二区三区| 婷婷5月九九| 丰满人妻妇伦又伦精品国产| 91碰碰| 日韩九区| 国产婷婷综合在线免费视频| 岛国AV网| 大香蕉 婷婷| 六月丁香深深爱| 亚洲中文字幕av| 99色在线视频| 黄网免费看| 超碰国产av| jiZZdr| 日本少妇AA一级特黄大片| 91丨九色熟女丨首页| 操操操91| 激情小说 五月天| 99视频| 五月婷婷五月丁香综合| 色欲一区二区三区精品A片| 婷婷丁香花五月天| 欧美色色色色色色| se99热久久一本| 久久美女五月天| 日本少妇AA一级特黄大片| 这里只有精品免费视频在线观看| 香蕉久久国产AV一区二区| 九九视频精品这里只有| 综合五月婷婷| 久久66er久久| 人人草人人爱| 激情另类综合| 亚洲激情AV| 五月婷婷五月丁香综合| 337p大胆噜噜噜噜噜91Av| 狠狠五月激情在线| 69精品人人人人| 99er免费在线观看| 777精品久无码人妻蜜桃| 婷婷色五月亚洲| 97高清国语自产拍| 提提热五月天婷婷| 北条麻妃九九九国产精品视频| 青青草深爱激情网| 麻豆观看夏晴子| 夜夜骑福利资源| 五月天久久小说| 激情五月婷婷网| www.久久久久久| 欧洲综合视频| 色五月婷婷中文字幕在线观看| 婷婷五月激情网| 狠狠狠人妻| 99操九九网| 亚洲成人五月天| 99视频网址| 日本色色网| 婷婷国产日本欧美| 开心色色五月天综合| 丁香五月婷中字幕| 五月天丁香综合久久国产| 99热99色| 色久婷婷网| 任你干aa| 五月丁香成年黄色| 九九精品在线视频观看| 中文成人在线| 思思久热6| 五月开心久久| 26uuu国产| 婷婷五月天人妻| 玖色色综合| 五月丁香久久综合| 亚洲综合新99视频| 波多野结衣不卡AV| 五月丁香综合网| 99热九九这里只有精品| 成人午夜天| 天天天天天天操| 亚洲九九夜夜| 激情图片亚洲| 99热综合色图| 婷婷色五月激情| 五月丁香六月停停停| 91婷婷色| 亚洲舔观看| 色五月婷婷影视| 婷婷婷婷婷婷婷五月丁香| 激情五月婷婷综合视频| 去色色五月天| 深爱激情五月网| 日韩精品无码99| 丁香激情网| 婷婷色色网站| 久久婷狠狠色| 激情综合婷婷| 五月天激情四射网站| 天天日天天插| 色色亚洲视频| 五月天第四色开心色播| 婷五月天| 五月色网| www.久热| 色婷婷视频| 伊人9在线| 激情五月婷婷| 婷婷中文无码| 亚洲欧州色情在线观看| 热的五码久久精品| 日韩成人电影Av|