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
返回資訊列表
五月婷婷激情综合| 草草女人亚洲| 六月色国内综合| 亚洲天堂AV综合网| 精品一二三区久久AAA片| 精品,99| 色97啪啪| 亚洲欧美在线观看| 日本三级黄色大片| 五月婷婷免费看| www.91操| 99热精地址| av首页在线| 欧美六月| 天天色综网| 99A级片| 天天爽天天操| 六月婷婷视频| av免费人人| 國語久久婷| 香蕉久久国产AV一区二区| www激情婷婷com| 色色爽爽天天| 丁香六月欧美| 五月丁香综合色婷婷| 99狠狠操一| 五月丁香va| 日韩美女羞羞网站在线观看| 亚洲超碰青涩| 白人荫道BBWBBB大荫道| 99这里都是精品| 色丁香婷婷| 色婷婷五月开心六月综合| 4438全国最大视频成人网站在线观看| 屁股翘好撅高迎合跪趴| 色噜噜狠狠色综合日日| 久久天天| 99自拍视频在线| 天天干天天操天天爽| www久久久久久久97| 99热国产| 开心五月婷婷| 色五月婷婷影院| 九九热99热| 婷婷六月色丁香视频在线观看| 东京热免费视频网站| 中文字幕成人| 婷婷五月天成人网| 爱射综合| 免费观看欧美成人AA片爱我多深| www.久久| 黄色片久久| 99爱这里只有精品免费视频| 中文字幕在线观看视频www| 99国产小视频| 五月婷婷中文| 99精品在这里| 婷婷六月丁| www99精品亚| 久久婷婷五月综合| 乱乱av| 天天干天天日日| 五月丁香婷婷婷激情爱爱| 激情内射人妻1区2区3区| 极品人妻VIDEOSSS人妻| 中文字幕人成乱码在线观看| 午夜69成人做爰视频| 亚洲va成人va成人va在线观看| 色婷婷中文在线| 婷婷深爱五月| 色呦呦美女| 久久五月丁香| 97干视频| 欧美操人| 99色综合久久| 操婷婷基地| av免费在线观看0| 人人操9| 丁香五月冃欧美| 天天色天天干天天插| 最新日本A片| 伊九九三级区| 五月香蕉婷婷| 亚洲亚洲亚洲AAAAAA| 小视频一区 | 99热这里只是精品| 色XX综合网| 激情五月天伊人影院| 伊人久久丁香婷婷六月五月综合| 五月天成人小说| 六月婷婷开心| 亚洲综合成人网| 99碰超| 久久久久9999| 男人操女人高潮91视频| 久久精品五月| 婷婷视频网| 五月婷婷综合网| 激情小说五月丁香在线视频观看视频| 五月婷婷激情四月| 大香蕉伊人爱在线| 五月激情综合网| 99原创自拍视频在线观看| 91se视频| 香蕉视频91| 91五月天| 97五月天婷婷| 久久大香蕉| 99这里有精品视频| 99热一本| 爱爱色五月天| 色色色色网站| 婷婷五月天影院| 95精品区一区二| 久久久潮喷-久久久九九-成人AV| 久久丁香五月婷婷| 开心婷婷五月中文字幕组| 五月天激情视频| 色碰碰| 五月天偷拍| 性按摩玩人妻HD中文字幕| av一区免费看| 丁香五月亚洲AV| 久久在线人妻| 婷婷丁香六月| 色婷婷综合丁香五月天| 包操45分钟网站| 久热网站| 思思热在线| 99爱操| 狠狠久久婷五月| 99er免费在线观看| 天天噜日日噜综合无码| 激情玖玖综合网| www99在线观看视频| 久久婷婷丁香五月一二三| 99久久精品视频女神1| 五月婷婷,狠狠操| 看片视频在线免费日产在线看| 色吧网91| 亚洲激情电影五月天色婷婷丁香一起草 | 120分钟婬片免费看| 99精品视频播放| 99热大香蕉| 五月天色婷婷视频| www激情| 大鸡巴伊人网| 色五月婷婷视频| 久久婷婷久久| 欧美婷婷九月| 91干婷婷| 久久免费精品小视频| 99热亚洲精品66| 伊人久久艹| 九九久久玖玖爱| 第二色AⅤ| 激情爱爱网站超大免费| 亚洲123区高清入口| 五月欧美色播| 超碰在线成人| 国产精品操| 五月之婷婷| 激情五月天社区| 激情色情五月天| www.狠狠狠.com| 五月综合视频| 玖玖综合玖玖| 狠狠色综合久久| 亚洲欧美成人在线| 狠狠色丁香综合| 午夜婷婷久久 | 26uuu淫色| 久久婷狠狠色| a九九热www| 婷婷丁香在线播放| 手机在线视频观看9| 欧美激情五月天婷婷| 色婷婷AV在线| 9l视频自拍9l九色9l成人| 思思re视频在线| 性一交一乱一交A片久久四色| 婷婷六月天天| 91精品国产91久久久久青草| 91干| 婷婷久久五月天| 一级性感黄色内射视频| 99久在线视频| www.jiujiujiu| 久久这里只有精品8| 婷婷视频在线| 五月天婷婷丁香六月| www.超碰97| 人人亚洲| 国产日韩欧美| 99成人无码| 99国产精品白浆在线观看免费| 99热99在线| 91精品婷婷国产综合久久| 五月婷激情影院| 丁香五月婷老师| 男人的天堂在线婷婷 | 久色精品| 天堂草在线观| 怡红院成人AV| 九九热黄色| 激情久久五月天| 欧美内射AA| 色五月综合激情| 五月丁香成人| 激情综合5月| 婷婷色婷婷| 热无码A∨| 日日.c| 99热精品在这里| 色色色综合色| 色五月五月婷婷| 99热在线里有精品| 丁香五月婷婷香| 亭亭玉月丁香| 五月开心婷婷极品激情| 九九九九精品精| 这里只有精彩视| 99热99思午夜精品| 天天爽天天| 婷婷丁香五月天欧美| 人妻体体内射精一区二区| 天天操天爱综合| 久re在线| 九九黄色网| 激情五月网站| www.色情五月天.com| 五月色综合| 久久久香| 婷婷丁香成人色综合| 婷婷激情五月天小说| 99视频久久久| 日本不卡高字幕在线2019 | 少妇2做爰HD韩国电影| 五月丁香婷婷六月天| 国产精品久久久久久久久久| 丁香五月婷久久| 人伦30P| 欧美交换配乱吟粗大25P| 五月婷婷免费| 国产精品 的国产| 99这里有精品视频| 亚洲热视频在线| 欧亚洲在线高清视频| 国外亚洲成AV人片在线观看| w婷婷五月婷婷w| 五月丁香啪啪拍| 国产精产国品一二三在观看 | 色色婷婷色色| 人妻人人操| 五月丁香在线精品| 综合色99| 婷婷五月天BBw| 九九热再线九九视频免费在线观看 | 色色综合日韩| 色五月婷婷91| 99视频在线9| 丁香五月婷婷五月天| 亚洲 五月 婷婷 成人| 九九热99免费视频| 少妇人妻偷人精品无码视频新浪| 天堂久久精品| 婷婷色五月综合| 伊人丁香六月婷婷| 操逼视频一区| 色播五月综合网| 精品无码久久久久久久久| 99热综合网| www婷婷亚洲| 操逼国产91| 亚洲最大成人综合网720P| 五月婷婷|欧美| 在线综合婷婷| 新久久五月天激情| 久久久99视频| 精品九九网| 五月婷婷六月丁香| 热久久91| 色丁香五月| 久久久久99精品成人片| wwxx日本| 丁香五月激情六月欧亚激情综合导航| 丁香五月黄色| 国产婷婷久久| 操碰99在线视频观看| 色五月婷婷老师| 丁香在线视频| 九九视频这里只有精品| 99国产小视频| 97干在线视频精品店| 五月婷婷色色色| 99re思思久久| 国产婷婷五月在线视频| 成人丁香五月天| 久久婷婷五月综合色播| 丁香五月亭亭六月综合激情网| 99色干| 9在线9在线婷婷在线国产| 久久在线视频免费观看| 色婷婷狠狠18禁| 丁香色成人| 婷婷.com| 日日日天天干| 日日舔夜夜操| 日韩色情亚洲五月天婷婷| 怡红院院在线导航网| 欧美日韩国产伦精品日韩人妻一| 色婷婷88| 色久九| 热五月婷婷| 大香蕉在线观看9| 五月停性愛| 乱岳熟女50岁| 九八Av| 人妻体体内射精一区二区| 久久婷婷综合五月天| 亚洲精品国产成人AV在线| 97色97干| 丁香五月成人| 无码免费人妻A片AAA毛片西瓜| 欧美日韩aaa| 直接看的AV| 精品人妻一区二区三区四区不卡在| 在线看片av| 久久草中文日韩欧美| 亚洲综合无码| 99免费| 99在线精品观看99| 国产超碰在线| 99九九精品视频推荐| 成人.在线日韩| 激情图片亚洲| 天天综合五月天| 久99热在线观看| 丁香婷婷九月| 日日色五月天| 婷婷亚洲色| 卡视频1区2区| 五月天停婷基地| 五月婷婷九| 婷婷99视频精品| 色婷操逼| 日韩按摩二区| 最新va在线播放| 综激情网| 婷婷综合性爱网| 欧美日韩一区二区三区四区| 婷婷色九月| 五月6香色婷婷视频| 天天爽天天弄| 久久久噜噜噜久久人妻| 激情AV| 国产精产国品一二三在观看 | 超级黄色片| 久久婷婷啪啪视频| 啪啪啪五月天| 99爱视频| 午夜69成人做爰视频| 玖玖色综合色| 91视频精品99| 婷婷丁香基地在线| 中文字幕,综合,91| 九九激情| 婷婷五月丁香综合亚洲| 日本啪啪天堂| 色五月在线视频观看| 久久久五月五丁香| 狠狠婷婷色| 91精产一区三区免费观看| 99热永久在线观看| 色色国产| 操逼五月婷婷| 色五月色五天色情网| 亚洲婷婷婷| 色色热| 天天天天干| 九月大香蕉| 五月天婷婷色在线视频免费观看| 婷婷婷婷色| 天天日夜夜爽| 无码髙清| 丁香婷婷色五月合集| 亚洲天堂大香蕉| 中文字幕1区2区。| 99 r热| 色噜噜婷婷| 狠狠五月天| 色五月自偷自拍婷婷婷婷| 五月停停直播| 婷婷五月天久久久| www.com色播五月天| 婷婷五月天,影院| 色碰碰| 伊人喵咪a V| 五月天婷婷基地| 丁香五月六月激情久久| 全部老头和老太XXXXX| 五月丁香成人| 夜夜谢天天干| 婷婷五月六月激情| 丁香六月色婷婷| 68热超碰在线| 狠狠干五月丁香| 亚洲精品成人| 五月天婷婷社区久久综合| 婷婷五月天色综合| 99热在线观看| 激情五月综合六月丁香婷婷狠狠干| 久9视频免费播放| 亚洲精品第一国产综合亚AV | 亚洲热久久| www.色婷婷| 狠狠综合网| 欧美激情五月天| 97AV人人插人人操| 天天摸天天透天天舔| 97久久婷婷色| 天天综合天天玩夜夜玩天天玩夜夜玩| 激情五月天网站| 九九久久99| 天天肏高清在线| 91精品丝袜久久久久久久久粉嫩| 久久视频这里99| 婷婷激情五月呦呦| 青青草原精品久久| 激情五月天福利| 色婷婷综合网站| 亚洲春色奇米影视| 五月噜噜| 亚洲狠9| 亚洲狠狠狠| 五月天色色无码| 极品 少妇 内射| 99激情视频| 开心 五月 综合| 这里有精品| 色五月婷婷丁香国产在线| 能看的AV| 丁香五月天在线直播观看| EEUSS鲁片一区二区三区| 97色婷婷| 久久精品婷婷| 婷婷久久视频| 狠狠ri| 99re在线这里只有精品视频首页| 超碰cap| 99视频网| 一级精品999WWW| 成人在线不卡| 天天综合激情| 五月婷婷综合在线亚洲视频| 久久婷婷五月免费视频| 9 99免费视频| 另类图片五月天| 五月天婷婷自拍图片在线观看| 国产精自产拍久久久久久蜜| 婷婷五月综合视频| 99热这里只有精品86| 久久艹网| 性色五月天| www.99精品在线| 99热精品在线播放| 五月色情网| 大香蕉久久综合网| www.99日本| 快乐激情五月色婷婷| 9色在线| 天天干天天干天天干天天干天天干天天干天天| www,99色| 99热这里只有精彩| 狠狠狠婷婷五月综合| 婷婷综合性爱网| 综合伊人久久| 人人操人人看97干| 婷婷五月丁香六月天亚洲综合| 亚洲视频久久| 爱射综合| 九九视频在线观看| 99热九九这里只有精品10| 中文字幕高清av| 超碰99久久| 五月天成人网婷婷| 亚洲精品在线视频| 国产在线aaa片一区二区99| 久久免费婷婷视频| 久久婷婷五月国产色综合激情| 五月天婷婷狂暴白浆| 五月 激情视频| 五月天色色激情综合| 亚洲网在线观看| 97人人做| 天天爽天天摸| 亚洲色婷婷色| 91凹凸在线| www.99热国产| 婷婷久久五月| 欧美婷婷成人| 综合色五月天| 久久综合性| 久草五月丁香婷婷综合| 五月婷视频| 久久这里只精品| 六月色婷婷欧美| 9久国产精品| 涩涩涩婷婷| 九色91国产| 九九中文色色| 国产偷人爽久久久久久老妇APP | 九九热视频在线观看| 天天爽夜夜爽夜夜爽精| 色综合久久44| 国产乱人偷精品人妻A片| 伊人婷婷五月天av| 开心五月六月婷婷| 思思99久久| YW无码| 亚洲日韩一页精品发布| 久久东京热婷婷五月| 亚洲丁香五月在线观看| 丁香五月婷婷丫| 久久与婷婷| 91九色成人原创视频| 日本www免费九九| 99热在线播放| 婷婷五月天成人| 久久电影4399| 亚洲婷婷五月| 天天肏天天肏天天肏| 亚洲天天综合| 激情亚洲网| 激情九九这里只有精品| 99九九视屏| 久久ER视频com| 五月丁香| 91porn一起草| 狠狠色噜噜狠狠| 被男人添B超爽视频| 99ri精品视频在线观看| 天天久| 五月丁香色婷婷基地| 久久99激情| 婷婷五月成人色综合| 天天色播| 26UUU| 亚洲精品色色| 亚洲中文丁香| 99er国产| 狠狠狠狠狠狠草| 99久热这里有精品| 久久婷婷五月综合激情国产| 丁香五月天av| www.五月瑟| 97婷婷五月天| 五月天激情综合| 美国十月色婷婷在线观看| WWW.17C亚洲精品| 久色| 永久精品| 国外亚洲成AV人片在线观看| 99久久婷婷国产综合精品电影| 婷婷中合| 丁香五月婷婷婷桃花影院| 综合精品99| 色婷婷狠狠久久综合五月| 激情五月天天| 免费看欧美成人A片无码| 在线观看免费人成视频无码| 97操碰人免费| enecarbon-materials.com污K127封锁请涟系@wip1688 | 色色色国产| 五月天丁香网| 五月婷婷成人w| 男女久久婷婷五月天| 美英法精品无码免费视频| 激情文学五月丁香六月婷婷| 欧美五月婷婷| 色婷婷丁香五月| 免费看成人AA片无码视频吃奶| 67194中文在线| 中文字幕性爱视频| 亚洲欧美成人在线| 亚州视频九九99| 久久这里有精品视频| 射久久丁香五月| 亚洲1区| 亚洲天堂婷婷丁香| 久久婷婷五月天激情| 97碰碰人人| 狠狠操天天操综合| 天天干天天插| 成人无码精品1区2区3区免费看| 影音先锋五月婷婷| 丁香五月网址| 丁香六月婷婷高清| 99色| 亚洲第一成人无码A片| 五月天婷久久| 超碰操网| 久久婷婷五月天激情唯美| 一级二级色大片| 九九久久精品| 99在线热视频| 先锋资源 996| 色婷婷在线播放| 国产成人综合亚洲| WWW久久久| 婷婷爱婷婷| 久99久热| 日韩啪啪自拍| 桃色激情婷婷伊人网| 激情九九六月激情免费视频| 八戒青柠影视剧在线观看| 99丁香五月婷婷在线| 伊人丁香六月婷婷| 久久亚洲天堂| 日本无码专区| 激情婷婷| 久久性爱视频| 中文字幕成人版| 久久九九怡红院| 国产精品爽爽久久久久久| 开心五月色婷婷综合开心网| 五月婷婷色综图片| 日日夜夜爽| 日本狠狠色| 9视频1在线| 丁香五月丁香伊人| 五月色色网| 日本99婷婷| 2020夜夜操天天爽| 婷婷免费视频| 丁香六月激情四射| 婷婷免费视频| 丁香啪啪中文字幕| 第四色色六月色综合| 思思热在线| 1024AV视频| 五月丁香激情婷婷综合字幕| 丁香婷婷基地| 色婷婷欧美| 婷婷爱五月| 男女激情久久| 天天操天爱综合| 精品人妻伦一二三区久久| 五月丁香激情四射综合| 五月天激情综合| 日本波多野结衣视频| 五月丁香在线精品| 亚洲亚洲人成综合网络| 99惹在线精品免费观看| 婷婷五月情| 亚洲在线资源| 成人超碰Av| 亚洲狠狠终合停停终合| 婷婷色日本| 天天日天天爽夜夜爽| www.99精品视频| 99热官网精品在线| 五月婷婷色色网址| 激情五月婷婷开心网| 人妻免费网站| 久久aaaa片一区二区| av中文字幕免费观看| 草婷婷在线| 九九在线热九九在线热99热| 综合网激情五月天| 久久艹 五月天| 99久热这里有精品| 777精品久无码人妻蜜桃| 国产日批视频免费播放| 亚洲精品又粗又大又爽A片| 99热这里只有精品国产免费| 这里只有精彩视频| 精品国产人人爱人人| 丁香五月久久| 亚洲六月婷| 丁香激情综合| 久久人妻情侣| 欧美成人精品A片免费一区99| 先锋男人99资源| 日韩乱轮AV| 婷婷丁香成人在线视频| 婷婷伊人久久无码色五月| 婷婷五月天熟妇| 91色综合久久| 99精品综合视频| 丁香五月最新地址| 日韩九九| 五月天成人手机在线视频| 人碰人人人玩91| 婷婷五月天激情文学| 五月婷婷婷| 久操人妻| 婷婷激情中文综合| 午夜天堂一区人妻| 深爱激情五月婷婷| 天天肏高清在线| 婷婷五月天激情五月天| 亚洲av成人一区二区电影在线| 开心五月天激情网| 激情色中文| 五月婷婷色在线| 亚洲美女网Va| 俺来也综合网精品一区| 五月天色软件| 婷婷五月激情图片| 九月婷婷丁香| 超级碰碰碰97免费| 99热资源在线| 深夜婷婷五月丁香| 色五月色情| 五月丁香色色| 狠狠色狠狠色综合日日91| 欧美激情伊人| 九九色综合网| 五月视频日本免费观看| 色爱综合五月| 丁香婷婷综合激情五月色,开心五月丁香花综合网,激情综合五月亚洲婷婷,五月天 | 超碰2021| 色五月婷婷影院| 色色色色色色色色色999| 五月天激情美女久久| 婷婷丁香色情五月天| 中文字幕在线观看视频www| 日韩成人中文| 婷婷在线精品| 亚洲夜夜操| 97热在线精品| 国产伦亲子伦亲子视频观看| 精品人妻在线| 思思99热这里只有精品6| 丁香五月色五月| 97夫妻超碰| 久久9精品视频| 99爱免费在线视频| 综合婷婷| 午夜成人在线免费视频| 大战熟女丰满人妻AV| 99精品视频免费观看| 99色看这里只有精品| 婷婷欧美激情| 亚洲99热| 99综合网| 激情婷婷网| 亚洲VA欧美VA| www.久操| 丁香六月婷婷综合| 五月丁香婷婷成人网| 色五月婷婷少妇人妻| 五月婷六月| 丁香六月天婷婷| 欧美日本日韩| av人人干| 久久婷婷色五月| 婷婷丁香77777| 婷婷五月色综合| 婷婷丁香大香蕉| 婷婷久久综合| 色婷婷狠狠| 亚洲 小说 欧美 激情 另类| 久久综合这里只有精品1 | 五月婷婷开心网| 婷婷色五月情| 色五月丁香一区在线| 综合色久| 五月婷婷av| 99亚洲精美视频在线观看| 岛国AAAV| www.wuyuetian啪啪| 五月婷婷天| 久久精品4| 成年人看Va免费视频| WWW.五月天9999| 色婷婷AAA| 青青草原亚洲天堂| 激情中文在线| 97五月天婷婷综合激情网| 99玖玖视频| 激情婷婷五月在线合集| www.丁香黄色五月天人与| 国产成人AV| 99在线精品免费视频| 九九AV| 五月丁香免费看| 大香蕉婷婷丁香天堂AV| 狠狠草在线观看| 天天摸天天日天天舔| 激情播丁香| 插插干干干色| 在线综合婷婷| 五月丁香色婷婷基地| 日在线V视频在线播放| 丁香六月天婷婷色| 欧美另类五月激情| 丁香五月婷婷激情视频播放| 97婷婷丁香五月| 久久精品永久免费| 天天爽夜夜爽| 欧美日本va| 五月花在线观看视频| 天天狠狠色| 淫荡综合网| 天天噪夜夜爽| 五月婷婷激清网| 新伍月婷婷| 99热这里只有精品86| 99综合视频| 91精品久久久久久久久| www.婷婷五月| 色五月激情综合网| 成人中文网| www.久久久久久久久久.com| www.色色com| 99热精品观看| 婷婷五月天在线看| 婷婷在线五月天观看| 天天爽夜夜爽夜夜爽精| 五月丁香无码视频| 日日操夜夜爽| 婷婷五月电影院| 五月色网| 日韩丁香涩| 亚洲五月天色色| 五月天婷婷免费| 狠狠操.com| 天天透天天摸天天舔| 丁香六月色婷婷| 综合另类视频| 精品99在线| 任你草| 色五月91| 无码免费人妻A片AAA毛片西瓜| 亚洲色五月天| 99热爆在线| 人妻五月天激情开心网| 99精品高潮| 亚洲欧美国产A片免费观看| 在线五月婷| 久久婷婷亚洲无码一起| 天天综合 99久久婷婷| 亚洲一区二区无遮挡A片| 色色五月婷婷| 99视频在线观看视频| 天天插综合| 色吧五月| 激情婷婷激情在线不卡| 久久久99久久| 中文网av| 开心五月激情网| 五月天久久色| 五月丁香六月激情综合| 久久av电影| 婷婷夜夜夜夜| 97色色色| 欧美性猛交AAAA片黑人 | 91婷婷五月丁香碰| 天天爽爽日日做做| 五月天激情亚洲| 综合伊人久久| 热热色色五月天婷婷| 精品成人在线观看| 五月丁香激情深爱婷婷| 婷婷午夜| 色欧美日| 丁香久久五月天视频在线观看| 天天夜夜操| 丁香五月婷婷五月| 欧美日韩国产一区二区| 色综合五月在线| 99热e| 九九色插| 九九热这里有精品23| 99啪99| 北条麻妃伊人| 九九综合久久丁香婷婷,开心激情综合网| 99乱视频| 无码少妇高潮喷水A片免费| 伊人久久婷| 91精品91久久久中77777| 丁香涩涩五月天| 激情综合网址| www.91AV.com| 69激情小说| 婷婷色五月天在线观看| 91碰超| 开心激情网五月| 日韩少妇内射免费播放| 综合激情五月天| 成人在线视频一区| 开心激情综合| 国产免费AV网站| 激情五月天婷婷五月天| 91大操| 五月丁香成人| 亚洲综合激情五月久久| 久久婷丁香五月| 婷婷五月天高清无码| 激情综合网激情五月婷婷| 凹凸7777操操操| 大香蕉九九| 99久久久久久久| 这里只有精品69| 26uuu日韩| 东京热免费视频网站| 色播婷婷五月天| 亚洲黄网AV| 桃色激情婷婷伊人网| 久久久久人妻| 激情五月婷黄版| 色九九综合| 9999三级片| 色色丁香激情五月| 影音先锋自拍网| 丁香婷婷六月天| 亚洲激情五月| 色婷婷综合网站| 久久停停超碰| 99热大香蕉| AV在线中文| 青青草原亚洲天堂| 五月婷激情| 午夜福利8055| 久久99网| 熟女啪啪视频| 97热这里精品在线视频| 97欧美在线| 亚洲狠狠干| 99超碰人人| 欧美激情综合色综合啪啪五月| 久久五月情| 五月丁香成人小说| 国产免费一区二区三区三州老师F1F1.CC| www.夜夜操| 97香蕉久久超级碰碰高清版| 久久综合五月天| 91 久热| 无码色色| 激情九九六月激情免费视频| 婷婷久久精品| 99久久婷婷| 天天插天天干| 激情综合色五月六月婷婷| 午夜精品久久久久久久爽| 99爱精品视频| 9婷婷内射| 国产成人av在线播放| 超碰av在线| 九九99久久| 亚洲五月天天| 日韩在线视频9色| 天天日天天干天天爽| 视频一二区| 亚洲久热| 国产一区男女| 久久国产高潮白浆免费观看99| 99九九视频精彩在线| 99天堂网最新| 久久HD| 狠狠草天天草| http:色情日本com| 五月婷婷综合久久| 国产9色在线/日韩| 婷婷久久综合| 亚洲第一第二网站| 色色九区| 日日天天干| 99热这里精| 久久婷婷丁香视频网| 日本婷久久| 九九人人操| 99ER热精品视频| 91无码高清| 99热无码精品| 丁香五月婷婷香| 自拍偷窥99热| 婷婷日日天天| 日本色久| 熟女人妻一区二区三区免费看| 五月天婷婷导航| 五月停亭久久电影| 婷婷伊人中文字幕| 99这里只有精品在线| 久久九九re热| 久久9视频欧美| 九九九九九九九热| 色婷婷A| 99亚洲精品| 噜噜色噜噜网| 国产亚洲精品人人| 超级碰碰99| 99riAv1国产在线观看| www,欧美干干干干干干| 碰97久久| 久久婷婷五月综合色丁香花| 狼人久草| 色久五月天| 99视频超级精品| 久久婷婷电影| 久久香蕉网| 色停停五月天| 国产伊人五月天| 丁香五月激情五月| 天天爽天天日| 激情综合一| 我爱宗和色| 2017狠狠干| 色五月天 丁香| 天天综合色| 五月婷在线播放| 色综合色综合色综合高潮| 任你擦免费视频| 亚洲AV无码电影| 丁香色六月婷婷| 亚艹艹| 综合在线丁香五月| 色播六月| 色婷婷91| 伊大人久久| 狠狠干综合| 中文字幕综合网| 色五婷婷在线视频| 色色丁香激情五月| 色播五月丁香| 亚洲色图81p| 色色图五月天| 丰满少妇猛烈A片免费看观看| 91婷婷在线| 色噜噜狠噜噜视频| 亚洲五月丁香综合网| WWW色色色COm| 人人搡人人| 丁香影院五月综合| 亚洲国产精品二二三三区| 婷婷五月综合体验看| 五月网激情| 免费在线a| 一级黄色片看看| 久久久av久av久片一区二区| 五月天色图| 泰州成人视频| 91精品无码| 九热视频在线精品15| 97五月天婷婷| 天天爱天天做天天日| 1024欧美日韩精品久久久| 五月婷婷香蕉| 国产成人精品一区二区三区视频 | 青青操日本摸摸看看| 99热在线观看| 国产成人网址| 成人短视频在线观看| 久久精品婷婷| 欧美人人操| 久久激情五月天| 久久激情天堂| 久久久久久久丁香五月天婷婷| 欧美日韩99| 99热超碰在线| 激情五月丁香五月| 久久五月天激情美女| 五月天激情四射| 99re99在线看| 九九熱最新視頻| 天天操天天爱天天日| 开心五月婷婷激情| 大香蕉久久伊人婷婷五月丁香| 日本综合久| 91九色国产| 九九综合色| 激情综合5| 熟女色专区| av在线超清中文| 九九这里有精品视频| 97色五月天| 思思热久久阴99| 99亚洲视频| 综合色播| 久久久久久久久久久久久久人妻视频| 五月丁香日本片| 日本丁香五月婷婷| 亚洲九九九九| 涩婷婷五月天| 五月天成人综合| 69色色视频| 色婷婷久久综合久色综| 91丨九色丨熟女丰满| 色激情五月| 成熟妇人A片免费看网站| 丁香操逼| 9精品视频在线| 激情av在线| 天色综合网| 综合激情五月丁香| 五月丁香天天| 热热久久99| 久久性操| www超碰| 97碰碰碰免费公开在线视频| 色婷狠狠| www,久久久| 婷婷六月丁香1| 综合一本道| 婷婷五月色天| 九九色综合| 九九香蕉网| 夜夜操天天干| 超碰在线免费观看日韩| 91操在线观看| 国产片天天爽夜夜爽| yazhouzonghesese| 99视频久久| 五月天停婷基地| 人人操AV| 婷婷久久欧美| 久操干| 美臀自射自家人妻| 午夜五月天| 九九热在线视频| 激情五月天丁香| 丰满少妇猛烈A片免费看观看| 婷婷六月天| 亚洲性受XXXX五月丁香| 五月天婷爱综合| 免费看成人747474九号视频在线观看| 色噜噜狠狠一区二区三区| 最近中文字幕大全免费版在线| 激情超碰网| 轮奸综合网| 五月天激情网开心网| 国产精品大香蕉| 99欧美精品99日本精品| 丁香婷婷九月| 婷婷无码视频| 停停色综合伊人| 99re热在线视频观看| 丁香五月电影| www,超碰| 久久婷婷五月天激情| 99久.| 熟女少妇内射日韩亚洲| 97久久人人| 淫水导航| 亚洲色五月天| 婷婷丁香综合| 人人干人人操人人摸人人做| 色九月婷婷丁香| 一级AV片| 91九色精品熟女内射| 五月丁香婷婷激情视频| 91Chinese在线| 永久天堂日本| www,色婷婷| 色综合久久天天综合网| 色色色无码| 国产精品人妻在线网址| 大香蕉院线| 婷婷五月天激情网| 五月丁香久久呀| 五月丁六月香av| 丁香五月AV| 99九九玖玖| 色吧五月婷婷| 久在线88综合| 丁香婷婷六月激情文学 | 久热 91| 99热 精品在线| 婷婷色激情网| 婷婷色操| 涩涩激情五月婷婷| 国产综合激情五月久久| 开心激情网在线| 色婷婷久久综| 亚洲狠狠干| 操操操B| 99er免费在线观看| 91chinese在线| 亚洲色夜| 五月丁花六月丁香综合| 99久视频| 丁香九月婷婷综合| 99精品视频在线观看| 丁香五月激情啪啪| 成人视频在线免费播放| 国产色色视频| 欧美成人AAA片一区国产精品| 五月婷婷五月天| 激情五月天色播| 黄色成人AV在线| 日日干日日色| 亚洲视频99| 久久久久久9热不雅视频| 色综合丁香| 丁香五月欧美色综合| 亚洲 欧洲 国产 伦综合| 丁香色五月婷婷91桃色| 日本强伦片中文字幕免费看| 79亚洲精品少妇| 狠狠综合久久| 九九碰九九爱97超碰| 国产精品久久久久久白浆色欲| caop视频| 色婷婷AV五月天| 蜜臀AV在线观看| 色狠狠伊人久久五月丁香| 狠狠综合网| 欧美婷婷六月丁香综合色连续高潮抽搐 | 九九热青草| 亚州日本欧州韩美高青高潮一| 色~性~乱~伦~噜| 99人人操人人操人人精| 久婷久婷| 秋霞A V毛片| 亚洲黄色影视| 五月丁香亚洲校园欧美| 九九热精品| 色色日韩| 天天做天天爱天天爽| 成人小说 五月天 婷婷| 青青草国产亚洲精品久久| 五月人妻婷婷| 激情五月成年| 欧美韩日AAA网站| 嫩草免费视频| 久久婷婷综合五月趴| 五月婷婷丁香网| 婷婷五月激情网| 狠狠久久婷| 开心激情站| 国产精品成av人在线视午夜片| 人人干人人操人人摸| 99久精品| 影音先锋色婷婷| 婷婷和五月天| 大香蕉人妻| 色五月婷婷五月天激情综合| 欧美综合激情| 国产成人+亚洲+欧洲| 婷婷五月性感| 五月婷婷五月丁香| 精品久久9| 天天日日夜夜| 99爱免费视频| 五月丁香毛片| 五月激情站| 五月丁香六月婷婷综合伊人| 久久亭亭电影| 成人网在线视频| 丁香婷婷综合激情五月色,开心五月丁香花综合网,激情综合五月亚洲婷婷,五月天 | 大香蕉99| 婷婷五月天改成什么了| 六月丁花香啪啪激情欧美| 激情开心五月亚洲| 丁香五月 性爱| www.henhenl| 91色九| 五月天婷婷色色| 五月天五月天成人网亭亭成人色网站| 操操精品| 婷婷性爱五月天| 天天干夜夜操A片| 日本在线观看aaa 99| 91九色国产|