免费国产精品自在自线-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
返回資訊列表
国产激情久久久| 日日干天天爽| 狠狠久久婷五月| 亚洲热视频在线| 大伊久久| 综合久久丁香婷婷,五月婷婷六月丁香,开心激情综合网,六月丁香在线观看,婷婷丁 | 综合色色婷婷| 五月天婷亚洲天综合网综合| 婷婷五月天堂| 97热九九| 婷婷丁香五月欧美人| 伊人久久综合| 青青草Avb在线| 北京熟妇搡BBBB搡BBBB| 色优久久| 激情五月天视频| 丁香五月亚洲| 色综合天天天天做夜夜| 婷婷伊人久久综合| 五月婷婷婷婷婷| 国产亚洲精品人人| 六月欧美综合色情| 丁香五月天天日| 久久五月网| 亚洲激情Av| 大香蕉五月天婷婷| 国产精品扒开腿做爽爽爽A片唱戏| 激情综合网激情五月天| 日本3级片一区2区| 五月丁香啪啪啪综合网| 日日噜狠狠| 狠狠做深爱婷婷久久综合一区| 色播丁香五月婷婷操:屄| 五月婷婷影院| 色5在线| 色玖玖玖| av在线观看网站| 狠狠se| 热成人网| 色激情五月| 婷婷五月天亚洲激情戏精品| 五月综合婷婷久久在线| 夜夜躁爽日| 亚洲色vA| 激情小说五月天| 色天五月天在线观看视频| 色噜噜婷婷| 丁香涩涩五月天| 2020夜夜操天天爽| 丁香五月六月婷婷殴美综合| 五月婷婷丁香六月| 国产无套精品一区二区| 9热网站| 免费黄网不卡AV| 97在线观看| 亚洲久热| 国产av第一专区| 久久大国产香蕉| 久久99草五月婷婷| 嫩模aV在线| 日本一级| 五月丁香人人婷婷在线观看| 日本天天操| 久色激情| 无码AV免费精品一区二区三区| 性无码专区无码| 成人做爰A片免费看视频| 亚洲精品国产A久久久久久| 欧美三级巜人妻互换| 色欲AVV| 自拍视频在线观看9| 色狠狠综合入口| 伊人www22综合色| 啊v视频在线观看| 欧美黑人大吊| 色婷婷狠狠干芒果TV| 日日.c| 成人在线视频一区| 黄色国久久| 亚洲成人av在线观看| 五月天丁香成人| 色碰碰| 亚洲中文字幕网| 中文字幕成人| 久青操| 国产成人网| 亚洲XX日本| 日日天天干| 婷婷综合色色| www.激情五月天.com| 91九色丨国产丨爆乳| 丁香五月婷婷亚洲色图| 亚洲久久激情| 琪琪布丁香社区激情五月天| 狠狠操.com| 五月综合影院| 熟女人妻一区二区三区免费看| 羞羞嫩草视频| 另类小说五月天综合| 九九视频在线观看| 超级碰碰一区| 深爱五月天天| 色偷偷综合| 天堂美国久久| 五月社区婷婷激情| 极品少妇XXXX精品少妇偷拍| 激情五月丁香五月| 秋霞丝袜啪啪啪| 蜜乳9188| 婷婷五月av| 超碰cap| 丁香五月香蕉| 国产精品视频免费看| 熟女人妻视频| 日韩五月天婷婷| 人人操人人爰人人一天天碰夜夜拍夜夜爽-中国A级毛片天天看天天谢… | 91一起操| 亚洲AV日韩无码| 亚洲成人AV高清字幕| 婷综合| 玖玖资源站中文| 国产精品A成V人在线播放| 国产avapp 网| 亚洲成人无码网站| 成人永久免费视频在线观看| 婷婷五月色激情欧美激情| 亚洲乱码日产精品BD| 99九九精品视频| 六月丁香社区| 激情婷婷九月| 综合一区二区三区| 色玖玖导航| 中文字幕色色| 亚洲精品网址| 欧美三级欧美一级| 爱射综合| 婷婷综合五月| 99色看| 国产肥白大熟妇BBBB视频 | 99热6这里之有精品| 五月丁香激情综合啪啪| www.精品99| 色久丁香五| 久久综合站| 狠狠操狠狠做| 成人网页在线观看| 99日本在线| www.五月天色色色| 99热精品在线| 激情婷婷丁香五月| 丁香婷婷综合喷| 狠狠色噜噜狠狠| 99热每日| 99热这里只有精| 极品九九九九九九| 在线视频你懂得| 九九色逼| 丁香婷婷狠狠97| 婷婷丁香五月欧美人| A短视频免费在线观看| 五月综合婷婷网| 操操操B| 久热这里只有精品66| 九九色色| 爽天天天天天天天| 色色色999| 中文字幕 码精品视频网站| 久久久久久久久99精品| 婷婷丁香在线| 五月婷婷综合在线视频小说| 天天日天天舔天天摸| 婷婷综合五月| 久久九九免费视频| 国内裸舞二区| 丁香五月天亚洲综合| 伊人五月天在线| 91狠狠色丁香| 亚洲精品久久久久久久久久飞鱼| 婷婷五月丁香手机在线视频| 久操操| 国产精品涩涩涩视频网站 | 免费观看的av| 成人超碰AV| 夜夜操加勒比| www.99久| 五月天婷婷黄色| 夜色.cnm| 久久婷婷五月天| 播五月丁香六月| 国产avapp 网| 婷婷六月香| 狠狠色综合网| 丁香五月丁香伊人| 一级片sese片.COM| 日韩成人无码片| 久久久91| 92久操视频| 丁香色六月婷婷| 午夜九九电影| 婷婷大香蕉| 久久小说网| 99re这里只有| 无码人妻一区二区三区免费九色| 亚洲天堂久久| 人人插9| 精品无码久久久久久久久| 日韩欧美一级大黄网站| 好吊操这里只有精品| 99久久五月婷婷| 激情五月六月婷婷| 九九色播五月丁香| 婷婷五月草| 激情丁香五月婷| 麻豆精品| 俺去婷婷 丁香| 99热在线观看免费精品| 五月婷婷丁香综合| 人妻九九九九| 香焦网五月天| 日韩黄色电影| 天天干,天天日| 日本天天综合| 少妇激情五月婷婷| 五月天激情综合网站| 高清国产AV| 91av传媒高清在线视频网| 婷婷久久综合久| 开心五月天激情网| 性综合网| 亚洲啪啪网| 五月网在线| 综合逼五月激情婷婷| 成人在线综合| 色五月色图| 激情综合文学| 婷婷热色| 亚洲色区17| 超碰人妻公开在线| 婷婷五月综合中文字幕| 大鸡巴伊人网| 色色色五月天激情资源| 婷婷丁香五月天大香蕉| 丁香六月青青草| 97luluse| 色色婷婷婷丁香五月天| 色噜久| 久久九⑨| 丁香六月婷婷久久高清| 丁香五月激情宗合网| 国产激情AV| 色99在线视频| 久久久久久xxxxx| 色情五月综合婷婷| 色99亚洲| 永久地址 色| 五月婷婷免费视频| 五月色影院| 婷婷久久综合久色| 99热精品观看| 激情久久久| 欧美成人猛片AAAAAAA| 99热综合在线| 婷婷 激情 五月| 婷婷久久欧美| 五月天成人在线| 狠狠干 狠狠操| 日在线V视频在线播放| 久久婷婷五月激情网站| 俺去也五月天婷婷| 五月婷婷综合激情网| 婷婷五月电影院| a网站免费观看| 丁香六月情| 日韩色色视频| 99九九这里有免费视频| 婷婷激情六月综合| 十月丁香婷婷| 婷婷激情视频欧美视频自拍视频欧美剧| 日韩啊啊啊| 色婷婷狠| AV片一区在线观看| 女同激情久久av久久| 五月婷婷久久综合| 婷婷色情小说| 亚洲综合99| 婷婷五月色| 国产毛片操B| 久久婷婷东京热| 殴美日比视频| 黄色AAAAA| 天堂综合久久 | 亚洲成人色五月婷婷综合| 美妞av| 久久机热这里只有精品| 99热这里有精品| 五月色情精品| 五月丁香色色综合| 欧美日韩成人在线观看| 综合色五月亭亭| www,com,五月色色| 丁香婷婷色六月| 久久99激情| 国产又粗又大又爽又黄| 99在线免费视频| 激情综合激情五月| 欧美久热| 97色啪| 激情婷婷综合| 丁香五月性| 久婷婷视平| 4399在线日本A片| 思思精品久久艹| 91色色色| 热99免费在线| 另类激情网| 天天干天天日天天操| WWW色色色COM| 久久人妻情侣| 丁香六月综合激情| 午夜婷婷| 婷婷五月天激情小说| 亚洲成人在线观看av| 97干在线视频| 色五月婷婷网| 99久久高清视频| 婷婷五月AA五月在线| 丁香五月婷婷av| 91色综合网站在线| 五月丁香激情深爱婷婷| 少妇人妻丰满做爰XXX| 色噜噜狠狠色综合成人网| 久色国产| 日韩三十六页| 五月丁香激情六月| 97爱艹婷婷开心丁香激情综合| 色10月婷婷视频| 性色天| 五月色婷婷夜色| 亚洲第精品| 激情五月天小说网| 五月婷婷xxx| 婷婷综合色| 五月天色色色色色| 99色视频| 91人操| 日本婷色| 五月丁香激情怕怕| 五月丁香操婷逼| 色色日本欧美| 九热免费视频| 国产激情视频在线观看| 色五月天婷婷| 丁香婷婷六月天| 在线另类| 日本成人小说婷婷六月| 五月婷婷久久网| 丁香五月天五码婷婷| 男男野外做爰全过程69| 99re这里只有精品在线观看| 丁香五月很很肏| 婷婷五月天开心激情网| 99热狠狠操| 男女免费视频999| 婷婷伊人视婷婷婷| 99自拍视频| 香蕉久久国产AV一区二区| 99激情网| 插少妇综合网| 综合色婷婷| 久久久久久久人妻| 区区久久妻| 日韩无码专区| 国产精品久久7777777精品无码| 欧美精品狠狠色丁香婷婷| 婷婷色五月综合| 日韩无码性爱| 性一交一乱一交A片久久四色| 日本久热| 思思久久久婷婷| 久久久久人妻网址| 伊人春天av| 拍真实国产伦偷精品| 五月天婷婷黄色| 日韩 mm 不卡| 99色在线视频| 这里只有精品1| 色~性~乱~伦~噜| 激情丁香婷婷| 五月色婷婷综合| 久久婷婷91| 91超级碰碰碰| 五月婷婷六月丁香激情| 日日日,com| 丁香六月天婷婷色| 黄网在线免费观看| 婷婷六月五月天综合| 丁香五月综合激情性爱| 99热在线观看| 色5月婷婷| 五月综亚洲| 热久久婷婷| 一级黄色影片| 久久机热/这里只有精品| av久热| 欧美午夜乱妇午夜福利| 日韩中文欧美| 婷婷五月激情六月| 激情五月婷婷综合视频| 午夜成人AV在线| 波多婷婷久久| www.狠狠| 激情伊人五月天| 丁香五月天成人| 国产一级片| 久久ri精品| 久久综合九九| 色99在线观看| 天天干天天色天天干| 五月丁香婷婷色色| 97人人看一| 亚洲V国产V欧美V久久久久久| 色五月五月婷婷| 就99这里只有精品| 玖玖在线视频福利| 操逼视频一区| 婷婷丁香五月激情密臀av| 99国产精品久久久久久久久久久| 五月丁香激情四射| 另类激情首页| 噜噜色婷婷| 天天天天天操| 色婷婷五月基地在线| 九九精品自拍| 欧美精品啪啪| 99热网址| 婷婷五月中文字幕| 自拍视频在线观看9| 精品少妇人妻AV无码专区偷人| 97操操| 久久激情网| 色噜噜狠狠狠综合曰曰曰| 女人露出p毛视频www网站| 丁香五月开心亚洲| 香蕉伊人综合| 操人精品| 六月丁香婷婷色狠狠久久| 在线色婷婷| 五月丁香六月婷婷a v| www.久久99| 五月激情射| 超级碰人人操人人干| 91男人操女人视频| 婷婷五月性感| 亚洲视频在线网| 玖玖婷婷色欲| 九九精品婷| 沈娜娜av| 日韩操女| 五月婷婷啪啪啪| 久久 无毛。| 激情啪啪五月天| 亚洲第二AV| www.久久色.com| 婷婷基地成人五月天| 任你弄在线视频免费| 日韩黄色影院| 99精品偷拍视频| 五月天丁香综合在线| www.色情五月天.com| 国产色99| 五月丁香婷婷色色| 99热无码精品| 深爱激情网五月天| 91精品久久久久久久久| 9久久精品| 欧美久热| 黄网在线免费观| 五月婷视频在线| 日韩淑女人妻luan伦激情精品一区二| 99热在线观看精品| 欧美精品999| 性做久久久久久久免费看| 五月婷婷色欲| 91凹凸在线| 丁香五月成人社区| 婷婷在线中文字幕| 久婷久婷| 99热无码精品| 五月天综合在线| 99热偷拍| 成人综合视频网址| 2016日日夜夜操| 99久久精| 久久这里有精品视频| 五月丁香综合| 亚洲国产精品二二三三区| 亚洲成人丁香花| 日韩成人电影在线播放| 久久久色婷婷五月天| 天天干天天色天天干| 久碰婷婷视频| 亚洲九N| 第五婷婷伊人丁香| 亚洲AV激情五月综合网| 五月婷婷在线视频观看| 丁香五月天啪啪| 丁香六月欧美| 五月天激情网图片 - 百度| 色婷婷久久7777| 91操操| 天天色综合网吨吧| www.minyis.com【JT】实力收量可预付QQ2101460746 | 色婷婷激情| 丁香五月激情啪啪啪啪| 国产亚洲色婷婷99精品| 人妻久久人妻久久第一区| 婷婷另类小说| 色噜噜五月天| 99热这里只有是亚洲国产| 丁香五月影视| 婷婷六月丁综合| 五月丁香六月婷婷精品| 国产婷婷综合| 国产综合A片| 久久视屏这里只有久久| 激情综合99| 亚洲操女| 日日鲁鲁夜夜爽爽| 丁香六月情| 婷婷丁香五月天大香蕉| 久久精彩视频99| 五月天婷婷无码| 色综合伊人网| 色就色94欧美setu| 婷婷六月激情啪啪| www.夜夜操| av在线播放网址| 亚洲激情精品| 超碰人人摸人人操| 亚洲婷婷开心五月| 99热这里是精品| 色综合网址| 五月亭亭直播| 亚洲综合碰| 精久久色| 7777国产盗摄农村女人| 五月熟妇婷婷久久| 六月激情网| 色婷婷成人| 婷婷久久五月天丁香| 国产亚洲成AV人片在线| 色婷婷基地| 婷婷影视久久| 久8色色| 亚洲黄色网址| 99热这里只有精品最新| 久久婷婷免费| 色婷婷丁香五月综合| 色五月激情五月| 啪啪婷婷五月天激情| 99热在线看| 九九熱最新視頻| 久久99网站| 激情六月丁香| 亚洲色99| 激情婷婷综合| 色啦啦视频| 色婷婷五月天天天干天天操天天爽| 国产高潮A片羞羞视频涩涩| 亚洲国产精品五月天| 五月丁香五月婷婷| 激情五月丁香色婷婷| 欧美性猛交AAAA片黑人 | 激情精品久久| 十月丁香九月婷婷综合| 极品少妇婷婷五月| 亚洲婷婷五月| 五月网激情| 99热精品在线观看| 五月开行婷婷色五月| 日本在线观看91| 欧美激情综合色综合啪啪五月| 神马欧美精| 天天肏视频| 婷婷开心深爱五月天| 丁香五月婷婷基地| 六月狠狠综合| 亚洲欧洲午夜成人精品av| 色综合激情| 开心丁五月| 丁香五月天堂婷婷| 色综合九九| 色狠狠色综合久久久绯色AⅤ影视 大香蕉五月天婷婷丁香91 | 国产一级片| 色综合久| 久久偷拍综合五月天| 91色涩| 婷婷色综合| wwwwww.色| 亚洲成人另类| 国产欧美日韩综合精品一区二区| 四色99久久| 超碰操网| 丁香婷婷久| 99热偷拍| 五月婷婷久草在线视频综合| 婷婷五月天久久久| 久久久aaa| 五月色色色| 97色伦另类图片小说视频 | 婷婷五月情色| 综合狠狠干| 另类图片五月天婷婷| 丁香五月天日韩无码| 久久亚洲婷婷| 色五月影视| 五六月婷婷| 久久久久久9热不雅视频| 99热老网站| 操逼棍操逼| wwwss在线观看| 国产九月婷婷| 久久99热这里只频精品6学生| 青草五月天| 婷婷五月天激情在线观看| 伊人婷婷五月天av| 五月激香蕉网| 亚洲操操| 婷婷丁香人妻天天爽| 丁香五月区| 久久综合热17c| 九九色播五月丁香| 91热在线观看视频| 久久精品一区二区三区四区| 欧美色五月| 91人人爽久久涩噜噜噜| 美女主播野战视步页| 九久9精品| 久久久五月天网站| 色色999三级片| 专区无日本视频高清8| 九色91视频| 久久机热/这里只有精品| 天天爽—爽| 色五月综合网| 男人天堂99| 婷五月天丁香婷五月| 九九99精品免费播放| 99操视频| 人人爱人人草| 亚洲欧洲另类| 久草五月| 综合色久| 欧美人妻一区二区| 99热精品在线播放| 99碰超| 99riAV国产精品视频| 婷婷五月天久久| 婷婷色爱| AAAA网站| 亚洲VA口| 色婷婷9| 久超超碰| 九九激情综合| 五月天激情国产综合婷婷| 成人AV在线电影| 日本一道久久| 狼人久草| 五月丁香啪啪网| 久久九九网| 操操碰| 激情深爱五月天| 国产这里只有精品| 亚洲熟妇AV乱码在线观看| 拍真实国产伦偷精品| 九九色色| 91精品刘玥| 7777久久亚洲中文字幕| 五月丁香六月婷婷的女人| 一区二区三区四区牛| www,com,五月色色| 久久婷综合| 久鲁鲁色网 | 人妻精品久久久久久久| 九九色综合视频| 丁香婷婷激情五月天无毒不卡蜜桃| 日本色视| 丁香六月在线| 国产精产国品一二三在观看| 91伦| 99热99在线| 久久aaa| 丁香六月激情综合啪啪| 激情啪啪五月| 99久视频| 夜色.cnm| 久久女婷| 六月婷婷影院| 亚洲色图五月丁香| 久久久久久久人妻| av超碰在线| 婷婷五月丁香久久| 婷婷五月天影视| 婷婷色正月| 五月激情啪啪| 亚洲AV日韩在线观看| 任你擦免费视频| anquye伊人| 99热这里只有精品86| 日本久热| 婷婷狠狠综合网入口| www.com亚洲网站在线免费| 亚洲婷婷丁香五月在线| 色导航色婷婷五月天在线观看| 天天日日夜夜| 九月丁香婷婷| 色婷丁香| 婷婷视频在线| 日韩在线视频中文字幕| 婷婷播播五月天| 大香蕉伊人99| 一本到不卡高清DVD| 天天射美女| 天天草天天日| 久久人妻精品| 大天天伊人| 亚洲欧洲自拍图片专区五月天| 开心激情婷婷| 狠狠婷婷色综合| 色婷婷网| 五月天激情婷婷| caop视频| 丁香六月婷婷一区| 丁香五月手机在线| 国产女人十八水真多1| 涩涩涩,com| 9l视频自拍9l九色9l成人| 婷婷五月天国产传媒| 欧美色色色| 天天日综合| 日韩一区二区A片免费观看| 99精品热视频| 天天影院色| 五月天天丁香婷婷| 成人片黄网站色大片免费毛片| 婷婷99丁香| 婷婷基地五月色| 婷婷亚洲天堂| AV激情五月| 99热大香蕉| 综合色色综合| se99视频| 91九色 熟| 夜夜夜夜操| 99热精品在线观看| 人妻AV在线| 91色涩| 五月丁香婷婷啪啪网| 色色cOm| 色狠狠色综合久久久绯色aⅴ影视| 久热超碰| 国产这里只有精品| 亚洲色9| 香蕉久久国产AV一区二区| 99色五月| 91综合色| 丁香六月婷婷久久高清| 婷婷五月婷婷| 狠狠色噜噜狠狠| 久久99热免费最新版| 91av视频在线观看最新网址| 人人摸人人搞| 伊人久久综合| 99ri精品在线| 青青草色在线视频观看| 久9视频| 亚洲综合激情五月久久| 久久性爱视频网站| 99热这里只有精品26| 中文av网| 婷婷五月天777| 国产暴力强伦轩1区二区小说| 久久6这里只有精品| 亚洲国产精品SUV| 五月丁香网中文字幕| 无码激情AAAAA片-区区| 婷婷五月天第四色| 亚洲视频码| 激情综合一| -91九色大屁股| 亚洲综合激情五月久久| 丁香五月婷婷动漫视频| 伊人爱爱日本| 在线观看欧美| www.久久| 日韩欧美四五区| avh片在线观看| 人。妻久久| av在线中文| 99性色| 亚洲XX日本| 婷婷激情综合色五月久久91| 91九色欧美| 成人做爰A片免费看网站找不到了| 97人人干| 天天爽免费视频| 日本色久| 久久性爱视频| 色五月婷婷色五月婷婷色五月婷婷| 综合色网站| AAA久久| 亚洲激情免费视频| 丁香九月综合激情| 四川BBB搡BBB搡多人乱亂| 深爱婷婷丁香五月激情| 日本一道久久| 丁香婷婷激情网站| A片一曲| 丁香五月婷婷激情123| 日韩无码性爱| 大香蕉九九| 亚洲情欲| 99热精品10| 日韩无码系列| www.五月天| 亚洲九九视频| 久久婷婷六月综合资源| 色色色色色五月| 伊人久久婷婷| 丁香五月天堂网| 激情5月婷婷狠狠干| 亚洲AV无码成人精品区电影网| 九九激情| 丁香五月婷婷六月丁香| 五月天六月天| 黄色五月婷婷| 涩涩激情五月婷婷| 99噜噜噜在线播放| 伊人狠狠丁香婷婷综合尤物| 激情婷婷丁香色五月| 色五月综合激情| 丁香五月婷婷综合激情啪啪啪啪啪啪啪| 色欲色香综合网| 婷婷五月天激情诱惑| 99爱免费在线观看| 天天久久狠狠色综合| 五六月婷婷久久| 亚洲综合五月天| 婷婷综合五月天| 人妻久久久久久久久久久| 丁香婷婷精品视频| 成人版视频在线观看| 五月天婷婷成人| 五月青青草综合| 啪啪啪大香蕉| 婷婷午夜综合| 一起草日本| 精品9197碰| 五月天激情四射| 综合啪啪| 综合色影院| 99操逼| 操丝袜视频影院导航| 丁香六月婷婷五月天| 97丁香婷婷| 日本九九九九九九| 九九色网| 超碰cap| 久久艹 五月天| 五月婷婷六月丁香| 大香蕉久| 久久婷婷五月| 亚州操人在线视频| 婷婷色网站| 五月丁香无码| 性高潮久久久久久-九九九九九九九九九九热-成人AV | 五月久久网| 婷婷99丁香| 激情综合婷婷久久| 五月婷丁香久久综合| chaopeng在线人人| 西西4r午夜剧场| www.第四色99| 婷婷丁香大香蕉| 婷婷激情五月天桃花网| 人妻有码乱操| 日韩AV在线电影| 嫩草哈哈操| 成人一区在线观看| 热久69| 久久久婷婷五月亚洲97号色| 99热99极品观看| 婷婷丁香花五月天| 我爱大香蕉| 综合狠狠伊人| 婷婷狠狠久久| 九九久久综合网站| 天天搞天天色综合| 丁香婷婷月| 大香蕉久热| 色色操| 综合激情五月天| 亚洲A片成人无码久久精品青桔| 欧亚成人A片一区二区| 色无婷婷| 色噜噜五月丁香婷婷| 丁香五月激情网| 成人网址在线观看| 凹凸7777操操操| 久久五月婷婷开心网| 婷婷开心激情五月激情网| 狠狠操狠狠操AV| 久热 91| 99免费在线视频| 99ER热精品视频| 激情婷婷黄色五月| 成人精品人妻| 婷婷爱综合| 婷婷精品性性性性性性性| 91无码高清| 97人妻碰碰中文无码久热丝袜| 99热这里有精品6| 婷婷爱五月天人人爱| 五月丁香啪| 婷婷综合五月| 最新婷婷五月丁香| 91操片| 久草五月天电影网| 思思热视频| 玖玖热视频| 97日本在线播放| 99热1| 五月 丁香 欧美| 五月天播播中文字幕| 99精品免费视频| 31色区视频免费看| 免费九九热| 五月婷婷丁香狠狠撸久久| 最新色色五月天| 国产性爱在线| www98日本小时间到了| 夜夜爽日日躁| 五月天婷婷免费| 夜夜嗨一区二区三区直播内容| 9久久精品视频| 天天噜天天爱| 91久久九久久九久久九久久九久久| 六月丁香啪啪| 9九色首页| 99久久思思| 五月色网| 午夜福利成人AV91| 99热精在线九九久久保| 99爱在线视频| 青青草国产亚洲精品久久| 国产免费av在线| 五月天婷婷丁香视频| 欧美三级欧美一级| 996re热精品视频| 99热思思在线观看| 五月丁香成人| 99热人人操人人操| 日日操夜夜爽天天天| www.97碰碰com| 大香蕉视频婷婷| 丁香五月自拍| 色五月婷婷在线| 久久久日韩特色特黄AAAA| 丁香五月婷婷啪| 午夜婷婷久久| 亚洲成人av在线观看| 无码中文一区二区三区| www.99热| 五月久久婷婷天堂视频| 亚洲无码九九| 久久精品A片777777| 亚洲另类在线观看| 91婷婷色五月| av第一二区| 99国产这里只有精品| 香蕉97碰碰碰欧美| 色色永久| 丁香婷婷五月天色综合| 久久99婷婷| 夜色综合网| 天天狠狠夜夜狠狠2023| 免费一区二区三区| 五月婷婷激情69| 无码激情AAAAA片-区区| 99热色无码| 婷婷金品综合视频| 先锋五月婷婷丁香草草| 久9免费视频| 日韩一级网站| 丁香婷婷色五月激情综合| 九九伦子片| 99成人小视频| 五月丁香在线观看国产| 五月天久久成人| 精国产品一区二区三区A片| 视频综合网| 可以直接看的av| 丁香色六月| 婷婷五月激情中文字幕| 激情综合五月婷| 另类视频五月天| 狠狠色狠狠干| 丰满人妻一区二区三区| 99热这里只有精品21| 99欧美| 婷婷六月丁香激情综合| 日日鲁鲁鲁夜夜爽爽狠狠视频97| 婷婷区日本| 玩熟女五十AV一二三区| 97韩国久久电影院| 婷婷五月综合免费在线| 这里只有精彩视频| 99久久久久久www| 久操无码| 思思久久网| 香蕉久久国产AV一区二区| 777久久综合视频| 色色欧美色色色| 婷婷噜噜| 九色 在线| 综合婷婷| 77799热| 五月天婷婷狂暴白浆| 丁香六月婷婷综合啪啪| 色色五月天婷婷丁香| 日夜操B| 99热99热在线观看| 色五月天 丁香| 99色色| 天天日日夜夜爽| 久草热8精品视频在线观看| 狠狠搞亚洲| 久久婷婷五月综合激情国产| 婷婷香五月天| 人人干Av| 射久久丁香五月| 伊人激情影院| 五月丁香色婷婷基地| 9 9 9色色| 色婷婷久久综合中文久久一本| 丁香五月AV综合激情| 操操熟女| 久久人妻视频| 99热99热99热99热| 91无码视频| 欧美日韩精品人妻狠狠躁免费视频| 五月天精品视频| 久久9视频| AV片一区在线观看| 99色| 丁香六月高清视频| 神马欧美精| 五月婷色丁香| 五月丁香视频色色| 色婷婷丁香五月| 色五月婷婷内射| 第四色婷婷日本| 亚洲AV成人在线观看| 亚洲综合99| 久久人妻高清中文| 99精品久久久久久久婷婷| 日韩限制级大尺度黑料泄密大尺度视频一区二区在线观看 | 夜丁香五月婷婷| 五月丁香综合啪啪| 激情婷婷五月丁香啪啪啪| 色久女| 色噜综| 日本99视频| 亲子乱av一区二区三区的| 99热在线观看免费精品| 婷婷va| 五月婷婷视频啪啪美女| 99久久99视频| 日本三级第一页| 99色综合| 色色色五月婷| 国产精品久久7777777精品无码| 亚洲另类电影| 99啪在线| 人人爽网| 九九亚洲| 人妻aV在线| 色婷五月天综合网| 婷婷五月天在线观看av| 91九色|疯狂|高潮|对白|| 99热99日天天干| 双性美人被调教到喷水A片| 日韩精品999| 婷婷性爱五月天| 插少妇综合网| 久久草人妻| 久综合色| 久久狠婷婷| 亚洲区在线| 亚洲精品又粗又大又爽A片 | 久久综合丁香激情五月| 精品人妻一区二区| va亚洲中文在线| 天天操天天操天天操| 五月丁香六月综合情在线观看| 丁香久月婷| 久久99免费视频| 蜜桃婷婷丁香综合久久开心亚洲| 六月婷婷激情| 中文字幕成人| 97人人看| 色色五月天丁香婷婷| 开心婷婷丁香五月| 婷婷六月情| 激情综合网激情五月丁香| 很很干在线视频| 热的国产,热的综合,热的有码| www色婷婷| 久久五月网| 最新av在线观看| 影视av久久久噜噜噜噜噜三级| www一起操在线观看| 婷婷五月综合网激情| Av在线不卡一区| 奇米影视在线视频| 中文字幕综合色| 超级碰碰99| 综合激情四射一theav| 中文不卡av| 五月天激情亚洲| 韩日AV片| 五月天丁香欧美激情| 伊人久久大香| caopeng97人人| 久久99精品久久久久久三级| 久久9RE热视频精品98| 一起草av在线观看| 成人免费在线电影| 成人 视频免费观看网站| 91人妻人人操人人爽| 亚洲综合色色| 久久99热只有精品| 秋霞午夜理论| 丁香五月天激情综合网| 可以直接看的AV网站| 五月婷婷六月开心| 人人爱人人草| 色综合九九| 国内外色色色色色成人视频| 婷婷综合网| 男同91 | 操逼五月婷婷| 免费播放AV| 91九色精品| 99色精品视频| 色婷激情网| 99性色| 大香蕉啪啪啪| 内射人妻视频国内| 丁香五月天日韩无码| 九九色之九九色之88| 99无码视频| 五月婷婷成人w| 丁香六月婷婷综合欧美| 婷婷中文无码| 少妇人妻偷人精品无码视频新浪| 91久女| 人妻激情在线| 97激情五月天| 婷婷亚洲欧美丁香五月| 丁香花五月天激情| 成人做爰A片免费看视频| 天堂网亚洲色图| 久久婷婷亚洲| 丁香婷婷久久老熟女综合网| 久久婷婷视频| 激情色色| 青青艹b| sesesesezonghe| 欧美婷婷色五月| 丁香五月婷婷啪啪啪| 99人妻碰碰久久久禁片| 日本色色网站| 五月丁香婷婷久久| 思思热在线观看| 久久综合99| 天天综合91入口| www.国产亚洲69ty.久久久久久久久久久久 | 五月丁香天堂网| 伊综合蕉| 9九热视频| 色色网站在线| 色婷婷丁香五月| 欧美日韩国产一区二区| 开心婷婷五月天电影院| 五月婷婷五月天| 亚洲精品久久久久久久久久飞鱼| 六月婷婷香蕉| 九月婷婷丁香| 99热免费精品| 人妻中文av| 青青草护士中出内射-欧美电影在线天堂新版 | 天天狠狠干| 色久九| 久久机热这里只有精品| 99综合免费视频| 婷婷激情综合色五月久久91| 久久五月天精品视频| 99热这里只有精品55| 中文字幕无码AV| 大香蕉久久伊人婷婷五月丁香| 五月天网站亭亭| 四川BBB搡BBB爽爽视频| 婷婷五月激情综合| 色五婷婷在线视频| 六月婷婷色色网| xxxx五月激情| 大香蕉五月天| 久久一级免费黄色片| 久久精品小视频| 丁香五月婷婷色| 91干| 狠狠色噜噜狠狠| 丁香青青五月天| 青草热视频这里只有精品| www久久99| 亚洲啪啪啪啪| 91超级碰在线| 色婷婷综合在线| 久色国产| 免费三级黄色| 国产婷婷五月中文字幕高清| 男女99免费视频| 香蕉网久久| 五月丁香六月婷婷激情视频在线观看免费| 热思思九九| 五月香蕉婷婷| 综合久久99| 六月丁香视频网站| 婷婷五月天小说网| 久久婷婷色色| 综合激情在线| 综合色网站| 九九热视频在线观看| 久久一伦| 色婷婷成人| 免费成片在线观看| www.99热这里只有精品| 亚洲激情Av| 五月丁香激情婷婷| 免费在线观看av网站| 五月天婷婷成人资源站| av大片在线| 3p日韩网站视频| 人与禽A片啪啪| 人人摸人人射| 六月婷婷综合网2| wwwwww.色| 日韩欧美性爱| 五月婷婷丁香俺日污视频| 黄页免费一级视频懂色| 草五月| 亚洲AV网站在线观看| 大香蕉AV在线| 九九爱这里只有精品| 免费视频WWW在线观看网站|