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

ARTICLE DETAIL

資訊詳情

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

C51 Bootloader實(shí)戰(zhàn):分區(qū)、串口升級(jí)與雙備份回滾

C51 Bootloader實(shí)戰(zhàn):分區(qū)、串口升級(jí)與雙備份回滾 簡(jiǎn)介這份資源面向嵌入式開(kāi)發(fā)初學(xué)者與8051平臺(tái)工程師聚焦C51 Bootloader的完整實(shí)現(xiàn)幫助讀者理解系統(tǒng)啟動(dòng)、固件更新與程序跳轉(zhuǎn)的核心機(jī)制。壓縮包共18個(gè)文件約17KB以C源碼、A51匯編啟動(dòng)文件、Keil工程配置與備份文件為主另含頭文件、初始化腳本及編譯生成的二進(jìn)制程序覆蓋從復(fù)位初始化、串口數(shù)據(jù)傳輸、校驗(yàn)和驗(yàn)證到跳轉(zhuǎn)執(zhí)行的完整鏈路。其中BOOT.C承載引導(dǎo)核心邏輯EXT.C負(fù)責(zé)外部存儲(chǔ)器交互JUMPTAB.C實(shí)現(xiàn)跳轉(zhuǎn)表STARTUP.A51等匯編文件完成堆棧與中斷向量設(shè)置工程文件則保留編譯選項(xiàng)與調(diào)試配置。目前已有1533人學(xué)習(xí)下載適合希望掌握Bootloader分層結(jié)構(gòu)、異常處理與錯(cuò)誤恢復(fù)思路的開(kāi)發(fā)者參考也可作為Keil C51環(huán)境下固件升級(jí)方案的實(shí)踐模板。1. 從一次“變磚”說(shuō)起C51 Bootloader 到底解決什么問(wèn)題去年幫一個(gè)做工業(yè)控制的朋友救一塊板子板子用的是 STC8 系列單片機(jī)程序跑飛之后 ISP 下載口被用戶代碼占用了現(xiàn)場(chǎng)沒(méi)有專用編程器只能拆下來(lái)上編程座。那次之后我就下定決心凡是量產(chǎn)的 C51 板子必須留一條“后悔藥”通道——這就是 Bootloader 存在的意義。它本質(zhì)上是一段先于用戶程序運(yùn)行的小代碼負(fù)責(zé)判斷“要不要升級(jí)”“從哪拿新固件”“怎么把新固件寫進(jìn) Flash”寫完之后再跳轉(zhuǎn)到真正的應(yīng)用入口。對(duì) C51 這種資源緊張的平臺(tái)來(lái)說(shuō)Bootloader 不是可選項(xiàng)而是產(chǎn)品能不能遠(yuǎn)程維護(hù)、能不能現(xiàn)場(chǎng)救磚的分水嶺。適合誰(shuí)看手上有 8051 內(nèi)核板子、需要做串口升級(jí)或 OTA 的嵌入式工程師以及被“程序燒錯(cuò)就得拆機(jī)”折磨過(guò)的同行。下面我按自己實(shí)際落地的順序把選型、分區(qū)、通信、跳轉(zhuǎn)和踩坑一次講透。2. 存儲(chǔ)分區(qū)與中斷向量C51 Bootloader 的地基怎么打C51 的 Bootloader 和 ARM 平臺(tái)最大的區(qū)別在于它沒(méi)有統(tǒng)一的中斷向量表重定位機(jī)制也沒(méi)有現(xiàn)成的鏈接腳本概念。Keil C51 的代碼空間是 64KB 線性尋址中斷向量固定在低地址所以 Bootloader 和 App 誰(shuí)占低地址誰(shuí)就得負(fù)責(zé)“讓出”中斷。這一章先把分區(qū)和向量這兩件事講清楚不然后面跳轉(zhuǎn)一定翻車。2.1 為什么 Bootloader 必須放在 0x00008051 復(fù)位后 PC 強(qiáng)制指向 0x0000這是硬件行為改不了。所以 Bootloader 的復(fù)位入口必須在 0x0000中斷向量區(qū)0x0003、0x000B、0x0013 等也天然落在 Bootloader 的地址范圍內(nèi)。常見(jiàn)做法是把 Bootloader 放在 0x0000~0x0FFF4KBApp 從 0x1000 開(kāi)始。這樣分區(qū)的好處是Bootloader 永遠(yuǎn)占據(jù)復(fù)位和中斷入口App 即使跑飛只要復(fù)位就能回到 Bootloader 的判定邏輯。但這里有個(gè)關(guān)鍵矛盾App 自己也要用中斷。如果 App 的中斷向量還在 0x0003那中斷實(shí)際會(huì)跳進(jìn) Bootloader 的向量區(qū)。解決辦法有兩種我一般用第一種向量重映射Bootloader 在每個(gè)中斷向量處放一條跳轉(zhuǎn)指令跳到 App 對(duì)應(yīng)的中斷服務(wù)函數(shù)地址。App 編譯時(shí)把中斷函數(shù)地址固定到約定位置Bootloader 啟動(dòng)時(shí)讀取并填入跳轉(zhuǎn)。App 禁用中斷向量App 不使用標(biāo)準(zhǔn)中斷改用輪詢。這種方式簡(jiǎn)單但犧牲實(shí)時(shí)性只適合低速場(chǎng)景。下面是我常用的 Bootloader 向量跳轉(zhuǎn)寫法用匯編嵌入 C 文件// boot_vector.c // Bootloader 中斷向量跳轉(zhuǎn)表放在 0x0000 起始 // 每個(gè)向量 8 字節(jié)空間足夠放 LJMP #include reg52.h // App 中斷服務(wù)函數(shù)地址由 App 編譯后固定這里用宏占位 #define APP_TIMER0_ISR 0x2100 #define APP_UART_ISR 0x2200 #define APP_EXT0_ISR 0x2300 void boot_entry(void) __interrupt 0 __using 0 { // 復(fù)位入口實(shí)際由啟動(dòng)代碼跳到這里 // 這里只做最簡(jiǎn)初始化然后進(jìn)入主判定 }上面這段只是示意向量占位真正讓向量跳轉(zhuǎn)生效需要在 Bootloader 的啟動(dòng)匯編里顯式寫 LJMP。更穩(wěn)妥的做法是Bootloader 不實(shí)現(xiàn)任何中斷服務(wù)只保留向量地址App 編譯時(shí)把中斷函數(shù)放到固定地址Bootloader 啟動(dòng)時(shí)把 App 的向量地址寫入自己的向量表。參數(shù)上要注意Keil C51 的__interrupt編號(hào)和向量地址是綁定的改不了所以 App 的中斷函數(shù)必須用同樣的編號(hào)只是地址被重定位。2.2 分區(qū)大小怎么定4KB 還是 8KB分區(qū)大小直接決定 Bootloader 能塞多少功能。我做過(guò)統(tǒng)計(jì)一個(gè)帶串口協(xié)議解析、Flash 擦寫、CRC 校驗(yàn)、超時(shí)重試的 Bootloader用 Keil C51 編譯出來(lái)大約 3.2KB~3.8KB。如果再加個(gè)簡(jiǎn)易菜單或雙備份切換很容易超過(guò) 4KB。所以我的建議是功能集典型代碼量建議分區(qū)僅串口接收Flash寫1.5~2KB2KB加 CRC16超時(shí)重試2.5~3KB4KB加雙備份版本回滾4~5KB8KB加加密校驗(yàn)5~6KB8KB 或 12KB注意C51 的 Flash 擦寫是以扇區(qū)為單位的不同芯片扇區(qū)大小不一樣。比如某些 STC 芯片扇區(qū)是 512 字節(jié)而有些增強(qiáng)型 8051 是 1KB。分區(qū)起始地址必須對(duì)齊到扇區(qū)邊界否則擦除時(shí)會(huì)誤傷相鄰區(qū)域。我一般會(huì)在 Bootloader 里加一條編譯期斷言// 確保 App 起始地址按扇區(qū)對(duì)齊 #define FLASH_SECTOR_SIZE 512 #define APP_START_ADDR 0x1000 #if (APP_START_ADDR % FLASH_SECTOR_SIZE) ! 0 #error APP_START_ADDR not aligned to flash sector! #endif這條斷言看起來(lái)簡(jiǎn)單但能擋住很多“改地址改出玄學(xué)”的問(wèn)題。參數(shù)說(shuō)明FLASH_SECTOR_SIZE要查具體芯片手冊(cè)APP_START_ADDR要和 Keil 的 Code Range 設(shè)置一致否則編譯出來(lái)的 App 入口和 Bootloader 跳轉(zhuǎn)地址對(duì)不上現(xiàn)象就是跳過(guò)去直接死機(jī)。2.3 Keil 工程怎么配Code Range 與中斷向量偏移Bootloader 和 App 是兩個(gè)獨(dú)立工程App 工程必須把代碼起始地址改到分區(qū)地址。在 Keil 里操作路徑是Options for Target → Target → Code Range把起始地址從 0x0000 改成 0x1000。同時(shí)Off-chip Code memory 的起始地址也要對(duì)應(yīng)調(diào)整。這一步不做App 編譯出來(lái)還是從 0x0000 開(kāi)始和 Bootloader 完全重疊燒進(jìn)去必炸。還有一個(gè)容易忽略的點(diǎn)App 的啟動(dòng)代碼STARTUP.A51里會(huì)初始化中斷向量如果 App 用了中斷這些向量會(huì)被寫到 0x0003 等低地址覆蓋 Bootloader 的向量區(qū)。解決辦法是在 App 的STARTUP.A51里把中斷向量初始化關(guān)掉或者把向量地址改到 App 自己的區(qū)域。我一般直接在 App 里禁用標(biāo)準(zhǔn)中斷向量初始化改用 Bootloader 提供的跳轉(zhuǎn)機(jī)制。; App 的 STARTUP.A51 片段 ; 禁用中斷向量初始化避免覆蓋 Bootloader 向量區(qū) ; 將 IDATALEN 和 XDATALEN 保留只跳過(guò)向量寫入 ?C_STARTUP: ; 原有啟動(dòng)代碼... ; 注釋掉中斷向量初始化部分 ; MOV R0, #0x03 ; ...這段匯編不是讓讀者照抄而是說(shuō)明一個(gè)原則App 的啟動(dòng)代碼不能碰低地址向量區(qū)。具體改法要看芯片和編譯器版本但思路是一致的——把向量控制權(quán)留給 Bootloader。3. 串口通信協(xié)議與 Flash 寫入Bootloader 的雙手分區(qū)和向量搞定之后Bootloader 要干兩件事從串口收數(shù)據(jù)往 Flash 寫數(shù)據(jù)。這兩件事看起來(lái)簡(jiǎn)單但 C51 的串口沒(méi)有 DMAFlash 寫入又必須按扇區(qū)擦除中間任何一個(gè)環(huán)節(jié)沒(méi)處理好升級(jí)就會(huì)卡死。這一章把協(xié)議幀格式、接收狀態(tài)機(jī)、Flash 操作時(shí)序拆開(kāi)講。3.1 幀格式設(shè)計(jì)為什么我不用純文本協(xié)議很多教程用純文本協(xié)議做 Bootloader比如收到 START 就開(kāi)始升級(jí)。這種方式在實(shí)驗(yàn)室能用但現(xiàn)場(chǎng)干擾一大就翻車。我一般用二進(jìn)制幀帶幀頭、長(zhǎng)度、命令、數(shù)據(jù)和 CRC。幀格式如下字段長(zhǎng)度說(shuō)明幀頭2B固定 0xAA 0x55長(zhǎng)度1B數(shù)據(jù)段長(zhǎng)度不含幀頭幀尾命令1B0x01 握手0x02 數(shù)據(jù)0x03 結(jié)束0x04 重傳數(shù)據(jù)N B最大 128B減少 RAM 占用CRC162B從長(zhǎng)度到數(shù)據(jù)的校驗(yàn)幀尾1B固定 0x0D為什么數(shù)據(jù)段最大 128B因?yàn)?C51 的 RAM 通常只有 256B~1KBBootloader 還要留出??臻g和變量空間。128B 的緩沖區(qū)已經(jīng)占了不少再大就容易棧溢出。CRC16 用查表法還是計(jì)算法我一般用計(jì)算法省 Flash 空間速度對(duì) 8051 來(lái)說(shuō)也夠用。// 幀解析狀態(tài)機(jī)逐字節(jié)喂入 typedef enum { STATE_HEAD1, STATE_HEAD2, STATE_LEN, STATE_CMD, STATE_DATA, STATE_CRC1, STATE_CRC2 } rx_state_t; static rx_state_t state STATE_HEAD1; static uint8_t buf[128]; static uint8_t idx 0; static uint8_t len 0; static uint8_t cmd 0; void rx_byte(uint8_t byte) { switch (state) { case STATE_HEAD1: if (byte 0xAA) state STATE_HEAD2; break; case STATE_HEAD2: state (byte 0x55) ? STATE_LEN : STATE_HEAD1; break; case STATE_LEN: len byte; if (len 128) { state STATE_HEAD1; break; } idx 0; state STATE_CMD; break; case STATE_CMD: cmd byte; state (len 0) ? STATE_DATA : STATE_CRC1; break; case STATE_DATA: buf[idx] byte; if (idx len) state STATE_CRC1; break; case STATE_CRC1: crc_low byte; state STATE_CRC2; break; case STATE_CRC2: crc_high byte; // 校驗(yàn)并處理 if (check_crc(cmd, buf, len, crc_low, crc_high)) { handle_frame(cmd, buf, len); } state STATE_HEAD1; break; } }邏輯說(shuō)明狀態(tài)機(jī)逐字節(jié)推進(jìn)不阻塞主循環(huán)。參數(shù)說(shuō)明buf大小要和協(xié)議最大數(shù)據(jù)段一致len超過(guò) 128 直接丟棄防止緩沖區(qū)溢出。handle_frame里根據(jù)命令做握手、寫數(shù)據(jù)或結(jié)束升級(jí)。注意CRC 校驗(yàn)失敗時(shí)不要直接復(fù)位狀態(tài)機(jī)而是發(fā)一個(gè)重傳請(qǐng)求讓上位機(jī)重發(fā)當(dāng)前幀這樣能提高弱信號(hào)下的升級(jí)成功率。3.2 Flash 擦寫時(shí)序別在中斷里寫 FlashC51 的 Flash 寫入通常需要按扇區(qū)擦除而且擦寫期間 CPU 可能無(wú)法取指。不同芯片行為不一樣有的芯片擦寫時(shí) CPU 會(huì)暫停有的需要把代碼搬到 RAM 里執(zhí)行。我踩過(guò)最狠的一次坑是在串口中斷里直接調(diào)用 Flash 寫函數(shù)結(jié)果擦除期間中斷丟失上位機(jī)以為超時(shí)反復(fù)重發(fā)最后 Flash 被寫壞。正確做法是串口中斷只負(fù)責(zé)收字節(jié)和填緩沖區(qū)主循環(huán)檢測(cè)到完整幀后關(guān)中斷執(zhí)行 Flash 擦寫寫完再開(kāi)中斷。擦寫函數(shù)本身要放在 RAM 里執(zhí)行或者確認(rèn)芯片支持 Flash 擦寫期間取指。// Flash 擦寫函數(shù)放在 RAM 中執(zhí)行 // 使用 Keil 的 __ram 關(guān)鍵字或手動(dòng)拷貝到 RAM void flash_erase_sector(uint16_t addr) __ram { // 關(guān)中斷防止擦寫期間中斷丟失 EA 0; // 解鎖 Flash 控制寄存器 FLASH_CR 0x01; // 寫入扇區(qū)地址 FLASH_ADDR addr; // 觸發(fā)擦除 FLASH_CR | 0x02; // 等待完成 while (FLASH_CR 0x02); // 上鎖 FLASH_CR 0x00; EA 1; }參數(shù)說(shuō)明addr必須是扇區(qū)對(duì)齊地址FLASH_CR和FLASH_ADDR是芯片特定寄存器不同廠家名字不一樣。__ram關(guān)鍵字不是所有編譯器都支持如果不支持需要手動(dòng)把函數(shù)拷貝到 RAM 執(zhí)行。注意擦除前一定要確認(rèn)目標(biāo)地址在 App 分區(qū)內(nèi)別把 Bootloader 自己擦了那就真成磚了。3.3 升級(jí)流程握手、傳輸、校驗(yàn)、跳轉(zhuǎn)完整的升級(jí)流程我一般分四步握手上位機(jī)發(fā)握手幀Bootloader 回復(fù)版本號(hào)和分區(qū)信息。如果 App 已經(jīng)在運(yùn)行需要先發(fā)一個(gè)“進(jìn)入升級(jí)”命令Bootloader 收到后復(fù)位或跳回自身。傳輸上位機(jī)按幀發(fā)送固件數(shù)據(jù)每幀帶地址偏移。Bootloader 收到后先擦除對(duì)應(yīng)扇區(qū)再寫入。寫入失敗發(fā)重傳請(qǐng)求。校驗(yàn)全部發(fā)完后上位機(jī)發(fā)結(jié)束幀帶整包 CRC 或哈希。Bootloader 讀回 Flash 計(jì)算校驗(yàn)比對(duì)成功則標(biāo)記升級(jí)完成。跳轉(zhuǎn)校驗(yàn)通過(guò)后Bootloader 跳轉(zhuǎn)到 App 入口。跳轉(zhuǎn)前要關(guān)中斷、復(fù)位外設(shè)、設(shè)置棧指針。// 跳轉(zhuǎn)到 App 入口 void jump_to_app(uint16_t app_addr) { // 關(guān)總中斷 EA 0; // 關(guān)閉外設(shè)避免 App 初始化沖突 // 具體外設(shè)根據(jù)芯片而定 // 設(shè)置棧指針到 App 約定位置 SP *(uint8_t *)(app_addr 1); // 跳轉(zhuǎn) ((void (code *)(void))app_addr)(); }邏輯說(shuō)明跳轉(zhuǎn)前關(guān)中斷是必須的否則 App 還沒(méi)初始化完就來(lái)了中斷向量指向 Bootloader直接跑飛。參數(shù)說(shuō)明app_addr是 App 入口地址通常是分區(qū)起始地址加 3跳過(guò) LJMP 指令。棧指針設(shè)置要看 App 的約定有的 App 自己會(huì)初始化棧那就不用設(shè)。跳轉(zhuǎn)函數(shù)用函數(shù)指針實(shí)現(xiàn)注意 Keil C51 的函數(shù)指針要加code關(guān)鍵字否則會(huì)當(dāng)成 data 指針跳轉(zhuǎn)地址錯(cuò)誤。4. 避坑與排查那些讓我熬夜的 Bootloader 問(wèn)題Bootloader 的坑大多不在代碼邏輯而在芯片行為、編譯器設(shè)置和時(shí)序配合上。這一章列 5 條我實(shí)際踩過(guò)的坑每條按現(xiàn)象、原因、解決寫希望能幫你省幾個(gè)通宵。4.1 現(xiàn)象跳轉(zhuǎn)后死機(jī)復(fù)位才能恢復(fù)原因App 的中斷向量沒(méi)有正確重定位中斷發(fā)生時(shí) PC 跳回 Bootloader 的向量區(qū)但 Bootloader 已經(jīng)不再處理中斷導(dǎo)致跑飛。或者跳轉(zhuǎn)前沒(méi)有關(guān)中斷App 初始化過(guò)程中來(lái)了中斷。解決跳轉(zhuǎn)前執(zhí)行EA 0并確認(rèn) App 的中斷向量已經(jīng)重定位到 App 自己的區(qū)域。如果 App 不使用中斷在 App 啟動(dòng)代碼里徹底禁用中斷向量初始化。4.2 現(xiàn)象Flash 寫入后讀回?cái)?shù)據(jù)不一致原因Flash 擦除不徹底或者寫入時(shí)序不滿足芯片要求。有些芯片要求擦除后延時(shí)一段時(shí)間才能寫入有些要求寫入前先解鎖。解決查芯片手冊(cè)確認(rèn)擦寫時(shí)序在擦除和寫入之間加適當(dāng)延時(shí)。寫入后立即讀回校驗(yàn)不一致則重試。注意Flash 寫入次數(shù)有限重試次數(shù)不要太多一般 3 次足夠。4.3 現(xiàn)象串口接收丟幀升級(jí)到一半卡死原因串口中斷優(yōu)先級(jí)太低或者接收緩沖區(qū)太小高速傳輸時(shí)溢出。C51 的串口沒(méi)有硬件 FIFO全靠軟件緩沖。解決提高串口中斷優(yōu)先級(jí)增大接收緩沖區(qū)。如果 RAM 不夠用環(huán)形緩沖區(qū)邊收邊處理。另外上位機(jī)發(fā)送速率要匹配 Bootloader 的處理能力我一般用 9600 或 19200穩(wěn)定優(yōu)先。4.4 現(xiàn)象App 編譯出來(lái)大小超過(guò)分區(qū)燒錄后 Bootloader 被覆蓋原因Keil 的 Code Range 設(shè)置和 Bootloader 分區(qū)不一致或者 App 鏈接時(shí)沒(méi)有限制代碼范圍。解決在 App 工程的 Linker 設(shè)置里限制 Code Range并在編譯后檢查生成的 HEX 文件大小。我一般會(huì)在 Bootloader 里加一條檢查如果 App 大小超過(guò)分區(qū)拒絕跳轉(zhuǎn)并報(bào)錯(cuò)。4.5 現(xiàn)象升級(jí)完成后 App 運(yùn)行正常但重啟又回到 Bootloader原因Bootloader 的升級(jí)完成標(biāo)志沒(méi)有正確寫入或者標(biāo)志存儲(chǔ)位置被 App 擦除。常見(jiàn)做法是把標(biāo)志存在 Flash 的特定地址但 App 的擦寫操作可能覆蓋這個(gè)地址。解決把升級(jí)標(biāo)志存在獨(dú)立的 EEPROM 或 Flash 保留扇區(qū)App 不碰這個(gè)區(qū)域。Bootloader 每次啟動(dòng)先讀標(biāo)志決定是否跳轉(zhuǎn)。標(biāo)志寫入后要校驗(yàn)確保掉電不丟失。5. 進(jìn)階技巧雙備份與版本回滾的輕量實(shí)現(xiàn)單備份 Bootloader 最大的風(fēng)險(xiǎn)是升級(jí)過(guò)程中斷電App 被擦了一半既跑不了新固件也回不到舊固件。我在一個(gè)工業(yè)項(xiàng)目里被這個(gè)問(wèn)題坑過(guò)現(xiàn)場(chǎng)斷電導(dǎo)致 20 多塊板子返修。后來(lái)我加了一套輕量雙備份機(jī)制不需要外部存儲(chǔ)只用芯片內(nèi)部 Flash 的兩個(gè)分區(qū)。思路很簡(jiǎn)單把 App 區(qū)分成 A 區(qū)和 B 區(qū)Bootloader 記錄當(dāng)前運(yùn)行區(qū)和升級(jí)目標(biāo)區(qū)。升級(jí)時(shí)寫目標(biāo)區(qū)寫完后校驗(yàn)校驗(yàn)通過(guò)則切換運(yùn)行區(qū)失敗則保留原區(qū)。版本回滾就是切換回原區(qū)。具體實(shí)現(xiàn)區(qū)域地址范圍用途Bootloader0x0000~0x0FFF引導(dǎo)與升級(jí)邏輯標(biāo)志區(qū)0x1000~0x10FF當(dāng)前區(qū)、目標(biāo)區(qū)、版本號(hào)、CRCApp A0x1100~0x8FFF固件備份 AApp B0x9000~0xFFFF固件備份 B標(biāo)志區(qū)用一個(gè)扇區(qū)存一個(gè)結(jié)構(gòu)體帶 CRC 校驗(yàn)。每次升級(jí)前先寫標(biāo)志區(qū)標(biāo)記目標(biāo)區(qū)升級(jí)完成后更新當(dāng)前區(qū)。Bootloader 啟動(dòng)時(shí)讀標(biāo)志區(qū)決定跳轉(zhuǎn)到 A 還是 B。// 標(biāo)志區(qū)結(jié)構(gòu)體 typedef struct { uint8_t magic[4]; // 固定 0x42 0x4F 0x4F 0x54 uint8_t current; // 0A, 1B uint8_t target; // 0A, 1B uint16_t version; // 版本號(hào) uint16_t crc; // 結(jié)構(gòu)體 CRC } boot_flag_t; // 讀取標(biāo)志區(qū)校驗(yàn)失敗則使用默認(rèn)值 void load_flag(boot_flag_t *flag) { memcpy(flag, (void code *)FLAG_ADDR, sizeof(boot_flag_t)); if (flag-magic[0] ! 0x42 || flag-magic[1] ! 0x4F || flag-magic[2] ! 0x4F || flag-magic[3] ! 0x54 || calc_crc(flag, sizeof(boot_flag_t) - 2) ! flag-crc) { // 標(biāo)志區(qū)損壞使用默認(rèn)值 flag-current 0; flag-target 0; flag-version 0; } }參數(shù)說(shuō)明FLAG_ADDR是標(biāo)志區(qū)起始地址要和分區(qū)表一致。magic用于識(shí)別標(biāo)志區(qū)是否已初始化。crc校驗(yàn)整個(gè)結(jié)構(gòu)體防止掉電寫壞。注意標(biāo)志區(qū)寫入前要先擦除整個(gè)扇區(qū)寫入后立即讀回校驗(yàn)。如果標(biāo)志區(qū)損壞Bootloader 要能回退到默認(rèn)區(qū)不能直接死機(jī)。雙備份的代價(jià)是 Flash 利用率降低App 最大不能超過(guò)單個(gè)分區(qū)大小。但對(duì)工業(yè)產(chǎn)品來(lái)說(shuō)可靠性比空間更重要。我一般會(huì)在 Bootloader 里加一個(gè)“強(qiáng)制回滾”命令現(xiàn)場(chǎng)調(diào)試時(shí)可以通過(guò)串口切回舊版本不用拆機(jī)。從那以后我每次做 C51 Bootloader都會(huì)先把分區(qū)表、向量跳轉(zhuǎn)、Flash 時(shí)序這三件事在紙上畫一遍再動(dòng)手寫代碼。跳轉(zhuǎn)前關(guān)中斷、擦寫前查扇區(qū)、標(biāo)志區(qū)加 CRC這三個(gè)習(xí)慣幫我省了至少三次返修。希望幫到你。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
乱操9999| 无码免费一区二区三区啪啪| 熟妇熟女视频一区二区三区| 麻豆九九九| 日韩丨制服丨中文|在线| 色欲久久99精品久久| 色五月AV| 秋霞久久亚洲精品成人| 色优久久| 欧美性天天影视| 91日日| 免费网色网站| 久久超碰97| 午夜一区二区三区国产| 久久夜夜夜夜| 怡红院成人视频| 国产女大学生AV| 中文字幕日韩电影人妻| 色5月婷婷| 欧亚第一综合网| 夜夜国自区| 被窝影院午夜看片无码| 97自拍视频在线| 影音综合网| 精品美女少妇一区二区| 午夜啪啪片| 嗯嗯啊啊视频在线看| 久久骚少妇| 猛猛干| 日韩亚洲国产视频| 午夜精品久久久99| 加勒比综合| 成人免费福利在线观看| 色老汉色| 亚洲日韩电影| 91在线无码精品秘 软件| 精品十三区| 九九九九九精品视频| 九九九精品成人免费视频小说| 国产亚洲综合欧美一区| 夜夜骑天天燥| 人人爱人人乐人人操| 强奸a片网| 欧美色图成人网一区二区| 揉揉揉夜夜| jizzjizz欧美| 久久99草| 91AV入口| 亚洲蜜臀懂色| 欧美99999| 日韩性爱高清免费视频| 97视频在线视频| 亚洲国产成人7777| 91黑丝少妇| 日韩精品资源| 久久‘黄片视频| 狠插 制服 自拍| 麻豆久久一区二区三区| 91啪啪视频| 人澡逼| 无码137片内射在线影院| 99热精品在线观看| 9美女超碰在线免费观看| 日韩欧美综合激情| 91处女在线视频| 在线播放免费av福利片| 久久曰曰| 国产探花日韩援交| 白丝少妇一区二区| 久久久久久国产成人| 日韩另类色图| 久久国产乱子伦精品免费女,网站| 欧美在线观看综合国产| 我想要啊 啊 啊| 色嗨嗨在线| 欧美韩国你懂得在线 | 围产精品一区二区三区视频播放| 欧美综合色综合| 日韩精品在线观看网站| 后入福利| 玖玖97综合 | 伦在线97| 天堂中文日本在线观看| 欧美综色欧| 日本岛国黄色网址| 日本在线999| 色色操| 91美| 97天天摸天天碰| 精品亚洲| 九九热免费在线国产视频伊人五月| a片自拍直播视频| 后X久久| 三上悠亚在线毛片91| 麻豆黄四叶草网站| 狼狼色丁香久久婷婷综合五月| 综合欧美日韩在线| 99久久婷婷国产综合| 婷婷8月天青娱乐| 久久久婷婷婷| 麻豆天美91| 精品人人| 成人性爱AV在线免费观看| 人妻 制服 日韩 中文 在线| 欧美一区二区三区日韩| 一区二区影视| 99综合自拍| 久草国产在线视频| 亚洲做性| 国产一级久久久| 久久精品高清AV| 97伦乱| 狠狠色综合网| 综合激情二| 欧美性天天影院| 色色色色网站| 黑人娇小av在线播放| 九九成人精品| 亚洲国产欧美中日韩成人综合视频| 99re久久| 男人的天堂VA在线| 成人性爱电影一区二区| 国产精品点击进入在线影院高清| 试看60秒| 99热这里只有精| 国产A v无码专区| 男人的天堂久久| 少妇毛片久久| 欧美 亚洲 偷拍自拍| 国产91 丝袜在线播放00-百度| 国产精品 午夜福利| 操B在线观看| 综合第一页| 诱惑人妻欧美一区在线播放| 99碰碰| 在线观看一级α片刺激高潮视频| 97超色| 亚洲av在线免费观看| 一级做a爰片久久毛片图片| 人妻少妇精品无码专区二区密桃| 久久夜夜夜| 色婷婷狠狠| 成人无遮挡毛片免费看| 九九九九九精品视频| 亚洲无限观看| 亚洲日韩一区电影| 人人摸人人添人人操| 超碰九区| 大屁股熟女一区二区三区| 超碰超碰欧美| 91人妻Pr| 久久青青草原免费视频| 国内毛片热久久思思热| 中文三一区| 日本天天干天天搞一区| 蜜臀av在线播放一区二区三区| 乱伦av麻豆| 白丝AV| 91欧洲入口| 欧美日韩精品久久| 97国产精品国| 久久五月丁香| www.99色| 毛片电影一区二区三区| 1禁看欧美黄片免费看| 色色毛片| 人人操人人色网| 国产在线激情| nuu12国产麻豆精品| yazhousetuoumei| 五月婷婷色色| 操逼日韩无码 | 欧美性爱五月天| 又粗又长又爽在线观看| 午夜a成v人电影| 97超碰日韩| 天堂av最新电影网| 中文在线视频| 欧美日韩美女精品久草一区二区三区 | 任我爽在线视频免费观看| 操死我干死我| 九九九九九九九九九九九免费国产| 色婷婷电影网| 99ri在线视频| 五月丁香网站| 九九aV| 亚洲成人福利电影免费| 操逼操逼逼操操逼91| 自拍偷拍国产欧美日韩韩| 综合色一区三区二区| 亚洲第一视频 欧美风情 日韩| 吉川爱美亚洲二区在线| 麻豆国产成人精品| 91精品操美女| 久久久久九九九九九| 超碰97欧美日韩| 偷拍2020| 天天天操天天天爱| 九九九九九九九| 加勒比色综合| 久久粉色| 欧美一二三| 色妇综合网| 无人区高清电影免费观看一区二区三 www.qmcai2.com | 91美女视屏| 天天摸,夜夜摸| 激情五月天综合网| 这里只有精品视频| 亚洲成人一二三区| 日韩99神马视频播放| 久草色悠悠在线视频| 中文字日本乱码| 久久嫩草国产成人一区| 白丝少妇一区二区| 色欧洲97| 亚洲欧美天| 一二区在线观看视频| 午夜亚洲| 免费国产视频| www.久久制服糖| 亚洲导航深夜福利| 五月丁香影院| 青青草原人妻| 中文字日本乱码| 亚州日韩97| 91在线丝袜| 亚洲精品电影| 人人摸人人入| 性爱视频无打码在线观看| 不卡一区二区日本视频| 色婷婷丁香五月| 欧美亚洲综合色| 亚洲国产综合久久久性感熟妇| 97超碰逼| 91欧美丝袜| 91欧美www| 男人的天堂 在线一区| 一级性爱视频免费在线| 亚洲国产午夜真人一级片中文字幕精品黄网站 | 日本加勒比无码专区一二三| 亚州综合在线| 九九精品无码专区免费| 亚洲AV无码成人精品久久| 丁香五月成人| 日韩欧美水蜜桃人妻| 国产丁香精品露脸视频| 欧美色999| 国产一级不卡在线观看| 婷婷激情啪啪| 亚洲吊色| 葡萄牙性视频一二区 | 久久男女激情视频网站| 青娱乐亚洲热| 91视频综合在线| 九九九免费视频| 日本三级A片网站com| A片 AV一级在线播放观看免费 | 日韩av色图综合| 香蕉大久久久| 久久性生大片免费观看性| 亚洲成人福利电影免费| 97色插| 色网1| 女人天堂av在线播放| 亚洲一区二区三区中文字幕| 人人天天欧洲| 国产蜜臀在线| 久久久精品91八戒| 久久草草欧美精品| 欧美日韩97在线| 国产h小视频在线观看免费| 日本一区二区不卡精品| 国产天天骚| 2020天天色综合| 久久伊人最新网址视频| www…国产操逼| 综合网~91综合网| 夜色综合| 偷看洗澡一二三区美女| 欧美久久婷婷| 蜜臀久久99精品久久久久久-DVD原版全| 能在线播放的国产三级| 91老熟女逼| 欧美高清91| 八人操人人摸人人看| 婷婷伊人一区| 亚洲国产日韩精品久久久| 超碰成人公开| 一级黄碟在线观看| 九九九九精品| 五月天综合| 国产自产22区| 91午夜无码| 日韩精品人妻中文字幕有码午| 欧美综合中文| 99综合免费视频| 超碰久久精品| 国产探花精品在线| 97操在线| 精品视频免费在线一区| 97亚洲资源| 思思热一热婷婷热一热| 任你爽视频| 四虎在线观看网站| 白天啪啪晚上啪啪视频| 九一综合网| 老司机深夜18禁污污网站| 中文字幕日产av人| 97精| 九九久久首页| 久久精品一区二区三区四区五区| 91一区二区| 中文三一区| wwwcaobibi| 91国精产品| 婷婷去俺也去六月色| 在线97在线| 人人操人人舒服| 精品国产自在在线99| 麻豆精品一区二区三区四区免费观看| 伊人亚洲国产一成人久久精品,久久| 精品超碰色| 综合自拍| 久久国产精品视频| 亚洲激情久久| 不卡在线观看视频| 国产av白丝| 亚洲无992tv| 中文啪啪视频| 在线视频亚洲无码| 大香蕉综合| 国产福利电影| 天天摸天天舔天天操| 国产精品亚洲天堂网址| 午夜精品久久999热蜜桃介男人用| 天天弄天天操| 国产和美国毛片| 强奸乱伦日韩AV| 国产精品对白自产拍| 久久精品性| 麻豆av一区二区| 中文字幕啊啊啊在线观看视频| 蜜臀视频网站| 国产污视频麻豆传媒一区二区 | 理论久久婷婷网8| 日韩啪啪啪啪啪| av影片在线观看不卡| 久久精品免费| 人妻一区视频| 日产精品久久久一区二区| 天天综合精品| 日韩簧片免费看| 极品色电影院| 大香网伊人久久综合| 蜜臀一区二区三区亚洲最新章节在线观看 - 高清蜜臀一区二区三区亚洲全集播放 | 三级AV入口| 欧美 综合 亚洲| 一区二区三区视频在线观看免费| 99re久久| 久久久久久久久久久久黄色| 欧亚性爱视频免费看| 中国熟妇| 大香蕉在线视频重口味毛片在线| 国内毛片国产专区二| 91国产丝袜白虎| 日韩美女久久一区二区三区| 91社操逼| 69麻豆天美| 精品一久久久| 天天插天天操| 精品国产乱码| 亚洲欧美清纯| 午夜毛片高清免费不卡| 激情丁香五月婷婷| 国产又猛又粗又爽又黄| 日韩av电影网站| 国模一区二区三区| 国产 亚洲 丝袜 制服| 国产sv美女内射| 亚洲宗合电影| 午夜丁香婷婷| 热无码中文亚洲H一道本一区二区| 中文字幕一区二区三四五区日日骚| 午夜婷婷| 3d成人精品一区二区| 久久久日本电影| 欧美 亚洲 另类 综合| 激情五月婷婷| 99国产在线 精品 视频| 久草免费在线视频| 四虎在线免费视频| 暖暖精品二区三区观看| 十八禁啪啦拍视频无遮挡| 久久亚洲中文字幕视频| 五月天久久人妻| 午夜精品久久久久久久99热影院| 欧美九9 9 9| 26UUU欧美激情一区二区| 亚洲第一页色网| 亚洲永久AV无码精品秋霞| 99视频自拍| 天天日天天搞天天干| 91欧美网| 少妇特黄一区二区三区| 骚逼一区二区| 台湾佬激情综合| 久久草在线综合视频| 性videos欧美熟妇hdx| 精品人妻一区二区三区不卡断 | 国产成人+综合亚洲+天堂| 国产亚洲精品久久久久小| 97天天| 97草草| 综合天天网| 99re6久热只有精品6在线直播 | 精品人妻一区二区免费蜜桃| 香蕉综合网| 久久久久亚洲Aⅴ无码| 国产精品久久久久久高清无码免费看| 日韩在线电影| 天天操天天干美女网址导航| 美国三级日本三级久久99| 97久久超碰国产网站| 97超碰国产亚洲精品资源| 久久久 国产精品| 亚川综合视频| 成人av在线播放| 亚洲无码视频免费在线观看网址! J?P?NESEHD熟女熟妇伦 | 岛国大片国产| 五码视频在线观看| 日本在线观看网址| 又大又大又大又粗爽高潮观看 | 黄色小说亚洲| 嗯阿好爽好紧| 91人人看| 蜜臀AV一区二区三区激情综合| 99色色| 人妻中文在线| 中文字幕成人| 丁香激情网| 操逼日韩无码| 日韩精品一区二区三区色欲| 殴美大黄片| 八人操人人摸人人看| 午夜无遮挡男女啪啪视频| 日韩人妻一区二区| 日韩无码视频黄色| 人妻啪| 国产女同视频在线播放| 秋霞成人做爱| 91在线视频观看国产| 午夜呻吟欧美| 国产又爽又黄| 18精品一区| 国产成人亚洲精品自产在线 | 果冻传媒A片一二三区| 久久久久久裸体| 国产自偷| 91成人高清在线观看| 丝袜高跟澳门91视频| 久久久啊啊| 免费在线观看AV无码网站| 999久久久精品国产| 少妇六月天| 国产av白丝| 性性欧美| 伊人成人情色综合| 377p欧洲日本亚洲大胆| 日韩成人精品视频自拍| 亚洲中文字母在线播放| 丁香五月婷婷基地| 男人的天堂亚洲| 日本不卡卡一区| 欧洲射精91| 欲射影视| 毛片麻豆91糖心精品毛情片| 亚洲情色 自拍| 人人妻人人爽一区二区三区| 91w欧美| 人人搞人人插人人操| 人人看人人插| 亚洲最大的综合性av| 伊人五月天| 日本人体九九九九九九| 国厂麻豆77q4| 青娱乐 青青青操 日逼| 国产9区| 另类小说综合网| 日本高清有码网址视频| 97五月天| 刺激精品视频| 91老妇女| 国产精品又黄又猛又粗| 日本操嫩b网| 丁香婷婷色五月| 亚洲伊人久久精品狠狠在线| 亚洲伊人久久精品影院| 91宗合网| xxxx网站亚洲精品| 色婷婷成人| 欧美熟妇精品黑人巨大一二三区| 国产精品久久久久久夜夜夜夜| 国产美女自拍视频| Av手机版天堂网| 欧美黄色大香蕉一区二区| 嗯啊啊啊轻点视频| 久久久91福利姬| 国产精品久久久| 久草国产在线视频| 天美麻豆精品视频99| 欧美 日韩 婷婷 五月| 亚洲黄色电影| 亚洲图片日本AⅤ欧美在线| 婷婷色导航| 五十路熟女工口 | 人妻熟女一区二区| 操逼操逼操| 91在线精品| 成人影 天天操 亚洲| 久久久九九| 国产无码久久高清| 六十路日本| 有码色中文字幕在线观看| 久久大香蕉97| 无码天天操| 蜜桃久久综合视频| 天操天操夜操夜月月年年操操| 国产综合色精品在线观看| 每日更新AV| 精品国产污一区二区三区| 久久婷婷一区| 亚洲无吗在线视频| 日韩紧密久久| 密臀在线一区尤物| 91动漫操逼视频| 99热精品国产| 网友自拍第一页| 亚洲色欲天天人妻无码系列专区| 麻豆 亚洲 97| 富女玩鸭子一级毛片| 五月天大香蕉| 亚洲欧洲激情| 久久五十路熟女人妻| 成 人 影视 一区 二区 三区 四区| 5252色欧美在线男人的天堂| 国产aⅴ无码片毛片一级网站| 色鬼在线综合| 福利视频合集| 99在线免费视频| 乱操9999| 欧美少妇性爱网站| 97一区二压| 秋霞一级鲁丝片A片| 欧美日韩夜夜| 亚洲黄色| 狠狠干,狠狠操| 久久成人东京热人妻| 国产精品无套内谢| 亚洲精品蜜桃久久久久久久| 岛国在线免费视频| 一区,二区,三区网站| 91美女视频在线观看| 丁香激情网| 日韩精品啪啪啪| 2020国产精品| 日本久久久久久久久久| 国产精选三级在线观看| 综合网亚洲1| 亚洲成人福利电影免费 | Sekablack无码一区| 精品一区96| 91 欧美| 亚洲色人妻综合| 久久东京热久久| 亚洲一区二区麻豆影院| 色妺妺AⅤ| 91国产精品在线看| 五十路熟女人妻一区二区三区四区五| 亚洲麻豆精品二区三区| 亚洲不雅视频1区二区| 久久国产视频性吧 | 大香蕉一人在线| 国产成人无码啪| 欧美韩日精品资源| 一个人免费HD91视频| 精品久操| 99这里有精品视频| 91人妻少妇| 91丝袜美女| 国产无吗在线播放| 麻豆一区二区三区精品| 国模无码一区二区三区在线| 狠狠97| 色婷婷激情| 91天美| 性欧美体内射精| 黄片视频,下载| 欧美在线中M| 极品白嫩美女白浆成人福利在线看| 亚洲天堂少妇| 中文字幕在线播放2中文字幕在线观看2| 密臀视频三区免费网站| 99国产在线绯色一区| 日韩免费在线视频观看| 欧美在线|亚洲| 婷婷久久五月天| 香蕉欧美| 国产亚洲日本| 亚洲欧洲综合视频在线| 亚洲无 码A片在线观看麻豆| 伊人精品视频| 偷窥自拍A片| 99av| 丝袜美腿校园春色| 亚洲经典啪啪| 免费a v| 亚洲欧美精品久| 亚洲操人| 亚洲无码电影久久久| 亚州欧美一区| 91大学精品激情戏| 91精品久久久| 91N综合网| 亚洲图片欧美制度| 黄色视频特级毛片| 久久夜夜| 骚人妻少妇视频| 99热精品在线观看| 日韩欧美成人午夜福利| 久久精品国产亚洲粉嫩| 国产精品午夜成人福利| 五月丁香激情综合| 欧美日韩性爱电影在线| 欧美日韩制服| 久久国模av| 五月丁香网站| 亚洲字幕一区二区| 淫荡网址| 欧美第五页| 久久亚州高清| www.久久99| 成人av影院在线观看| 99国产女人| 大香蕉琪琪日本女优不卡| 精品丰满人妻一区二区三区免费观| 岛国视频一二三区| 国产精品九九九| 日韩成人人妻网站| 97国产天堂岛| 欧洲无码一区二区| 欧美精品自慰系列寂寞少妇| 国产隔壁老王影院在线| 天天肏天天干| 久久青娱乐| 美女黑人91神马| 久久久亚洲精品电影免费看| 婷婷色播婷婷| 伊人网综合在线视频| 国产午夜精品理论片一二三区区 | 色婷婷基地| 欧美精品成人在线播放| 久久永久无码人妻视频| 欧美综合色,www| 天天天操天天天爱| 美女AV一区二区| 无码一区二区三区四区五区六区七区八区九区十区视频 | 日韩三级在线观看网站| 欧美精品黑人猛交高潮| 亚洲第一男人天堂| 久久精品国产久精国产| 一区二区 电影 亚洲| 在线女人91| 激情文学网伊人| 激情五月天视频| 欧日a| 蜜桃视频成a人v在线| 欧美亚洲国产91在线| 久久精品国产亚洲5555| 99999精品| 久久综合97| 婷婷10月天青娱乐| 中文字幕av片| 欧美精品欧美精品系列| 青青草玖玖爱| 亚洲污污网站| 91少妇香蕉久久精品| 99xav| 熟女欧美日韩综合婷婷| 天天天乱色综合全| 欧美精品丝袜久久久中文字幕| 亚洲欧洲偷拍一区| 亚洲精品视频在线播放| 曰韩av中文字幕专区| 欧美人妻精品一区二区| 黄片aaaaa一区| 91影库| 亚洲好看强奸乱伦| 囯产精品久久久久久久久久梁医生| 久久9久| 日韩精品-原创伙伴| 综合亚洲欧美| 91久热| 天天色综合影视网| 国产怡红院在线| 久久久久久久久女黄| 九9精品| 1204人成网站色www| 四虎精品一区| 亚洲国产97在线精品一区| 国产精品97超碰| 99热在线只有精品| 婷婷性网| 五十路熟女人妻一区二区在线观看| 9久热这里只有精品| 综合 亚洲 欧美| 日韩射精| 91精品无码久久久久久久| 国产精品内射婷婷一级二| 亚洲另类欧美精品| 国产成人无码a| 91久久婷婷| 99999精品| 久久伊人最新网址视频| 人人看人人插| 亚洲自拍天堂| 欧亚在线视频| 色婷婷小说| 麻豆黄色五月天| 亚洲丝袜天堂| 亚洲熟久久| 天操天操夜操夜月月年年操操| 日韩精品啪啪啪| 热热色91| 懂色中文一区二区三区| 无遮挡一级毛片视频免费的| 91强热人妻| 91人人臊| 一二三四日本视频高清| 夜夜操av亚洲一区二区| 走光一区92下载| 日本97久久| 中欧人妻丝袜中文字幕| 亚洲阿v天堂在线| 国产精品麻豆视频网站| 亚洲少妇中文字幕网址| 920日本午夜免费| av婷婷色网| 伊人久久亚洲色欲综合网站 | 女人爽到高潮潮喷18禁网站| 伊人久久婷婷| 日韩一级二级在线| 国产精品天干天干综合网麻豆 | 天天综合网亚洲综合网| 97国产人人| 伊人一区二区在线播放| 久草视频分类在线| 99热超碰| 中文子幕一二三| 啪啪自拍九九综合| 九九综合久久中文字幕| 国产精品免费视频不卡| 欧美综合色站| 亚洲人人夜夜澡人人爽| 一区二区乱码福利| 成人 日本A片无码8888| 欧美淫穴| 久热久| 日少妇视频| 无码人妻精品一区二区中文| 人妻久久久| 久草精品国产蜜臀 | 久久精品| 国产高清吃奶免费视频网站| 久久精彩免费视频| 91嫩草欧美| 亚洲国产97在线精品一区| 操婢日韩| www久久久| 久久久久久久六六| 99无码| 日本理论在线| 精品国产一区二区三区久久久蜜臀 | 国产av强奸美女| 夜夜操狠狠操| 日韩人妻精品| 2021国产成人精品久久| 国产免费久久久久| 欧美日韩情色一区二区| 啊啊啊轻点在线观看| 97视频免费在线观看| 久久一级无码精品毛片6| 不卡九肏| 99热这里都是精品| 国产亚洲色婷婷久久99精品91葵花宝典 | 人人做人人妻人人夜视频| 操美女人妻| 一二三区精品视频| 婷婷亚洲五月***久久| 麻豆久久久久久久久丝袜| 成人小电影网站tex| 国产日韩手机视频在线| 国产丝袜美女诱惑| 久久久久99精品成人片蜜臀| 国产精品久久99日日| 成人精品视频一区二区| 午夜传煤十二区精品| 在免费jIzzjIzz在线视频| 宗合情欲网| 3PAV乱伦视频| 97久久超碰| 9997se| 成人自拍三级在线观看| 91扒丝袜综合在线| 久久超碰日韩精品| 婷婷五月天网| 欧美另类天堂| 日本精品不卡一二三区| 午夜无码熟妇丰满人妻| 情趣丝袜无码操逼视频| 岛国AV一区二区电影| 九久9精品| 精品色色| 激情另类激情| 十八禁啪啦拍视频无遮挡| 少妇内射www在线观看视频 | 人人弄人人摸| 九九久久一区二区三区| 爱逼综合| 天美av在线观看| 国产精品久久久亚洲第一牛牛_在线观看| 秋霞一级视频在线观看免费| 老熟女中文字幕高清| 久久东京伊人一本到鬼色| 97免费视频网| 黄色片一区二区三区四区五区| 亚洲色欲一区二区三区| 超碰在线人妻中文字幕| 99www.bibizy香蕉资源国产一区二区三区高清 | 久久线上视频免费看| 亚洲日韩成人性爱视频| 中文字幕一二三av| 麻豆啪啪啪视频| 一二区在线观看视频| 色爱三区| 91在线观看,天天综合| 熟女被操视频网址| 日韩九九九| 成人5码视频| 春色综合免费| 欧美久热| 一区二区三区四区理论片| 欧洲天天在线| 91久久青青草原精品| 亚洲91亚洲| 国产精品嫩草影院午夜两性| 天天摸夜夜操视频| 约操熟妇| 日本黄色精品| 亚洲精品丝袜-不卡成人免费……| 男人久久天堂| 色爱综合网欧美| 91在线秘 男同| 亚洲精品黑丝| 在线国产一区二区av| 色爱天堂| 亚洲 综合 欧美| 一级人妻性爱视频| 九七毛片九九毛片| 人妻激情偷乱视三区频一区二区| 超碰97COm中文| 天天综合,91综合永久| 欧美性爱综合,免费| 大奶尤物鲍汁淫荡欧美视频粉嫩夜夜骚 | 欧美亚洲情色| 亚洲狼狼干综合1| 一区不卡在线观看av| 精品国产综合久久福利,热99这里有精品综合久久,99热这里只有免费国产精品,精 | 91伊人久久在线| 欧美麻豆成人同性GⅤ在线| 夜夜爽夜夜操| 四季AV综合网址| 午夜福利免费精品视频| 欧美色爱综合| 懂色综合久久久| 交换娇妻呻吟声不停中文字幕| 狠狠躁天天躁日日躁97| 午夜免费视频1000| 色视频蜜乳| 骚日日av| 九色 人妻 大香蕉| 五码视频在线观看| 日本2020一区二区| 91九九九馒头| 无码乱人伦中文视频| 欧美se综合| 精品小视频在线| 国模精品一区二区三区苹果色戒 | 天堂男人网| 嫩草伊人久久精品| 日韩无码专区| 国产精品直播在线观看直播| 国产av色网| 99操逼| 人人干黄色| 欧美另类丝袜熟女| 曰本精品久久久| 亚洲精品视频在线播放| 日本伦乱九九九综合| 台湾佬中文娱乐网久久久久久久久久com | 精品999一区二区| 夜夜嗷嗷一区二区| 久久思思热| 飘花国产午夜精品不卡| 97日亚洲欧美| 亚洲熟女一区| 国产在线76页| 五月婷婷丁香中文字幕| 伊人国产成人av网站| 偷拍新久久| 欧美久久婷婷| 天天综合网站| 无码av永久免费专区网站| 91色香| 亚洲,欧美,综合网| 美女淫穴| 日韩有码免费视频| 国产成人www免费人成看片| 激情综合网激情综合| 99最新日韩偷拍视频| 1区2区3区中文字幕日韩| 人妻啊啊人妻啊| 国产午夜激片Av毛片不卡| 思思热在线视频免费| 超碰九九| 欧美高潮| 欧美熟妇视频| 色情成人五月天| 91强奸乱轮| 一个国产在线综合网站| 99色网| 91N综合网在线| 国模不卡一本二本三电影| 欧美天天拍| 自拍鲍鱼一区在线高清观看免费| 韩国黄片aaaa| 欧美一区二区男人天堂| 玖玖久久久| 欧美色图亚洲色,麻豆| 国产av热热色| 内射黑人| 日韩无码嘿咻黑热久| 91欧美| 91麻豆va国产精品| 日韩欧美国产一区二区三区四区| 2019精品国产无码成人| 欧洲综合色| 99热这里只有精品1| 色哟哟av网址| 97超碰亚洲| 久久一二三四不卡| 极品五月天噜噜| 久久婷综合| av凤凰久久久| 日韩一性一交一A片俄罗斯| 四虎国产精品永久地址入口| 伊人丁香五月婷婷| 亚洲 欧美 日韩 国产一区二区| 91狠狠综| 啊啊啊啊啊啊啊啊视频| 日本一区二区三区四区五区六区七区八区九区| 欧美日韩制服| 99精品无码| 久久久无码精品人妻二区| 超碰到97情色| 哑洲在线| 超碰4A| 日韩欧美~中文字| 丝袜美腿操av| 欧美高清在线| 91激情国产| 国内精品久9| 熟妇高潮二区三区| 精品无人区麻豆乱码1区2区图片| 9久9久9久9久视频网站| chaopen97久久| 黑人性暴力毛片| 国产国产亚洲一二三久久| 无码粉嫩白虎一线天b区| 97超碰欧美手机| 久久久日本电影| 99re这里只有精品9| 亚洲自拍偷拍视频在线| 日本操逼无码| 黄色人人| 911av网站免费观看| 成人性爱美曰韩| 国产97色在线| 五月丁香色情| 男人的天堂,欧美亚洲另类国产日韩,日本高清一区二区 | 超碰久超碰久| 亚洲日韩国产精品| 亚洲欧洲日本精品中文a∨| 欧美区亚洲区偷拍区| 色黄色美女大长腿午夜视频| 84YTCOM性无码| A 在线网址| 亚洲午夜福利视频| 婷婷五月天久久久| 嗯嗯嗯啊啊啊在线免费观看| 亚洲91网。| 亚洲Av噜噜一区二区三区妖精| wuyechaopeng| 欧美美女视频| 少妇被c 黄 免费观看| 国产一区自拍欧美日韩| 干干干天天| 99热最新网址| 亚洲熟妇丝袜在线观看| 91网站18在线| 亚洲不卡一| 国产女人视频三四五区| 翔田千里爆乳巨臀无码| 黄片aaaaa一区| 天天日天天舔天天喷天天射| 搡老女人老妇女老妇老熟女怎么读| 操死我了嗯嗯嗯| 91爱看| 九九九国产| 亚洲国产成人7777| 午夜影美女日鸡鸡天天视频国产| 欧美在线视频99| 吉田爱美AV在线| 校园春色综合香蕉| 男人的天堂va在线| 青娱乐欧美激情一区二区 | 超碰视97中文| 欧美日韩欧美| 午夜操逼不卡| 另类视频在线| 人妻精品4K4K4K4K4| 亚洲影视高清第一页| 狠狠操狠狠操操| 91丨豆花丨熟女| 五月天开心网| 骚熟女吞| 欧美春色| 搞中出久久| 天天插天天干| 在线观看A啊啊啊| 大香蕉手机在线| 亚洲欧美在线丝袜| 国产综合在线视频网站| 久操不卡视频| 欧美亚洲综合色| 男人久久精品| 国产免费小视频| 亚洲自拍天堂| oumeisetu综合| 欧美天堂第二区| 翔田千里AV无码秘 三区| 色欲日韩欧美在线一区| 天堂资源欧美| 欧亚三区动漫| 欧美日韩精品一区二区三区高清| 水澄无码AV| 色777999综合| 日熟女| av九九| 九九九九97| 无码人妻精品一区二区三区99不卡| 欧美刺激色黄片免费看| 欧美精品偷拍| 国产精品96| 亚洲强奸乱伦影视网| 蜜臀99999| 丁香七月婷婷| 欧美一级黄片免费播放| 午夜后入| 日韩免费在线观看不卡| 日韩操人| 熟妇激情| 北约熟女超碰| 国产999精品久久久久久| 国产超碰97| 色婷婷激一区二区三区| 欧美有码激情视频一区二区三区| 97射欧美| 国产精品无码av嫩草| 五月天色图影视| 亚洲天堂另类| 91丨熟女丨丰满熟女| 精品人妻一区春色| 粉嫩av平台| 欧美精品另类人妖xxxx| 中文字幕丝袜| 一级久久久久久久久久久| 欧美在线55555| 午夜人人操| 日韩一级二级| 怡红院成人视频| 91超级碰| 亚洲精品久久一区二区三区蜜桃臀| 中文字幕一二区二三区人妻专区| 欧美一区二区日韩传媒搭讪精品| 欧美激情区| 婷婷五月丁香五月| 亚洲少妇视频| 亚洲精品啪视频| 欧美国产有色电影| 精品国产无码中文| 精品人妻视频一区二区三区蜜桃视频| 日本不卡二区| 91在线|亚| 亚洲爽图| 可以免费观看的av| 性欧美91| 成人 日韩欧美一区| 亚洲色图 91| 2024人人操人人摸| 91 偷| 欧美激情五月天| 97ai亚洲| 97五月天| 国产久久久| 思思99热| 97综合国产| 亚洲熟妇图片| 加勒比99999| 天天射影院| 蜜臀99久| 欧美亚洲激情小说| 久久六六| 国产白嫩精品久久| 人人妻人人爽 97人人看碰人免费公开视频| 爆乳免费黄网站| 天天干天天舔| 性性久久| 麻豆天美传媒毛片| 欧美中文字幕一区| 免费观看国产不卡av| 青久久| 国产精品免费视频人成| 欧美人妖内射| 国产一区96在线| 男女啊啊啊| 国产日本熟女顶级一区二区三区视频 | 岛国片在线视频网站| 天天色怡春院| 秋霞曰韩R级| 老鸭窝在线视频播放| 亚洲男人天堂Av| 黄色免费网| 久久99999| 福利色色| 久草新在线| 99啪啪| 家庭乱伦性爱av| 午夜美女诱惑电源网| 中文字幕 一区二区 亚洲无码| 精品国产乱码久久|