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

ARTICLE DETAIL

資訊詳情

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

STM32F103C8T6串口IAP升級:Bootloader分區(qū)與跳轉避坑指南

STM32F103C8T6串口IAP升級:Bootloader分區(qū)與跳轉避坑指南 簡介面向STM32F103C8T6開發(fā)者的串口IAP升級固件源碼包完整解決單片機通過串口實現在線固件升級與跳轉執(zhí)行的需求適合需要掌握Bootloader原理或正在調試在線升級方案的嵌入式工程師也適合為儀器儀表、物聯網節(jié)點等設備增加遠程維護能力的項目參考。資源共430個文件、2.23MB以86個C源文件與86個頭文件構成主要邏輯另有匯編啟動文件、鏈接腳本以及uvproj、ewp等工程配置覆蓋從源碼修改、編譯鏈接到生成hex/bin固件的完整開發(fā)鏈條匯編入口與鏈接腳本便于分析啟動過程和內存布局說明文檔則可幫助快速理解代碼結構。包內基礎工程直接搭建了IAP升級環(huán)境按典型流程展示Flash分區(qū)規(guī)劃、串口通信協(xié)議與固件跳轉處理且保留較多可配置參數方便根據實際硬件或協(xié)議需求進行裁剪移植省去從零構建引導程序的繁瑣環(huán)節(jié)。該資源已有5148人學習下載對初學STM32在線升級或需要快速復現Bootloader方案的中高級開發(fā)者是一份實用價值較高的參考源碼包。1. 串口IAP升級STM32F103C8T6最反直覺的一次開發(fā)在 STM32F103C8T6 的項目里做串口 IAP 固件升級最反直覺的一點是決定升級過程能不能可靠完成的不是那幾行“接收串口數據、寫 Flash”的代碼而是 Bootloader 里兩個看起來不起眼的瞬間——上電后等多久再跳 App以及“升級請求”標志被放在哪個地址。這兩處沒想清楚設備在產線上燒好第一版時一切正常發(fā)到現場要通過串口升級時十次里有三次變磚。這個源碼包做的就是把 C8T6 的 64KB Flash 拆成 16KB Bootloader 和 48KB App用串口協(xié)議把新固件分包寫入 App 區(qū)校驗通過后跳轉執(zhí)行。適合剛接觸 IAP 的人照著完整流程手搓一遍也適合正在做量產設備、被現場升級穩(wěn)定性反復折磨的開發(fā)者對照排查。下面按我從拿到源碼到跑通、再到改出自己一版的順序來講。2. 整體設計與 Flash 分區(qū)Bootloader 和 App 怎么在 64KB Flash 里共存拿到 C8T6 的第一件事是把“Flash 有 64KB”這個數字忘掉。實際應用可用的只有 48KB因為前面 16KB 要劃給 Bootloader。很多人的 App 加了協(xié)議棧、日志和狀態(tài)機之后塞不進 48KB十有八九是在選型時沒做這個心理預期。IAP 不是把兩個程序隨便丟進 Flash而是先畫好地盤再寫代碼。2.1 雙區(qū)架構與內存規(guī)劃16KB Bootloader 48KB App源碼包里的分區(qū)方案很直接一張表就能說清區(qū)域起始地址大小存放內容Bootloader 區(qū)0x0800000016KBIAP 主程序、串口驅動、Flash 擦寫驅動App 區(qū)0x0800400048KB業(yè)務固件、App 中斷向量表參數頁0x08003C001KB升級請求標志、版本號記錄為什么要留 16KB 給 Bootloader而不是省到 8KB我用標準外設庫編譯過這個工程串口加 Flash 驅動加上協(xié)議解析編譯出來大約 6~9KB留 16KB 是給自己留后路。后面要加 CRC 校驗之外的加密、簽名代碼量會明顯膨脹如果把 Bootloader 壓縮到 4KB純寄存器操作確實能塞下但可讀性和可維護性都會變差。這里有個繞不開的硬件事實Cortex-M3 上電后從 Flash 起始地址取兩個字——第一個字是初始主堆棧指針 MSP第二個字是復位向量。Bootloader 的向量表必須在 0x08000000因為這是硬件固定的。而 App 的向量表本來也應在 0x08000000可那個位置被 Bootloader 占著App 只能把向量表挪到 0x08004000。麻煩在于 CPU 并不知道這個偏移必須通過 SCB-VTOR 告訴它。STM32F103 的 VTOR 在 0xE000ED08F1 全系列都有這個寄存器這點比某些 Cortex-M0 單片機要省事。2.2 啟動流程與跳轉條件升級標志位、串口窗口與跳轉判定整個啟動流程如果用文字描述是這樣的鏈路上電復位 → Bootloader 初始化時鐘和串口 → 讀取參數頁的升級請求標志 → 若標志有效清標志并直接進入升級等待模式 → 若標志無效等待約 300ms 的串口命令窗口 → 窗口內收到握手幀進入升級模式 → 窗口結束仍未收到命令跳轉到 App。為什么是“等約 300ms”而不是無限等現場升級要求上電盲操作設備一上電 Bootloader 先開一個短暫的升級窗口上位機只要能在這個窗口里發(fā)出握手幀就能搶占。窗口太短現場人員來不及窗口太長設備每次開機都要慢幾秒。300ms 是我在速度和成功率之間試出來的經驗值源碼包里也留了宏定義可以自己調。升級請求標志放在參數頁而不是放在 App 區(qū)尾部原因很實際App 運行時不能擦寫自己正在執(zhí)行的 Flash 頁。假如把標志寫在 App 區(qū)同一頁程序一邊從 Flash 取指令一邊擦寫那一頁輕則寫失敗重則 HardFault。所以 App 請求升級時是把標志寫給 Bootloader 區(qū)里獨立的一頁。核心代碼是這樣的#define PARA_FLAG_ADDR 0x08003C00 /* Bootloader區(qū)最后一頁1KB */ #define FLAG_MAGIC 0x5A5AA5A5 void app_request_upgrade(void) { uint32_t flags FLAG_MAGIC; FLASH_Unlock(); FLASH_ClearFlag(FLASH_FLAG_EOP | FLASH_FLAG_PGERR | FLASH_FLAG_WRPRTERR); FLASH_ErasePage(PARA_FLAG_ADDR); /* 先整頁擦除 */ FLASH_ProgramWord(PARA_FLAG_ADDR, flags); /* 寫入魔數 */ FLASH_Lock(); NVIC_SystemReset(); /* 軟復位進Bootloader */ }這段代碼關鍵在兩點擦除后寫入是標準流程不能省掉 ClearFlag寫完魔數后立刻軟復位讓 Bootloader 來決定接下來是升級還是正常跳轉App 自己不做升級流程的分發(fā)?,F場人員只要觸發(fā) App 里的這個函數設備重啟后就會自動停在升級等待狀態(tài)。Bootloader 啟動時的判斷同樣簡單if (*(volatile uint32_t *)PARA_FLAG_ADDR FLAG_MAGIC) { FLASH_ErasePage(PARA_FLAG_ADDR); /* 清掉請求標志防止下次重復誤入升級 */ iap_state IAP_STATE_UPGRADE; /* 進入升級等待模式 */ }清標志必須在跳轉升級邏輯之前完成否則升級過程中途斷電再上電會又一次進入升級模式反而把正常 App 擋住。這個順序我一開始寫反過結果現場出現“設備永遠停在升級等待App 起不來”的翻車原因就是標志沒被清掉。3. 串口升級協(xié)議與 Bootloader 核心代碼拆解一幀一幀把固件搬進 FlashBootloader 的本質是一個串口透傳寫入器上位機發(fā)一幀Bootloader 解析一幀、校驗一幀、寫一次 Flash。協(xié)議設計得不好升級過程就會變成一場對時鐘和運氣的賭博。這章我把協(xié)議幀、狀態(tài)機、Flash 操作和跳轉邏輯逐一拆開講。3.1 串口協(xié)議幀設計幀頭、命令字、長度與 CRC16 校驗源碼包里的協(xié)議幀格式很簡單但足夠防錯字節(jié)序字段長度說明0幀頭2 字節(jié)固定 0xAA 0x552命令字1 字節(jié)0x01 升級開始0x02 數據塊0x03 完成校驗0x04 跳轉 App3數據長度2 字節(jié)小端序payload 字節(jié)數不含幀頭和 CRC5Payload變長數據塊命令里是 offset(4 字節(jié)) 固件數據(最多 256 字節(jié))末尾CRC162 字節(jié)CRC16-MODBUS覆蓋數據長度和 Payload命令字是升級流程的骨架。0x01 升級開始命令里上位機告訴 Bootloader 固件總長度Bootloader 收到后擦除整個 App 區(qū)并回復 ACK0x02 數據塊命令承擔真正的搬磚工作每幀最多帶 256 字節(jié)數據0x03 完成校驗命令用于回讀 Flash 算 CRC0x04 才是真正觸發(fā)跳轉的那一下。串口接收我建議用狀態(tài)機而不是直接等一個“完整幀中斷”因為 STM32F103 的串口一次中斷只停在一個字節(jié)上數據是碎片化到達的。狀態(tài)機在串口中斷里逐字節(jié)喂最穩(wěn)妥typedef enum { ST_WAIT_HEAD1 0, ST_WAIT_HEAD2, ST_WAIT_CMD, ST_WAIT_LEN, ST_WAIT_PAYLOAD, ST_WAIT_CRC } RX_STATE; static RX_STATE rx_state ST_WAIT_HEAD1; static uint16_t payload_len 0; static uint16_t payload_idx 0; static uint16_t crc_idx 0; void IAP_RxHandler(uint8_t byte) { switch (rx_state) { case ST_WAIT_HEAD1: if (byte 0xAA) rx_state ST_WAIT_HEAD2; break; case ST_WAIT_HEAD2: rx_state (byte 0x55) ? ST_WAIT_CMD : ST_WAIT_HEAD1; break; case ST_WAIT_CMD: rx_frame.cmd byte; payload_len 0; payload_idx 0; crc_idx 0; rx_state ST_WAIT_LEN; break; case ST_WAIT_LEN: if (payload_idx 0) { payload_len byte; /* 長度低字節(jié)先到 */ payload_idx 1; } else { payload_len | (uint16_t)byte 8; /* 高字節(jié)拼出完整長度 */ payload_idx 0; rx_state ST_WAIT_PAYLOAD; } break; case ST_WAIT_PAYLOAD: rx_frame.payload[payload_idx] byte; if (payload_idx payload_len) { crc_idx 0; rx_state ST_WAIT_CRC; } break; case ST_WAIT_CRC: if (crc_idx 0) { rx_frame.crc byte; /* CRC 低字節(jié) */ crc_idx 1; } else { rx_frame.crc | (uint16_t)byte 8; IAP_OnFrameComplete(rx_frame); /* 一幀收齊 */ rx_state ST_WAIT_HEAD1; /* 回到幀頭狀態(tài) */ } break; default: rx_state ST_WAIT_HEAD1; break; } }狀態(tài)機的幾個參數值得說明payload_len 是兩字節(jié)小端所以要先收低字節(jié)再收高字節(jié)payload_idx 在這里實際是長度收齊后的數據計數實現時也可以單獨用一個計數變量邏輯更清楚任何一幀中間字節(jié)出錯狀態(tài)機都會回到 ST_WAIT_HEAD1下一幀能自動恢復不用重啟設備。幀收齊后進入分發(fā)性處理先把 CRC 校驗做掉再按命令字分發(fā)void IAP_OnFrameComplete(IAP_Frame *frame) { uint16_t calc_crc CRC16_Modbus((uint8_t *)frame-cmd, 3 frame-len); if (calc_crc ! frame-crc) { IAP_SendAck(AK_CRC_ERR); return; } switch (frame-cmd) { case CMD_UPGRADE_START: IAP_OnStart(frame); break; case CMD_UPGRADE_DATA: IAP_OnData(frame); break; case CMD_UPGRADE_FINISH: IAP_OnFinish(frame); break; case CMD_UPGRADE_JUMP: IAP_JumpToApp(); break; default: IAP_SendAck(AK_CMD_ERR); break; } }CRC 的覆蓋范圍是命令字 長度 Payload幀頭不參與計算。這是有意為之因為幀頭本身有 AA 55 做同步而 CRC 要保護的是真正影響數據的字段。源碼里用的是 CRC16-MODBUS初值 0xFFFF 多項式 0xA001實現只有幾行uint16_t CRC16_Modbus(uint8_t *buf, uint16_t len) { uint16_t crc 0xFFFF; for (uint16_t i 0; i len; i) { crc ^ buf[i]; for (uint8_t j 0; j 8; j) { if (crc 0x0001) crc (crc 1) ^ 0xA001; else crc 1; } } return crc; }上位機計算 CRC 時必須用同樣的多項式否則聯調時會出現“每一幀都回 CRC_ERR”的現象。這種問題排查起來特別像玄學其實是兩端 CRC 不一致。3.2 Flash 擦寫與存儲邏輯先整片擦除、再半字寫入、最后回讀校驗STM32F103 的 Flash 有一個特性寫入以半字16 位為單位擦除以頁為單位每頁 1KB。寫入前目標頁必須處于已擦除狀態(tài)否則寫入結果不確定。這直接決定了升級策略收到第一幀命令時不能邊收邊寫而是先把整個 App 區(qū)擦干凈。#define APP_BASE_ADDR 0x08004000 #define FLASH_PAGE_SIZE 1024 #define APP_TOTAL_SIZE 0xC000 /* 48KB */ static uint32_t write_offset 0; static uint8_t flash_started 0; void IAP_OnStart(IAP_Frame *frame) { uint32_t total_len *(uint32_t *)frame-payload[0]; if (total_len APP_TOTAL_SIZE) { IAP_SendAck(AK_LEN_ERR); return; } FLASH_Unlock(); FLASH_ClearFlag(FLASH_FLAG_EOP | FLASH_FLAG_PGERR | FLASH_FLAG_WRPRTERR); /* 整片擦除App區(qū)防止舊數據和殘留頁干擾 */ for (uint32_t addr APP_BASE_ADDR; addr APP_BASE_ADDR APP_TOTAL_SIZE; addr FLASH_PAGE_SIZE) { FLASH_ErasePage(addr); } write_offset 0; flash_started 1; IAP_SendAck(AK_OK); }整片擦除 48KB 共 48 頁按 HSI 8MHz 或 PLL 倍頻后的 CPU 時鐘算大約要幾百毫秒。所以上位機發(fā)完升級開始命令后不能立刻發(fā)數據必須等 Bootloader 回 ACK。這個等待關系在協(xié)議設計里要寫清楚否則上位機發(fā)得快數據幀會因為 Flash 還沒擦完而被忽略。數據塊寫入是每幀動作核心是把 payload 里的偏移量和數據取出來逐個半字寫入void IAP_OnData(IAP_Frame *frame) { uint32_t offset; uint8_t *data; uint16_t data_len; uint32_t target_addr; if (!flash_started) { IAP_SendAck(AK_NOT_STARTED); /* 沒收到升級開始命令直接拒絕 */ return; } offset *(uint32_t *)frame-payload[0]; /* 前4字節(jié)是目標偏移 */ data frame-payload[4]; data_len frame-len - 4; target_addr APP_BASE_ADDR offset; /* 越界檢查防住上位機發(fā)瘋 */ if ((target_addr data_len) (APP_BASE_ADDR APP_TOTAL_SIZE)) { IAP_SendAck(AK_ADDR_ERR); return; } /* 半字寫入data_len 確保是偶數 */ for (uint16_t i 0; i data_len; i 2) { uint16_t half_word data[i] | (data[i 1] 8); FLASH_ProgramHalfWord(target_addr i, half_word); } write_offset offset data_len; IAP_SendAck(AK_OK); }這里有兩個必須守住的約定offset 必須按 2 字節(jié)對齊data_len 必須是偶數。上位機在發(fā)送數據幀之前要把 bin 文件按 2 字節(jié)補齊最后不足 2 字節(jié)補 0xFF。如果上位機發(fā)來奇數長度的數據Bootloader 應該直接回錯誤而不是硬寫否則最后一次寫入會踩到未知地址。寫完后回 ACK 表示這一幀落盤上位機再發(fā)下一幀。升級完成的校驗比“寫入成功”更可靠的是“整片回讀再算 CRC”。FLASH_ProgramHalfWord 返回狀態(tài)位在某些操作異常時不代表數據真寫對了回讀是最后防線void IAP_OnFinish(IAP_Frame *frame) { uint32_t expect_crc *(uint32_t *)frame-payload[0]; uint32_t real_crc CRC32_Flash(APP_BASE_ADDR, app_total_len); if (real_crc expect_crc) { IAP_SendAck(AK_CRC_OK); } else { IAP_SendAck(AK_CRC_ERR); /* 不跳轉保留現場等上位機重傳 */ } }CRC32_Flash 是源碼包里提供的函數遍歷 App 區(qū)已寫入的字節(jié)計算 CRC32。比較失敗時不擦除、不跳轉等上位機重新發(fā)起升級。這比直接跳進一個損壞的 App 要安全得多。3.3 跳轉到 App 的代碼實現棧頂檢查、VTOR 切換與中斷屏蔽最后一步跳轉是 IAP 里最容易寫翻車的地方。跳轉的本質不是“跳”而是“把 CPU 的執(zhí)行環(huán)境完整換掉”換中斷向量表、換棧指針、換 PC 指針。typedef void (*IAP_JumpFunc)(void); void IAP_JumpToApp(void) { uint32_t app_sp; uint32_t app_pc; IAP_JumpFunc jump_func; app_sp *(volatile uint32_t *)APP_BASE_ADDR; app_pc *(volatile uint32_t *)(APP_BASE_ADDR 4); /* 棧頂值必須在RAM地址范圍內否則App區(qū)是空白或損壞 */ if ((app_sp 0x2FFE0000) ! 0x20000000) { return; } if ((app_pc 0xFFFFF000) 0) { return; } jump_func (IAP_JumpFunc)app_pc; /* 跳轉前徹底關中斷防止VTOR切換瞬間中斷亂入 */ __set_PRIMASK(1); SCB-VTOR APP_BASE_ADDR; /* 讓App找到自己的向量表 */ __set_MSP(app_sp); /* 換成App的初始棧指針 */ jump_func(); /* 跳到App復位向量 */ /* 如果走到這里說明App沒起來 */ __set_PRIMASK(0); }這個函數里有幾處細節(jié)決定生死。app_sp 是 App 向量表第一個字也就是 App 初始主堆棧指針跳轉前不換棧指針Bootloader 的棧調用鏈會繼續(xù)壓棧App 的 main 函數跑起來后??臻g被污染。__set_PRIMASK(1)在切換 VTOR 前關閉全部可屏蔽中斷避免串口中斷在向量表切換的瞬間來一下CPU 拿著新向量表去找舊中斷入口直接進 HardFault。跳轉前的兩次檢查能攔掉“App 區(qū)是空白 Flash”的情況空白 Flash 讀出來是 0xFFFFFFFF通不過 RAM 地址范圍判斷。4. 編譯配置與燒錄避坑讓 Bootloader 和 App 各就各位代碼寫完只是第一步真正讓這個工程跑起來的是兩個 Keil 工程的配置。這章講清楚怎么建兩個工程、怎么生成 bin、怎么用串口助手手搓一次升級最后給出我踩過的三個坑。4.1 兩套 Keil 工程的 IROM 配置與 bin 文件生成源碼包分了兩個 Keil 工程一個 Bootloader一個 App。各自的關鍵配置用一張表說清配置項Bootloader 工程App 工程IROM1 起始地址0x080000000x08004000IROM1 大小0x40000xC000是否設置 VTOR不需要設置偏移 0x4000燒錄方式ST-Link 寫入通過 Bootloader 串口升級App 工程里設置向量表偏移有兩種方式一種是在 main 函數里手動執(zhí)行SCB-VTOR 0x08004000;另一種是在 system_stm32f10x.c 里宏定義VECT_TAB_OFFSET 0x4000。我推薦用后一種因為 SystemInit 在 startup 文件里比 main 更早執(zhí)行向量表在 C 環(huán)境初始化之前就切好了更穩(wěn)。如果是手動方式注意別放在 main 的后面否則啟動早期來的中斷照樣會跑飛。生成 bin 文件是升級的前提Keil 的 After Build 命令行里加一句fromelf --bin -o $LL.bin #L$LL會自動展開成不帶擴展名的工程輸出路徑#L是鏈接后的映像文件。生成后把這顆 bin 交給上位機程序就能用于串口升級。注意工程路徑不要帶空格否則 fromelf 會把路徑拆成多個參數這是我實際遇到過的低級問題。4.2 用 Python 腳本模擬上位機手搓一遍完整升級流程在沒有現成上位機程序時用 Python 串口腳本就能聯調起來。核心是構造協(xié)議幀import serial import struct def crc16_modbus(data: bytes) - int: crc 0xFFFF for b in data: crc ^ b for _ in range(8): if crc 0x0001: crc (crc 1) ^ 0xA001 else: crc 1 return crc def make_frame(cmd: int, payload: bytes) - bytes: body bytes([cmd]) struct.pack(H, len(payload)) payload crc crc16_modbus(body) return b\xaa\x55 body struct.pack(H, crc)聯調時 BOOT0 保持低電平先用 ST-Link 燒 Bootloader然后只接 USB 轉串口 TTL打開串口后按這個順序跑發(fā)送升級開始幀payload 里是固件總長度等待 Bootloader 回 ACK分段讀取 bin 文件每段 256 字節(jié)前三字節(jié)是因為對齊要處理發(fā)數據幀并逐幀確認 ACK發(fā)完成校驗幀收到 CRC_OK 后發(fā)跳轉幀。第一次聯調建議用 9600 波特率雖然慢但容錯高。波特率越高現場線材和干擾對幀錯誤率的影響越大。源碼包里默認配置是 115200如果發(fā)現 CRC 錯誤率高先把波特率降下來再排查。4.3 避坑記錄變磚、Flash 寫入 HardFault、App 跑飛的三類排查經驗這一節(jié)記錄的是我實際踩過的三個坑每條都按現象、原因、解決展開。第一個坑是“升級中途斷電再上電設備變磚”。現象是升級到一半現場工人誤拔電源再上電后設備沒有任何反應App 起不來Bootloader 也沒響應。原因是寫 Flash 只擦除了一部分頁App 區(qū)里既有新數據又有殘留的舊數據程序還嘗試直接跳轉。解決方法是跳轉前做嚴格的棧頂檢查和 App 有效魔數檢查魔數在 App 工程編譯時固定在向量表后第 4 個字節(jié)位置Bootloader 跳轉前讀這個位置不是約定的值就絕不跳轉并且等待上位機重新升級。第二個坑是“FLASH_ProgramHalfWord 寫入時進 HardFault”。現象是寫入執(zhí)行到一半卡死調試器定位到 HardFault_Handler。原因有兩個目標頁沒擦除干凈或者寫地址不是半字對齊。我第一次寫 IAP 時邊收邊寫收到哪頁寫哪頁沒先整片擦除結果在舊數據頁上寫入直接觸發(fā)錯誤。解決方法是升級開始命令里整片擦除并在 IAP_OnData 里校驗 offset 是否為 2 的倍數、data_len 是否為偶數兩端約定數據補齊策略。第三個坑是“跳轉后 App 跑飛”?,F象是升級流程全部返回成功設備串口就是不工作調試器顯示停在了 HardFault_Handler。原因是 App 向量表偏移沒設。跳轉成功后App 的 main 還沒跑起來一個 SysTick 或串口中斷到達CPU 從 0x08000000 讀中斷向量讀到的是 Bootloader 的中斷處理函數地址入口對不上直接 HardFault。解決方式就是在 App 工程里設置 VECT_TAB_OFFSET 為 0x4000并在跳轉函數里先__set_PRIMASK(1)再切 VTOR。這類問題表現很像玄學但根因基本都是向量表偏移。5. 二次開發(fā)思路給串口 IAP 加上固件加密、版本回滾和生產驗證跑通基礎升級之后要考慮的是怎么讓這套東西更接近產品級。Flash 只有 64KB很多雕花功能做不了但有幾件務實的事值得做。5.1 固件加密與簽名從裸數據幀到加密幀裸 bin 文件被上位機直接抓走就能逆向出固件所以量產產品通常會做一層加密。我在二次開發(fā)時采用的思路是上位機把 bin 用 AES-128-CBC 加密密鑰硬編碼在 Bootloader 里升級時先傳加密數據Bootloader 收到一幀后先解密、再寫入 Flash。解密用軟件實現STM32F103 的主頻跑 AES 會慢一點但好在數據量不大48KB 的固件多花幾百毫秒可以接受。要注意的是密鑰放 Flash 里只能防外行不能防專業(yè)抄板。真要防篡改得上簽名校驗上位機對固件做 SHA256 摘要再用私鑰簽個名Bootloader 里放公鑰驗簽。驗簽通過才擦寫。這個項目里我把簽名設計成可選的Bootloader 編譯宏打開才啟用節(jié)省了不必要的時間開銷。5.2 版本回滾、斷點續(xù)傳與 BKP 記錄Flash 小的務實方案C8T6 的 64KB 放不下 A/B 雙系統(tǒng)的大回滾方案但可以實現小成本回滾升級前把當前運行中的 App 關鍵版本號記錄在備份寄存器里。STM32F103 的 BKP 寄存器在復位后不會丟失App 啟動時讀 BKP 里的版本號和當前固件版本比對如果發(fā)現版本回退或者寫失敗就主動請求重寫。斷點續(xù)傳比回滾更實用。因為串口升級最怕斷斷了要從頭傳。Bootloader 里記錄已經寫入的偏移量到 BKP再次上電時上位機可以直接從斷點續(xù)傳省掉整包重傳的時間。這個功能實現不復雜但要改協(xié)議在升級開始命令里帶上“上次寫入偏移”的查詢幀。5.3 出廠驗證的習慣比功能本身更值錢做完這些擴展有個動作是每次都必須做的把整個驗證腳本固化成出廠測試用例。上電不跳 App 的空白 Flash 測試、升級到一半斷電再上電的斷電測試、下載完成后斷電重啟的驗收測試這三條我每做一個 IAP 工程都會強制走一遍。源碼包能幫你跑通流程但這三次測試能幫你確定它在現場不會翻車。從那以后我每次做升級功能都堅持把這三步寫進測試清單一次都沒漏過希望幫到你。本文還有配套的精品資源點擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
亚洲高清在线se| 国产中文日韩欧美一区二区三区人妻丝袜美腿| 凹凸久久人人| 亚洲精品国产精品成人| 最新AV在线| 经典丝袜一区| 三级网站超变态精品| 国产动漫操逼视频| 久久xxxx| 日本在线播放不卡一区| 青娱乐日韩无码| 精品欧美А∨无码黑人大荫蒂 | 欧美91在线| 91亚洲狠狠色| 久久久久久少妇| 亚洲五区熟女| 欧美黑人与女人91~| 天天日天天插| 玖玖婷婷五月天| 午夜福利精品| 日韩欧美中文| 成人性爱全视频观看| 日韩精品中文字幕人妻| 久久久无码av精| 国产精品女生av| 日本熟女不卡视频| 啊啊啊啊网站| 国产精品久久久 | 亚洲天堂电影网99999| 欧美成人亚洲精品| 99www.bibizy香蕉资源国产一区二区三区高清| 日本丝袜美腿人妻九九| wwe 天天干.com| 亚洲天堂女优在线| 日韩伦理视频| 亚洲中文字幕乱码无码一区二区| 日韩激情视频| 亚av顶级裸体一区二区三区四区五区| 美女毛片999| 欧美在线啊啊啊 | 404操逼福利视频| 操www| 久久精品国产Aⅴ| 精品九九九九九九| 夜草网站| 国产精品久久久久无码AV会牛| 亚洲天堂一区二区久久| 激情五月天社区| 色色色色网站| 国产精品 午夜福利| 99在线视频播放| 亚洲欧洲无码一区夜| 日韩视频小说在线观看 | 在线观看不卡一区二区三区| 国产三级资源在线观看| 亚洲午夜福利视频| 中文字幕一区 二 区 三 四 五 区日 日 骚| 99久久综合| 用力操死我| yy少妇精品久久| 新怡红院| 亚洲欧洲日韩天堂av| 一本一道波多野毛片中文在线| 国产精品久久久久久久久AV大片| 久久香蕉国产传媒一区剧情天美| 欧美aⅴ99久久黑人专区| 啊啊啊好大好湿| 天堂av最新电影网| 天天看夜夜看日日干| 国产黄色小视频网站| 精品性爱一区二区| 久久国色天香香蕉| 97se亚洲| 欧美的性爱网站免费| 国产精品久久久久久无码红治院| 99熟女| 嗯嗯嗯,草死我| 亚洲。天堂。日本在线观看| 国产精品久久久啊| 九九久久一区二区三区| 99热这里只有精品18| 国产丝袜美女在线一区| 91精品大奶人妻| 色一射色一射| 欧美色图99| 国产无吗在线播放| 亚洲色堂免费视频| 亚洲少妇综合| 中文字幕av乱伦| 蜜臀久久久| 九九AV| 在线观看av区| 久久超碰98| 激情欧美97| 色伊人91| 后入式视频国产自| 欧美亚洲另类在线蜜桃| 天天夜夜久久| 日韩中文字幕国产| 10000部十八禁看电影| 亚洲国产精品成人无码久久久 | 亚洲天天天| 在线色导航| 欧美日韩丝袜 | 77777亚洲蜜臀精品久久综合蜜臀| 青娱乐手机日韩在线视频| 伊人超碰97| 国产女生在线| 亚洲熟女乱综合一区二区在线-...亚洲国产日韩欧美一区二区三区,久久久久久精 | 日韩专区数据列表-第3230页-精品国产一区二区三区香蕉 久久99熟女人妻中文字 | 97这里都是精品| 久久久久久九九九| 熟女乱伦二区| 蜜臀Av一区二区三区| 日韩AV无码网站| 亚洲熟妇极品| 少妇综合| 久久9精品视频| 九九九不卡| 午夜久久无码1000合集| 97丝袜亚洲在线播放| 成人一道本免费视频| 日本不卡高清免v欧美日韩在线观看| 97超级久久| 99碰碰| AV色五月天| 亚洲国产一区二区入口| 97伦乱| 黄片无码在线制服| 四虎精品亚洲| 久久精品72| 人人妻人人爽 97人人看碰人免费公开视频| 久久嫩草国产成人一区| AA级电影三区| 日韩专区久久久| 欧美东京热精品A∨| 久久熟女精品不卡一区| 久久色人体| 色吧5亚洲| 91色噜噜狠狠| 另类 日韩 熟女| 久久久999国产| 日本一本一区二区三区四区五区欧美日韩中文字幕 | 伊人网在线点播| 欧美一级色| 久久人妻熟女一区二区| 国产乱弄免费在线视频。 | 欧美专区第一页| 在线播放成人高清免费视频| 久久久久921| 亚洲欧洲国产综合av| 色网亚洲人| 欧美日韩情色一区二区| 影音先锋中文字幕日本好一区二区| 玖玖资源视频一区二区三区| 色综合中文字幕不卡| 成人免费看吃奶视频网站| 久久影视二区三区行押| 97色97好| 婷婷久草一区二区三区| 大香蕉免费乱伦视频| 久一区久久蜜桃| 国产丰满熟夫69mpp| 日韩乱插| 美女熟妇色| 一区二区三区男人的天堂| 欧美精品另类人妖xxxx| 国产精品岛国片在线观看| 欧美激情综合| 99在线精品观看视频中文| 九九热精品免费视频| 在线观看亚洲成人精品| 91 综合网| 蜜臀无码一区二区| 91精品成人| 成人欧美一区二区三区黑人一| 欧美人与动性人交a| 亚洲情色综合网| 大鸡吧尹人在线| 日韩色欲久久一二三四区| 亚洲国产天堂| 亚洲狠| 91国精产品| 亚洲中文人妻色| 91站街按摩店老熟女熟女| 26uuu成人影片| 啊啊啊啊免费视频| 久久精品无码不卡| 黑人粗大V S日韩女优视频| 成人五月香网在线| 91色艳| 亚洲春色激情小说| 丁香五月激情五月| av凤凰久久久| 激情小说五月天| 亚欧韩av| 成人在线永久| 婷婷激情一区二区三区俺也去| 国产成人精品亚洲日本| 欧日a| 欧美激情性久久久久久| 国产毛片毛片4p懂色| 久久久久久久| 亚洲激情片| 精品久| 久久9久| 污色区网站| 久久婷婷电影网| 超碰九7免费| 国产一区在线播放| 亚洲影院365| www.99色| 亚洲三区视频| 伊欧美综合视频| 干婷婷综合网| 亚州伊人色综台| 国产精品天美传媒| 少妇天堂网络| 亚洲性综合| 欧美女同在线| 男同专区一区二区三区在线| 被窝影院午夜看片无码| 熟女乱伦A| 国产精品呦一区二区三区| 国产欧美成人第一页在线观看| 一级二级三级黑人无码| 人人爱人人操人人性| av国产无码| 亚洲AV小说| 操香逼| 操曰本熟女| 99精品在线| 日韩99999| 亚洲最新Av| 日韩图区 偷拍| 最近的最新的中文字幕视频| 一区黄二区黄| 福利大香蕉| 婷婷爽人人婷婷爽视频| 人人看人人爰人人操| 综合五月婷婷亚洲一区| 激情五月天综合网| 久久人妇| 大象AV在线| 亚洲av综合色区图片亚洲| 国产呦精品一区二区三区下载| 色九区| 精品久久久久黄少妇| 日产123区精品免费观看| 蜜臀久久久99久久久久 | 日本女人久久久| 欧美日韩成人在线| 91爱做| 97碰久久| 人人插人人搞人人操| 精品久久久av| 丰满熟妇大乳做爰| 亚洲熟女性高潮久久久| 成人综合色网| 久久久久婷婷精品av电影| 欧美人妻少妇| 色噜噜狠狠色综合日日| 人妻天天爽夜夜爽2| 91熟女视频| 国产精品亚洲一区二区三区四区 | 欧美亚洲情色| 粉嫩国产精品久久粉嫩| 老司机天天操| 精品v1区| 黑人精品XXX一区一二区| 欧美性爱系列| 欧美激情久久久久| 亚洲欧美在线观看免费| 欧美亚洲高清不卡| 午夜福利国产欧美日韩夜夜| 久久天堂婷婷网| 亚洲人精品午夜不卡| 亚洲精品xxx| 内射中出日韩在线观看视频| 日韩97在线| 国产欧美一区激情交| 欧美 亚洲 91| 欧美强奸乱能| 狠狠干妹子| 精品亚洲黄色片 国产精品导航一区二区 | 久久人妇| 亚洲国产91精品一区二区久久| 黄色污污污污污污网站| 91天天综合日韩欧美| 99久久99九九99九九九| 91热| 四虎永久在线精品免费网址| 9色国产精品一区粉嫩| 国产成人亚洲精品自产在线 | 91操操| 99re28在线观看| 超碰在线国产| 中文字幕精品码亚洲| 丁香五月激情啪啪| 欧美综合天天| 综合天天网| 日本免费一级AAA大片器 | www.av在线视频| 日韩天天本| 国产精品无码在线| 台湾佬大香蕉| 清纯唯美激情四射| 午夜乱轮操逼视频免费看| 欧洲亚洲人妻无码中字久久三区四区| 亚洲阿v天堂无码z2018| 无卡一区=区| 99免费在线视频| 欧美激情专区| 欧美A√综合网| 国产1769在线| 青青色在线观看| 欧美狠狠操| 亚洲av综合色区无码一| 亚州色图欧美色图| 亚洲精品色| 99re国产精品视频| 老妇女91| 97在线无精品| 狼人综合婷婷激情四射 | 97中文热色| 强上我不卡卡| 日韩av在线播放不卡| 男人天堂新| 日本大香蕉| 国产一区二区啪啪视频| 天天综合91| 欧美 亚洲 综合 制服 另类| 天天弄天天操| 制度丝袜99| 久久久日本电影| 欧美97视频| 日本色婷婷| 18禁免费视频| 欧美亚洲中文| 99精品丰满人妻无码| 日韩美脚一区二区网站| 婷婷中文网| 天天做天天爱夜夜爽毛片试看| 加勒比人妻综合| 日韩精品99999| 97在线精品观看视频| 国产精品久久泡妞网站| 久操| 亚洲性少妇| 爆乳免费黄网站| 人人插人人搞人人操| 国产亚洲精品A在线观看下载| 欧美激情亚洲| 97国产伦理| 亚洲精品欧洲精品| 花野真衣| 中文字幕版| 日本色婷婷| 日韩av影片在线观看| A片大香蕉在线| 久久九色| 97香蕉网| 一起草高清无码| 99re视频在线播放青草| 亚洲中字慕不卡| 日韩一级二级三级免费看完整版国语版| 97超碰国产精品| 五月丁香激情啪啪| 狠狠五月天| 欧美日韩性爱视屏免费看了| 精品一区二区成人动漫| 人人考人人摸人人干| 國產尤物AV尤物在線觀看| 久久久久久电影| 久久免费99精品久久久久久| 色哟哟AⅤ| av网站国产主播在线| 女人天堂av在线播放| 国产精品96久久久久久| 国产激情视频一区区三区| 2020中文字幕在线观看| 婷婷涩嫩草鲁丝久久午夜精品| 超碰97男女| 国产区在线| 青青久久艹| 人妻丝袜一区二区三区在线| 日韩在线观看三级电影| 美国日韩黄片| 国产一区自拍欧美日韩| 国产亚洲日本精品在线| 女人爽到高潮潮喷18禁网站| 色五月婷婷在线| 98色网| 亚欧美天堂在线| 超碰97资源大奶| 久久99999| 亚洲人码13| 超碰吊日色| 久久二| 久久精品一区二区一8| 岛国A V在线免费看| 国产大学生口爆吞精合集| 伊欧美综合视频| 99热成人| 夜草欧美| 午夜欧美精品久久久| 久久东京热久久| 国产精品99精品视频网站| 国产A v无码专区| av凤凰久久久| 国产视频一区二区三区久久亚洲天堂| 久9久精品视频| 3级毛片一二| 中文字幕欧美日韩三级| 欧洲成人性爱视频| 超91综合网| 一区| 日少妇视频| 免费的很黄很污的全部视频| 天天综合色| 99操| 91亚洲影视| 国产操逼视频在线观看| 狠狠狠狠狠干| 色综合99999| 啊啊啊免费视频| 亚一综合久久久久久久久久| 精品久久久久久亚洲| 好舒服视频| 亚洲天堂欧美| 婷婷91| 中国熟女网站| 人人操人人干xxx| 亚洲AV免费在线| 好屌色综合| 91久久久亚洲| 成人资源中文字幕在线观看天天| 久湿久久| 丰满岳乱妇一区二区三区| 大香蕉97久久| 色97欧美| 大香蕉九九| 91爱看| 亚洲影院无码在线| 999日韩中文精品观看视频。| 亚洲精品黑丝| 凹凸久久人人| 大乔未久88一区| 欧美人与动性人交a| 日韩欧美视频青青| 偷偷人人精品女女久久| 亚洲一本大道中文字幕无码在线| 亚爽爽爽爽爽爽爽爽| 91处女在线观看| 99热这里是精品| 学生妹天天看| 亚洲一区二区性爱电影| 中文字幕精品三级久久久| 福利操逼| 日本最新1区2区3区| 岛国激情视频软件| 亚洲宗合网| 欧美午夜视频免费观看| 亚欧美综合网。| 久草视频观看视频在线| www.91欧美| 国产野战露脸在线播放| 欧美日韩青操| 怡红院一区二区熟女人妻| 无码操逼天堂| 国产精品一区二区黄片| 不卡视频一区蜜桃视频| 精品四五区| 囯产精品久久久久久久久久梁医生| 少妇高潮99p| 黄片www视频免费| 欧美中文字幕男人天堂久久精品| 国产91影院| 91jk色拍| 91小视频| 色综合天天爱去电影网| 热天堂一区二区| 日韩一区二区精彩视频| 少妇色综合| 立川理惠无码一区二区| 久久久久久九九九| 欧美一区二区成人一卡| 国产亚州高清国产拍精| 欧美色干| 91精品人妻一区二区-全集完整版免费正片国语-B02AV | 免费操逼91| 好好的日:com久久九九| 国模少妇一区二区三区| 丰满人妻一区二区三区免费 | 亚洲精品久久久久久久蜜桃臀| 丁香五月天婷婷姐| 国产成人欧美一区二区三区的国产| 日日干夜夜欢| 日韩亚洲美女一区久久| 国产日韩在线播放av| 97超色| oumeisetu综合| 北约熟女超碰| 日本媚薬中文字幕在线| 日韩精品三级片长长久久| 欧美性爱在线无码| 两女互慰AV高潮喷水在线观看| 九九九热精品| 亚洲性爱无码乱伦av| 久久九操在线观看| 人人操人人精品影片| 国产成人网址| 国产精品99精品视频网站| 亚洲熟女偷拍在线观看| 中出91| 国产精品爽爽v| 欧美日韩亚洲天堂| 亚洲偷91色| 东北黄色电影| 日本 欧美 国产一区| 中文?日韩?免费?精品| 很狠操| 亚洲 图片 欧美 色图| 精品人人插人人操| 久久黄色视频一区二区三区 | 中文字幕版| www.超碰在线| 人摸人人操人| 秋霞成人一级在线观看| 大香蕉欧美| 噜噜噜亚洲精| 91青青在线视频| 综合亚洲情色| 天美传媒一二三区永久网站| 91精品无码人妻系列| 都市久久精品激情亚洲| 黄色无码高清黄色无码网站| 花花AV导航| 偷窥自拍亚洲| 亚洲做性| 激情文学小说一区二区| 曰韩香蕉97| 天天内射| 超碰在线97国产| 欧美婷婷久久| 亚洲自拍一区夜夜操| 很黄很污的免费网站| 欧美日日网| 狠狠中文字幕| 天天操女人| 九九热精品在线| 青青国产精品在线| 中文字幕一二三区| 熟女中出视频| 亚洲情色在线| 丝袜亚洲91| 91男同| 中文一区二区| 97日韩欧美亚洲| 亚洲中文sv| 2017天天操| 久久男人的天堂| 天天射天天操天天干天天吃2018| 精品久久久av无码免费| 精品国产av一区二区三区四区入口| 精品综合久久久久久五月天| 中英熟女操女| 日韩av不卡在线看| 久久欧美性爱视频| 91色综| 国产视频一区二区三区久久亚洲天堂| 天天综合网91入口| 亚洲天天影视综合网| 天天插天天操天天摸天天射天天看| 裸体美女久久久| 色天使AV天堂| 无码人妻1727| 911av网站免费观看| 久久久久久久亚洲Av无码| 亚洲国产成人精品无码专区| 中文字幕成人| 有码人妻系列| 91网站18+| 91亚洲综合在线| 日韩欧美操逼xxx| 久久99午夜精品一区人妻| 久久色情| 国产AV天美| 人妻熟妇久草在线| 欧成人精品H无码| 国产精品露脸在线观看| 操人91| 熟女色图在线| 亚洲综合在线91| 激情小说图片亚洲首页| 青娱乐日韩无码| 久久久久久久久久久人妻| 久久综合久色欧美综合狠狠| 搡老女人老91二区| 亚洲国产精品无码AV在线| 成人看片网站| 国产精品一区二区后入| 欧美色就是色| 国产女生在线| A啊啊在线观看| 麻豆成人AV| 中日韩久久久| 超碰激情808| 久久精品操| 最新av网站在线观看| 婷婷综合五月天| 99re在线精品78| 免费精品无码一级毛片牛牛影视 | 综合色久欲| 久久精品 六十路 熟女 欧美| 717影院理论午夜伦八戒| 欧美曰韩国产精品| 久久久久9999| 婷婷五月天av| 国产中午字一暮区| 日日操丁香五月天| 亚洲视频,小说| 国产精品人妻无码久久久互動交流 | www欧美性爱| 亚洲欧美setu| 国产主播福利| 日韩美一区| 97超碰超| 激情五月婷婷综合| 干b网| 久久‘黄片视频| 嫩草影院永久在线制服丝袜| 97色伦97色伦国产欧美| 久久手机视直播| 色综91| 黑操B| 欧美成人性活片| 六月丁香网| 日逼97| 99热精品在线| 啪啪自拍九九综合| 欧美有码激情视频一区二区三区| 少妇的嫩逼图片| 国产激情综合| 我要色综合网| 岛国小电影| 97超碰人人模人人拍人人| 超碰日本97美女人妻人人玩人人爱| 超碰碰97资源站| 资源在线观一 二| 91成人18| 久久夜色一区二区| 亚洲国产欧美一区二区潘金莲| 91成人在线| 国产欧美精选自拍一区| 久久久精品久久| 日韩性爱高清免费视频| 极品色综合| 宅男91视频在线播放| 天天看精品动漫视频一区| 闷骚老熟女15P| 国产精品久久久久久照片| 九九九九九九九九九九九九九九九女| 黑人无码一区二区| 超碰人妻97| 男人的天堂2018.| 性暴力欧美猛交在线直播| 97精品国产精品免费观看| 午夜欧美女人操逼| 91亚洲综合在线| yazhousetuoumei| 五月丁香拍拍激情综合三级| 怡春院久久| 亚洲美女精品| 天天视频黄网站| 夜色91| 日日做夜狠狠爱欧美黑人| 蜜臀操逼黄色视频操的好爽| 好吊色综合| 色综合99999| 亚洲色婷婷| 岛国在线免费视频| 啊啊啊啊无码| 久操在97| 国产精品老熟女一区二区| 久久精品国产亚洲AV高清演员表| 99精品在线| 国产有码一区| 六十路日本| 久久精品福利影院| 久操国产在线| 日韩精品影视| 亚洲国产综合久久久性感熟妇| 国产精品一级特黄aaa大片在线观看| 久热伊人| 啊啊啊啊啊啊啊在线| 区日韩亚洲乱码av电影| 伊人久操| gogogo免费高清看中国国语| 亚洲中文字幕一区二区| 欧美熟妇亚洲版| 四虎影库国产精品免费| 日韩人妻一区二区精品| 欧美亚洲素人制服精品| 色悠久| 91美女视频直播| 韩日巨乳美女免费视频在线观看| 看看小穴| 另类视频在线| 在线观看中文av字幕| 久久久久久国产成人| 91丝袜美女视频| 男人天堂毛片| 97资源站久久| 欧洲精品久久| 香港日本韩国人妇99www.wccm20| 青青欧美在线| 9久超碰| 色婷婷丁香| 欧美劲爆视频一区二区| 青娱乐亚洲自拍| 国产亚洲精品精AV.| 亚洲啪啪综合?v一区综合精品区| 超碰久超碰久| 午夜噜噜噜| 久9爱精品| 亚洲欧美内射| 深夜激情| 天天干夜夜鈤| 啊啊啊啊免费视频| 亚洲av资源| 久久久久国色αv免费观看| 桑老女人九区| 久操视频这里只有精品| 九九热精品视频六| 日比av无码| 欧美亚洲特P| 亚洲毛片久久| 香蕉视频欧美一卡二卡| 国产精品操| 久久久久亚洲| 影音先锋每日最新资源在线观看| 久久双插| 操逼国产免费| ?亚洲伊人伊成久久人综合网| www国产天美久久久| 首页中文字幕中文字幕免费| 精品毛片久久久精品毛片| 综合自拍| 五月天伊人| 亚洲s在线观看| 久久av色| 久久久久久少妇| 久草色在线观看| 久9九综合在线| 亚洲熟妇一,二,三期| 日本黄大片在线观看视频| 久久综合国产精品国产| 亚洲成?V人片在线观看福利| 黄片直播三级黄片两女一男| 亚洲色色色| 三级片大波波| 尤物视频网 刘玥| 99re这里只有精品2| 草草草草视频| 国产成人精品必看| 亚洲欧美精品福利在线| 黄页大片在线观看| 欧美天堂亚洲电影院一区在线播放| 日日嗨AV一区二区夜夜| 婷婷性网| 操人人| 第一高清av中文字幕| 国产超碰国产97| 久久99草| 天天久久| 青青操综合网| 91无人区卡一卡二卡三乱码入口最新版:能让用户有更多选择的选择-经典说说-爱 | 亚洲精品视频在线播放| 99热色这里只有精品| 久草男人天堂| 91欧美亚洲| 亚洲五码一区二区三区| 日韩国语字幕| 欧美第二页午夜| 欧美激情激情xxxx欧美专区| 欧美性爱三区二区| 欧美三级一级| 国语精品av| 一级特黄aaa大片在线观看成人一级片在线观看| 色综合久| 超碰天天操| 97超碰超碰| 亚洲国产无码精品首页久久久| 欧美香蕉视xxx| 中文字幕乱妇免费视频| 亚洲无吗在线视频| 欧美熟妇精品黑人巨大一二三区| 久久久久久人| 国产女人极品高潮毛片| 图色综合网| 丰满人妻一区二区三区四区| 黄页视频网站野外| 玖玖蜜臀资源网| 亚洲毛片基地专区| 亚洲第一在线视频| 久久人妻无码毛片A片麻豆| 精品国产三级av韩国在线| 99热超碰在线| 一本一道久久综合久久| 国内毛片婷婷六月色| 丝袜综合| 四虎国产精品永久在线囯在线 | 亚洲中文字幕一区二区| 日本操BAV| 天综合网欧美| 欧美精品日韩久久久九| 国产久久日韩网站导航| 少妇久久| 超碰97精品在线| 夜夜躁狠狠躁日日躁av| 97福利视频| 婷婷10月天青娱乐| 日韩中文字幕在线视频观看| 国产精品在线一区二区| 青青伊人这里只有精品| 嗯嗯啊啊好大好爽| 成人麻豆av电影网站| 青娱乐大香蕉| 亚洲色图欧美色图日韩色图| 久久久久久九九九九-美女久久久久久久-成人AV | 国产无码久久高清| 97色插| 国产高清亚洲日韩一区| 青青11操操操操操操操操| 啪啪啪亚欧美视频| 亚洲,欧美,春色,另类| 久久久久久综合久久伊人蜜月| 99久久综合| 久久激情婷婷| 800zy一区二区| 干我久操| 夜夜操一区二区| 日本一区二区成人在线| 熟女91网| 五月激情综合网| 天天做天天爱| 狠狠热这里都是精品| 一级毛片久久久久久久女人18| 啊啊啊啊嗯嗯在线久久久| 久久精品亚洲成a人天堂| 日日AAvv| 殴美牲| 操B视频日韩无码| 亚洲自拍欧美色综合| 蜜桃av综合网发布| 欧州91高潮| 欧美激情片一区二区| 浪人综合网| 欧美se综合| 久九九九九九九热| 亚洲无码免费看| 亚洲色图片区| 久久久噜噜噜久久久| 国产高清精品一区二区三区毛片 | 亚洲一区操| 亚洲午夜蜜臀| 久草久热| 高清无码 国产精品| 亚洲黄色| 精品人妻一区二区乱码一区二区| 色综合av男人天堂| 最近二区三区视频大全| 中文字幕十五区| 久99视频| 中文字幕人成乱码熟女香港| 久草电影网| 久久综合中文国产| 操美女高潮抽搐白浆| 精品久久久av无码免费| 肉丝中文无码高清| 伊人久久国产免费观看视频| 91精品伊人久久久大香线蕉91| 久久超碰97| 天堂精品| 少妇与黑人高潮在线| 久操精品网| 性爱网站一区二区| 麻豆av一区二区| 超碰日韩美妻| 少妇被玩视频二三区| 国产精品视频精品一二| 伊人网青青| 久久无码精品| 伊人嫩草| 欧美色天堂网在线视频| 裸体美女免费看网站青草| 91在线视频免费播放| 男人的天堂 在线一区| 超碰 欧美| 亚洲欧美国产va在线| 亚洲人精品久久久喷水| 亚洲欧美日韩综合在线尤物| 免费黄色片。| A级国产欧美激情在线| 床戏久久久av一区二区麻豆| 91爱看| 亚洲限制级在线| 久久婷婷一区二| 欧美色婷婷| 亚洲欧洲网站免费观看| www.大香| 北约熟女超碰| 亚洲日韩精品久久久久一区壹牛| 天堂成人网| 99久久99九九99九九九| 黄站在线免费观看| 欧美国产操逼| 亚洲鸥美色图| 二三四区精品| 狠狠躁天天躁日日躁| 久久嫩草国产成人一区| 久都青青视频| 天天日B狠狠操| 日本三级久| 97WW精品| 成人AV素股で擦久久| 91久久久久久久久久久| 天天欧美欧美亚洲网| 五月天婷婷欧美三区| 久久99操天天日| 亚洲色天堂日韩中| 超碰亚洲欧美日韩无| 理论久久婷婷网 8| 丝袜熟女2P| 无码91| 日本九九久久99播| 精产国品一区二三产品| 欧美色图天堂网m| 日日橹狠狠爱欧美超碰| 九九热这里只有在线精品视 伊人草 成人菠萝蜜视频在线观看 | 天欧美在线| 熟女久久| 蜜臀久久99精品久久久久久婷婷| 亚洲久9| 97超碰人人操人人操| 国产真乱mangent| 亚洲国产欧美另类自拍| 免费A V在线播放| 717影院理论午夜伦八戒| 九九热AV| 日韩丝袜人妻AV| 玖玖爱一区在线| 亚洲综合一| 蜜屁av| 99无码狠狠久久| 91人妻精华帖| 蜜乳AV色欲AVAV无码| 99色热| 伊人色综合超碰| 欧美性综合| 青青五月天| 91P0RNY大屁股人妻| 亚洲AV无码AV吞精久久久久| 岛国片在线观看视频亚洲| 女优免费一区二区永久| 91精品人妻一区二区三区蜜桃臀| 97精品视频网站| 亚洲中文字幕av | 国产AV久久野战精品| 97干在线| 97青娱乐超碰久久| 日韩在线观看AV| 精品综合久久久久久五月天| 亚州免费啪啪视频| 99操| 一区二区国产视频在线观看| 亚洲天堂电影网99999| 亚洲无码视频免费在线观看网址!| 国产日产精品久久快鸭的功能介绍| 国产精品久久久三级无码| 久草久热| 日韩电影中文字幕| 亚洲黄色视频在线观看视频| 日本午夜精品理论片A级APP发布| 九九热免费国产视频婷婷伊人五月 | 中日韩久久久免费看| 国产在线观看一区二区三区| 国产欧美日韩精品中文| 91在线美女| 久久熟女嫩草成人片免费| 在线日韩日本亚洲国产| 国产精品久久伊人| 91欧美美女日韩国产婷婷| 亚洲综合伊人无码久久| 亚洲精品毛片在线观看| 东京热亚洲一区二区| 天堂涩涩| 日本性爱视频一级| AA丁香综合激情| 亚精品无码毛片一区二区三区| 中文字幕在线观| 日韩精品在线观看网站| aaa淫乱视频| 熟妇熟女一区二区三区| 国产成人精品日本视频| 日韩 欧美 校园一区| 亚洲精品人体| 99久久网站| 黄色片G G G| 操逼逼一区视频| 久操B网| 天天综合青苹果| 国产18精品亚洲精品| 中国熟女网站| 免费啪啪av| 超碰97资源中文字幕| 精品对白久久不卡| 99操视频| 黄页网站成人免费| 日本性爱少妇| 天天日美女的B| 国产高清精品一区二区三区毛片 | 丝袜美腿丝袜| 国产欧美亚洲精品a第2页| 欧美男人亚洲天堂| 亚洲精品尤物yw在线影院| 亚洲少妇诱惑| 激情黄色片在线观看| 久久久久久久少妇| 国产一区二区二区按摩精品啪视频| 五月天伊人| 国产美女自拍视频| 九九在线视频| 性91| 丝袜熟女2P| 操国产高清| 艾草av| 国产第12页| 一区二区视频你懂的| 伊人精品久久网站| 欧美 亚洲 另类 综合| 日逼视频日本| 中国的操老妇女| av婷婷色婷婷色六月| 亚洲天堂少妇| 狠狠干狠狠色| 久 久无码人妻AV| 天天综合在线4| 一中国女人毛片水真多| 精品十三区| 国产aⅴ无码片毛片一级网站| 免费97视频| 激情四射五月天| 2017亚洲天堂| 中文字幕免费观看| 国产www色在线观看| av橘色网站| 9久超碰| 亚洲国产av中文字幕久久 | 日韩欧美经典在线观看| 大香蕉人妻久久| 999久久久九| 日韩中文字幕人妻视频| 国产深喉| 日本不卡三级网在线播放| 男女激烈网站最新| 热热色AV| 国产馆极品诱惑| 欧美 日韩 亚洲 春色| 国产中文字幕在线观看| 嗯啊不要在线观看嗯啊| 亚欧毛片基地国产毛片基地| 国产人妻精品一区二区三区秋霞| 爱做久久久久久| 天天看天天日天天操| 不卡一区视频| 99精品在线| se01国产在线视频| 黑人性欧美| 97干天天| 婷婷性爱| 福利操逼| 天天伊人| 国产久久一区二区| 伊人AAA| 岛国毛片手机在线观看| 亚洲色图A| A男人的天堂| http://qxhbdz.com| 欧美日本国产日韩激情视频| 欧美 亚洲 第一页| 久热大香蕉网站| 人妻久热在线| 国产AV超爽| 大香蕉www.超碰| 后入式免费视频| 天操天操夜操夜月月年年操操| 欧美成人9797| 美女被艹尤物视频| 老熟女搡BBBB搡BBBB视频| 欧美激情精品| 超碰这里有精品| 97中文字幕色| 伊人成人中文字幕久久网| 成人免费福利在线观看| 天天射天天操天天干天天吃2018| 亚洲欧美激情小说| 成人精品一区二区三区| 青青青操| 天天干天天爽| 中文字幕亚韩| jk白丝没脱就开始啪啪| 国产高清自拍视频| 91色插| 青娱乐 青青青操 日逼| 99精品人人爽| 99re在线观看| 少妇蜜汁| 亚洲欧洲偷拍一区| 精品久久99| 91粉嫩萝控精品福利网站_精品影音先锋国 | 国产AV毛片| 中国一级特黄大片护士| 国产综合日韩伦理| 少妇久久久久久久久| 亚洲丝袜在线观看| 人妻人久久精品中文字幕| 中文字幕AV片| 噜噜噜久久亚洲精品色情| 色鬼在线综合| 台湾佬中文娱乐自偷自拍| 久久草草欧美精品| 五月丁香在线| 69精品人人人人| 日本久久天堂| 丁香色色网| 丁香婷婷久久| 色色色欧美| 人人操AV| 黑丝内射一区二区三区| 婷婷大香蕉| 91一区二区| 天天色综合图片| 天天欧美欧美亚洲网| 又黑又大又粗| 啊a一区在线| 天天摸天天碰天天添青青| 中文字幕日韩精品一区二区三区| 久久精品72| 91精品婷婷国产综合久久竹菊| 97超碰资源网| 久久精品高清无码一区| 久久机热| 97久久久久| 日本精品五区| 五月天我淫我色av| 2020中文在线一区二区三区| 日本操大逼| 日欧操屄视频|