久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

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)致跑飛?;蛘咛D(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
返回資訊列表
天操天操夜操夜月操月年年操| 视频黄站| 呦呦一区| 日韩操p| 日本少妇va7777| 18禁免费视频| 激情文学网伊人| 国产精品动态一区二区三区四四| 高清成年美女黄网站免费大全 | 色色婷婷丁香| 美女人妻色网站| а√天堂资源官网在线资源| 日韩成人色图| 日韩人妻免费精品| 久久免费精品96| 日韩操啪| 啊啊啊啊啊啊啊在线| 少妇干B| 久久一本大香蕉 | 日韩久久.一级黄色片| 青草成人免费视频一COm| 久久人妻视频| 精品久久久久久中文字幕三区| 久久国产精品一区二区| 最新亚洲风情电影| 国产兽交视频在线播放| 亚洲色交| 东京热大香焦| 91爰爱欧美| 老女人爆菊| 91香蕉视频在线观看免费| 亚洲素人综合| 久久久久13| 欧美黄片免费在线观看视频| 国产又粗又长的视频| 99在线观看| 亚洲高清视频在线免费观看| 69AV女优男人的天堂| 97精品视频| 神马久久久久久久久久久久| AA丁香综合激情| 亚洲成?V人片在线观看福利| 欧美性爱第一区| 丝袜狂射91| 欧亚第一综合网| 久草新免费| 囯产精品久久久久久久久久梁医生| 在线亚洲 欧美 日本专区| 精品久久久久瑟瑟| 日韩在线76| 日韩精品一区二区三区四虎影视| 五月丁香激情综合| 综合五月婷婷亚洲一区| 一区二区三区探花在线观看| 亚洲最新a在线观看| 日韩在线AB| 色色色999| 人人操欧美风骚| 素人伊尹大香蕉免费下载视频| 欧洲精品久久| 欧美女同在线| 天啪| a级免费在线观看| 午夜国产成人精品视频| 久久精品国产精品一区| 一级AV性爱| 久久久一区二区三区三州| 人人操人人色人人摸| 男女激烈网站最新| 婷婷丁香激情| 亚洲精品国产熟女| 久久精品 六十路 熟女 欧美| 亚洲。天堂。日本在线观看| 日韩欧美日韩| 欧美天天干| 久久鲁干| 9热9热综合网| 日本综合久久| 在线视频一区二区传媒| 欧洲亚洲人人爽爽视频| 成人a v在线播放免费| 免费1级a做爰片观看| 国产精品久久久久中文字幕| 亚洲熟女乱色一区二区三区| 女人喷水视频在线观看| 欧美大香蕉卡久久| 91麻豆一二三区| 欧美伊人电影| 嫩呦国产一区二区三区AV| 十八禁啪啦拍视频无遮挡| www五月| 两性综合网| 黄色AAAAA欧美| 中文字幕91综合| 欧美激情色婷婷花野真衣一区二区| 激情第四色| 日韩电影天堂视频二区三区| 亚洲激情视频| 午夜高清成人在线视频| 亚洲色图伊人网| 亚洲不卡三级手机播放| 亚洲日韩美国人妻| 大香蕉免| 91 综合网| 免费啪啪av| 久久久久9999| 无码动漫av中文字幕| 很黄很色的视频在线观看| 久久婷婷综合国际产色怕| 日韩av在线精品观看| 中文字幕亚洲热播人妻| 亚州色图狠狠干| 国产丝袜啪啪| 久久婷色| 青青草影视蜜久久| 国产女人与拘做受视频免费| 99.色网| 欧美性性性| 亚洲在线网站| 五月婷婷六月丁香| 超碰97丝袜| A V视频日本| 国产久久一区二区三区野外在线| 大粗鳼巴久久久久| 色青青久久影视| 91挑色欧美| 大香蕉欧美| 欧美日韩性爱无码| 亚洲熟伦熟妇AV无码春色| 亚洲影院无码在线| 中文高清一区二区的| 久久是精品| 色色色日本| 伊人综合色网| 中文字幕欧美丝袜07资源| 亚洲欧美在线观看2021| 鸥美极品| 日韩AV无码中文一区二区| 91久久国产综合精品| 在线亚洲欧美| 999日韩中文精品观看视频。| 超碰97中文| 九九九九九九九精品视频| 国产免费一区在线观看| 国产精品大屁股999| 成人一二| 亚洲国成人情色好看电影| 97超碰色色| 亚洲少妇色| 97在线免费视频观看| 人妻熟女av国产网站| 九九九九九九免费视频| 日本久久网| 九九九九精| 色婷婷狠狠| 殴美色网| 五月天丁香欧洲日韩| 婷婷五月天激情四射| 色综合天天| AV中亚| 国产久久一区二区午夜| 极品综合| 黑人粗大V S日韩女优视频| 国产精品蜜乳AV| 五月丁香黄色网| 91丝袜美女| 岛国1区2区3区在线观看| 开心六月色| 久久久月天| 69人妻精品一区二区绯色| 九九精品网| 久久婷婷一区二| 操逼操逼操| 黄色小说亚洲| 免费精品福利在线观看| 最近2018中文字幕在线高清第一页| 久久神马影院| 亚洲最新a在线观看| 日本 情色 1区| 欧美日不卡| 亚洲精品白浆高清久久久久久 | 亚洲天堂区| 伊人网免费视频| 亚州色国| 高清不卡视频| 999岛国大片| 一区在线精品中文字幕| 人妻喷水| 一区二区三区 丝袜 高跟 美腿| 三级日本一区二区三区| 亚洲综合性网址| 亚洲天堂,男人| 激情 欧美 亚洲 小说| 亚洲天天精品| 日日噜噜夜夜久久亚洲一区二区| 欧美色图天堂在线| 国产精品无码AV网站| 欧美性天天| 99re热| 精品久久在线区一区| 99re公开精品免费视频 | 在线一道啪| 精品人成视频在线观看| 久久婷婷一区| 无马一区二区| 东北熟女91| 九九九九九九九九九九九九九九九女| 少妇免费视频| 极品白嫩福利在线| 开心五月天激情网| 大香蕉婷婷| 十八禁的黄污污免费网站| 麻豆天美传媒毛片| 亚洲一区二区在线观看91| 91久久精品美女高潮喷水| 97精品一二区| 丝袜无码a片| 久久久久精| 欧美日综合| 插日本熟女视频| 白丝被操91| 神马麻豆福利院| 伊人久久久日韩一区| 久久色激情一区二区三区| 天天插天天射| 精品一区二区三区最新| 尤物av网站| 丝袜性亚洲| 亚洲欧美天堂在线| 国产夜夜艹| 白丝AV网站| 国产精品乱码久久久久久久久久久久| 91 国产丝袜在线放观看| 青草青青久久久久久国产| 日韩三级久久久| 欧美另类色| 亚洲免费精品一区| 夜夜操夜夜爽夜夜高潮| 国产精品熟妇一区二区三| 精品久久九| 大香蕉92| AV女资源| 日韩人妻无码不卡网站| 国产97在线 | 亚洲| 欧美狠狠干| 欧美国产精品久久九九| 口爆吞精在线观看| 人人扣人人操| 欧美制服网站美腿丝袜| 欧美高潮在线| 欧美爱国产综合、| 免费操逼91| 亚洲精品天堂久久A∨51成人漫| 成人激情无码在线视频| 热天堂一区二区| 91天美传媒精品| 青操影院| 久久久久九九九| 九九精品无码专区免费| 99色天堂| 久久综合女优| 欧美精品系列| 国产亚洲女v在线观看| 国产97视频免费观看| 亚洲美乱| 激情综合网一盗摄| 亚洲天堂一区二区久久| 久操热| 欧美中文字幕男人天堂久久精品| 国产丝袜高跟美女av免费观看| 激情综合 婷婷五月 红杏| 97超碰磁| 五月丁香色婷婷| 91色爽欧美| 婷婷精品久久av影视| 九九九九热| 99久久久无码精品国产人| 精品久久久亚洲AV成人网站| 国产麻豆一区二三区| 青娱乐91| 人人艹亚洲| 91亚·色| 爱爱啊啊啊| 午夜福利免费精品视频| 人人爱夜夜爱| 欧在线一二区| www久| 艳尻美人妻| 亚洲狠| 久久性爱城| 97色论| 粉嫩av在线| 国产成人无码网站在线视频| 欧美熟女妇同| 国产中出内射一区二区| 午夜欧美J进J出白浆流出久久久| 78超碰| 精品黑人一区二区| 欧美中字不卡| 密乳无码| 欧美在线55555| 久久78| 狠狠色色| 亚洲欧美另类图片| 久久精品欧美一区蜜桃| 亚洲欧美91| 国产精品不卡一区二区电影| 夜夜高潮夜夜爽高清视频一| 欧美日韩*字幕一区| 精品一区二区三区蜜桃臀赵总| 人澡逼| 国产亚州高清国产拍精| 色综九九九一区| 人人操人人狠狠操| 久伊人网78| 97人人超| 久草资源在线| 神马久久久久眼| 91老女人| 欧美亚洲AN| 国产三级多多影院2022国产AA一级毛片无码| 欧美 亚洲 大香| 蜜乳视频网站| 九九九九九九九九九九九蜜桃| 美女尤物人人操| 撸撸成人在线视频| 能在线播放的国产三级| 欧美女同在线| 国产久久一区二区午夜| 国产精品午夜福利亚洲综合网| 一区二区三区四区五区高清无码永久视频| 伊人专区一区二区三区| 综合天天网| 日本午夜操逼| 超碰97丝袜| 欧美性区| 综合免费无码中文| 久久超碰天天| 成人精品视频一区二区| 久操不卡视频| 在线观看高清AV| yazhouzaixian| 天天做天天爱天天高潮| 啪啪免费| 四虎免费在线观看| 亚洲和欧美裸体美女双飞视频| 久久成人午夜精品影院| 亚洲情色 自拍| 日本免费不卡二区| 999国产精品999| 国产99999| 校园春色宗合网| 一级免费啪啪片| 亚洲国产成人精品999| 校园春色宗合网| 五月丁香| 成人八戒网站| 久久久亚洲| 久久久久96| 天天亚洲综合| 欧美日韩成人在线| 成人性爱视频在线看| 狼人狠干| 美女91网址 | 久久久9 9 9精品| 精品无码少妇| 亚洲国成人情色好看电影| 91爆操视频| 91丨国产丨白浆秘 洗澡动漫| 欧美第一页| 久久一留热品黄| 日本三级中国三级99人妇网站| 狠狠操,使劲操| 97亚洲综合在线| 一本一首道人妻少妇免费久久| 五月综合色| 精品久久人妻成人网| 9国产超碰| 欧亚日韩中文在线| 啊啊啊啊啊好舒服视频| wuyechaopeng| 91热色| 秋霞男人网| 毛片视频白嫩| 丰满人妻-区二区三区免费| 五月天婷精品激情| 操逼逼福利视频| 成人日韩3| 久热在线精品免费观看| 秋霞色色影院| 99人妻碰碰碰久久久久禁片| 人人操我人人干| 国产辣妈在线视频福利| 欧美爱三级日韩久久| 久久只有精品| 精品一区二区三区国产| 91综合色噜噜| 香蕉黄色一级视频| 亚洲无吗在线视频| 日本三级日本三级99| 精品一二三区久久AAA片| 国产高清MV操逼视频| 久久久久久久伊人精品| 手机在线视频国内精品| 国模吧 一区二区三区| 丁香六月激情| 精品一区96| 亚洲精品丝袜| 白 大 人妻 区 在线| 欧美青青视频| 尤物视频新赏网鲜网色诱网| 伊人性在线视频| 亚洲色棕合| 91天天爽| 熟女精品日韩一区二区三区 | 亚洲av综合伊人久久| 中文字幕天堂在线| 亚洲精品无码久久AV| 99色热国产视频精品| 久久精品国产亚洲AV嘿嘿| 色官网在线| 91精品电影18| 亚洲综合九| 一二视频神马久久传媒| 老熟女综合网| 日韩激情无码影院| 亚欧性爱ab| 五月丁香成人网| 91N五十路| 东方亚洲在线操逼天堂| 99久久免费看精品国产一区| 欧美性第一页| 欧美爱三级日韩久久| 激情接吻视频久久久久久| 大香蕉乱伦视频网| 天天操夜夜操狠很操| 免费观看网黄| 国产精品久久久久久久久AV大片| 日韩成人网址| 91美女色视频亚洲| 97精品视频| 老熟女乱子伦中文字幕一区二区| 亚洲操操| 校园春色宗合网| 啊啊嗯嗯好爽| 日本视频在线观看污污污| 欧美熟女少妇| 人妻少妇无码| 亚洲天堂一区二区久久| 玖玖视频在线资源一区二区三区| 美女91色黄18| 人人操,人人插| 中日高清无码操逼视频| 99RE在线视频精品,这里只有精品| 欧美亚洲清纯| 欧美日韩免费性爱| 天天综合色| 综合久久99亚洲人妻中文在线| 天天干夜夜鈤| 91精品丝袜在线观看| 亚洲精品国产AV天美传媒| 蜜桃香蕉久草精品在线| 精品一区二区成人| 亚洲欧洲无码97久久精品| 男人综合网| 国产精品原创巨作?v网站| 五月天婷婷欧美三区| 超碰97在线色男人??| 岛国福利在线精品播放| 97内射偷拍| 久久春色| 性爱动态120秒| 夜夜无码| 国产高清成人传媒影视| 女同性恋一区二区三区精品视频| 欧州91高潮| 亚洲综合在线视频| 91热| 欧美性爱精品一区二区| 国产丰满少妇久久久精品影院| 激情熟女12P| 久久久久久久久久久久久9999| 亚洲精品电影| 天天舔天天| 欧美 亚洲| 亚洲nv男人的天堂网| 日韩欧视频| 99热欧美| 97超碰护士| 亚91亚洲网| yw尤物av无码点击进入麻豆| 日本一二三高清| 另类图片欧美激情综合| 色av中文字幕| 日韩人妻中文视频| 超碰九九| 国产精品视频电影| 日本韩国国产精品一区| 97欧美色综合| 久久露脸国产老熟女| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 五月婷丁香| 日韩色香| 四虎免费看黄| 国产真实野战在线视频| 麻豆一区二区三区在线看 | 午夜欧美神马久久久久| 久久九九视频九九视频| 麻豆一区二区AV天美| 色九九九九久| 亚洲无码超碰免费| 欧美综合网1| 性爱视频无打码在线观看| 九色 蝌蚪 熟女自 | 少妇同性| 强奸乱伦中文字幕AV| 欧美日韩不卡传媒| 裸体女人草逼视频播放一区,二区,三区,四区,五区 | 伊人国产视频| 亚洲精品成人| 国产婷婷综合在线观看| k频道色撸撸| 超碰免费在线| 色操逼网| 欧美熟妇色| 有码人妻系列| 120分钟婬片免费看| 五月丁香黄色网| 2019午夜福利视频| 精品国产乱码久久久久久久久1 | 伦理弟一页| www.zbzhongsen.com| 午夜男女爽爽爽影院视频| 中文字幕一区二区三区蜜桃视频| 亚洲男人天堂Av| 国产精品干干干| 夜夜嗨视频| 亚洲国产亚洲天堂| 欧美亚洲20p| 99操99| 在线A日本| 欧亚日韩中文在线| 91色射| 东北黄色电影| 精品少妇一区二区三区免费观看| 操逼逼无码| 收看日本人日bb| 99re在线| 97亚洲色图| 狠狠爱夜夜干| 性生活无遮挡纯毛片在线看| 亚州操操穴网| 亚洲色吧网| 六月婷婷综合| 99久久9| 成人福利视频网| 午夜福利无毒不卡| 久久精品国产Aⅴ| 97超碰欧美精品| 嗯嗯啊啊日韩精品| 九九九九九九视频| 亚洲限制级| 青苹果影院男人的天堂| a男人的天堂| 青青操少妇| av在线浏览| 狼天天狼天天大香蕉| 五月婷婷五月天| 五月丁香狠狠爱| 人人透人人操| 五月丁香婷婷色| 久久亚洲婷婷| 国产成人bd在线观看| 黄片色区软件| 黄色性爱网网| 999岛国大片| 六月丁香啪啪| 啊啊啊啊嗯嗯嗯用力好爽| 亚洲色综合| 99色在线观看| 亚洲情色五月天 | 激情婷婷五月天| 天天做天天爽| 日韩黄色成人性爱| www鬼畜国产男人的天堂| 日本大片日本一区二区免费高清| 五月天婷婷久久| 日本熟妇熟色97一本在线观看| www.狠狠干.coom| 久7色| 中文字幕片| 国产精品密臀网在线观看| 校园春色中文字幕AV| 夜夜夜爽www精品视频| 97超级久久| 好吊色综合| 国产第12页| 日本国产欧美高清在线| 久久思思热| 不卡人妻少妇精品毛片一区23区视频| 热久日综合| 超碰 国产熟女精品一区| 婷婷五月天激情四射| 国产亚洲精品一区二区三区| 欧美色性爱| 国产亚洲一黄| 亚洲自拍一区夜夜操| 国产三级中文字幕粉嫩| 黄骗免费网站| 亚洲精品无码久久AV| 18禁网站在线播放| 国产成人综合网| 久久久久久性爱视频| 欧洲精品人妻| 黄页av| 国产色精品午夜大片| 天天干美少妇一区| 亚洲性猛交| 少妇久久久久| 国产精品无码论坛| 色哟哟-国产专区| 天天操狠狠日夜夜干超大胆开放com大香蕉视频在线观看 | 九九九九免费高| 亚洲狠| www.91理论| 啊啊啊啊啊在线观看网址 | 色九久| 欧美性爱1080p| 性感女人网页在线观看视频| 997色在线| 妇女性内射冈站HDWWWCOM| a v网站在线播放| 婷婷丁香一区二区三区| 97在线视频网站| 欧美性爱中文字幕无线码| 盗摄 精品 另类 一区| 91精品少妇搡搡搡| 天天色天天干天天爱| 亚洲有码 视频一区| 99热国产| 三级特黄60分钟播放| 亚洲 欧美 91| 伦理第一页| 国产精品自拍欧美在线| 久久精品老司| 高清无码久操视频| 黄色大片一区二区密桃丝袜| 亚洲色图A| 五月综合激情网| 日本 情色 1区2区3区| 国产亚洲女v在线观看| 91在线免费观看处女| 丝袜足交视频| 男人的天堂啪啪| 亚洲精品97久久中文字幕| 亚洲男人综合| 久久 亚洲 日韩 人妻| 老熟女91| 18一区二区三区| 亚洲男人电影天堂| 夜色五月天| 久久老女人| 欧美三级一级| 亚洲精品一二牛牛| 久久视网78| 日本潮催一卡操| 日本免费一区二| 97色亚洲| 黄色二级片网站| A片大香蕉在线| 国产大片精久久久久久| 天天做日日做| 久久乐| 青娱乐啪啪视频| 成人网站 免费观看| 亚洲 欧美 日本 国内 首页| 91热爆在线| 国产精品久久久久亚洲av| 激情专区综合| 97在线免费看视频| 青青草九九九九九| 精品日韩人妻精品一二三区| 蜜桃视频精品一区二区三区| 国产91会所女技师在线观看| 淫骚熟女一区二区三区| 午夜久久无码1000合集| 91天堂| 亚洲图片欧美日韩| 老熟女乱伦一区| 男人网站婷婷| av中文在线| 曰韩人妻中文字幕在线| 97九色人妻| 久久久国产亚洲精品系列| 伊人在线大香蕉二。| 日本色色色| av亚欧| 久久超碰av在线| 狠狠干婷婷| 亚洲精品自拍| AV女优男人的天堂| 99国产精品久久久久久久成人热 | 日韩人妻一二三区视频| 日本免费二区三区| 欧美有码亚洲中文字幕一区二区三区四区| 亚洲无码超碰免费| 日本久久久久久久久久| 天天综合网91入口| 大香蕉九九| 亚洲,日韩,欧美,成人播放| 蜜区区视频79| 久久天天躁日日躁狠狠躁 | av天堂手机版追回| 国产超碰AV在线精品| 久草久日| 99re只有精品| 999久久久精品国产| 国产精品探花色| 久久久精精精| 亚洲天堂资源| 欧美精品91| 免费视频无码| 国产一区二区三区导航| 黄片免费日韩| 青青青在线高清视频在线一二三四区| 亚洲视频一二区| 综合网欧美在线| 婷婷中文网| 一级二级三级黑人无码| 啊啊啊啊啊好多水| 骚鸭AV| 亚洲男人的天堂在线看| 天天综合精品| 五月综合久久| 日本污ww视频网站| 国产精品视频一区二区三区八戒| 在线免费观看高清无码视频| 天天夜夜rb| 日韩不卡一二三四| 日本道日本道中文字幕日本道最新日本道在线观看 | 天天谢天天干| 好色综合| 丰满熟女一区二区三区在线播放| 91国产美女丝袜足交精品视频 | 97操b| 精品高清牛人盗摄一区二区三区中文字幕A片免费在线观看 | 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 先锋色眉乱伦资源| Sekablack无码一区| 97在线视频观看| 亚洲高清综合网| 亚洲av无码国产精品字幕| 97干在线视频| 91爱啪| 久久久久熟女| 亚洲中文字幕一区二区| 国产精品禁久久久精品| 精品一区99999| 亚州色图欧美| 啊啊啊好疼| 亚州高清av| 精品视频久久区| 97天天插| 超碰在线日韩一区| 国产激情在线| 一二三四视频中文字幕在线看| 人妻色情天天操| 色婷婷A V一二三四区麻豆综合| 啊啊啊啊啊在线视频| 色情亚洲日本成人| 欧美亚州色的图| 欧美与日韩97| 99热线麻豆| 992视频一区| 热99这里有精品综合久久| 懂色影视久久| 日本不卡在线二区三区| 色激情综合网站| 最新av中文字幕高清| 免费的黄片有限公司| 国产精品极品美女视频| 日韩去日本高清在| 激情文学网伊人| 国产噜噜噜噜噜久久久久久久久| 成人一级二级| 日日躁夜夜躁狠狠躁超爽| 日韩综合色图| 99这里只有精品国产| 97欧美性爱| www.五月天| 目产99999久久999| 久久久精品,3| 永久电影三级在线观看| 日本十八禁免费看污网站| 岛园激情| 日韩99神马视频播放片在线播放| 操碰91| 超碰久久草| 欧美—性—交—色| 网站A V在线| 在免费jIzzjIzz在线视频| www.夜夜| 男人的天堂在线| 91 丝袜在线播放| 日本潮催一卡操| 99日韩| 美女淫穴| 四虎AV在线播放| 午夜视频久久久久一区| 色色操| 国产无遮挡| 久久这里只| 国产日产精品久久快鸭的功能介绍| 99re久久| 青青欧洲黑| 98久久| 欧亚免费视频| 精品美女人人干| 超碰在线人妻中文字幕| 黄网在线播放| 曰韩少妇无码| 98人妻精品一区二区色欲| 婷婷综合五月| 亚州Av天美传媒| 26uuu性物| 97爱欧美| 极品另类| 九九热免费视频| 东京热大香焦| 日本操逼视频不卡直接放| 国产精品一二三免费网站| 男人的天堂无码| 天天插夜夜操| 99爱久久视频频| 日韩人妻精品| 男男H黄动漫啪啪无遮挡网站| 国产视频97| 中文字幕美女91| 操穴国产| 久久精品熟女亚洲AV麻豆软件| 男人的天堂一区三区| 另类视频在线| 377p欧洲日本亚洲大胆| 日本啊啊啊啊啊视频| 久久大| 伊人天堂在线| a片自拍直播视频| 四虎永久在线精品免费网址| 久久久人妻| 99热色精品| 91麻豆天美传媒在线| 超碰97精品在线| 欧美天天搞| 丁香五月色| 日逼97| 午夜免费视频1000| 麻豆天美传媒毛片| 中出789在线视频| 天天爽夜夜爽夜夜爽精| 亚州久久9| heyZO天然素人无码AⅤ专区| 78久久久| 亚欧免费| 欧美少妇高潮视频| 综合五月天| 婷婷综合伊人一区| 亚洲情色1区| 91在线秘 男同| 死我十八禁| 99久久久久| 97超碰欧美中文字幕| 久久久久无码| Sekablack无码一区| 97超碰总站| 夜夜草网站| 久久久久久性爱免费视频| 蜜色网色哟哟| 啊啊啊在线观看| 久久久久久久久久精| 亚洲二区精品在线观看| 欧美BT 亚洲色图| 热久久91婷婷| 曰韩精品视频一区二区| 蜜臀va69| 国产三区免费在线观看| 好吊色综合| 精品乱码久久久久| 岛国精品视频在线观看| 丰满人妻-区二区三区| 久久超碰大香蕉| 国产一区二区三区影片| 91国模| 天美传媒在线一区| 曰韩av中文字幕专区| 97亚洲欧美| 国产av热热色| 97色在线观看| 在免费jIzzjIzz在线视频| 啪啪啪亚欧美视频| 亚洲情色在线| 婷婷97| AV免费在线播放一区| 青草精品视频日本久久久久网站在线| 国产精品乱码久久久久久久久久久久| 大香蕉免费乱伦视频| 97视频在线免费观看| 日夜尻逼网| 动漫片子网站3黄| 久久老子无码午夜伦不卡| 国产精品成久久久久午夜午夜| 精品国产综合久久福利,热99这里有精品综合久久,99热这里只有免费国产精品,精 | 超碰97资源大奶| 中文激情网| 日本黄色大片一级视频免费麻豆| 欧美日综合| 婷婷香网站| 加勒比在线视频| 欧美亚性天堂| 天天躁日日躁XXXXYY| 日本高清免费一本视频在线观看| 天天舔日美女视频| 色狠狠综合噜一二三区| oumeisetu综合| 色香色欲天天综合网天天来吧 | 国产视频三区四区| 大香蕉五月天| 爱av免费| 人人操人人插人www| 亚洲欧洲成人在线电影| henhen91| 久热网| 91在线/欧洲| 色婷婷成人| 99操逼| 丁香六月东京热| 免费精品中文字幕| 国产一区二区成人av在线播放| 秋霞色色影院| juliaann欧美丝袜办公室| 狠狠躁久久躁| 黄色一区三区| 日韩猛交| 99热婷婷一区二区三| 免费99精品国产自在在线| 国产肏屁眼视频| 日韩情色AV| 欧洲小说色图视频另类| 伊人一区二区三区| 久久爽爽精品| 99www.bibizy香蕉资源国产一区二区三区高清 | 国产成人超碰在线| 1769成人国产精品视频| 91精品国产91久久青草| 高清孕妇孕交 交孕妇| 激情视频图片| 亚欧美色图| 亚洲中文字幕av | 欧美激情总合网| 91xingse| 日日干夜夜操视频h| 亚洲日韩一区电影| 亚洲欧洲美腿丝袜| 熟妇一区二区三区| 熟妇人妻一区二区三在线| 亚州高清色综合| 欧美瑟综合| 人妻丝袜肏逼| 骚日日av| 97欧美日韩| 午夜精品久久久久久久久久久久久| 老熟妇乱轮| 欧美gv在线观看| 脫衣舞一区二区三区| 国产 亚洲 丝袜 制服| 综合啪啪| 神马视频久久久久久| 欧美狠狠鲁| av线电影| 99热欧美| 久久天天艹| 亚洲黄网在哪免费看| 五月天开心网| 日产中文字幕2020| 97操在线| 亚春色色| 成人免费性爱视视| 天天色,天天干,天天干| 国内精品久久久久影院亚洲| 欧美日韩夜夜| 色男人色天堂东京热| 亚洲人精品久久久| 男女无套 免费网站| 播播亚洲小说亚洲| 久久女人一区二区三区| 91亚州欧美| 青青草中出视频| 午夜视频久久久久一区| www.色操逼| 久久一区无码| 91最新综合| 精人妻一区二区三区| 国产日韩手机视频在线| · —级AA伦aa坐爱午夜极速ⅴA一区天天噪天天噪天天噪 | 99热免费| 久久亚洲人妻| 91精品国产一区三一| 我想要 啊 啊 啊| 国产熟女| 婷婷五月激情综合| 亚洲天堂7777| 香一区二区三区| 欧美第五页| 永久免费发布性爱网| 激情终合网| 搡老熟女免费视频| 九九英色视频| 国产精品麻豆成人av| 91爰爱欧美| 成人一道本免费视频| oumeisetupian| 久久久久亚洲AV无码专区少妇| 欧美日韩婷婷中文| 日韩少妇一区二区三区| 欧美,亚洲,日韩,v,天堂,手机在线观看| 妺妺跟我一起洗澡没忍住| 中文字幕av片| 五月综合久久| 久久中文字幕人妻熟av女蜜柚| 亚洲偷拍自拍在线视频| 婷婷丁香人妻| 天天操女人| AAAAAAAAA黄片| 伊人国产视频| 日本肉体xxxx裸交| dy888午夜老子影视达达兔| 韩国轻伦国内自拍一区| 亚洲精品人妻在线| 亚洲高清在线se| 婷婷六月天| 白丝AV| 亚洲五区熟女| 日本3级一区二区免费| 天天干18禁| 99国产精品久久久久久久成人热| 午夜AV人气不卡| 久热这里只有精品9| 99久久久| 欧美大片91| 秋霞午夜视频一区二区| 久久riav中文精品| 老熟女天天操| 色情综合网| 成人自拍三级在线观看| 丝袜加勒比| 97色欧州| 欧美性爱另类综合| 欧美大香蕉久| 欧美色交| 嫩草影院永久在线制服丝袜| 色优久久| 第四色奇米影视777| 91欧美色| 精品999日本| 国产乱码久久| 亚洲中文一区二区三区视频| 国产精品自拍视频| 天天爱综合网| 亚洲男人的天堂一区二区| 国产1769在线| 国产精品诱惑| 四虎在线免费视频| 日韩精品人妻系列无码天堂| 在线v中文字幕一区二区三区 | 夜夜嗷嗷一区二区| 青青草日韩无码| 中文字幕中文字幕一区二区| 网友自拍第一页| 亚洲精品久久一区二区三区蜜桃臀| 欧美老熟另类| 亚欧Av| 丁香九月 婷婷| 久久久久九九九| 大香蕉日亚洲日本亚大| 久久久久ab| 麻豆久久久久久久久丝袜| 日韩一级片| 亚洲二区精品在线观看| 88xx成人精品视频| 东京热天堂网| 欧美日韩另类激情图片| 久久精品国产精品| 夜夜狠狠躁日日躁色视频| 亚洲综合另类| 爱做久久久久久| 一级A片女人高潮叫床| 自拍内地三级在线观看| 淫荡网址| 大茄子熟女AV导航| 一本大道青青| 久久久96精品| 亚洲熟久久| 亚洲天天操| 台湾佬中文娱乐网久久久久久久久久com| 极品粉嫩少妇视频| 99xav| 欧美少妇第一页| 老熟女区| 亚洲日韩肥臀视频在线观看| av天堂影视中文在字幕在线中文| 91久久婷婷| 91热爆在线| 黄页视频网站野外| 91香蕉视频在线观看免费| 国产精品福利资源在线尤物| 亚洲色图欧洲| 欧美 亚洲精品首页| 亚洲毛片久久| 蜜桃网熟妇| 亚洲综合在线91| 天天操天天舔| 不卡在线观看视频| 97狠狠| 国产精品久久久久久久久久久久| 亚洲欧美色图片| 亚欧高清| 不卡中文字幕aⅴ在线| 涩涩涩综合| 91精片| 91人妻人人澡人人爽人人精品| 色哟哟AⅤ| 综合国产影视三级| 操逼视频亚洲| 色婷婷丁香| 色香蕉影院| 天天综合精品| 欧美中字二区| 日本超碰色精品| 日日干日日摸| 日本不卡在线二区三区| 色网站导航大全| 青青久久手机线视频| 亚洲人妻中文高清| 大香蕉av在线| 日本日日色视频| ai欧美亚洲小说| 啊啊啊操死我了| 亚洲国产97| 一级做a爰片性色毛片久久| 福利操逼| 精品久久久高清无码| 5278欧美一区二区三区| 丁香五月成人| av情色影音| 蜜桃网熟妇| 无码不卡亚洲成?人片| 欧美亚洲素人制服精品| 亚洲偷拍自拍在线视频| 亚洲欧美国产成人综合不卡| 五月丁香大香蕉| 婷婷情色五月天|