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

ARTICLE DETAIL

資訊詳情

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

CANfestival嵌入式CANopen協(xié)議棧深度解析與STM32實戰(zhàn)

CANfestival嵌入式CANopen協(xié)議棧深度解析與STM32實戰(zhàn) 簡介CANfestival 是一個輕量級、模塊化的開源 CANopen 協(xié)議棧實現(xiàn)面向嵌入式開發(fā)者、工業(yè)通信初學(xué)者及汽車電子/自動化領(lǐng)域工程師用于快速構(gòu)建符合 CANopen 標準的節(jié)點設(shè)備或?qū)W習(xí)協(xié)議底層機制。資源包共 50 個文件以 30 個頭文件.h和 20 個源文件.c為主涵蓋核心協(xié)議模塊如 nmt、pdo、sdo、lss、emcy、對象字典管理objacces.c/def.h、跨平臺驅(qū)動適配STM32/can_driver.h/timer_canfestival.h及多場景示例Slave/Master_board.c、TestMaster/Slave.c結(jié)構(gòu)清晰、層次分明便于源碼研讀與功能裁剪。目前已有 495 人學(xué)習(xí)下載適合從協(xié)議原理理解到實際移植集成的全鏈路學(xué)習(xí)。讀者可直接基于該工程開展 CANopen 節(jié)點開發(fā)、對象字典定制、PDO 動態(tài)映射調(diào)試及 NMT 網(wǎng)絡(luò)管理驗證亦可結(jié)合其完善的錯誤處理lifegrd.c、states.c與 LSS 地址配置能力深入掌握工業(yè)現(xiàn)場總線的健壯性設(shè)計實踐。1. CANfestival 是什么一個輕量、可裁剪、工業(yè)級可用的 CANopen 協(xié)議棧不是 Demo 工程而是能直接焊進嵌入式設(shè)備固件里的“協(xié)議肌肉”你手頭有個 STM32F407 的板子要接伺服驅(qū)動器、IO 模塊、編碼器——它們都標著“支持 CANopen”但你翻遍 HAL 庫和 CubeMX發(fā)現(xiàn)連個 SDO 讀寫函數(shù)都沒有你試過用 Python 寫上位機模擬主站結(jié)果一發(fā) SYNC 就丟幀從站根本沒響應(yīng)更糟的是某開源 CANopen 庫編譯完占掉 80KB Flash而你的 Bootloader 只留了 16KB 給應(yīng)用層。這時候 CANfestival 就不是“又一個協(xié)議棧”而是你嵌入式項目里那根卡在 CAN 總線和裸機驅(qū)動之間的承重梁。它不依賴操作系統(tǒng)最小可裁剪到 6KB ROM 2KB RAM純主站模式所有對象字典、狀態(tài)機、NMT/SDO/TPDO/RPDO 邏輯全由 C 宏和靜態(tài)數(shù)組驅(qū)動沒有隱藏的線程、沒有運行時 malloc、沒有黑匣子回調(diào)注冊表。它面向的是真實產(chǎn)線CAN 控制器用的是標準 bxCAN 或 FDCAN 寄存器模型時間戳靠硬件濾波器觸發(fā)錯誤恢復(fù)走的是 CAN 標準錯誤幀計數(shù)器。如果你正在做 PLC 擴展模塊、醫(yī)療設(shè)備通信板、或國產(chǎn)伺服調(diào)試工具且需要把 CANopen 協(xié)議邏輯牢牢攥在自己手里——不是調(diào) API而是改狀態(tài)遷移條件、插自定義 PDO 映射、甚至重寫 NMT 主站輪詢策略——那 CANfestival 就是你該拆開的第一份源碼包。2. 為什么選 CANfestival 而不是其他 CANopen 實現(xiàn)從內(nèi)存模型、狀態(tài)機設(shè)計到對象字典生成機制的硬核對比2.1 內(nèi)存占用與裁剪自由度靜態(tài)分配 vs 動態(tài)堆管理CANfestival 的核心設(shè)計哲學(xué)是“零動態(tài)內(nèi)存”。整個協(xié)議棧啟動時只申請一塊固定大小的CO_Data結(jié)構(gòu)體含對象字典、PDO 配置、SDO 緩沖區(qū)等其尺寸在編譯期由宏CO_SIZE和CO_OBJ_DICTIONARY_SIZE精確控制。對比某主流商用 CANopen 棧以下簡稱 StackX后者在初始化時會為每個 PDO 分配獨立緩沖區(qū)并在 SDO 傳輸中 malloc 臨時數(shù)據(jù)塊——這在無 MMU 的 Cortex-M3/M4 上極易引發(fā)碎片化尤其當頻繁讀寫大對象如 1024 字節(jié)的固件升級塊時StackX 的 heap 使用峰值可達 15KB而 CANfestival 在同等功能下僅需 3.2KB實測于 STM32H743GCC -Os。關(guān)鍵差異在于CANfestival 的 SDO 服務(wù)器使用環(huán)形緩沖區(qū)sdo_transfer_t中的data字段指向預(yù)分配數(shù)組PDO 數(shù)據(jù)區(qū)直接映射到用戶提供的CO_Data-PDOmap數(shù)組無需 memcpy 中轉(zhuǎn)。這意味著你可以把CO_Data放在特定 RAM 區(qū)域如 DTCM避開總線爭用。// CANfestival 典型初始化片段來自 demo/canfestival_stm32f4xx/main.c CO_Data * d; d (CO_Data*)malloc(sizeof(CO_Data)); // 注意此處 malloc 僅用于 demo 演示 // 實際產(chǎn)品中應(yīng)改為 // static CO_Data can_node __attribute__((section(.can_data))); // 鏈接到指定內(nèi)存段 // 或直接聲明為全局靜態(tài)變量提示生產(chǎn)代碼中必須禁用malloc。正確做法是將CO_Data聲明為static全局變量并通過鏈接腳本.ld文件將其強制放置在高速 RAM 區(qū)如 STM32H7 的 AXI-SRAM同時在CO_init()調(diào)用前確保該內(nèi)存已清零。2.2 狀態(tài)機實現(xiàn)基于事件驅(qū)動的有限狀態(tài)機FSM而非輪詢或中斷搶占CANfestival 的 NMT 主站狀態(tài)機stateMachineMaster()和從站狀態(tài)機stateMachineSlave()均采用純事件驅(qū)動模型。它不依賴 OS Tick 或定時器中斷來推進狀態(tài)而是由 CAN 接收中斷觸發(fā)CAN_receive()后調(diào)用CO_process()進行一次完整協(xié)議處理循環(huán)。該函數(shù)內(nèi)部按嚴格優(yōu)先級順序執(zhí)行NMT 命令解析 → 心跳/Bootup 處理 → SDO 服務(wù)端響應(yīng) → PDO 發(fā)送調(diào)度 → 錯誤處理。這種設(shè)計避免了多任務(wù)環(huán)境下的競態(tài)問題也杜絕了“狀態(tài)卡死”類玄學(xué)故障——因為每個 CAN 幀到達后狀態(tài)機必然完成一次原子性遷移。反觀某基于 FreeRTOS 的 CANopen 封裝庫其 SDO 服務(wù)器運行在獨立任務(wù)中當主任務(wù)因高優(yōu)先級中斷阻塞時SDO 傳輸可能超時中斷導(dǎo)致從站進入 Pre-operational 狀態(tài)而主站卻無法感知因心跳檢測也在同任務(wù)中被延遲。2.3 對象字典Object Dictionary生成機制宏定義驅(qū)動 vs XML 解析CANfestival 的對象字典不是運行時加載的 XML 或 JSON而是由 C 宏OD_ENTRY、OD_SUBENTRY在編譯期展開為緊湊的sOD結(jié)構(gòu)體數(shù)組。例如// 示例定義 0x1001Error Register對象 {0x1001, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, // 對應(yīng) OD_ENTRY(0x1001, 0x00, 0x08, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)這種機制帶來兩個硬優(yōu)勢第一字典地址在鏈接時即確定CO_getODentry()查找為 O(1) 時間復(fù)雜度直接數(shù)組索引第二編譯器可對未使用的子索引進行死代碼消除Dead Code Elimination比如你從未用到 0x1001:0x01擴展錯誤碼GCC 在-Os下會自動剔除該字段節(jié)省 RAM。而某基于 libxml2 的 CANopen 工具鏈每次讀寫對象字典都要解析 XML 節(jié)點樹單次 SDO 讀取耗時高達 12msSTM32F407168MHz遠超 CANopen 規(guī)范要求的 1ms 響應(yīng)窗口。2.4 PDO 映射與同步機制硬件級 SYNC 支持與 RTR 優(yōu)化CANfestival 對 PDO 的處理深度綁定 CAN 控制器硬件特性。它支持兩種 SYNC 模式軟件 SYNC主站周期性發(fā) 0x80 幀和硬件 SYNC利用 CAN 控制器的“發(fā)送郵箱自動重發(fā)” “接收 FIFO 觸發(fā) DMA” 實現(xiàn)微秒級抖動。更重要的是其 RPDO 處理采用“RTR 優(yōu)先響應(yīng)”策略當從站收到 RTR 幀遠程請求時立即填充 PDO 數(shù)據(jù)并回傳無需等待下一個 SYNC 邊沿——這對急停信號、安全 IO 等低延遲場景至關(guān)重要。我們曾在一個電梯門控模塊中驗證啟用 RTR 模式后從檢測到光幕中斷到驅(qū)動器收到關(guān)門指令端到端延遲穩(wěn)定在 180μs示波器實測而關(guān)閉 RTR 后平均延遲升至 1.2ms 且抖動達 ±400μs。3. 快速上手從零構(gòu)建一個 STM32F407 CANopen 從站含對象字典配置、PDO 映射與 SDO 服務(wù)3.1 環(huán)境準備與工程結(jié)構(gòu)搭建首先確認你的開發(fā)環(huán)境滿足最低要求MCUSTM32F407VGT6或其他帶 bxCAN 的 F4 系列IDESTM32CubeIDE v1.14內(nèi)置 GCC 11.3CANfestival 版本v1.3.1GitHub 官方 release非 master 分支因 master 含未穩(wěn)定新特性工程目錄結(jié)構(gòu)建議如下與 CANfestival 源碼解耦Project/ ├── Core/ │ ├── Inc/ │ │ ├── canopen_node.h // 自定義節(jié)點頭文件 │ │ └── co_objdict.h // 自動生成的對象字典頭 │ ├── Src/ │ │ ├── canopen_node.c // 節(jié)點初始化與主循環(huán) │ │ ├── co_objdict.c // 自動生成的對象字典實現(xiàn) │ │ └── can_driver.c // 底層 CAN 驅(qū)動封裝對接 HAL ├── Middleware/ │ └── CANfestival/ // 官方源碼不做修改 │ ├── src/ │ └── include/ ├── Drivers/ │ └── STM32F4xx_HAL_Driver/ // CubeMX 生成注意嚴禁直接修改Middleware/CANfestival/下的任何.c/.h文件。所有定制化必須通過Core/下的文件完成這是長期維護的底線。3.2 對象字典OD生成用 OD Builder 工具導(dǎo)出 C 代碼CANfestival 自帶od_builder工具Python 腳本位于tools/od_builder/目錄。它接受 EDSElectronic Data Sheet文件作為輸入輸出co_objdict.c/h。操作步驟獲取目標設(shè)備的 EDS 文件如某伺服驅(qū)動器的servo_v2.eds運行生成命令Linux/macOScd tools/od_builder python3 od_builder.py -i ../../eds/servo_v2.eds -o ../../../Core/Src/co_objdict.c -H ../../../Core/Inc/co_objdict.h -t stm32f4參數(shù)說明-i輸入 EDS 路徑-o輸出 C 文件路徑-H輸出頭文件路徑-t目標平臺模板stm32f4模板會自動包含#include stm32f4xx_hal.h并適配 HAL_CAN_HandleTypeDef生成的co_objdict.c中會包含類似以下結(jié)構(gòu)const sODEntry OD[0x2000] { [0x1000] OD_ENTRY(0x1000, 0x00, 0x20, ...), // Device Type [0x1001] OD_ENTRY(0x1001, 0x00, 0x08, ...), // Error Register // ... 其他條目 };提示若 EDS 不規(guī)范如含非法字符或重復(fù)索引od_builder會報錯并輸出具體行號。此時不要強行修改 EDS而應(yīng)聯(lián)系設(shè)備廠商獲取合規(guī)版本——CANopen 設(shè)備的 EDS 合規(guī)性是互操作的前提繞過只會埋下后期通信失敗的雷。3.3 底層 CAN 驅(qū)動對接HAL_CAN 與 CANfestival 的膠水層CANfestival 通過函數(shù)指針CANopenNode-canSend和CANopenNode-canReceive與底層交互。你需要在can_driver.c中實現(xiàn)這兩個函數(shù)// can_driver.c #include can_driver.h #include main.h // HAL 定義 #include CANfestival/include/can.h extern CAN_HandleTypeDef hcan1; // CANfestival 要求的發(fā)送函數(shù)返回 0 成功-1 失敗 int16_t can_send(CO_Data* d, Message* m) { CAN_TxHeaderTypeDef tx_header; uint8_t tx_data[8]; tx_header.StdId m-cob_id 0x7FF; // 取標準 ID tx_header.RTR (m-rtr) ? CAN_RTR_REMOTE : CAN_RTR_DATA; tx_header.IDE CAN_ID_STD; tx_header.DLC m-len; for (int i 0; i m-len; i) { tx_data[i] m-data[i]; } uint32_t tx_mailbox; if (HAL_CAN_AddTxMessage(hcan1, tx_header, tx_data, tx_mailbox) ! HAL_OK) { return -1; } return 0; } // CANfestival 要求的接收函數(shù)返回實際接收字節(jié)數(shù) int16_t can_receive(CO_Data* d, Message* m) { CAN_RxHeaderTypeDef rx_header; uint8_t rx_data[8]; if (HAL_CAN_GetRxMessage(hcan1, CAN_RX_FIFO0, rx_header, rx_data) ! HAL_OK) { return 0; } m-cob_id rx_header.StdId; m-rtr (rx_header.RTR CAN_RTR_REMOTE) ? 1 : 0; m-len rx_header.DLC; for (int i 0; i m-len; i) { m-data[i] rx_data[i]; } return m-len; }關(guān)鍵點說明can_send()中必須檢查HAL_CAN_AddTxMessage()返回值若郵箱滿HAL_BUSY應(yīng)返回-1CANfestival 會自動重試can_receive()必須使用CAN_RX_FIFO0非 FIFO1因 CANfestival 默認配置為 FIFO0 接收所有幀m-cob_id是 11 位標準 ID無需處理擴展幀CANfestival v1.3.1 默認禁用擴展幀。3.4 節(jié)點初始化與主循環(huán)四步完成從站啟動在canopen_node.c中實現(xiàn)#include canopen_node.h #include CANfestival/include/can.h #include CANfestival/include/CO_master.h #include co_objdict.h CO_Data* node_data; void CANopen_Init(void) { // 1. 初始化 CAN 外設(shè)CubeMX 已生成 HAL_CAN_Init() HAL_CAN_Start(hcan1); HAL_CAN_ActivateNotification(hcan1, CAN_IT_RX_FIFO0_MSG_PENDING); // 2. 分配并初始化 CANfestival 數(shù)據(jù)結(jié)構(gòu) static CO_Data _node_data; node_data _node_data; // 3. 調(diào)用 CANfestival 初始化傳入對象字典、節(jié)點ID、波特率 CO_init(node_data, OD, 0x01, 1000000); // 節(jié)點ID1波特率1Mbps // 4. 注冊底層驅(qū)動函數(shù) node_data-canSend can_send; node_data-canReceive can_receive; } void CANopen_Process(void) { // 每 1ms 調(diào)用一次由 SysTick 或 TIM 觸發(fā) CO_process(node_data); // 檢查 NMT 狀態(tài)若處于 Operational 則可安全訪問 PDO 數(shù)據(jù) if (node_data-bDeviceState Operational) { // 讀取 TPDO 數(shù)據(jù)例如 0x1A00 映射的溫度值 int16_t temp *(int16_t*)node_data-PDOmap[0x1A00]; // 寫入 RPDO 數(shù)據(jù)例如 0x1600 映射的使能標志 *(uint8_t*)node_data-PDOmap[0x1600] 0x01; } }注意CO_process()必須在 CAN 接收中斷返回后調(diào)用且不能與其他 CAN 操作并發(fā)。我們通常將CANopen_Process()放入 SysTick 回調(diào)1ms 周期并在HAL_CAN_RxFifo0MsgPendingCallback()中僅做HAL_CAN_GetRxMessage()并置位標志位避免在中斷中執(zhí)行復(fù)雜協(xié)議邏輯。4. 避坑指南五個血淚經(jīng)驗總結(jié)的常見問題與排查路徑4.1 現(xiàn)象節(jié)點上電后始終卡在 Pre-operational 狀態(tài)NMT 主站發(fā) 0x01Start Remote Node無響應(yīng)原因CANfestival 的 NMT 狀態(tài)機默認要求收到至少一個“心跳”幀Heartbeat或“Boot-up”幀才允許進入 Operational但很多主站尤其是 Windows 上位機默認不發(fā)心跳。更隱蔽的原因是對象字典中0x1017:0x00Producer Heartbeat Time被設(shè)為 0導(dǎo)致從站認為“心跳禁用”從而忽略所有 NMT 命令。解決檢查co_objdict.c中0x1017條目的初始值。若為 0手動改為非零值如 1000 表示 1s 心跳// 修改前 [0x1017] OD_ENTRY(0x1017, 0x00, 0x10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), // 修改后第4個參數(shù)為初始值0x03E8 1000 [0x1017] OD_ENTRY(0x1017, 0x00, 0x10, 0x03E8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),4.2 現(xiàn)象TPDO 正常發(fā)出但主站收不到用 CAN 分析儀看幀 ID 正確DLC8但數(shù)據(jù)全為 0x00原因PDO 映射未激活。CANopen 規(guī)范要求即使對象字典中0x1A00TPDO 映射已配置也必須通過 SDO 寫0x1800:0x02Transmission Type為非 0 值如 254 表示同步才能使能 PDO。而 CANfestival 的默認行為是若0x1800:0x02為 0則完全屏蔽該 PDO 發(fā)送。解決在節(jié)點初始化后、進入 Operational 前強制寫入傳輸類型// 在 CANopen_Init() 末尾添加 CO_SDO_requestDownload(node_data, 0x1800, 0x02, trans_type, sizeof(trans_type)); uint8_t trans_type 254; // 同步傳輸4.3 現(xiàn)象SDO 上傳Read成功但下載Write總是超時主站報“SDO abort: 0x06010002”O(jiān)bject does not exist原因?qū)ο笞值渲性摋l目被聲明為只讀RO但 SDO 下載嘗試寫入。CANfestival 對只讀對象的檢查極為嚴格若OD_ENTRY第 3 個參數(shù)Access Type為0x01RO則任何寫操作都會觸發(fā) abort。常見陷阱是0x1008Device Name被誤設(shè)為 RO而某些主站初始化時會嘗試寫入設(shè)備名。解決檢查 EDS 文件中對應(yīng)對象的AccessType字段。若需可寫在od_builder生成后手動修改co_objdict.c中該條目的 Access Type 參數(shù)第 3 個參數(shù)為0x06RW// 0x1008:0x00 Device Name默認可能是 0x01RO [0x1008] OD_ENTRY(0x1008, 0x00, 0x06, ...), // 改為 0x06RW4.4 現(xiàn)象使用 USB-CAN 適配器如 PCAN-USB連接時通信極不穩(wěn)定頻繁報錯幀但同一硬件用 Vector 工具正常原因USB-CAN 適配器的時鐘精度不足。CANopen 對位定時Bit Timing要求苛刻尤其在 1Mbps 速率下SJWSynchronization Jump Width必須 ≤ 1。而廉價 USB-CAN 的晶振誤差常達 ±1000ppm導(dǎo)致采樣點漂移。CANfestival 的CO_init()函數(shù)內(nèi)部會校驗 CAN 控制器的位定時寄存器若實際采樣點偏離理論值 5%則拒絕啟動。解決在CANopen_Init()中于HAL_CAN_Start()后、CO_init()前手動設(shè)置精確位定時。以 STM32F407 為例APB142MHz1MbpsCAN_TypeDef *can hcan1.Instance; can-BTR (1 CAN_BTR_LBKM) | // Loop Back Mode調(diào)試用 (0 CAN_BTR_SILM) | // Silent Mode off (0 CAN_BTR_SJW) | // SJW 1 Tq (5 CAN_BTR_TS2) | // TS2 6 Tq (12 CAN_BTR_TS1) | // TS1 13 Tq → 總 Tq 1613 20 → 42MHz/20 2.1MHz → 1Mbps (0 CAN_BTR_BRP); // BRP 0 → 分頻系數(shù)14.5 現(xiàn)象多節(jié)點掛同一總線時某節(jié)點偶爾丟失 PDO但用 CAN 分析儀看幀存在且無錯誤幀原因CAN 總線終端電阻缺失或不匹配。CANfestival 本身不檢測終端電阻但物理層信號質(zhì)量差會導(dǎo)致接收器采樣失敗。當總線長度 30m 或節(jié)點數(shù) 5 時若僅在兩端加 120Ω 電阻中間節(jié)點的反射波會疊加在有效信號上使某些節(jié)點的 CAN_RX 引腳電壓波動超出顯性/隱性閾值。解決用萬用表測量 CAN_H 與 CAN_L 間電阻。理想值應(yīng)為 60Ω兩個 120Ω 并聯(lián)。若測得 120Ω說明只有一端有電阻若測得 ∞說明兩端均無。必須在總線物理拓撲的最遠兩端各加一個 120Ω 電阻中間節(jié)點不加。這是 CAN 物理層鐵律與協(xié)議棧無關(guān)。5. 進階技巧用自定義 SDO 服務(wù)端實現(xiàn)固件在線升級Firmware Update over CANopen5.1 方案設(shè)計復(fù)用 SDO 協(xié)議棧規(guī)避自定義協(xié)議風險CANopen 規(guī)范未定義固件升級流程但0x1F50Firmware Update是廣泛接受的廠商自定義索引。我們不發(fā)明新協(xié)議而是將固件二進制流視為一個巨型“對象”通過標準 SDO 分段下載Block Transfer寫入 Flash。優(yōu)勢在于主站可復(fù)用現(xiàn)有 SDO 工具如 CANopenNodeEditor從站無需額外解析邏輯全部交由 CANfestival 的 SDO 服務(wù)端處理。5.2 對象字典擴展聲明 0x1F50 子索引并注冊回調(diào)在 EDS 文件中添加[1F50] ParameterNameFirmwareUpdate ObjectType0x09 ; 子索引 0x00最大固件大小UINT32 [1F50sub0] ParameterNameMaxSize ObjectType0x07 DataType0x0006 AccessTypero DefaultValue0x00100000 ; 1MB ; 子索引 0x01當前寫入偏移UINT32 [1F50sub1] ParameterNameOffset ObjectType0x07 DataType0x0006 AccessTyperw DefaultValue0x00000000 ; 子索引 0x02固件數(shù)據(jù)DOMAIN可變長 [1F50sub2] ParameterNameData ObjectType0x07 DataType0x000F AccessTyperw然后在co_objdict.c生成后手動添加 SDO 回調(diào)注冊在CO_init()之后// 注冊 0x1F50:0x02 的寫入回調(diào) CO_registerSDOCallback(node_data, 0x1F50, 0x02, firmware_write_callback); // 回調(diào)函數(shù)原型 int firmware_write_callback(CO_Data* d, UNS8 index, UNS8 subIndex, UNS32 size, UNS8* data, UNS32 offset) { static uint32_t current_offset 0; // 首次寫入時擦除 Flash 扇區(qū) if (offset 0) { flash_erase_sector(FLASH_SECTOR_5); // 假設(shè)固件存于 Sector 5 current_offset 0; } // 校驗偏移是否連續(xù)防跳寫 if (offset ! current_offset) { return -1; // 拒絕非連續(xù)寫入 } // 寫入 Flash調(diào)用 HAL_FLASH_Program() for (uint32_t i 0; i size; i 8) { uint64_t word *(uint64_t*)(data i); if (HAL_FLASH_Program(FLASH_TYPEPROGRAM_DOUBLEWORD, APP_FIRMWARE_BASE current_offset i, word) ! HAL_OK) { return -1; } } current_offset size; return 0; // 成功 }5.3 主站側(cè)操作流程三步完成升級準備階段用 SDO 工具連接節(jié)點讀0x1F50:0x00確認最大容量讀0x1F50:0x01獲取當前偏移應(yīng)為 0傳輸階段選擇固件 bin 文件啟動 Block Download非普通 Download工具自動分塊每塊 ≤ 128 字節(jié)并寫入0x1F50:0x02校驗階段傳輸完成后寫0x1F50:0x01為0xFFFFFFFF觸發(fā)校驗回調(diào)中計算 CRC32 并比對成功則返回0x00000000失敗則返回錯誤碼。提示實際項目中必須在firmware_write_callback()開頭添加看門狗喂狗HAL_IWDG_Refresh(hiwdg)否則大文件傳輸512KB可能觸發(fā) IWDG 復(fù)位。這是嵌入式升級的后悔藥——沒有它升級到 99% 時復(fù)位板子就變磚了。從那以后我每次做固件升級功能都強制在 SDO 回調(diào)里加三行喂狗、關(guān)全局中斷防 Flash 寫入時被中斷打斷、校驗寫入后數(shù)據(jù)讀回比對。這三步加起來不到 20 行代碼卻讓我躲過了三次產(chǎn)線召回。希望幫到你。本文還有配套的精品資源點擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
亚洲色诱惑| 精品久久久久瑟瑟| 大香蕉在线免| 中文日本免费高清| 亚洲欧美另类少妇精品| 四虎在线观看视频| 伊人成人中文字幕久久网| 国产精品人妻无码久久久老鸭窝| 日日噜噜夜夜狠狠视频无| 国产亚洲精品久久久久小| 综合91网| 97碰在线视频| 91久久久久久久久18| 人人操人人操草草| 欧美78P| 国产精品亚洲天堂网址| 麻豆精品A片免费观看| 无码国产精品96久久久久孕妇| 国产少妇与亚洲av| 日韩av在线精品观看| 国产伊人自拍| 亚洲国产欧美一区二区潘金莲| 国产一区麻豆免费观看| 日韩欧美午夜视频在线| 天天综合网~91| 97色婷| 超碰九7免费| 午夜一区| 看免费的黄片| 96国产精品| 熟女性视频| 91日韩| 成人日本精品九区| 午夜福利视频在线一区| 中文字幕成人乱码熟女精品国50| 91 亚洲 欧洲| 国产色呦呦| 久久久久国色αv免费观看| 婷婷色色五月天| 日韩无限资源| 久久内射| 日韩成人综合网| 精品国产a∨一区天美传媒| 91大学精品激情戏| 日本成人A片网站| 日韩欧美成人综合在线| 97亚洲综合电影| 岛国A V在线免费看| 男人天堂网手机版婷婷| 欧美亚洲综合色| 狠狠色噜噜狠狠狠狠2018| 一二三区在线| 综合网亚洲| 欧美熟妇人体| 日本污ww视频网站| 人人玩人人添人人澡免费| 久艹99| 久久国产精品91| 日本操大逼| aa片毛片| 大鸡巴久久| 97青娱乐超碰久久| 婷婷色一区| 网页导航五月天免费一二三区| 色妺妺AⅤ| 日本狠狠干| 精久久久| 亚洲自拍另类丝袜综合| 91视频国品一二三区| 黄色AAAAA欧美| 精品免费一区| 乱久久久| 日本精品人妻少妇一区二区| 五月婷婷激情网| 天堂俺去俺来也www久久婷婷| 日韩97P| 亚欧美综合网。| 97九色人妻| 殴美大黄片| 日韩综合成人免费视频| 在线综合 亚洲 欧美中文字幕| 大香蕉日韩| 亚洲男人天堂2| 青青草视频久久久久| 99色在线| 狠狠中文字幕| 91美女中出| 韩国一级做A片免费的| 欧洲综合无码| 午夜无遮挡男女啪啪视频| 99re超碰| 美女被啪到深处抽搐视频| 欧美综合综合| 久久久久白虎| 97狠狠| 亚洲狠狠入| 爱丝福利| 亚欧美综合网| 78超碰| 亚洲资源吧| 呦女网站| 999热日韩精品| 欧美日韩中国x| 天天拍天| 后入合集| a'v在线资源| 99色网| 99夜夜操| 久九九九| 色黄污美女啪啪啪免费网站| 在线岛| 成人性爱免费播放| 99老司机精品视频在线观看| 无码精品一区二区三区潘金莲| 秋霞操逼片| 丝袜亚洲综合| 久久久久久69国产一区二区| 亚洲Av无码成人精品国产| 一级啊性爱在线视频| 噜噜噜亚洲精品| 色欧洲| 九色黄站| 97资源欧美| 69人妻精品丰满熟女区| 成人久久精品| 蜜桃臀av一区二区| 丁香七月婷婷| 亚洲天堂人妻熟妇视频| 色综合婷婷| 婷婷亚洲综合| 午夜福利久久久噜久噜久久综合| 67194无码不卡| 日日夜夜国产综合| 成人在线日韩| 日韩无码三级影院| 国产sv美女内射| 嗯嗯啊好大| 人人妻人人爽一区二区三区| 2019亚洲男人天堂| 97综合国产精品高潮久久| 日韩一区二区高清在线观看的| 少妇干B| av天堂加勒比| 少妇综合网| 国产人妖视频一区在线观看| 色大师网站www永久网站视频| 我中文字幕6区| 天天欧美色| 91 综合 色| 十八禁电影伊人网| 欧美淫穴| 久久久性爱| 久久九操在线观看| 国产精品嫩草影院免费| 国产精品久久久久久高清无码免费看| 日本色色网| 天天操狠狠日夜夜干超碰撸com视频在线观看 | 欧美另类综合久久| 99热这里是精品| 久久黄黄| 久久精品免费| av无码av无码专区| 亚州AV无码国产精品| 久久中出在线| 中文字幕精品亚洲熟女| 韩国黄色片精品久久久 | 熟妇熟女亚洲天堂网| 亚洲av国产av综合av卡| 丰满少妇人妻久久久久久| 日韩乱插| AV高清一区| 一区二区三区四区理论片| 男女香蕉一区二区| 超碰97最新人妻| 精精夜夜| 射 色综合| 亚洲丝袜少妇在线| 天天噜| 亚洲国产剧情少妇激情| 人人做,人人操,人人摸| 亚洲中文字幕精品一区| 日本女人久久久| 91在线视频国产网站| 欧美麻豆成人同性GⅤ在线| 91亚洲欧美激情| 一区二区乱码福利| 亚洲成人精品久久久| 91在线欧色| 久久色激情一区二区三区| 国产suv精品一区二区四| 天天干天天燥| 99精品网| 亚洲情色图片区| 少妇久久久久久| 欧美亚洲性爱一区二区| 亚洲国产精品有声| 26uuu国产成人综合| 亚洲国产精品久久久久婷婷老年| 国产精品免费视频人成| 欧美色综合网| 亚洲日韩美国人妻| 中国小夫妻勾搭露脸淫荡对白 | 色月天AV导航| 欧美色图99| 日韩啊V| 国产高清亚洲日韩一区| 亚洲精品欧洲色| 精品高清牛人盗摄一区二区三区中文字幕A片免费在线观看 | 99性爱| 91九色精品熟女内射| 亚洲第一在线视频| 丁香五月电影| 青娱乐 成人娱乐在线| 婷婷色网| 国产13区| 樱花蜜乳av| 色九九久九九| 大乔未久88一区| 裸体美女久久久| 丝袜亚洲综合| 伦理第一页| 少妇三p| 亚洲午夜蜜臀| 欧美综合1性辶| 欧美综合91| 日韩综合无码一区久久92| 九九热三级片| 蜜乳成人AV| 日韩人妻中文视频| 手机看片1025| 密臀国产在线| 日本三级A片网站com| 青青草色插素人| 欧美日本国产日韩激情视频| 传媒在线观看一区二区三区| 99国内精品| 乱伦一二三| 超碰97亚洲区| 性爱久久| av网站在线观看了| 操老熟女AV| 五月天丁香欧洲日韩| 91成人高清在线观看| 久久久久78| 久/久精品99看9| 国产日本一区二区三区蜜臀在线观看| 久日91在线| 一区三区啪啪| 日韩激情无码影院| 91美女精品| 亚洲av热热色| 天天躁日日躁AAAXX| 秋霞网无码| 中文字幕av一区二区三区人妻少妇 | 精品四五区| 视频黄色国产一级| 麻豆国产精品午夜视频| 亚洲区限制级 99| 天天综合色图| 伊人久久大香线综合无码| 亚洲人妻日日日| 日韩欧美aⅴ综合网站发布| 桃花色综合影院| 是还免费视频1727我| 97人人草| 天天日骚逼熟女| 超碰精品97| 又大又长又粗又爽又黄| 美女91在线观看| 草B在线| 操国产逼| 91人妻爽爽人人做人人澡| 操曰本熟女| 97超碰9| 亚洲色 国产 欧美 日韩| 婷婷五月色| 九九九九免费高| 97天堂| 亚洲免费人妻在| 2025亚洲男人天堂| 欧洲乱码一区二区| 国产三级片在线观看| 久久99午夜精品一区人妻| 射丝袜高跟鞋99| 天美传媒婬乱在| 日韩啊V| 99精品网| 亚洲美女AV无码| 色欲日韩欧美在线一区| 无码人妻丰满熟妇区毛片| 欧美一级美片在线观看免费| 男人天堂综合| 国产精品国产自产高清AV| 粘花网06av视频| 天天干天天中出av| 在线免费观看高清无码视频| 国产精品久久久视频| 欧美日韩人妻精品一区二区三区| 免费一级特黄特色大片在线观看看| 4399成人黄A片| 欧美春色| 欧美日韩999| 99热超碰| 中文字幕日韩精品久久| 亚洲脚交| 久久人妻熟女一区二区 | 国产高清成人传媒影视| 91久久久久久| 蜜臀AV一区二区三区激情综合| AA丁香综合激情| 欧美后进式| 黄色网址久久精品欧美喷水| 美女诱惑1区2区| 日本三级久| 精品一区二区啪啪啪| 97人妻色| 2019天天操天天爽天天拍| 久久綜合很很很| 欧美页片| 爱丝福利| 日本羞羞的视频在线播放| 亚洲无线观看久久| 顶级丝袜熟女一区二区三区| 日韩免费看黄片| 91欧美综合在线| 91伊人久| 欧洲亚洲人妻无码中字久久三区四区| 天天干干天天干干| 欧美碰碰综合色| 日韩乱码av| AV麻豆免费一区| 婷婷五月天无码 | 乱伦日本色图AⅤ| julia国产在线| 亚码激情| 亚洲第一无码播放立川理惠| 亚洲乱码精品一区二区| 加勒比av官网在线| 中文字幕乱碼在线| 91三级理论片播放器| 亚洲欧美综合图片| 成人网欧美风情| 日本福利二区视频| 亚洲欧洲中文日韩女优乱码| 日韩中文字幕精品一区在线| 九9热伊人| 麻豆一区二区三区在线看| 91久热| 91熟女丨91老女人| 九九九成人| 国产强奸乱伦第1页| 永久免费观看的毛片的网站| 午夜.DJ高清在线观看免费7| 91女日逼| 伦理日韩国产久久| 好爽,再快点啊哈嗯嗯嗯嗯| 玖玖资源综合在线视频| 精品黄色电影| 9 1果冻精品视频| 91精品免费| 天天天天天天天天综合| 嗯啊不要啊啊在线观看视频| 婷婷综合| 久99| 三级特黄60分钟播放| 97精品| 国产天天噜一噜久久久| 黑人与人妻| 爱爱动态120秒| 丁香六月综合激情| 亚洲一区二区三区麻豆传媒| 91新在线欧美| 色五月婷婷在线| 无码免费精品高清| av婷婷色婷婷色六月| 欧美偷拍区| 牛牛AV人人夜夜澡人人爽| 国产白丝网站| 97国产|免费| 97精品一二区| 日韩欧美传媒一区国产| 亚洲精品日日夜夜52| 亚洲免费成人在线高清无码视频| 内射夫妻三片| 91在线视频国产网站| 精品九九九九| 日韩免费在线观看不卡| 一区操逼| 高清成年美女黄网站免费大全 | 思思热免费在线视频| 亚洲性爱乱操x| 热99这里有精品综合久久| 美女网站黄页| 精品丰满熟妇人妻一区| 久久午夜神马| 亚洲色宗合| 色香欲影| 无码人妻精品一区二区三区99不卡| 综合久久99| 国产精品久久久 | 99在线无码精品秘 入口黑人| 国产精品无码成人精品| 国产欧美日韩一区二区三区| 中文字幕日韩人妻视频一区二区三区 | 人妻精品一区二区| 高清有码一区二区| 色婷婷六月丁香七月婷婷| 波多野结衣被操50分钟免费视频| 国产精品探花色| 亚洲无码免费看| www黄片免费看com| 婷色五月| 快播久久人人aV| 久久精品女同亚洲女同13| 99久在线精品99re8蜜桃| 国产情色在线| 久久久熟女一区| 天天欧美| 久久精品国产99精品亚洲蜜... | 亚洲好色人妻| 成人九九| 日本1区2区不卡视频| 久久亚洲欧美中文字幕国语| 国产高清成人mv在线观看| 韩国一级婬片A片AAAAA| 美女超碰978| 日韩无码AB| 日日AAvv| 国产精品一区av在线| 1769精品一区二区三区| 日日夜夜干| 美腿丝袜高跟网免费视频免费视频| 熟女天天干| 综合色欧美| 素人一区二区三区日韩| 日韩成人电影AV| 亚洲精品欧洲精品| 日日骚av| 99精品在线观看| 日韩一区二区精彩视频| 婷婷五月影院| 人妻在线大香蕉| 色婷婷综合网站| 粉嫩av一区二区三区四季| 一级性爱视频免费在线| 激情啪啪拍91| 国产人伦精品一区二区三区| 先锋音影AV| 91色综合激情| 日本中文字幕不卡视频| 久久久久久久 九九九九九九九| 波多野结衣之双飞调教在线播放| 婷婷五月天色网| 啊啊啊啊啊啊啊啊啊啊在线观看| 天天天天天天天天综合| 麻豆久久久久久久久丝袜| 97五月天| 丝袜熟女2P| 嗯……啊…嗯嗯…啊…好舒服| 日日夜夜天天| 91黑丝露脚| 小草三级久久观看| 亚洲图片 91| 人人色97| 长久操视频| 国产精品香蕉热久久新品| 日本一区视频在线观看| 亚洲 自拍偷拍 欧美| 国产蜜臀精品一区二区尤物| 亚洲男人天堂AV| 中文字幕乱妇免费视频| 亚洲av成人精品一区| 再深点灬舒服灬太大了添视频| 人人做天天爱| 日韩日韩日韩-国产乱码精品一区二区| 人人操人人操人人人操| 欧美猛交黑寡妇中文字幕| 久久 国产 无码| 国产成人亚洲精品无码最新在线| 亚洲无码免费看| 丁香六月婷婷久久综合| 制服诱惑亚洲一区二区三区在线观看| 久久丝袜| 久久久成人国产精品无码| 女人爽到高潮潮喷18禁网站 | 国产高清成人免费视频| 99精品欧美一区二区三区桃色| 性色高清在线| 99精品综合久久久久五月天| 人人模人人看| 狠狠 91| 亚洲男人天堂2013| 澳门黄片一香蕉视频| 日本肏逼视频在线观看| 亚洲精品国产熟女久久久| 色综合一区二区三区| 偷看洗澡一二三区美女| 香蕉国产97| 97在线视频观看网站| 啊啊啊用力在线观看| 综合欧美亚洲| 日韩三级一区| 操国产高清| 野狼激情网| 久久久亚洲熟妇熟女| 超碰久热| 91综合在线| 日韩美一区| 试看日韩黄片| 亚洲熟妇无码一区二区三区| 成年人三级黄色片视频| 久久97资源 网| 亚洲中文字幕精品一区| 超碰日韩美妻| 国产超碰人人操| 色九久| 97se综合网| 国产精品干干干| 91精品人妻啪啪间| 狠狠躁AV| 26uuu国产日韩综合在线观看| 日日做夜狠狠爱欧美黑人| 超碰色大香蕉| 欧 美 自 拍 偷 拍| 床上啊啊啊一区二区三区| 女人久久久| 肉丝无码中文高清| A V少妇特黄三级| 欧美18 在线观看| 啊啊啊男女| 91啪9色| 日韩无码黄色片| 日韩内射视频| 床上啊啊啊一区二区三区| 中文字幕蜜乳av| 涩涩久久精品| 绑缚麻绳人妻寝取完整版| 91精品人妻电影| 97伊人网| 欧美高清第一页| 天美传媒av在线| 狼人综合婷婷激情四射 | 日本三级R| oumeisetupian| 亚洲欧美日韩精品久| 欧美综合另类| 蜜臀99久久| 一本大道久| 人人澡人人澡人人| 婷婷综合网站| 狠狠色婷婷| 欧美日韩性爱无码| 国产区日韩区在线观看| 四虎av在线| 不卡六六在线91| 操淫穴亚洲五月丁香| 午夜天堂精品久久| 嗯啊不要啊啊在线观看视频| 久久久久久亚洲精品不卡人乳| 自拍偷拍2025在线观看| 99在线无码精品秘 入口黑人| 国产精品蜜臀久久久久无码AV| 亚洲?V高清一区二区三区尤物| 亚洲成人贴图| 色在线视频导航| 亚洲影院成人| 波多野结衣AV无码一区| 在线毛片片免费观看| 欧亚成人在线视频| 啊啊啊 在线| 日本大片日本一区二区免费高清| 人妻天堂网| 超碰97精品| wwwxxx日本爽| 我要看免费韩日黄片| 天天干2019| 天天爽夜夜欢视| 日韩天天本| 神马久久网| 欧美热图99| 性爱网站一区二区| 亚洲激情久久| 欧美97日韩| 东北女人性交| 日韩极品无码B| 极品极品色影院| 天色综合网| 9久9久9久9久视频网站| 欧美人人操人人插| 午夜高清成人在线视频| 高清不卡一二三区视频......| 美女AV一区二区| 亚洲综合色图欧美| 中国国产精品一区视频| 四虎影库国产精品免费| 春色综合免费| 无码人妻丰满热妇又大又粗| 桃色六月天| 先锋女优在线观看视频| 自偷自拍的亚洲视频| 人妻无码久久一区二区三区免费| 九九九不卡| 亚洲无码一区二区三区三州| 啊啊啊啊啊在线视频| 99re98| 蜜乳AV色欲AVAV无码| 亚洲人妻熟妇三十三区| 翔田千里Av在线| 中文字幕少妇色 | 欧美一级国产一级| 亚洲色性情三级| 久久久久久久免费A片国产成a人亚洲精∨品无码 | 清清草影| 精品中文字幕第一页| 国产人伦精品一区二区三区 | 欧美综合骚| 五月丁香激情四射| 精精夜夜| 操逼无码操逼| 欧美性,色九九| 超碰人人干天天射| 五月丁香综合网| 三久久久四久久久久| 射丝袜高跟鞋99| 超碰精品日韩欧美国产| 久久综合乱子伦国产免费| 黄色免费一级在线毛片| 日日干男人的天堂| 午夜高清成人在线视频| 四虎国产精品永久在线囯在线 | 天堂精品| 乱理日韩中文| 99免费视频| 岛国黄| 日本男人插女人的逼黄色| 久久一区二区三区入口| 91肉片| 欧美色图91| 日韩钢筋无码高清啾啾啾| 久久香蕉国产线看观看猫咪av| 久久粉色| 精品人妻15区| 懂色av中文字幕一区二区三区天美 | 色婷婷一区二区三区久久| 国产美女91视频| 日本三级韩国三级99| 加勒比久久综合网高清| 美日韩男女操屄视频| 拍拍拍拍大尺度黄色三级片拍拍拍拍拍照| 69人妻人人揉人人躁人人精品| 国产精品69人妻无码久久久| 日韩日本欧美在线观看| 欧美成人免费在线观看| 亚洲图片欧美偷拍| 日韩中文字幕精品一二三事国产精品 | 97久久视频| 亚洲国产麻豆一区二区三区 | 好舒服视频| 成人五月天色网| 中美日韩毛片| 秋霞福利网| 精品无码久久久久| 欧美色日本| 91黑丝操| 国产后入式在线观看| 青青操在线亚洲视频观看欧美在线 | 媚薬在线视频麻豆| 国产强奸无码乱伦| 久久九九一区二区三区成人| 人妻插插人妻人| 性做久久久久久免费观看软件| 欧美天天综合网| 高清国产精品福利网站| 自拍内地三级在线观看| 97精品熟女少妇一区| 伊人久久大香线蕉无码| 日本理论在线| 青青草国产亚洲精品久久| 97碰碰日本乱偷人妻中文的| 精品欧美日韩在线观看| 中文字幕在线免费观看| 日韩高清黄片| 色噜噜狠狠色综合日日| 日韩av熟女一区二区三区成人| 强奸熟女一区二区三区| 综合网91| 国产精品免费日韩| 亚洲男人天堂Av| www.99在线| 99热 按摩 日韩| 成人羞羞视频国产| 日韩 欧美 另类 人妻| 久久久久久午夜男人的天堂| 亚洲男人综合网| 天天色怡春院| 性在久久久久久| 自怕偷自怕亚洲精品| 精品-91人妻子系列| 人妻加勒比东京热| 中文字幕在线免费观看 | 91精品国产麻豆国产自产在| 日日干夜夜操视频h| 秋霞怕怕片| 日产狠狠干| 亚洲色图日韩丝袜制服一区二区五月在线| 黄色小视频日本txt| 亚洲淫乱骚妇AV| 欧美亚洲色图另类国产| 国产精品午夜高潮呻吟久久av| 国产性刺激| 欧中日成人免费影视| 91青青在线视频| 嫩草美女久久| 一区二区三区无卡视频在线观看| 国产自产22区| 免费强奸av| 精品9999| 婷婷伊人| 久久天天艹| 精品人妻无码一区二区三区不卡-精品人妻无码一区二区...|精品少妇一区二区三 | 一级啊性爱在线视频| 亚洲中字慕不卡| 78精品| 天天干天天狼在线视频| 一本色道久久综合狠狠操| 99ri视频| 福利视频香蕉免费一区二区在线| 亚洲欧美精品久| 超碰成人最新最好看| 后入式999| 欧美亚综合色图| 婷婷丁香九月| 午夜精品久久久| 亚洲日韩欧美一区二区| www.99视频| 91久久精品中文字幕| 67914在线兔费成人视频| 日韩紧密久久| 欧美很很操视频| A级国产欧美激情在线| 亚春色色| 天天日美女的B| 久久精品国产亚洲AV无码电影| 精品久久久久久久| 久久久96精品| 九九九久| 东方亚洲在线操逼天堂| 蜜桃在线观看一区二区三区| 淮穴色AV| 九九无码视频| 99热精品免费| 3p国产色噜噜一区| 激情五月婷婷综合| 国产欧美精选自拍一区| 欧美日韩大香蕉| 亚洲成人激情小说视频| 中韩中文字幕在线观看| 伊人91| 青女偷拍网| 久久久久久免费电影| 亚洲视频小说| 精品人妻无码一区二区三区不卡-精品人妻无码一区二区...|精品少妇一区二区三 | 日韩卡一卡二卡三在线| 91精品女厕偷拍视频| 亚洲精品成人动漫在线| 日韩无限资源| 超碰97导航| 久久精品99久久久久久| 激情啪啪视频| 超碰视97中文| 91综合色噜噜| 黄片视频,下载| 亚洲AV无码成人精品久久| 欧美激情中文字幕另类小说| 亚洲精品国产专区在线观看| 日韩激情啪啪| 大香蕉碰| 超碰社区97| 啊啊啊想要| 91爆操视频| 国产偷人伦激情在线观看| 久久中文色图| 亚洲一级性爱视频免费看| 天天草天天日| 国模不卡| 按摩中文字幕| 玖玖无码超碰| 2019精品国产无码成人| 日韩亚洲Av人人夜夜澡人人爽| av大香蕉| 99只有精品| 亚洲av性爱电影| 一级久久久久久久久久久| 激情小说成人日本无码一| 自拍盗摄一区| 欧美日韩制服| 黄片不用下载在线观看| 丁香婷婷激情五月天无毒不卡| 亚洲欧洲日韩中文字幕一区| 成人性爱AV在线免费观看| 亚洲欧美日韩综合在线尤物| 亚洲综合99999| 男人的天堂 在线一区| 色噜噜综合在线| 美女爽爽爽刺痛洞洞| 国产精品嫩草久久久久| 老色69| 91美女视频直播| A片 AV一级在线播放观看免费| 国产成自自拍在线观看| 超碰在线人妻中文字幕| 天天色粽合合合合合合合| 9Ⅰ超碰| 久久99操天天日| 9Ⅰ超碰| 人妻一区二区三区| 日本操逼无码| 91麻豆一二三区| a v网站在线播放| 无码操逼天堂| 国产精品无码AV网站| 日本A级视频| 爆操无码| 日本成人在线不卡一区二区三区| 久久久噜噜噜久久久| CCYY草草影院地址入口| 国产精品粉嫩福利在线| 久久99午夜精品一区人妻| 亚洲日韩欧美一区二区| 插入逼91| 超碰在线第一页| 99丝袜福利在线播放| 91精品无码久久久久久久| 日本在线一二| 日本在线播放不卡一区| 外国免费性情大片| 欧洲亚洲天堂精品| 激情第四色| 亚洲AV无码国产精品久久久久| 超碰在线日韩一区| 亚洲天堂日本| 天天日日本| 久精品无码av一区二免费国产在线观看 | 亚欧高清在线| 欧美91在线| 亚洲欧美天| 色av中文字幕| 国产一级内射高清视频| 激情综合网一盗摄| 樱花蜜乳av| 97色色色| 亚洲天堂另类| 欧美春色| 日韩成人人妻网站| 色五月AV在线| 欧美日韩婷婷中文| 久久久99久9| 亚洲 综合 欧美| 99色视频| 天天淫人人妻日日色| 亚州国产精品乱| 精品久久久久久亚洲| 婷婷99狠狠| 极品色社| 91neishe| 99久热精品99re6热| 97国产天堂岛| 男人天堂网手机版婷婷| 激情文学 亚洲图片| 91麻豆天美国产欧美高潮| 粉嫩久久久久| 九九九精品美女| 成人羞羞视频国产| 可以免费看黄片的视频| 色五天伊人| 91丝袜在线观看| 天天操夜夜嗨| 丁香五月天堂网| 久久久久久久久久久久黄色| 日本999精品| 色逼综合| 欧美午夜视频免费观看| 91狠狠综合网| 动漫片子网站3黄| 欧美日韩一干二干| 无码免费一区二区三区啪啪| 婷婷视频在线免费观看| 97人人干| 曰韩少妇无码| 日韩丝袜高跟制服在线观看| 欧美大香蕉同搞| 丁香五月激情网| 天天干1区2区在线| 日韩少妇无码| 综合激情97 | JIZZJIZZ亚洲女人被躁| 久久香蕉影院| 天天摸天天舔天天操| 日韩福利综合一区| 丁香五月综合| 日韩大香蕉AV影片| 欧美亚州综合网图片| 淫荡网址| 六月婷婷色综合| 在线免费试看60秒| 大香蕉视频一二三区| 婷婷五月天激情网| 91九色丰满高潮| 91色欧美| 97天天摸天天碰| 亚洲黄a三级三级三级看三级| 国产兽交视频在线播放| 久久久久一本一区二区青青蜜月| 欧美色青| 91亚州日韩高清| 尤物视频视频官网| 超碰国产情侣自拍网| 青青操网| 色网综合网| 91久久久久久久久18| 10000部十八禁看电影| 亚洲AV性爱电影| 天色综合网| 涩涩五月天| 亚洲熟女乱综合一区二区在线-...亚洲国产日韩欧美一区二区三区,久久久久久精 | 男人天堂2019亚洲| 南澳成人一级片在线播放| 狠狠干狠狠色| 日夜伊人网| 亚洲区限制级| www成人啪啪18秘 免费| 九九九九九精品| 午夜男女爽爽爽在线视频| 熟女人妻一区二区三区免费看| 人妻啊啊人妻啊| 一级aaaaa欧美中文字幕录像片| 超碰到97情色| 激激五月| 再深点灬舒服灬太大了添视频| 蜜桃臀AV在线| 探花精品视频| 国产成年精品高清在线观看91| 大香蕉性欧美| 看黑丝美女操逼青青网站| 天天日天天色| 国产不卡免费在线视频| 精品无码久久久久久久杏吧| 色欧洲97| 免费99精品国产自在在线| 殴美在线AⅤ| av网站在线看| 午夜精品久久久久久久| 91neishe| 五月婷婷五月天| 高跟丝袜AV专区国产| 午夜福利1区2区3区| 97欧美日韩综合| 日本一二三免费久久| 60秒免费小视频| 激情四射五月天| 日本一二三高清| 欧美在线55555| 伊人国产av| 亚洲91网站| 夜夜国自区| 国产丸一视频| 久久99九九九九6666免费观看软件| 亚洲欧美精品久| 97精品网站| 91亚洲丝袜| 久操电影网| 97超碰欧美精品| 啊啊啊好多水| 国模无码人体一区二区三| 免费av在线播放二区| 亚洲狠| 最新无码国产| 竹菊影视国产一区二区| 熟女视频久久| 日韩精品三区四区| 久久综合超碰| 91第一页| 欧美黑人精品在线播放| 亚洲国产日韩欧美熟妇在线| 翔田千里av一区二区三区| 欧美成不卡网| 高清不卡 中文 人妻| 夜夜草我| 激情综合久久| 日韩国产十八禁| 国产精品乱码久久久久久久久| 精品久久久久久久| 亚洲一区二区中文字幕| 久久大香蕉手机高清| 中文字幕一区二区三区蜜桃视频| 欧美性第1页| 午夜福利在线合集| 日韩丰满熟妇| 久久綜合很很很| 久久久四区| 牛黄色久午久| 日噜夜夜夜夜夜夜夜夜夜夜爽爽爽爽爽爽爽爽爽爽爽爽 | 人人操我人人干| 无码黑人精品一区二区三区三| 中文字幕成人乱码熟女精品国50| 思思热在线视频精品| 五月综合久久| 精国久久一区二区三区98| 日本成a人v网站在线观看| 九九综合久久| 女人的天堂大香蕉网| 日本免费人成视频播放120秒| 天天影视综合网欧美精品| 欧美激情 亚洲色图| 中文字幕在线免费观看2| 91亚洲精品青草| 另类图片综合| 91人妻丝袜无码| 中文字幕在线观看永久| 久久国产99精品72福利 | 久热最新在线杭州| 色丁香久久| 91爱| 天天影视网综合少妇| 亚洲女人91| 久九干| 久久av成人无码免费| 综合网亚洲在线| 久久五月份| 精品人妻中文字幕4399| 欧美久久婷婷| 九九色综合| 人妻夜夜爽天天爽三区麻豆AV网站| 中日无幕一二三四区| 国产精品极品美女视频| 天天性射网| 色大香蕉97N| 色色网91| 国产精品一二三| 亚洲色鬼| 日韩成人免费电影| 艹精品| 78久久| 亚洲不卡一| AV天堂男人的天堂| 久久五月综合| aⅴ日韩成人电影av在线免费看av大全 | 人人艹亚洲| 中文字幕在线免费观看 | 自拍内地三级在线观看| 久久精品成人| 欧美色图人妻| 嗯啊不要啊在线| www超碰| 久久五十路熟女人妻| 91中出| 亚洲国产熟妇综合色专区| 青青草玖玖爱| 欧美大片天天看| 伊人大香蕉在线| 日韩人妻操B| 一区二区三区男女操逼黄色小电影| 强奸乱伦av电影| 中文字幕亚洲永久精品| 极品综合| 亚洲成人性爱网站在线播放| 亚洲天堂一区| 91天天| 亚洲国产精品V?在线播放| 屁股久久久久久| 日韩人妻一区二区| 在线观看亚洲成人精品| 亚洲国产美女久久久久| 18禁中文字幕| 狠狠色噜噜狠狠狠狠狠色综合久久| 欧洲亚洲国产综合在线| 国产欧美日韩一区二区三区| 欧美大波激情xxxx| 岛国片国产成人亚洲播放| 日韩不卡a级视频专区| 无遮挡一级毛片视频免费的| av爱爱爱| 中国国国产一级特黄毛片| 国产强奸无码乱伦| 女色综合| 国产精品久久久久久高清无码免费看 | 久久久专区| 久久大香蕉97| av网站在线观看了| 午夜精品久久久久久久男人的天堂 | 久久五月天婷婷| 青青操在线亚洲视频观看欧美在线| 试看福利| 蜜臀久久99精品久久久久| 激情小说成人日本无码一| 久久激情综合| 色色综合97| 一区e区三| 久思思热视频在线观看| 肥臀熟女福利视频一区二区| 午夜免费福利视频一区| 国产精品成人福利在线| 国产后入式在线观看| 天天操天天7| 97chaopengongkai| 国产在线强奸视频| 国产精品自拍xxxx| 成人亚欧免费视频| 麻豆区99999| 深喉吞精| 岛国成人av在线播放网址| 熟妇视频一区二区三区在线观看| 97操综合| 日本精品无码三级网站| 精品一国2| 精品久久久久av影院| 成人久久精品| 国产人伦a片信息免费片| 天堂日本亚洲欧美| 国产精品电影大全| 日韩少妇丰满亚洲| 国产精品不卡一区二区三区av| 欧美在线官网| 中国人高清www色视频免费| 99精品在线| 9久精品| 天天看特黄的免费网站 | 91 综合网| 天天综合精品| 国产美女在线精品免费看| 啊啊啊啊二区好大| 一区二区三区亚洲| 欧美日本视频一区| 色综合中文字幕不卡| 国产高清午夜成人在线观看| 青青伊人久久| 丝袜美腿诱惑亚洲欧美视频在线观看| 东京热伊久| 男人的天堂欧美| 色婷婷电影| 婷婷色综合欧美日韩| 久久99深爱久久99精品| 天天插天天干| 曰韩精品视频一区二区| 欧洲精品二区| 久久精品电影| 熟女啪啪视频| 天天爽夜夜操| 久久美女国产| 日韩中文字墓| 蜜臀久久99精品久久久久久成人小说 | 婷婷久热| 亚洲欧洲日韩天堂av| 懂色aV一区二区天美传媒| 狠狠躁日日躁夜夜躁A| 人妻在线臀日韩| 中文字幕在线观看丝袜| 欧美性爱一区| 67194无码不卡| 欧美熟妇精品黑人巨大91|