免费国产精品自在自线-91精品国产色综合久久久浪潮-99热久久免费频精品-国产精品国模在线观看-久久亚洲国产精品成人?V秋霞-久久国产一级A片免费播放-亚洲国产欧洲综合97久久-久久国产白嫩美女呻吟高潮

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
返回資訊列表
天天粽合合合合| 丁香五月伊人| 超碰国产在线| 亚洲第一影院高清无码网站| 国产精产国品一二三在观看| 亚洲成人高清在线| 久久视频在线| 5月婷婷激情6月| 91日视频| 伊人久热91网| 色五月丁香五| 双性美人被调教到喷水A片| 婷婷开心五月| www.ppypp| 久er免费视频| 五月天开心色情网| 影音先锋男人资源站一区二区| 亚洲综合色婷婷| 五月天色影院| 色五月婷婷影院| 婷婷五月激情网站| AV在线免费播放| 九月婷婷综合色干| 一本到不卡高清DVD| 狠狠插狠狠操| 五月天综合视频| 国产精品噜噜在线视频| 99这里有精品久久97| 青青草婷婷久久| 99热久| 丁香五月六月综合激情| 热99热9| 激情综合五月激情| 天天色综和网| 噜噜色天天开心| 极品色丁香| 91九色PORNY肉丝在线| 超碰人妻在线| 久久五月婷| 99精品爱| 天天色激情| 日 日干 日日做| 婷婷四色五月| 天天操五月天| 久久亚洲天堂| 久久五月婷婷丁香| 国产成人AV在线播放| 五月婷高清视频| 久艹大香蕉| 欧美六月婷婷| 丁香婷婷色情| 婷婷色情网| 热久69| www日本熟妇99在线视频| 五月丁香婷婷色| 久久婷婷六月综合| 91久久久久久| 五月婷婷先锋| 丁香六月婷| 黄色99热| 7777激情基地| 亚洲色婷婷激情| 99在线免费视频| www.yw色| 九九色中文| 亚洲中文字幕AV| 婷婷久久五月丁香| 99热国产这里只有| 日本激情五月天‘| 婷婷 色 丁香 夜| 人妻啪啪啪| 天插天啪天啪天啪| 婷婷深爱五月| 99亚洲精品视频| 久久五月丁香| 97五月婷| 丁香婷婷色情| 久久人妻乱子伦| 国产婷婷色五月| 日韩色色色色色| 99热这里只有99| 色色亚洲无码| 婷婷五月天激情网站| 五月天婷婷激情综合| 狠狠干综合网| 99热久| 久久99婷婷| AV电影在线播放| 丁香五月天色婷婷| 精品五月花| 伊人大香蕉综合在线| 91九色欧美| 超碰免费大香蕉| 日韩免费乱轮网站| 5月丁香啪啪啪| 婷婷丁香六月天| 色综合激情| 99热久| 丰满少妇猛烈A片免费看观看| 1024成人免费看| 日本情色一区二区| 这里只有视频精品| 橾逼网| 超碰人人艹| 欧洲色| 性av| 日本九九九九| 99惹精品视频| 久久综合99| 婷婷五月激情黄色| 日本久久99| 秋霞网在线观看理论91| 狼人婷婷综合| 射婷婷中文字幕| 久久婷婷五月综合一| www久久99| 五月天色婷婷图片| 五月丁香黄色视频| 国产亚洲AV人片在线| 九九精品9| 99久久精品色老| 一级黄色影片| 99无码视频| 亚洲综合视频网| 99热成人| 无码激情| 九九热99熟女| 31色区视频免费看| 色狠狠图片| 五月六月丁香激情| 精品亚洲国产成AV人片传媒| 五月丁香成人网| 综合色在线| 色综合久久综合中文综合网| 五月丁香六月婷婷综合网站| 天天综合网~91| 五月天狠狠网站| 色人妻五月| 97碰在线| 影音先锋毛片网站| 99热这里只有精品99| 91超级碰| 色婷五月| 亚洲成人AV在线观看| 97人人操人人插| 亚洲无码播放| 8区视频在线| 97亚洲视频在线| 99色色网| 99视频久久| 色婷五月天激情| 国产成人精品亚洲线观看| 天天色2017| 五月天婷婷色综合| 丁香网五月网| 玖玖九九超碰| 激情五月婷婷中文字幕| 欧美成人精品三区综合A片| 综合久久综合五月天婷婷| 五月天色播网| 五月婷婷丁香六月| 久久精品爱爱| 五月天婷婷基地| 99re免费精品视频| 操操碰| 亚洲4区国产欧美| 日本在线噜噜| 婷婷情色开心五月天99| 在线A色| 无码色| 爱久综合| 色色色成人网| 26uuu色噜噜精品一区| 99ri在线观看视频| 亚洲区,视频区,视频区免费| 色色a| 91精品久久久久久77777| 五月丁香亭亭| 婷婷五月天久久| 92国产福利| 丁香婷婷色情| 九九99免费视频| 五月天婷婷綜合院| 丁香色五月 97干| 91大神操美女| 只有精品在线观看| 欧美丁香婷婷五月| 五月丁香六月色情网欧美| 夜夜穞天天穞狠狠穞AV美女按摩| 五月开心婷婷| 欧美三级视频下载| 深夜男女福利刺激影院一区完整| 亚洲激情四射| 激情又色又爽又黄的A片| 丁香婷婷激情五月色| 八戒青柠影视剧在线观看| 婷婷五月花免费视频在线| 五月天激情婷婷| 思思99精品视频在线观看| 丁香五月人妻| 天天干天天射综合网| 五月久久丁香| 9l视频自拍九色9l视频在线观看| 亚洲综合激情五月久久| 亚洲午夜成人av电影网| 五月婷亚洲精品| 五月婷婷六月丁香玖玖玫瑰91| 婷婷开心激情五月激情网| 九色视频入口91| 五月天婷婷在线播放| 婷婷五月激情综合啪啪| 天天综合网站| 五月丁香做爱视频| 婷婷性爱影院| 开心色色五月天综合| 人妻久久久久久久久久久| 色色五月天com| 五月婷婷与六月丁香图片激情| 操91| 97偷拍对白视频| 激情综合网激情五月天| 激情五月伊人婷婷| 五月天伊人久久久久| 日本啪啪天堂| 思思热久久婷婷五月天| 九色自拍| 99热99这里免费的精品| 99热丁香| 精品一二三区久久AAA片| 婷婷.com| 天天日天天狠狠操| 182TV大香蕉| 思思久久精品| 天天日天天色| 操逼福利视频| 1024人妻| 日韩久综合| 天天综合网站| 婷婷玖玖五月天| 噜一噜免费视频| 粉嫩AV久久一区二区三区| 伊人在线视频| 婷婷丁香亚洲五月天| 密视AV综合在线| 色丁香五月婷婷| www.深爱激情| 好吊丝aV| 丁香五月1页| 色综合久久8| 五月色影院| 婷婷五月天激情诱惑| 精热在线综合网| 亚洲国产另类av| 丁香婷婷大香蕉| 这里只有精彩视频| 色婷婷丁香五月色综合网| 婷婷丁香激情综合色情| 国产操逼视频网站| 中日韩美欧成人一区二区精品在线| 国产婷婷综合| 婷婷五月天AV| 婷婷激情五月天小说校园| 日韩欧美五月丁综合| 99精彩视频在线观看| 丁香六月啪啪| 大香蕉75线| 伊人在线视频| 天天色视频| 天天爱综合网| 婷婷五月花西瓜| 99re久热只有精品6在线直播| 99狠狠| 男女啪啪视频久 9| 久久99久久99精品,久国产,久久精品免费,99久在线,久久久久国产精品免费网站,9 | 精品一区二区三区四区五区六区| 婷婷在线免费| 思思久久精品| 五月丁香婷爱在线| 天堂草在线观| 天天干天天干天天干天天干天天| 天天噜天天爱| 婷婷五月天激情偷拍| 99精品热视频| 婷婷丁香成人| 超碰人人操在线| 久久久久婷| 影音先锋男人av资源站| 综合久久十三| 强辱丰满人妻HD中文字幕| 亚洲免费看片| 婷婷五月六月| 超碰在线99| 丁香五月偷拍| 中文字幕无码人妻少妇免费视频 | AV网在线观看| 六月丁香婷婷综合影院| 亚洲另类AV| 五月色婷婷综合| 丁香婷停五月激情综合深爱| 五月天久久成人| 狠狠干狠狠色| site:hcxsz888.com| 99爽视频| 色愛综合网| 黄网在线免费观看| 精品视频这里只有精品| 婷婷久久五月天亚洲欧美国产日韩在线观看 | 五月婷婷啪啪网| 丁香五月天殴美激情| av在线超清中文| 丁香六月婷婷五月天| 日韩色色色色色| 国产成人综合网| 日本色道视频网站| 天天艹夜夜爽| 99热这里只有在线| 激情文学五月丁香六月婷婷| 亚洲天堂啪啪| 狠狠干狠狠色| 国产97在线日韩亚洲女人被黑人巨大| ...婷婷五月综合不卡,国产在线手机| 吊色AV男人的天堂| 性爱网久久| 華人性愛AV在線| 婷婷丁香六月影视| 99热亚洲精品| 67194成I人在线观看线路1| 五月丁香啪啪啪综合网| 色色五月天婷婷| 极品少妇XXXX精品少妇偷拍| 婷婷伊人綜合中文| 爱操人妻| 噜噜噜精品欧美成人在线观看| 俺去啦综合网| 噜噜操操| 成人精品一区日本无码网| 久热伊人91| 九伊人网| 六月丁香五月激情亚洲AV| 激情亚洲色图片丁香综合| 亚洲、热| 婷婷色在线观看| 五月天六月色| 97操操网| 九月av在线| 亚洲操逼片| 色五月婷婷少妇人妻| 26uuu亚洲欧美| 97碰碰在线观看视频| 婷婷色色五月| 玖玖@三月天天丁香婷婷| 91无码高清| 五月久久五月激情| 国产午夜一区二区三区| 六月综合婷婷开心伊人| 久久日本wwww色| 999热在线视频| 婷婷丁香五月激情图片| 久久在线大香蕉| 欧美日综合| 综合久久8| 香蕉综合网| 深夜婷婷五月丁香| 色呦呦美女| 99精品视频在线观看| 激情五月天激情综合网| 色五月婷婷中文字幕| 亚洲春色奇米影视| 亚洲色精彩| 99视频这里只有精品10| 日日日日日| 色色色97| 欧美激情综合色丁香婷婷五月天| 激情五月天社区| 亚洲影院婷婷色| 九九这里只有精品在线视频| 激情婷婷六月天| 婷色五月天| 超级碰碰碰碰视频| 秋霞三及片| 思思热视频在线观看| 丁香五月婷婷高清| 色综合网综合| 亚洲色婷婷| 91要啪| wwwwww.色| 美女激情综合| a在线免费v| 麻豆五月丁香婷婷| 色五月首页| 婷婷丁香宗合888| 婷婷五月噜噜| 五月丁香六月激情网站| 亚洲舔观看| 日本三级韩三级99久久| 九色无码| 开心激情综合| 丁香六月激情国产| 婷婷五月六月激情| 欧美情色电影一区二区| 色丁香综合影院| 丁香五月婷婷综合精品素人| 日本欧特黄色刺激一区影视久精品无码| 99色这里| 婷婷五月成人| 婷婷五月天丁香| 色色无码| 久久久婷婷五月亚洲97号色| 九九热精品| 玖久久网站| 丁香五月在线人妻| 这里只有精品1| 五月色婷婷中文字幕| 激情深爱五月天| 婷婷五月天丁香久久| 婷婷色日本| 国产精产国品一二三在观看| 婷婷激情五月天在线视频| 五月色影院| 99自拍网| 九九热这里只有精品6| 日本色婷婷| www.婷婷五月天| 中文字幕日韩成人| 天天操婷婷| 色五月激情问网站| 五月天社区婷婷| 五月天色婷婷网| 五月丁香日逼| 国产成人AV在线| 日本久久网| 国产无套精品一区二区| 丁香五月天堂| 婷婷五月天久久久| 夜夜www| 亚洲精品久久久久久久久久吃药| 五月色丁香婷婷中文字幕| 五月天婷婷在线视频| 1024操逼视频| 啪色综合| 激情五月深爱五月| 超PEN精品在线| 99热只有精品在线观看| 丁香九色不卡aaa| 偷拍五月丁香| 久久精品婷婷| 欧美成人精品A片免费一区99| 久久人妻乱子伦| 免费视频WWW在线观看网站| 热99视频| ady狠狠入| 99热这里有精品| 色狠狠综合网| 99国产精品久久久久久久久久久 | www.久久久久久久久久.com| 五月激情网站| 青青草a在线| 99国产在线精品视频| 99re最新地址| 99日精品视频| 丁香六月婷婷久久综合| 影音先锋 婷婷| 色婷婷久久7777| 国产成人av在线播放| 综合久久97| 色色丁香| 另类小说五月天| 伊人91| 丰满少妇乱A片无码| 久久这里99| 久热久操久热久草国产91| 夜夜操天天干| 69色色视频| 五月天丁香成人社| 成 人片 黄 色 大 片| 天天干com| 91超级碰| 日韩欧美一道四区中文字幕| 婷婷99综合| 色色免费网站| 婷婷丁香五月色| 天天干夜夜操A片| 色五月婷婷伊人| 强壮的公次次弄得我高潮A片日本 | 婷婷五月天综合在线| 五月丁香啪啪啪免费看| 国产综合视频婷婷| 激情文学 综合 九月| 日本婷婷| 激情久久五月天| 日日爱699| 激情丁香五月婷| 4399在线观看免费高清黄色视频| 日韩丁香涩| 天天操天天操天天操天天操天天操天天操天天操天天操天天操 | 激情综合区| 激情五月深爱婷婷| 五月天综合区| 综合激情五月丁香9999久久精| 亚洲网站999| 色综合中文综合网| 色情终和网| 狠狠狠狠狠狠| 久久综合九九| 97精品自拍| 五月天婷婷激情在线色图| 伊人干练久| AV伊人青草丁香六月| 超碰在线免费9| 综合99在线| Blackedraw视频一区二区| 丁香五月在线| 五月婷婷,六月丁香| 日韩一级网站| 桃色五月天| 开心色五月天久久久久久久| 五月婷婷视频ab| 2020久久婷婷五月| xx色综合| 热久久66| 五月天婷爱综合| 六月婷婷狠狠| 婷婷六月丁香激情综合| 天天成人综合| 五月婷婷久久爱| 色噜噜伊人| 丁香六月激| 婷婷九月激情| 97操在线视频| 狠狠色丁香久久久婷| 超碰人妻在线| 狠狠做六月爱婷婷综合aⅴ| 五月天激情四射| 色综合色五月| .操區COm| 26uuu亚洲欧美另类| 丁香亚洲婷婷五月| 婷婷五月丁香六月天亚洲综合| 色五月激情基地| 五月婷婷免费视频| 五月天深爱激情网| 国产婷婷五月色情综合| www.久久爱.com| 美女精品一级不卡视频| 激情五月影院| 中文中文在线| 九月婷婷人人操人人舔人人爱| av在线免费播放观看| 青青久久五月天丁香婷婷| 亲子乱AV-区二区三区| se婷97| 97干在线观看| 婷婷久久久| 丁香婷婷五月天色综合| 五月天黄色激情小说| 国产婷婷五月在线视频| 伊人激情综合网| 五月丁香| 精品香蕉99久久久久网站| 91在线97视频| 26UUU欧美激情一区二区| 天堂A∨在线| 天天爱天天日| 天天做天天爱天天综合| 激情综合网色播五月| 大香蕉久热| 六月激情网| 五月丁香婷婷五月色| 色情五月| 激情5月舔| 99在线国| 成人国产综合| 五月天大香蕉av| 午夜日日| va婷婷在线| 五月婷六月| 99热久| 婷婷狠狠综合网入口| 五月天婷婷久草丁香| 五月天激情黄色小说在线观看| 婷婷婷五月天最新综合你懂的| 直接看的av| www.天天日| 色九四色| 欧美婷婷六月丁香综合色| 甈你aaaaa| 午夜成人综合| 色婷婷综合久久| 婷婷综合视频| 婷婷五月综合中文字幕| 中文AV在线播放| 日在线V视频在线播放| 丁香五月欧美午夜视频| 精品一二三区久久AAA片| 丁香五月WWW| 国内裸舞二区| 9热精品| 综合久久丁丁香婷| 久99| 五月天综合| 亚洲V国产V欧美V久久久久久| 操碰久| 色久五月| 99免费在线视频| 亚洲午夜Av| 五月天激情婷婷五月天久久| 欧美色图天堂网| 五月黄色婷婷| 色五月婷婷开心| 五月婷丁香| 99热很操老逼| 婷婷五月天亚洲天堂| 丁香五月天天高清在线| 激情五月激情综合网| 色黄啪啪| 五月开心啪啪| 天天插综合网| 狠狠色丁香久久婷婷综合五月| 99久久99热| 九九综合色综合| 香蕉网婷婷| 色综合色婷婷色伊人| 丁香五月手机在线| 婷婷中文综合网| 操操操www.com| 色噜噜97视频在线观看| 亚洲免费成人电影AV| 婷婷丁香五月色偷偷| 婷婷五月天手机版视频| 婷婷五月天在线观看| 在线观看免费狠狠色丁香香综合| 五月婷婷视频28| 五月激情视频网| 五月好婷婷| www.五月瑟| 色色色在线| 成 久久| 五月丁香综合伦理片| 激情五月天www| 午夜色色色极品视频| 亚洲操操操| 福利视频在线播放| 久久婷婷青草五月天| 久色激情| 婷婷综合视频| 99这里有精品视频| 婷婷丁香人妻天天爽| 图片区 小说区 区 亚洲五月| 在线天堂9| 人人爽天天爽| 激情九九九九| 色偷偷综合| 亚洲成人电影在线免费观看| 婷婷在线免费| 极骚大香蕉伊人| 婷婷月五天在线在线看| 色五月在线播放| 天天久久狠狠色综合| 超碰在线精品| 亚洲av成人在线| 超级碰碰碰97免费| 香蕉国产2013| 色综合色| 色色色五月婷| 国产精品视频免费看| 午夜成人网站在线观看| 秋霞A V毛片| 色噜噜综合网| 99爱这里只有精品免费视频| 99热99热在线观看| 97精品人人A片免费看| 啪啪啪大香蕉| 国产精品久久欧美久久一区| 色五月婷婷大| 亚洲情欲久久| 天天做天天爽| 丁香五月亚洲AV| 天天干天天干天天| 久99久热只有精品国产99| 日韩综合成人| 五月天最新网| 久99久视频| 这里只有精品视频在线| 激情久久五月网| 91碰免费视频| www久久艹| 色琪琪一综合久久激情五月视频| 色狠狠综合| 激情小说五月天中文字幕| 中字幕视频在线永久在线观看免费| dingxiangtingtingliuyue| 中文字幕91,综合| 99自拍网| 五月婷婷久久综合| 碰碰碰97免费精彩视频| 色五月激情| 成人精品一区二区三区四区五区| 久久人妻少妇嫩草AV| 日日噜狠狠色| 五月丁香激情综合网| 开心五月婷婷激情| 久久一热| 婷婷九月丁香| 欧美性爱5月天天天看| 99九九免费精品| 婷婷五月激情五月激情| 色丁香婷婷美女视频网站| 婷婷性爱综合| 婷婷色在线| www,av好吊操| 六月丁香婷婷综合色播| 91九色白丝| 开心五月婷婷激情| A A色色| 日本系列_4页_777FP| 亚洲精品99| 玖玖资源站蜜臀| 色五月激情| 屁股翘好撅高迎合跪趴| 婷婷少妇激情| 婷婷成人丁香色情基地30| 9热精品| 一起草AV入口| 91chinese在线| AV79| 久久久久久久久久久久久久人妻视频| 91碰操| 大香蕉网站,大香蕉综合| 五月丁激情| 密乳Va| 色www99| 精品久久久人妻| 五月天狠狠干| 99热九九这里只有精品10| 色色色9 9 9| 色色欧美色色色| 91久久久久久久久| 爱婷婷都市激情| 青草久久五月婷伊人| 亚洲愉拍99热成人精品| 碰久久精品w| 国产乱子轮XXX农村| 五月丁香花视频| 岛国AV网站| 六月丁香五月激情亚洲AV| 五月天丁香欧美激情| www.婷婷五月天| 97婷婷狠狠| 五月天综合久久| 啪啪五月天啪啪| 婷婷六月丁香开心深深爱| 操人精品| 操逼综合网| 欧美成人AAA片一区国产精品| 国产无套精品一区二区| 五月天另类激情在线| 精品草原久久视频| 伊人综合网4| 2014天天爽| 91九色中文字幕女在线观看| 狠狠色狠狠爱| 精品9l九九九九九77777| A短视频免费在线观看| 激情婷婷六月天| 超碰99在线| 91色操| 91人人操人人爱| 天天干天天干天天操| 婷婷五日b| 欧美成人Va| 五月婷婷六月丁香激情深爱| 在线婷婷| 激情五月天色色| 91免费看片| 97色啪| 狠狠色丁香婷婷五月| 91久草五月天婷婷| 狠狠爱丁香婷| 影音先锋AV男人站| 亚洲AV日韩在线观看| 婷婷五月丁香基| 任你躁XXXXX麻豆精品| 嫩草AV久久伊人妇女超级A| 超碰精品在线| 亚洲午夜av| 北京熟妇搡BBBB搡BBBB| 天天干天天插| 欧美久久一级内射wwwwww.| 丰满少妇乱A片无码| 国产熟女一区二区三区五月婷| 日本激情91| 99热主页日本| 人人摸人人| 六月丁香久久| 99久久66综合| 狠狠色噜噜狠狠狠狠狠色综合久久| 久久久久久久,99精品视频| 懂色av粉嫩AV蜜臀AV| 久操大屁股女人av| 日本专区久久| 久久激情网| 99热大全在线观看| 天天日人人| 99色一| 99精色| 开心婷婷五月| 日本五月婷| 五月天综合色| 色色色激情网| 婷婷五月天丁香久久| 久久9久久| 亚洲精品视频在线| 91视屏在线观看com.wwwvv| 亚洲人妻一区二区 | 亚洲高清在线| 深爱激情四射| 婷婷综合伊人丁香| 先锋资源婷婷| 丁香五月天色婷婷| 96丁香婷婷九月蜜桃综合久久| 奇米色大香蕉| 亚洲精品99| 欧美性猛交99久久久久99按摩| 色婷婷丁香AV综合| 久久草中文日韩欧美| 99爱欧美| 天天插天天插天天插| 日本久热| 亚洲精品一区无码A片| 成人在线观看一区| 久综合网| 成人超碰Av| 97人人搞| 七月丁香五月婷婷在线| 啪精品| 久久66er久久| www.狠狠干| 99热| 色色欧美。| 中文字幕成| 五月熟妇婷婷久久| 99视频| 色婷婷成人做爰A片免费看网站| 十二区无码| 99热这里只有99| 婷婷五月天BBw| 在线综合网| 91久久国产自产拍夜夜91久久精品文字>91麻豆精品国产 | 丁香六月青青草| 久久色五月天| 久久久久人妻网址| 国外亚洲成AV人片在线观看| 免费成片在线观看| 五月丁香拍拍激情综合| 爽天天天天天天天| 99久久九九视频| 激情文学久久| 婷婷五月丁香手机在线视频| 九九这里只有精品| 亚洲天堂无码| 开心五月婷婷在线| 91丨九色丨国产打屁股| 牛牛色av| 99久久国产成人精品| 丁香五月网址| 久久五月天影院| 在线观看熟女少妇| 色五月综合| 我淫我色婷婷五月天激情四射| 97在线精品视频| 婷婷六月丁| 粉嫩AV久久一区二区三区| 另类激情五月| Www.激情| 先锋影音av色五月天资源站| 大香蕉久久久| 日本久久爱| 丁香性爱在线视频| 亚洲国产婷婷色五月| 久久伊人9| 五月婷婷在线观看| 精品国产乱码久久久久夜深人妻| 97色在线观看视频| 五月天婷婷久久视频| 精品一二三区久久AAA片| 久久久久这里都是精品| 囯产精品久久欠久久久久久九大| 亚洲中文字幕翔田千里| 一根材五月婷成人| 国产日韩欧美性爱| 婷婷月综合| 欧美影院| 色九月国产| 婷婷中文字暮| 超碰操日| 欧美综合丁香网| 99∨VTV| 丁香久久| 久机视频这只有精品| 色五月婷婷综合在线| 激情六月色| 综合久久十| 99热这里只有在线| 国产精品久久久久久久久久免费| 99re熱| 激情五月影院| 中文字幕在线免费观看视频| 男人天堂99| 人人操人人爽成人AV| www.五月丁香| 久久婷婷五月综合啪| 免费视频99| 色综合久久88色综合天天| 青草热视频这里只有精品| 91919191919久久成人视频| 亚洲天天免费| 国产欧美日韩综合精品一区二区| 99区视频| 91男女视频在线观看| 色吧五月婷婷六月丁香| 日逼AV影音先锋男人资源站| 九九精品网站| 国产亚洲99久久精品| 欧美综合激情五月丁香| 在线观看国产高清视频免费网站| 五月亭亭激情综合| 亚洲精品第一色色色色色色| 久久思思热视频| 免费一区二区三区| 五月亭亭直播| 五月婷婷六月综合| 99精品久久久久久久婷婷| 91综合国免费久入| 五月婷六月| 色六月丁香婷婷狠狠干| .精品久久久麻豆国产精品| 色五月天在线| www.1024久久| 亚洲人成色A777777在线观看| 91avse| 丁香五月播播| 天天日天天摸天天| 色婷丁香91| 激情五月婷婷丁香| 色婷婷综合成人| 婷婷丁香18| 久久婷婷成人视频| 成人午夜天| 99精品免费欧美小视频| 婷婷色色欧美| 久久九九国产精品怡红院| 婷婷六月爽| 日本天堂网站99| 五月丁香五月婷婷| 久久婷婷激情| chaopengdaxiangjiao| 在线可以看的av网址| 91成人视频| 青草网在线观看| 无码一区精品一区视频| 99热无码首页| 97色婷婷五月天| 无码激情AAAAA片-区区| 天天视频亚洲| 大香蕉五月天婷婷| 99精品成人无码A片观看金桔| 天天插插天天| 午夜婷婷丁香| 婷婷中文字幕网站| 噜噜噜狠狠色综| 在线区区区| www.刺激色网站www.| 久久人妻精品| 美女婷婷六月色| www.91在线看| 欧美性丁香色色五月天干干| 美女美女美女三级色天天天天天| 日本欧美国产| 日韩AV免费看| 婷婷激情六月综合| 丁香久久AV| WWW免费视频碰碰碰碰| 天天插天天射| 一起草无码| 六月丁香婷婷色综合| 狠狠色丁香久久| 日本精品人妻无码77777| 久久久久人妻精品| 亚洲色婷婷网站| www.婷婷,com| 丁香六月天婷婷色| 中文激情网| 亚洲人妻五月丁香婷婷| 久久综合丁香五月| 久操大屁股女人av| 欧美性生交XXXXX无码小说| 欧美色宗和激情| 九九热在这里只有精品| 九九热99视频| 日本97人人| 国产精品久久久久久久久久| 黄色五月婷婷| 五月丁香无码视频| 成人小说 五月天 婷婷| 婷婷玖玖五月天| 人人操人人妻| 粉嫩AV久久一区二区三区| 五月天社区婷婷丁香社区| 思思热再线视频| 啪啪一区| 色天使色婷婷| 亚洲第二AV| 性色做爰片在线观看WW| 久久视频这里有精品99| 激情五月天综合婷婷网| 久久96热| 6月丁香婷婷激情| 久久精品婷婷| 亚洲色色五月天| 五月婷视频| 99这里只有精| 超碰chaompinm| 色五月天在线观看| 五月婷婷激清网| 午夜爱爱爱成人| 婷婷六月激情小说网| 五月色丁香| 性色综合网| 人妻视频一区而且二区| 婷色天堂| 婷婷伊人綜合中文字幕| 九九99久久| 天天噜日日噜综合无码| 大香蕉久久婷婷| 久热只有精品| 五月成人综合| 日本成人噜噜| 这里只有精品视频一区| 五月丁香久久久日婷婷久久婷婷日| 色综天天综合| 色婷婷久久综合| 99日本黄站| 欧美久久婷婷| 97欧美在线| 色情五月天。| 亚洲啪啪啪啪| 激情小说在线视频| 色五月中文网| 99久热这里只有精品| 亚洲视频99| 九九这里有精品| 丁香五月婷老师| 五月丁香六月婷婷操操操| 99在热线免费视频| 婷婷综合色五月天| www.狠狠艹| 久久99激情丁香婷婷小说网| 国产精品人人妻人人爽| 天天影院色| 中文av网| 色五月天丁香婷婷| www.五月婷婷| 99热自拍| 免费视频无码| 色欲婷婷五月天| 五月婷综合| 亚洲精品又粗又大又爽A片| 免费观看的av| 午夜天天精品视频| 99久久偷拍视频| 日本全黄一级999| 免费看成人747474九号视频在线观看| 久9无码视频| 色色丁香五月天| 日本女va| 天天干天天日天天插| 六月丁香好婷婷| 五月花在线观看视频| 99久视频| 九月丁香| 一点色成人网| 96丁香婷婷九月蜜桃综合久久| 国产探花一片区| 久久9热| 色色色五月婷婷| 婷婷久久夜| 五月天色网站| 欧美α√| www.婷婷五月| 五月天开心网| 久久综合66| 久99热在线观看| 97天堂| 伊人婷婷五月| 色噜噜狠噜噜视频| 翔田千里 50岁 无码| 777精品久无码人妻蜜桃| 丁香婷婷影院| 亚洲视频国产一区| 五月婷婷新网站| 久久久久久五月天| 国产性爱一级| 无码人妻少妇色欲AV一区二区| 丁香五月玖玖| 99网址在线看| 激情五月丁香色婷婷| 丁香婷婷啪啪啪| 亚洲综合激情五月久久| 久久这里只有精品热在99| 五月丁香婷婷成人网| 婷婷丁香红五月91C| 午夜爱插插| 亚洲色爽| 激情图片久久| 国产看真人毛片爱做A片| 吾爱AV导航| 婷婷五月天伊人在线| 色婷婷视频在线| 五月天大香蕉| 激情综合视频| 99视频精品| 天天日夜夜爽。| 99热免费精品| 99热官网精品在线| 婷婷五月天色色| www.开心激情| 中文字幕在线免费观看视频| 99ER热精品视频| 六月天六月婷| 五月丁香六月色| 性爱久久| 国产成人高清| 丁香五月天五码婷婷| 亚洲成人高清在线| 在线观看日韩12345区| 五月婷网| 91精品综合久久久久久五月丁香 | www.久久爱.c n| 99re久热只有精品6在线直播| 这里只有精品视频在线| 日韩人妻AV在线| 色噜噜狠狠色综合成人99| 丁香五月天成人| 婷婷久久综合久| 五月婷婷激情日本| 99热这里只有的精品视 | 激情综合网亚洲色图| 超碰成人免费| aaaa.黄| 五月婷成人网| 人妻AV在线| a色婷婷| 一二三区视频韩国| 婷婷伊人五月天| 婷婷久久免费| 日韩精品无码99| 无码AV久久久久久久久| 综合激情五月丁香| 色婷婷婷婷| 亚洲岛国电影| 熟女五月天久久综合| 男人天堂99| 99免费青青蜜臀| 婷婷五月天激情影片| 能看的AV| 五月天激情影院| 婷婷色操| 婷婷综合另类| 丁香五月婷婷成人网| 激情综合五| 久久网站免费亚洲| 五月丁香欧美综合| 五月丁香五月丁香五月丁香五月丁香91| 婷婷深爱网| 天天日天天插| Se.婷婷五月天| 久久六月天| 97人人操人人爽| 婷婷激情人妻| 另类国产区| 夜夜骑夜夜操| 9久热视频| 亚洲色A| 丁香婷婷浪潮AV久久综合| 六月色色综合| 五月天激情国产综合婷婷婷| 激情丁香婷婷六月天| 色五月激情网| 伊人玖玖婷婷| 五月婷婷五月| 丁香玖玖| 这里只有精品视频在线| 99热欧美精品| 亚洲综合另类| 欧美久人人| 丁香五月天堂网| 激情啪啪五月| 超碰成人在线观看| 天堂久久婷婷| 欧洲毛片基地c区| 久99热| 婷婷激情社区| 婷婷五月天中文字幕.| 97碰在线视频| 五月激激网w'w'w| 婷婷五月天影院| 超碰AAAAAAV| 丁香五月婷婷影视先锋| 五月丁香激情六月| 色婷婷第四色| 婷婷五月成人| 操碰99| 日韩成人精品中文字幕| 狠狠五月激情在线| 噼里啪啦完整版中文在线观看| 婷婷久久免费看| 丁香五月天大香蕉啪啪| 99久久激情视频| 啪啪六月婷婷| 婷婷综合色| 亚洲日本激情| 第四色婷婷五月| 极品人妻VIDEOSSS人妻| 色婷婷五月亚洲| 色五月中文字幕| 久久性爱视频| 激情5月舔| 91性交在线播放| 九九久久网| 丁香婷婷五月色成人网站| 91久久久久久久久18| 99热思思在线观看| 亚洲成人丁香花| 丁香五月欧美| ww亚洲ww在线观看| 久久久av久av久片一区二区| 五月天婷婷在线AN| 中文字幕丰满人妻无码专区| 婷婷丁香六月| 91小黄书网址在线观看| 91热网址| 久久激情五月婷婷| 亚洲综合婷婷五月天| 激情五月丁香六月综合AVXXXX| 婷婷五月色惰| 99热精品在线观看| 丁香五月之久操视频| 丁香五月婷婷激情尤物| 激情五月综合网| 丁香五月天大香蕉啪啪| 97婷婷丁香| 丁香五月婷婷丫| 91人人爽人人操| 五月天另类小说| av网站中文| 亚洲色碰| 热91久| 在线观看av网站| 天天做天天干天天综合网| 高清国产AV| 激情五月天视频| 五月婷婷六月丁香综合| 人妻性爱av网站| 狠干综合| 日本人妻A片成人免费看片| 婷婷五月丁香香蕉|