色五月色开心色婷婷色丁香,五月婷婷丁香花综合网,婷婷丁香五月激情综合在线,五月婷婷六月丁香动漫,婷婷丁香五月激情综合在线,丁香花中文字幕在线观看,播五月色五月开心五月网,开心激情综合网,狠狠色丁香婷婷综合最新地址,丁香视频在线观看,狠狠做六月爱婷婷综合av,久久激情五月丁香伊人

ARTICLE DETAIL

資訊詳情

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

GD32+FreeRTOS+TCP協(xié)議棧移植實戰(zhàn):從選型到聯(lián)調全記錄

GD32+FreeRTOS+TCP協(xié)議棧移植實戰(zhàn):從選型到聯(lián)調全記錄 簡介面向GD32F450與LAN8720A的FreeRTOS_TCP移植工程為嵌入式開發(fā)者提供了一套完整的RTOS結合TCP/IP協(xié)議棧參考實現(xiàn)適合需要學習網(wǎng)絡通信、任務調度及外設驅動的中高級軟硬件工程師也適用于物聯(lián)網(wǎng)終端、智能家居、工業(yè)聯(lián)網(wǎng)等產品原型開發(fā)。資源包共846個文件大小3.11MB以383個H頭文件與285個C源文件為核心輔以匯編啟動文件、Keil工程文件uvprojx/uvoptx、鏈接腳本、Makefile及若干調試腳本可配合常見IDE直接編譯燒錄驗證。工程覆蓋FreeRTOS內核在GD32F450ARM Cortex-M4上的移植要點以及TCP/IP協(xié)議棧的集成過程涉及任務調度、信號量/互斥鎖、內存池管理、LAN8720A驅動、MII/RMII接口配置、TCP/UDP收發(fā)與中斷服務等關鍵環(huán)節(jié)。已有1310人學習下載可幫助開發(fā)者避開從零移植的典型坑點快速獲得可運行的網(wǎng)絡通信平臺并理解RTOS與網(wǎng)絡協(xié)議棧協(xié)同工作的異步處理思路。 把主控換成國產芯片還要保留網(wǎng)絡通信能力在 GD32 上同時跑 FreeRTOS 和 TCP 協(xié)議棧這套組合到底怎么搭這篇復盤把從選型、移植到聯(lián)調的所有關鍵節(jié)點都過一遍踩過的坑也一并列出來。1. 為什么選 GD32 FreeRTOS TCP 這條路線而不是裸機硬扛1.1 GD32 到底哪里香從一個實際項目出發(fā)我手頭這個項目倒不是什么高精尖設備就是一臺需要聯(lián)網(wǎng)上報數(shù)據(jù)的工業(yè)控制器原來用的是某國際大廠的 M4 系列芯片功能上完全夠用但供應鏈那邊一直提醒要準備替代方案。調研了一圈GD32F407 系列算是呼聲最高的一檔Cortex-M4F 內核主頻能到 200MHz內置以太網(wǎng) MAC配合一顆外部 PHY 芯片就能實現(xiàn) 10/100M 以太網(wǎng)再加上它和原方案在引腳上基本兼容硬件改版成本可控——這一點在項目里比任何參數(shù)都值錢。當然兼容說的是封裝和部分外設的電氣特性寄存器級完全不是一回事所以代碼不能直接搬。網(wǎng)上有人傳GD32 就是 STM32 的國產平替代碼改個宏定義就能跑這話只說對了一半。芯片底層外設的寄存器布局不同庫函數(shù)風格雖然相似但中斷控制器、時鐘樹、Flash 等待周期這些細節(jié)都有差異。實際移植時外設驅動代碼基本是重寫的只是邏輯結構可以參考原來那套。這點心理準備必須提前做好否則中期調試會被各種看起來應該一樣但就是不對的問題折磨到懷疑人生。選擇 GD32 還有一個隱藏優(yōu)勢庫里自帶的例程覆蓋了以太網(wǎng)、USB、FATFS 這些常用外設和中間件尤其是以太網(wǎng)這一塊官方例程直接給了 lwIP 的集成參考而不是讓你從零啃數(shù)據(jù)手冊。對做產品的人來說這是巨大的時間節(jié)省。如果你還在 GD32 和 PY32、CH32F407 這類芯片之間猶豫我的建議很直接看你要不要用網(wǎng)絡功能網(wǎng)絡相關例程和資料豐富度GD32 目前優(yōu)勢明顯。1.2 FreeRTOS 帶來的是結構不是負擔單做一個 TCP 通信裸機加中斷能不能做能。我也見過不少老工程師用裸機狀態(tài)機把網(wǎng)絡協(xié)議棧跑得很穩(wěn)。但問題在于一旦系統(tǒng)里除了 TCP 還有按鍵、顯示、數(shù)據(jù)采集、存儲裸機的主循環(huán)會迅速膨脹成一團亂麻。這個項目除了網(wǎng)絡通信還要同時處理傳感器采集和 FATFS 寫日志任務一旦超過三四個RTOS 的價值就完全體現(xiàn)出來了每個功能模塊拆成獨立任務分配各自的棧空間用隊列或信號量做任務間通信調試時只需要盯住每個任務的狀態(tài)而不是在中斷和主循環(huán)之間來回跳。FreeRTOS 在這類項目里基本是默認選擇——不是因為它功能最強而是因為它資料多、使用者多。不管是韋東山那套視頻教程還是各路移植筆記、面試題匯總搜任何一個報錯信息都能找到前人的記錄。嵌入式開發(fā)里生態(tài)的豐富程度有時候比內核本身更影響開發(fā)效率。但 FreeRTOS 不是銀彈它也會引入自己的問題任務棧分配不合理導致溢出、優(yōu)先級配置不當導致低優(yōu)先級任務餓死、中斷服務函數(shù)里調用危險 API 導致系統(tǒng)崩潰。這些問題在裸機里不存在到 RTOS 里就成了必修課。所以我的原則是功能簡單、任務固定就用裸機別為了用 RTOS而上 RTOS功能復雜、擴展勢頭明顯就直接上 FreeRTOS別等代碼寫到一半再重構。1.3 TCP 協(xié)議棧lwIP 幾乎是公認答案嵌入式設備要跑 TCP/IPlwIP 基本是唯一一個被廣泛驗證過的開源選擇。它和 FreeRTOS 的配合已經非常成熟官方文檔甚至直接給出了 NO_SYS0 的 API 調用模式支持多線程方式運行 TCP/IP 核心還能通過 sys_thread_new 創(chuàng)建協(xié)議棧線程和 FreeRTOS 無縫對接。相比 uIP 那類極簡協(xié)議棧lwIP 功能完整接口接近標準 socket調試工具鏈也齊全。選擇 lwIP 時有個大方向要想清楚跑在 RTOS 之上TCP 校驗和、數(shù)據(jù)拷貝這些操作是由內核還是由網(wǎng)卡任務處理內存管理用的是自動分配的 pbuf 還是自定義的池。這些配置直接決定內存占用和收發(fā)性能。lwIP 默認配置相對保守但足夠穩(wěn)定這也是我對這個項目的定位——要的是一個能長期運行不跑飛的 TCP 連接不是極限吞吐所以配置上求穩(wěn)為主。關于這部分細節(jié)第 4 章會展開說。2. 開發(fā)環(huán)境與工程骨架從 pack 包到第一塊網(wǎng)卡2.1 Keil、Embedded Builder、VSCode 誰更適合這個項目搭建 GD32 開發(fā)環(huán)境主流選項無非三個Keil MDK、GD32 Embedded Builder、VSCode 編譯鏈。我以前用 Keil 用得多但這個項目我一開始就換了思路——先試了 GD32 Embedded Builder。它是兆易創(chuàng)新基于 Eclipse 改的免費 IDE自帶編譯鏈和調試器工程模板直接從芯片廠商庫里生成不用自己搭三件套這對想快速起項目的開發(fā)者來說非常友好。實際用下來Embedded Builder 的優(yōu)勢是開箱即用、原生支持官方標準固件庫、芯片定義都內置新建工程時還能直接選 FreeRTOS 和 lwIP 組件省去手動拷貝源碼的步驟。它對中文環(huán)境的支持也比以前預期好雖然談不上完美的漢化但菜單和配置項多數(shù)能看懂。缺點是啟動速度一般插件生態(tài)比 VSCode 少不少寫大工程時的流暢度不如 VSCode。做完網(wǎng)絡調試器的演示工程之后我又把正式項目切回了 Keil 環(huán)境——原因很實際團隊成員更熟 Keil而且 AC6 編譯器對 FreeRTOS 和 lwIP 的支持很成熟代碼補全和 Keil 的調試工具用起來更順手。VSCode 是另一條路線適合喜歡用 clangd 做代碼跳轉和靜態(tài)檢查的人。網(wǎng)上搜VSCode FreeRTOS 移植能找到不少教程但我個人建議如果剛接觸 GD32先用廠商原生的 Embedded Builder 或者 Keil 把工程跑通再切換到 VSCode 環(huán)境否則環(huán)境問題會和業(yè)務代碼問題混在一起排查起來非常頭疼。2.2 pack 包與固件庫這里容易埋坑不管用哪個 IDE都繞不開芯片支持包和固件庫。Keil 環(huán)境下GD32 的 pack 包可以直接在 Keil 的 Pack Installer 里搜索GD32F4xx下載也可以去官網(wǎng)手動下載然后雙擊安裝。這個流程本身不難但版本問題經常被忽略——GD32F4xx 標準固件庫分為多個版本不同版本的庫函數(shù)命名和引腳配置宏可能略有差異。建議統(tǒng)一使用官方 SDK 包里的庫版本不要混用網(wǎng)上轉發(fā)的舊版。Embedded Builder 就簡單一點建工程時選擇芯片型號IDE 會自動拉取對應的芯片定義和啟動文件基本不用手動管理 pack 包。如果發(fā)現(xiàn)工程編譯報找不到設備頭文件這類低級錯誤十有八九是新建工程時芯片選錯了系列或者庫路徑沒配好。固件庫的選擇上GD32 官方提供標準外設庫和后來出的全新系列庫。標準外設庫風格類似 STM32F1 的標準庫函數(shù)名、結構體命名都是 GPIO_InitTypeDef 這套上手成本極低。新庫更結構化但資料相對少。這個項目我用的是標準外設庫因為 lwIP 移植參考例程基于它寫的照著改效率最高。2.3 AC6 編譯器下推薦開啟的選項Keil MDK 現(xiàn)在默認用 AC6ARM Compiler 6編譯它基于 Clang對 C99 和 GNU 擴展的支持比 AC5 好很多編譯速度也快。但 FreeRTOS 和 lwIP 這兩個開源項目里有一些代碼寫得比較放飛自我在 AC5 下可能只是警告到 AC6 下直接變錯誤。遇到#include freertos/freertos.h 檢測到 #include 錯誤這類問題多半不是頭文件本身的問題而是工程的 include path 沒有把 FreeRTOS 源碼目錄、port 目錄、以及應用配置目錄加全。編譯器報錯時先檢查頭文件路徑再檢查語法層面的兼容性順序不能反。我建議在 Keil 里把 C99 模式打開并加上 -Wno-missing-prototypes 之類寬松一點的警告選項先保證代碼能編過再逐步收緊。另外如果系統(tǒng)提示考慮更新 compile_commands.json那是給 clangd 或其他工具用的編譯數(shù)據(jù)庫Keil 不依賴它但如果用 VSCode 看代碼需要安裝相應插件并手動生成這個文件才能消除誤報。3. FreeRTOS 移植中真正卡住人的幾處細節(jié)3.1 移植文件組成與 heap 算法的選擇FreeRTOS 的移植看起來唬人但核心文件就三塊一是內核源碼包括 tasks.c、queue.c、list.c、timers.c、event_groups.c二是針對具體編譯器和架構的 port 文件Keil 環(huán)境下對應的是 portable/RVDS/ARM_CM4F 目錄下的 port.c 和 portmacro.h用 GCC 編譯鏈的話則對應 portable/GCC/ARM_CM4F三是用戶提供的 FreeRTOSConfig.h用于裁剪系統(tǒng)功能。這里要提一嘴 heap 的選擇。FreeRTOS 提供了 heap_1 到 heap_5 幾種不同實現(xiàn)heap_1 最簡單只支持創(chuàng)建任務但從不釋放內存heap_3 直接包裝了編譯器的 malloc 和 free但前提是編譯器庫線程安全heap_4 是我在這個項目的推薦——它支持內存合并、可以釋放已分配的內存塊而且不容易產生嚴重的外部碎片。項目里如果頻繁創(chuàng)建和刪除任務或隊列heap_4 是穩(wěn)的選擇。堆大小需要在 FreeRTOSConfig.h 里通過 configTOTAL_HEAP_SIZE 配置TCP 協(xié)議棧加網(wǎng)絡任務比較吃內存我直接給了 64KB 的余量如果 Flash 緊張可以適當壓縮但千萬別壓到 20KB 以下否則 lwIP 初始化可能直接失敗。另外網(wǎng)上很多學習筆記建議把 croutine.c 也加進工程其實協(xié)程功能多數(shù)項目用不到為了編譯干凈建議去掉。裁剪的意義在于讓代碼路徑盡量短排查問題時每一步都看得清楚。3.2 SysTick、PendSV 與中斷優(yōu)先級配置FreeRTOS 移植之后最常見的現(xiàn)象是任務創(chuàng)建成功但調度器一啟動就死機或者任務永遠不切換。這種問題九成出在時鐘和中斷優(yōu)先級的配置上。GD32 的片上定時器資源豐富但 FreeRTOS 的時間基準默認建議用 SysTick這個系統(tǒng)定時器不必單獨初始化FreeRTOS 自己會接管。你需要確定的是 SysTick 的時鐘源以及什么時候調用 vTaskDelay 這類 API 時系統(tǒng) tick 是否在走。SysTick 的優(yōu)先級必須設置為最低優(yōu)先級這樣它不會搶占其他中斷尤其不會搶占以太網(wǎng)接收這類實時性要求更高的外部中斷否則網(wǎng)絡數(shù)據(jù)包處理會被系統(tǒng)節(jié)拍頻繁打斷。另一件容易忽略的事是 PendSV 和 SVC 兩個異常。PendSV 用于上下文切換它的優(yōu)先級必須設置為最低確保上下文切換不會阻塞硬件中斷SVC 則用于啟動第一個任務優(yōu)先級不影響運行。在 Keil 環(huán)境下FreeRTOS 的 port.c 文件會自己設置這兩個異常優(yōu)先級前提是你沒有在初始化代碼里改掉它。如果你在啟動文件或者 main 函數(shù)里手動寫過 NVIC 相關配置需要檢查優(yōu)先級組是否設置正確。GD32 的中斷優(yōu)先級分組建議保持在默認的4 位搶占優(yōu)先級、0 位子優(yōu)先級模式這與 FreeRTOS 的 port 層假設一致改了會導致優(yōu)先級判斷錯亂。3.3 頭文件報紅include path 與 compile_commands.json在 VSCode 里看 FreeRTOS 代碼最讓人煩躁的就是滿屏紅色波浪線提示找不到 freertos.h。原因很簡單VSCode 的 C/C 插件和 clangd 并不知道你的工程用了哪些頭文件目錄。解決思路有兩個一是用 Keil 的工程文件導出編譯數(shù)據(jù)庫或者用 Embedded Builder 的構建日志生成 compile_commands.json二是手動在 VSCode 的 c_cpp_properties.json 里補充 includePath。我實際測試下來clangd 的體驗比微軟插件更好但配置成本稍高。如果你只是臨時看看代碼手動加 includePath 就夠了如果打算長期在 VSCode 里開發(fā)建議直接配合 CMake 或 ninja 這類現(xiàn)代構建系統(tǒng)讓工具自動維護 compile_commands.json效率完全不是一個級別。這一點在 STM32H7 或者 CH32F407 上移植 FreeRTOS 時同樣適用屬于通用經驗。4. 讓 lwIP 在 GD32 上跑起來網(wǎng)卡驅動的接法4.1 硬件側準備RMII 接口與 PHY 芯片GD32F407 內置的是 10/100M 以太網(wǎng) MAC但物理層收發(fā)器PHY需要外接。這顆 PHY 芯片我選的是 LAN8720A千兆 PHY 放在一個百兆 MAC 上當然不匹配但這顆芯片本身就支持 10/100M而且是 RMII 接口四條數(shù)據(jù)線加時鐘就能實現(xiàn)以太網(wǎng)物理層通信比起古老的 MII 接口省了一大半引腳。選它還有一個現(xiàn)實原因模塊化程度高幾乎所有國產開發(fā)板都帶有一顆 LAN8720A參考電路和驅動代碼海量踩坑成本低。硬件配置上有幾個細節(jié)必須注意一是 RMII 的 50MHz 參考時鐘一般由 MCU 的 MCO 引腳輸出或者由外部晶體提供這個時鐘如果歪了網(wǎng)卡根本無法正常工作二是 PHY 的復位引腳上電后要給一個低電平復位脈沖復位完成后還要等待 PHY 初始化完成通常需要幾十毫秒代碼里必須有相應延時三是 PHY 地址LAN8720A 的默認地址是 0x00但某些模塊會把地址引腳拉到別的電平導致 MDIO 通信不上初始化失敗時先檢查這個。GD32 的以太網(wǎng) MAC 初始化參考官方例程就能搞定但有一個坑MAC 外設的時鐘默認可能是關閉的需要在 RCC 配置里打開相關外設時鐘同時配置 GPIO 復用為 RMII 功能否則寄存器配置再正確引腳也不會輸出以太網(wǎng)信號。這種問題單看代碼很難發(fā)現(xiàn)用邏輯分析儀量 PHY 的 TX 引腳是否有數(shù)據(jù)輸出才能定位。4.2 接收鏈路中斷通知任務數(shù)據(jù)交給協(xié)議棧網(wǎng)卡驅動的核心是收發(fā)兩條路徑。發(fā)送路徑相對簡單上層調用 lwIP 的 netif-output 函數(shù)最終會走到你自己實現(xiàn)的 low_level_output 函數(shù)把 pbuf 里的數(shù)據(jù)拷貝到 MAC 描述符然后觸發(fā)發(fā)送。這里需要注意 pbuf 可能是一個鏈表結構數(shù)據(jù)在內存在多個內存片段不能直接拿第一個節(jié)點去填充 DMA 描述符需要做內存拷貝。接收路徑設計則直接影響 CPU 占用率和實時性。我的做法是啟用 MAC 接收中斷在中斷服務函數(shù)里直接調用 lwIP 提供的 netif-input但前提是已經把 lwIP 的 sys 層配置成了中斷支持模式。另一種更穩(wěn)妥的做法是在中斷里只做一件事——給網(wǎng)卡接收任務發(fā)送一個二值信號量然后由接收任務去檢查 DMA 描述符是否有新數(shù)據(jù)再調用 netif-input 交給協(xié)議棧。這種中斷信號量任務的模式讓中斷服務函數(shù)非常短避免在中斷上下文中執(zhí)行過多邏輯。實測下來GD32 跑這套接收鏈路配合 FIFO 深度足夠大的 DMA 描述符百兆網(wǎng)口的接收丟包率能維持在非常低的水平。如果出現(xiàn)丟包優(yōu)先檢查 DMA 描述符數(shù)量是否太少、pbuf 池是否耗盡而不是懷疑協(xié)議棧。4.3 lwIP 內存與緩存配置的幾個關鍵參數(shù)lwIP 的 lwipopts.h 配置決定了性能和內存占用的平衡點。這個文件是移植過程中最容易糊弄但實際上很關鍵的地方。我項目里用的幾個關鍵參數(shù)MEM_SIZE內存堆大小建議 32KB 起步如果有多個并發(fā)連接可以給到 64KBPBUF_POOL_SIZE數(shù)據(jù)包池數(shù)量每個包池默認大小是 PBUF_POOL_BUFSIZE一般給 20~40 個如果經常并發(fā)收發(fā)大數(shù)據(jù)建議加到 50TCP_WNDTCP 接收窗口默認 4096 偏小建議設為 8192 到 16384接收窗口太小會嚴重影響大文件傳輸速度TCP_SND_BUF發(fā)送緩沖區(qū)同理建議 8192 起否則發(fā)送大包時會頻繁緩沖等待LWIP_SO_RCVTIMEO / LWIP_SO_SNDTIMEO收發(fā)超時支持開關我建議打開因為這關系到應用層能否處理長時間無數(shù)據(jù)的連接異常。這些參數(shù)直接影響內存占用調大一個參數(shù)往往意味著多占幾 KB 甚至幾十 KB 的 RAM。在 GD32F407 這種 192KB RAM 的芯片上必須算好總賬確認所有任務棧、lwIP 內存堆、pbuf 池加在一起不會超過 RAM 上限否則 Keil 編譯順利通過運行時卻會在某個莫名的訪問中崩掉。5. TCP 應用層設計握手、接口選擇與連接異常5.1 三次握手過程的工程意義TCP 通信的第一步是建立連接而建立連接的過程就是教科書里的三次握手客戶端發(fā)送 SYN 包服務端收到后回復 SYNACK客戶端再回復 ACK。網(wǎng)上關于三次握手的討論非常多但從嵌入式開發(fā)者的視角看三次握手背后有兩個很實際的工程意義。一是握手的包交換本身是判斷網(wǎng)絡路徑是否通暢的試金石。我在聯(lián)調時遇到過一種情況程序邏輯完全正確但在公司網(wǎng)絡環(huán)境下連接總是超時抓包發(fā)現(xiàn) SYN 發(fā)出后沒有任何響應后來查到是辦公網(wǎng)封鎖了非標準端口——三層握手直接在一次失敗重傳中就暴露了這個問題。二是 TIME_WAIT 狀態(tài)的理解。連接關閉時主動關閉的一方會進入 TIME_WAIT 狀態(tài)等待 2MSL最大報文生存時間才釋放端口。嵌入式設備如果做服務端頻繁地和上位機建立連接、斷開連接可能因為端口被占用而無法立刻重新監(jiān)聽這時候很多人會誤以為是協(xié)議棧 bug其實就是 TIME_WAIT 機制在工作加 SO_REUSEADDR 就能解決這點第 6 章還會展開。如果只是理論考試背一下 SYN、SYNACK、ACK 就夠用了但在做嵌入式聯(lián)網(wǎng)產品時建議用 Wireshark 實際抓一次自己設備的握手過程看到三個包按正確的序列號來回才算真正理解這段話。5.2 netconn API 還是 socket APIlwIP 提供了兩套應用編程接口高層的 socket API 和相對底層的 netconn API。很多新手一上來就選 socket API因為跟 PC 端編程經驗一脈相承但實際上在 lwIP 集成 FreeRTOS 的模式下這兩套接口各有適用場景。netconn API 是 socket API 的基礎它直接面向連接支持阻塞/非阻塞兩種模式適合在嵌入式任務里實現(xiàn)一個任務處理一個連接的模型。socket API 則在 netconn 之上增加了一層 POSIX 兼容封裝代碼遷移成本低、可讀性好但會多一層函數(shù)調用開銷內存占用也稍高一些。我的建議是如果項目里只有一兩個 TCP 連接處理邏輯簡單直接使用 netconn API代碼更精簡也更容易控制內存使用如果未來可能需要兼容 PC 端代碼或者要跑比較復雜的網(wǎng)絡服務用 socket API 更便于維護。這個項目里我最終選擇的是 socket API 風格因為上位機通信協(xié)議本身是從 PC 端移植過來的保持代碼風格統(tǒng)一能減少一個轉換層。兩種接口實測并發(fā)處理 4~6 個連接都沒有問題不必在這個問題上糾結太久。5.3 RST、超時、?;钆c端口復用調試 TCP 時最常見的幾個異常連接被 RST、連接超時、長時間無數(shù)據(jù)后斷開。對應的原因和處理方式各不相同。RST 包的本質是對端認為當前連接狀態(tài)無效。比如服務端端口根本沒有進程監(jiān)聽客戶端 connect 會立刻收到 RST 引起 ECONNREFUSED如果設備斷電重啟后立刻接受連接但舊連接還沒超時重發(fā)舊包也會引發(fā) RST。聯(lián)調中如果抓包看到 RST第一反應不是懷疑代碼而是檢查對端端口是否監(jiān)聽、設備是否重置過連接狀態(tài)。連接超時比 RST 更難排查因為失敗是漸進式的。SYN 發(fā)出后協(xié)議棧會嘗試多次重傳重傳次數(shù)由 TCP_MAXRTX 配置控制每次超時時間線性增加總耗時可能長達一兩分鐘。如果應用層等不了這么長時間建議在 socket 上設置 connect 超時SDK 里一般直接支持 connect 加超時參數(shù)超時后主動取消連接并返回錯誤碼而不是讓任務傻等。?;顧C制是長連接的必需品。TCP keepalive 默認可能需要數(shù)小時才探測一次這個間隔對嵌入式設備太長。我通常把?;钐綔y時間配置為 30 秒不同協(xié)議棧配置項不同連續(xù)幾次探測無響應就主動斷開連接讓應用層重新建立連接。另外大量使用短連接時記得打開 SO_REUSEADDR否則每次斷開后端口都要等 TIME_WAIT 結束才能重新綁定設備重啟后的恢復速度會非常感人。6. 實測踩坑記錄從編譯報錯到連接穩(wěn)定6.1 堆棧溢出檢測一次真實的任務崩潰排查FreeRTOS 項目跑著跑著突然 HardFault相信每個人都遇到過。我第一次遇到網(wǎng)絡任務崩潰時是在壓測連續(xù)收發(fā) 1KB 數(shù)據(jù) 20 分鐘后設備直接死機。當時第一反應是查 lwIP 的配置懷疑內存耗盡或者 DMA 描述符泄露排查了大半天沒有結果。后來才想到 FreeRTOS 自己帶了堆棧溢出檢測機制。configCHECK_FOR_STACK_OVERFLOW 可以設置成 1 或 2設為 2 時會檢查任務棧邊界標志是否被破壞配合 vApplicationStackOverflowHook 鉤子函數(shù)在崩潰瞬間能定位到具體是哪個任務棧溢出。打開這個開關重測果然捕獲到網(wǎng)絡接收任務的棧溢出——因為我在接收回調里做了比較重的協(xié)議解析和日志寫入把原本預計的 512 字節(jié)??臻g撐爆了。任務棧大小的設置沒有捷徑只能估算加實測考慮最深的函數(shù)調用鏈、局部變量占用量、可能的中斷嵌套消耗。建議剛開始給網(wǎng)絡任務配置 1024 字節(jié)如果溢出再逐步加大同時保留堆棧溢出檢測能力。千萬不要為了省內存把棧壓得剛剛好因為運行一段時間后的內存布局變化可能讓棧溢出出現(xiàn)在完全想不到的位置。6.2 bind 報錯與端口 TIME_WAIT 問題聯(lián)調過程中我在上位機側遇到過一個經典的報錯listen 一個 TCP 端口時提示only one usage of each socket address地址僅限使用一次。當時程序第二次啟動監(jiān)聽同一個端口就失敗第一次程序退出后端口沒有立即釋放。這就是典型的 TIME_WAIT 問題主動關閉連接的一方端口會保留一段時間。解決方案是在服務端 socket 監(jiān)聽前設置 SO_REUSEADDR地址復用這樣即使上一個連接仍處于 TIME_WAIT 狀態(tài)也能重新綁定同一端口。lwIP 里對應的宏是 SO_REUSEADDR需要確保 lwipopts.h 里已經打開 LWIP_SO_REUSEADDR 這個開關。如果你用的是 PC 端聯(lián)調工具也存在同樣的問題Python 或 C 程序里加上 setsockopt 的對應調用即可。排查這個問題時用命令查看端口監(jiān)聽狀態(tài)是最直觀的方法。如果看到端口狀態(tài)是 TIME_WAIT基本可以確定就是這個原因不需要過度懷疑協(xié)議?;蚵酚善鳌:芏鄤偨佑| TCP 編程的開發(fā)者第一次碰到這個報錯會以為是端口被占用然后去殺進程其實只要理解了 TIME_WAIT 機制一行配置就能解決。6.3 聯(lián)調時的排查順序最后總結一下我在這類項目聯(lián)調時的完整排查順序。TCP 通信調不通先從底層往上逐層查不要一開始就改代碼否則會陷入越改越亂的循環(huán)。第一步看物理層PHY 芯片的 LINK 狀態(tài)是否正常用邏輯分析儀或示波器量 RMII 參考時鐘是否存在RX 引腳是否有差分信號。物理層不通上層配置再多也沒用。第二步看鏈路層檢查 MAC 初始化是否成功、MDIO 是否能夠讀到 PHY 的寄存器比如 ID 寄存器是否正確。讀不到 ID 基本就是硬件連接或者復位時序問題。第三步看 IP 層用 ping 命令去 ping 設備地址能通說明 IP 層正常不能通就檢查 lwIP 的 netif 是否配置正確、MAC 地址是否有效。第四步才是應用層用 TCP 調試助手或者寫個小腳本測試服務端的 accept 和收發(fā)邏輯。這套流程看起來繁瑣但每一次都能幫我快速縮小問題范圍。我自己最慘的一次經歷是跳過了前三步直接改應用層折騰兩天后發(fā)現(xiàn)是 PHY 參考時鐘配置錯了一個 5 分鐘的檢查拖成了 48 小時的排查?;氐介_頭那個問題GD32 FreeRTOS TCP 這套組合到底靠不靠譜我的答案是相當靠譜。前提是走對路徑官方例程起步、lwIP 配置求穩(wěn)、堆棧檢測常開、聯(lián)調分層排查。只要你把這幾件事做扎實這套組合完全能支撐一個穩(wěn)定聯(lián)網(wǎng)的嵌入式產品。最后再分享一個個人習慣——每次改完配置或驅動我都會用 Git 打一個 tag尤其是 lwipopts.h 這類參數(shù)文件改前改后跑一遍壓測因為影響內存布局的參數(shù)往往不是立刻出問題而是會在某個流量峰值突然暴露有版本回溯能省下大量排查時間。本文還有配套的精品資源點擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
亚洲AV成人精品网站在AV| 51久久夜色精品国产麻豆| 操国产逼| 精品久久久久9999| 国产又粗又长视频| 人人操人人大香蕉| 五月天综合在线| 免费网色网站| 亚洲男人久久综合天堂| 日韩精品99999| 欧美日韩黄色片一区二区三区四区人与兽做爱 | 欧美熟妇亚洲版| 国产精品第一区第一页| 可以看的av| 骚日日av| 红杏大香蕉| 日韩精品人妻中文字幕不卡乱码| 色噜噜精品一区二区三| 欧美 日韩 另类 亚洲| 夜夜欧美 | 亚洲国产97在线精品一区| 麻豆久久精品亚洲精品88| 日本精品不卡一二三区| 久久宗合亚洲| 综合久草| 夜色91| 久久人妻熟女一区二区| 桃花色综合影院| 最新亚洲风情电影| 秋霞 色色| 大香蕉黄色一区| 色麻豆AV| 九九九九精| 亚洲另类小说卡通动漫| 午夜毛片高清免费不卡| 手机在线视频国内精品| 午夜福利在线合集| 国产亚洲精品第一最新| 人人操人人色网| 日本3级一区二区免费| 久肏视频字幕| 午夜免费视频1000| 测评在线观看AV| 裸体女人草逼视频播放一区,二区,三区,四区,五区 | 九99久久| 婷婷五月天丁香| 亚洲一区二区三区AV无码| 69久久| 国产 丝袜 欧美中文 另类| 是还免费视频1727我| 夜夜天天噜狠狠爱2021| 死我十八禁| 精品高清一区二区三区三州| 超碰视97中文| 91亚·色| 青草青草久热| 麻豆亚洲AV成人无码久久精品| www.五月天| 中文字幕97| 手机不卡视频不卡在线一二三区| 久久久久久久人妻丝袜| 91AV天美在线视频| 欧美999| 麻豆精品天美| 日日日日日| 精品无码秘 人妻一区二区| 欧美综合色站| 9l视频自拍9l九色成人| 色色色日本| 麻豆天美传媒在线视频天堂| 国产精品熟女丝袜一区二区| 国产一区二区三区免费视频在性观看 | 亚洲国产一级中文综合久久天堂在线免费观看 | 国产精品久久99日日| 中文字幕无码不卡啪啪| 国产精品乱人伊人网| 美女视频尤物网在线看| 鸥美极品| 亚洲巨爆乳一区二区三区四季网| A V少妇特黄三级| 无人区高清电影免费观看一区二区三 www.qmcai2.com | 蜜奶av| 亚洲国产麻豆一区二区三区| 91九九| 欧美色图97| 东北黄色电影| 91久精品| 激情五月天婷婷| 久久久久久久久久久免费精品| 91视频女生| 97免费视频网| 亚洲情色电影网| 无码天天操| 黄页av| 蜜屁Av| 蜜桃久久综合视频| 亚洲经典啪啪| 91九色精品熟女内射| 亚洲日韩在线a不卡99精品| 亚洲天堂一区二区| 色婷婷淫色网| 五月天伊人| 任你草| 欧美黄片欧美黄片xxx| 影音先锋日本乱伦| 色九九久九九| 四虎影视 亚洲无码| av东京热男人的天堂| 亚洲精品久久久久久久久豆丁网| 大香蕉伊人久久| 免費黃色視頻觀看一| 欧美一级久久久久久久大片动画| 日本大香蕉综合网红本杳社区| 97综合在线观看| 五月婷婷激情网| 国产家庭乱伦网址| 91一区二区三区蜜桃| 婷婷激情四射| 亚洲熟女诱惑| 亚洲天天精品| 在线小视频| 日日骚精品视频| 国内操逼视频二区| 国产乱弄免费在线视频。 | 怡红院亚洲怡春院av| 色偷综合| 91九色丰满高潮| 国产免费一区| 91精品丝袜久久久久久| 亚洲综人网| 九久久精品| 亚洲91综合| 久久这里精品国产99丫e6| 无码99| 亚洲欧美天堂在线| 亚洲怡春院| 欧美aⅴ99久久黑人专区| 亚洲色图加勒比| 一个人在线看的黄色电影网站| 99人人干| 国产高清1234区| 色狠狠综合噜一二三区| 屁股久久久久久久久| 久久久精品,3| 男人的天堂 在线一区| 狠狠久久手机视频精品| 午夜福利在线合集| 17c在线成人免费A片观看| 中日亚韩免费视频| 91久久婷婷| 亚洲最大91网| 亚洲国内精品成人不卡| 蜜桃一区二区三区| 一区二区三| 在线中文字幕| 日本欧美韩国国产在线| 免费?级毛片无码?∨蜜芽试看| 亚洲国产奇米影视久久| 东京热激情视频一二三区| 国产浮力影院第1页| 啊啊啊啊嗯嗯嗯用力好爽| 天天日日本| 伊人少妇久久久| 亚洲精品 欧美精品| 99蜜桃臀亚洲成人在线观看| 亚洲欧美伦综合| 久久草草亚洲蜜桃臀| 激情综合网五月婷婷五月天| 伊人91| 污污污8888| 欲香欲色综合天天伊人| 亚洲女人91| 九九碰九九爱97超碰| 亚洲三区视频| 精品女人999| 91色噜噜狠狠| 青草一区二区| 东北少妇高潮zzzz| 亚洲天堂,男人| SUV一区二区在线看| 蜜区区视频79| 丁香六月激情| 97超碰国产亚洲精品资源| 亚洲区限制级 99| 欧美日韩97| 强奸乱伦日韩AV| 亚洲欧洲美腿丝袜| 久久久久久九| 乱伦3P视频| 丝袜夫妻自拍| 久久女女| 97人妻免费中文字幕| 亚洲精品97在线| 91M一社| 91成人久久| 亚洲视频,小说| 亚洲亚洲亚洲天堂天堂 | 国产有码一区| 久久久无码视频| 留下AⅤ黄色片| 人人污日韩一区二区| 亚洲综合20p| 91人妻Pr| 日产精品久久久一区二区| 欧美丝袜制服久久| 欧美熟女丝袜| 99婷婷| 久久久禁| 99re国产精品视频| 超碰天天操| 久久日韩精品一区二区| 欧美最婬乱婬爆婬性视频| 亚洲欧美综合| 午夜精品久久久99| 久久美女国产| 亚洲综合校园春色| 国产视频不卡在线观看| 色偷偷超碰亚洲| 日本色色色色色视频| 亚洲熟久久| 777AV电影| 骚熟女吞| 日韩激情中文字幕有码| 青青草原伊人网| 国产精品熟女丝袜一区二区| 在线a亚洲视频播放在线| 色九月| 舔人妻中文免费视频| 日韩精品一区的| 伊人欧美大香蕉视频| 97综合在线| 麻豆成人AV| 最新一二三区视频| 亚洲阿v天堂无码z2018| 成人情色综合网| 欧美一级色| 久久女人| 91丝袜激情在线| 中文字幕精品一区二区精| 九七人妻在线| 欧美成人精品一区二区三区| av网站免费看| 成人久久精品| 六月丁香啪啪| www亚洲免费| 中文字幕1区2区| 狠狠热这里都是精品| 天天天乱色综合全| 久久久久国产精品久久久| 亚洲色图殴美色图激情乱伦| 精品国产91久久久久久一区黄无| 青青操在线视频| av午夜影院在线播放| 激情综合五| 欧美综合在线第一页| 成人性爱视频在线看| 啊啊啊97视频| 三级AV入口| 欧美亚洲第1页| 思思久热在线精品66| 夂久色| 台湾佬大香蕉| 欧美男人一区| 黑人精品XXX一区一二区| 7月婷婷综合| 97色网| 欧美熟妇乱码在线一区| 国产日韩无码一区二区三区久久区| 欧美人妻精品| 美女诱惑一区| 色九九九九| 最新三级网址| 亚洲a色| 亚欧美天堂在线| 中文字幕一区二区三区字幕| 中文字幕88av在线| 中日韩欧美精品无码AⅤ一区二区| 人妻五十路在线| 色丁香久久| 色欧美天天| 欧美se综合| 天天日日舔舔| 日韩人妻一二三区视频| 99999亚洲另类| 精品99999久久久久久| 3PAV乱伦视频| 国产久久久久影院老熟女| 在线观看精品国产免费| 人妻少妇精品视频一区二区三区| 天天看人人操屄犊摸阴| 国产自偷自拍一区| 日本熟女不卡视频| 欧美性夜| 91欧美偷拍| 插欧洲美女欧美精品| 国产精品一区二区a| 一区,二区,三区网站| 日韩黄色一区二区三区| 亚洲加勒比| 手机av亚洲丝袜美腿日韩第一页二页| 欧美色91| 一区,二区,三区视频| 亚洲精品影视老司机| 92久久| 97国产精选| 亚洲国产精品9999在线观看| 久久欲| 天天影视91看看| 国精综合一二三区影视| 久久e6只有精品| 东北老女人的激情视频| juliaann欧美丝袜办公室| 日本三级日本三级99| 色 亚洲 91| 久久夜夜| 欧美色66| 四虎影视在线| 日韩国语字幕| 九色婷婷| 老熟女区| 插日本熟女视频| 97免费在线视频| 久久αⅴ| 正宗无毛一线天嫩逼| 亚洲精品蜜桃久久久久久久| 亚洲男人的天堂AV| 老熟妇综合| 少妇69中文| 96精品久久久久中文字幕| 久久精品视频久久久| 精品久久久中文字幕不| 精品国产网站| 日韩一级二级三级免费看完整版国语版| 色哟哟 日韩精品| 精品国产一区探花在线观看| www.色99| 亚洲国产成人高清在线| 九九九九88| 亚热日本熟女| 欧美亚洲手机在线| 国产91啪| 欧亚洲精品有视频| 999熟女精品| 综合97| 在线a v| 懂色AV一区二区三区| 台湾佬中文娱乐自偷自拍| 91成人社区| 欧美偷拍| 无码日韩人妻av一| 91丝袜美女| 成人AV在线网站| 亚洲另类欧美精品| 99亚洲天堂| 91老熟女老女人国产老太| 97超碰9| 91超碰碰在线| 国内毛片热久久思思热| 激情综合五月| 人妻丰满熟妇av无码区蜜桃| 久久五月天婷婷丁香中文字幕| 日本有码影片下载| 久久久一区二区三区麻豆| 欧美日韩亚洲一区二区在线观看| 韩国女主播青草福利视频| 国产综合久| 乱伦图av| 久久精品国产久精国产| 国产成人亚洲精品无码古代早漏男| 精品人妻一区二区免费蜜桃| 无码一区免费在线不卡| 天天干天天日天天射黄色片| 翔田千里AⅤHD无码| 精品美女在线视频| 中文字幕高清精品一区| 国产美女精品| 在线一道啪| 欧洲亚洲人人爽爽视频| 国产又大又硬又长又粗| 九九九只有精品| 午夜高清成人在线视频| 91n.欧美| 一区二区日韩欧美久久| 欧州一区二区三区四区| 亚洲永久永久永久永久一级一级一级精品 | 97亚洲精品| 不卡超碰护士AV在线免费播放| 天天综合-91入口| 国产四虎在线| 久久九操在线观看| 国产av美女被艹的乱叫| 男人久久天堂| 久久久久9999妇女| 强奸乱亚洲| 亚州性9| 91久久堂| 91欧美| 啪啪视频免费在线观看| #NAME?| 丁香六月婷婷| 国产成人手机视频激情| 国产一区在线播放| 夜夜操一区二区| 超碰人人干| 欧美极品美女aaaaaa级黄片| 91网站18+| 艳美熟妇先锋一二三区| 国产美女高潮叫床视频| jizz啪啪| 男人的天堂网页| 日韩不卡一二三四| 亚洲欧洲日产国产综合网| 五月丁香色色网| 99re不伦| 超碰在线人妻| 亚洲成人激情小说视频| 偷拍在线观看视频| 色欧美在线| 久久av色| 男人的天堂2010| 天天综合麻豆视频| 人人摸人人添人人操| 天美av在线| 330dv亚洲成年视频网| 久久精精区一区二区一蜜桃一区二区| 欧美探花网| 91丨人妻丨国产丨丝袜| 1024精品在线| 偷偷人人精品女女久久| 中文字幕免费看| 色 亚洲 91| 日韩精品熟妇| 久热精品色情| 五十路熟女工口| 青青草国产亚洲精品久久| 色综合色色| 蜜桃无码AV一区二区| 国产AV激情无码久久无码 | 91粉嫩萝控精品福利网站_精品影音先锋国 | 欧美日韩99| 亚洲码专区| 精品黑人一区二区| 国产精品爽爽va在线观看98| 视频黄色国产一级| 国产精品探花视频| 色色色色电影网| 日韩人妻无码专区| 人妻丝袜无 码视频专区| 久久久久久久免费A片国产成a人亚洲精∨品无码 | 91熟女综合| 国产肏屁眼视频| 亚洲视频小说| 天美传媒精品久久视频| 中文字幕福利视频一区二区三区在线观看| 男人天堂导航| 黄片www视频免费| 老司机深夜18禁污污网站| 国产又色又粗又黄又爽| 国产丝袜美腿美女麻豆| 999九九精品| 国产AV天美传媒一区二区三区| 超碰97.com| 亚洲成人激情小说视频| 国产精品自拍xxxx| 天天操夜夜操| 男人把坤坤插入女人的下体 | 屁股久久久久久| 亚洲色图尤物视频| 久久婷婷亚洲| 自拍盗摄一区| 久久日本熟妇熟色一区| 精彩视频日韩| 99re在线精品78| 日本在线伊人啪啪| 狠狠中文字幕| 九九热视频在线观看| …亚洲黄色厕厕女女在线播…| 亚洲第一无码播放立川理惠| 操久久久久久| 性欧美精| 国产操逼网站亚洲一级黄色| 日韩乱伦影音先锋| 91青视频| 0755午夜福利视频| 人人妻人人澡人人爽久久av| 91激情国产| 人人看黄色视频| 牛黄色久午久| 99热日| jazzjazz国产精品麻豆| 久久婷婷色| 欧美熟妇亚洲版| WWW.操逼.COM| www鬼畜国产男人的天堂| 国模久久在线| 嫩草影院性色| 国产精品久久久久久久AV大片| 亚洲日韩精品在线播放| 亚洲drav色图| 久久毛卡| 大香蕉之青青草原| 粉嫩粉嫩一区性色AV片| 91狠婷| 超碰78| 97超碰国产精品| 日韩色香| 狠狠躁AV| 1769一区| 免费看污网址| 人人操人人uiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii | 久久久国产精品人妻丝袜| 亚洲激情视频| 1956日韩精品| 91在线精品一区二区三区| 三级网站超变态精品| www.99中文字幕| 91综合色噜噜| 99在线精品观看99| 日本不卡五区| 日韩钢筋无码高清啾啾啾| 日韩黄片视频试看| h色99999| 开心激情站| 国产又黄又粗又猛大片| 日本不卡二三区| 国产AV毛片| 色欲天香天天综合网-成年人三级片网站-欧美乱妇狂野-日韩国产专区-久久久久久 | 欧美人黑A片无码免视费| 99国产人成精品| 最新亚洲黄色免费电影| 中文字幕-区二区三区四区视频中国| 日韩三A大片在线观看| 狠狠爱AV| 欧美一区二区在线资源| 欧美aa一级片| 99视频精品| 亚洲午夜免费狠狠干| 丰满熟妇大乳做爰| 久久久九九九九| 色女99一级片在线观看| 婷婷五月天在线观看| 亚洲日韩国产欧美综合v| 人人 操人人 操人人| 91一区二匹| 九九九成人| 久久精品成人| 毛片中心9视频99| 婷婷在线播放| 日韩久久三区| 久草视频分类在线| 国产自偷自拍一区| 欧亚性爱啪啪| 中文自拍欧美影视| 日韩女模中文造逼| 亚洲最大AV网| 国产1769在线| 欧美综合区| 91丨熟女丨丰满熟女| 国产精品探花视频| 欧美黑人精品一区二区| 欧美亚洲色图另类国产| 思思热国产在线视频| 激情网色| 在线一道啪| 加勒比久久综合网高清| 亚洲码专区| 日日碰狠狠添天天爽超| 九九RE视频在线精品| 黄网在线播放| 激情五月婷婷| 亚洲免费精品一区| 久久鲁夜| 日韩精品电影| 97精品一区| 欧色网址| 五月天亚洲色图| 人妻性爱一区二区| 人人 操人人 操人人| 久久精品日韩| 8050午夜少妇无码| 国模一区二区三区| 91人妻视频在线| 欧美激情一区二区| 日韩美女久久一区二区三区| 欧美色图天堂网m| 国产AB视频| 人人摸人人干| 91欧美丨精品丨入口| 久久人体一区二区| 97精品网站| 91痴汉| 亚洲自拍97| 一级毛片电影免费看| 国产传媒午夜理伦精品| 人、人、摸,人、人、草| 欧美日韩性爱精品| 中文字幕乱码人妻一区二区三区,99精品 | 欧美一区二区三区日韩| 超碰日本97美女人妻人人玩人人爱| 极品内射| 热热色国产一二区AV| 超碰在线一区二区三区| 91人妻精华帖| 亚洲一区中文字幕一区| 超碰午夜在线| 国产视频97| 国内伊人久久久久久网站视频| 午夜福利激情在线视频| 99综合视频一体| 久久成年精品| 欧美第五页| 成人一二| 婷婷激情综合网| 中文字幕91综合| 欧美高潮| 一级乱伦网站| 蜜乳AV一区二区三区四| 国产有码一区| 久久亚洲日韩熟女精品| 91AV入口| 五月丁香影视| 色眯眯av| 欧美亚洲中文| 自拍鲍鱼一区在线高清观看免费| 台湾肥佬网一区二区三区| 97视频播放| 麻豆国产成人精品| 熟女久久| 一级黄色视频网| 激情文学网伊人| 夜夜做夜夜爽精品视频| 偷拍偷窥与盗摄视频专区| 久久久九九网站| 97色涩| 91色狼| 色色婷婷五月天| 蜜桃久久久久久久久久久久| 一区二区三| 欧美性爱另类综合| 色综合久久夜色精品国产天堂| 东京热大香蕉| 五月婷婷激情综合| 国产女主播视频在线观看| 台湾一区国产高清在线| 人妻激情另类| 日日夜夜骑| 无码高清专| 91久久国产综合精品| 精品国模无码| 超碰97欧美在线| 午夜一区| 久久大香蕉| 久久久成人免费av电影| 91社区拍啪人妻| 国产丰满少妇久久久精品影院| 亚州欧美色图| 麻豆精品久久久久久久| 伊人网高清| 波多野结衣一级视频| 天美一二三在线观看Av| 13小男生GAY自慰脱裤子| 96久久科窝| 欧美激情 亚洲色图| 久久久久婷婷| 欧美草草高清日韩视频| 午夜福利免费精品视频| 一二视频神马久久传媒| 亚洲天堂综合AV| 99国产精品久久久在线播放| 人妻丰满熟妇一区二区三| 色色99| 中文AV制服乱伦| 蜜臀亚洲中文| 色哟哟综合| 国产传媒1234区| 夜夜操美女| 撸撸成人在线视频| 午夜超爽| 日韩综合97P| 无码视频黄色网战| 亚州欧美在线| 久久精彩免费视频| 精品黄色电影| 欧美亚男人的天堂| 欧美色www亚洲国产阿娇要播| 嗯嗯啊啊操死我| 国产精品久久久久久久久久梁医生| 毛片17S| 操婢日韩| 插入粉嫩少妇视频| 日韩视频啪啪| 精品一区二区三区18| 久久香蕉国产传媒一区剧情天美| 亚洲图片 欧美电影| 99爱精品| 成人午夜高潮av猛片| 欧美72网页| 高清一区AV无码| 91熟女视频网| 99re9在线| 日韩兔费看黄片| 欧美久久婷婷| 亚洲操逼视频网站| 理论久久婷婷网8| 久久国产精品91| .精品人妻一区二区三| 中文久久96| 乱伦熟女区| 2017大香蕉| 国产亚洲日本| 国内毛片免费h片在线| 国产高清26uuu| 欧美狠狠弄| 亚洲va有码在线天堂| 蜜臀99久久精品| 午夜男人天堂| 无码人妻精品一区二区中文 | 超碰欧美COM| 五月天色图| www.伪伪| 2017天天插| 国产肏屁眼视频| 粉嫩绯色AV一区二区在线| 嗯嗯啊啊好爽| 久热99999| 蜜臀少妇一区二区| 日本免费专区| 国产深喉视频一区二区| 东北操逼| 九九热免费国产视频婷婷伊人五月 | 91日韩网站| 成人网欧美风情| 岛国艾薇凹凸视频天堂| 人妻丝袜美腿中文字幕| 啊啊啊啊好疼视频| 99少妇精品视频| 婷婷影院入口| 超清福利精品视频在线| 大香蕉啪啪啪啪在线| 性影在线视频| 高清无码人妻久久久一区二区三区aⅴ| 亚洲欧美精品一区天堂久久| 激情五月天插| 青草成人免费视频一COm| 日韩欧美天天爽爽爽天天爽爽| 一二三四日本视频高清| 亚洲最大成人a毛毛片| 天天综合-91入口| 久艹99| 久久9精品视频| 久久香蕉影院| 人人操人人摸人| 免费福利视频中文字幕| 大二网站亚洲| 国产四虎在线| 熟女乱伦二区| 欧美日韩免费性爱| 精品人妻中文字幕高清| 91亚洲图片| 午夜AV污污污| 97国产色图 | 天天干人人乐| 加勒比性爱成人在线| 极品内射| 打av高清| 亚洲有薄码区日本系列中文字幕| 午夜国产成人福利视频| 久久毛卡| 国产三级在线现体验区| V A在线| 亚洲天堂2020| 亚洲欧美骚| 青青草女人天天干| 色香伊人| 日韩中文字幕宗合在线| 国产美女91视频| 国内精品久久国产,www香蕉久久五月丁香,亚洲欧美日韩精品永久在线,日本精品一 | 97人人模人人爽人人| 久久久久久久亚洲Av无码| 亚洲无码超碰免费| 97香蕉网| 九九九热| AV乱伦国产| 久久久97| 蜜臀久久99精品久久久电影| 91黑丝在线| dy888午夜老子影视达达兔| 清纯唯美综合| 妇女一区二区三区| 欧美在线啊啊| 91黑丝在线| 精品传媒在线一区| 美女诱惑一区| 啊啊啊在线观看| www.av家庭乱伦| 波多野42部激情无码喷潮| 国产精品久久妻无码网站| 成人AV超碰免费在线| 欧美一区二区日韩三区| 韩国三级理论在线| 女性喷水高潮在线观看| 2025年A片视频精品| 四虎影库国产精品免费| 激情五月丁香五月| a久久| 美女啊啊啊啊啊啊啊| 国产精品情侣啪啪| 99999精品成人| 曰本熟女视频| 97超碰这里只有精品| 日本中文字幕熟妇| 少妇大屁屁| 色欧洲| 国产9 9在线 | 亚洲| 国内毛片国产欧美拍| 操逼不卡中文字幕| 免费一级视频特黄色大片| 6080yy午夜理论三级一区二区三区无码| 很很干很很操| 欧美黑人与女人91~| 亚州欧美一区| 欧美激情一区二区| 偷拍片久久| 91老司机视频| 日韩簧片免费看| 台湾成人无码AV| 国产动漫操逼视频| 97色冈| 亚洲涩涩| 亚欧美无遮挡| 99婷婷一区二区| 黄在线| 99激情| 97超碰无码网| 无码精品啪啪啪一区二区三区三州| 91天堂| 1级黄色夫妻对换性交免费看| 久操凹凸视频| 久久一二三四五六七八九区区区 | 色色五月婷| 天天影视综合网欧美精品| 欧美日韩婷婷中文| 五月天婷婷社区| 欧美日韩97| 免费观看性欧美一级| 97干在线视频| 四虎国产成人精品免费一女五男| 97日韩欧美亚洲| 亚洲精品乱码久久久久久蜜桃麻豆| 超碰97人妻| 欧美东京热精品A∨| 五月天色图影视| 日韩精品电影| 思思热国产高清| 九九探花视频在线观看| 99性爱视频| 亚洲性综合| 亚洲 欧美 日韩 国产一区二区| 成人免费在线网站| 欧美少妇大量自拍视频在线观看| 天堂精品一区| 国产一区自拍欧美日韩| 久久五月份| 亚洲文学偷乱拍啪啪啪啪| 天天视频黄| 色五月婷婷久久| 东京热不卡视频| 亚洲综合999| 婷婷久月| 91精品国产乱码| 视频国产成人精品日本亚洲18| 午夜福利成人免费视频| 午夜欧美神马久久久久| 97国产人人| 91chinese在线| 日韩视频小说在线观看| 家庭乱伦麻豆| 天天爱天天韩国日本牛牛牛牛| 伊人久久亚洲色欲综合网站 | 本道综合精品| 天堂а√在线最新版在线| 看黑人AV不卡| 精品一区二区三区麻豆| A片 AV一级在线播放观看免费 | 日韩中文字幕av在线播放| 91超碰在线| 俺去也婷婷| 亚洲国产蜜臀系列在线观看| 自拍偷拍亚洲熟女妇人精品| 日韩精品人妻中文字幕有码午| 欧美美女视频| 国产一级做a爰大片免费久久| 欧美 亚洲 另类 综合| 精品日韩人妻视频| 中文字幕在线观看第二页| 青青草大香蕉视频| 日韩 欧美 国产 麻豆| 狠狠2050在线观看| 另类TS人妖一区二区三区| 蜜臀久久久久久999| 大鸡巴久久| 色色五月丁香| 久久久555| 亚洲精品日日夜夜52| 夜色97| 午夜理论片在线观看免费| 亚洲精品 欧美精品| 日本欧美中文字幕| 麻豆亚洲Av成人无码一区精品| 啊啊啊操死我| 国产精品天美传媒| 中文字幕蜜乳av| 亚洲欧美精品一区天堂久久 | 成人26uuu| 国产午夜福利视频在线| 欧美性爱第一页久久| 少妇蜜汁| 天天看天天干| 国产精品网站免费| 国产日韩区| 97超碰这里只有精品| 日韩图区 偷拍| 天美传媒av一区二区| 尤物一级在线免费观看| 67914在线兔费成人视频| 全球成人中文在线| 97久久久久| 色蜜AV| 国内偷拍精品一区二区| 欧美激情亚洲色图| 91在线秘 男同| 98精品国产乱码久久久久久| 国产操偷| 97视频一区| 欧美日韩999| 欧美性高潮在线| 国产丝袜美女诱惑| 久久午夜鲁丝片| 久久熟女久| 激情久久av一区av二区av| 青青草在线视频播放器| 鲁鲁色综合网| 一本色道综合久久欧美| 五月开心久久AV官网| 精品国产乱码久久久久久口爆网站| 欧美后入式| 亚洲成人av色网| 婷婷在线视频在线观看| 91精品国产乱码| 国产高清无码一区二区三区四区皇冠| 色图四区| 亚洲免费日韩在线一区二区| 全免费a敌肛交毛片免费| 中文字幕AV中出| 久久啊哟| 淫荡少妇免费| 中文字幕一二三av| 欧美 亚洲 制服 精品| 免费看黄片现成| 久久久成人免费av电影| 97网址www| 亚洲av综合色区无码一| 97就爱干| 久久久九97| 国产亚洲美日韩Aⅴ中文字幕无码成人| 欧美啪啪啪91| 亚洲国产综合久久久性感熟妇| 国产强奸无码乱伦| 色香综合天天影视综合 | 欧美一级色| 国产超碰AV在线精品| 日本2020一区二区| 麻豆性爱视频在线播放| 欧美强奸一区二区诱惑| 亚洲麻豆av一区二区| 久久久天美| 色老汉色| 婷婷五月综合激情| 欧美特大AA级黄片| 亚洲激情久久久伊人综合| 亚洲自拍欧美国产首页网曝| 激情五月丁香五月| 久久久久久电影| 91色欧美| 日本黄页视频在线观看| 午夜久久一区二区无码中出| 免费综合亚洲中文| 蜜乳中文字幕a在线| 高颜值美女口爆高潮浪叫| 玖玖爱一区在线| 欧美少妇熟女| 日韩女模中文造逼| 亚欧高清| 久久啊啊| 九九九只有精品| 超碰综合色| 欧美三级一级| 人人看人人摸人人色| 俄罗斯一区二区视频在线观看| 97久久国产| 亚洲在线综合| 色网1| 狠狠色婷婷| 一类无码操逼视频| 亚洲综合嫩| 99精品高潮| 色女网日韩| 婷婷五月天伊人| 婷婷色色五月天福利| 国产精品久久久久久久久久久久久久吹| 天天操天天谢| 国产十八禁视频| 中文久久一区| 91蜜臀熟女| 五月天色综合| 婷婷五月天av| 白嫩国模丰满一二三区| 欧美另类精品xxxx| 欧美黄色手机在线观看| 超碰在线一区| 久艾草在线精品视频在线观看| 日本免费一区二区不卡| 亚州熟妇精品| 干b在线性社区| 污到发麻的视频 国产| 欧美综合站| 亚洲精品 大香蕉| 婷婷五月天社区| 国产 v乱码一区二| 日本三级网页| 伊人激情五月天一区二区 | 日韩黄片视频试看| 人妻精品视频一区二区三区| 夜夜爽夜夜| 超清中文乱码字幕| 综合97| 日韩97P| 日韩亚洲97| 天天爱综合网| 天堂精品| 亚洲清纯综合| 东北女人高潮视频| 国产精品农村妇女| 日本幼女18+| 自拍六区| 啊啊啊想要| 日本精品一级二级三级| 国产亚洲99久久精品熟| 亚洲天堂男人的天堂| 成人羞羞视频国产| 亚洲日韩精品久久久久一区壹牛| 日韩无码视频黄色| 久久男人精品| 国产特级毛片AAAAAA高潮流水 | 亚洲一卡二卡在线免费| 午夜毛片亚洲精品片国产久久久| 91五十路| 综合久久久久久久久91| 日韩黄片视频试看| 国产精品蜜乳AV| 日韩婷婷| 狠狠操狠狠插| 国产精品国产自产拍高清AV| 国产精品色哟哟| 99re6国产精品99re| 蜜臀99久久精品久久久久久| 亚洲狠狠入| 九九九九免费| 色黄污美女啪啪啪免费网站| 亚洲暴力强奸AV| 色色五月婷| 亚洲男人天堂2012| 久久久久亚洲一区女同性恋中文字幕| 9999九九九久久久| 国产美女高潮视频| 免费岛国一级片| 青椒国产97在线熟女| 在线国产一区二区av| 理论久久婷婷网 8| 黄色不卡视频| 欧美同性恋 的搜索结果 - 91n| 成人怡红院| 天天弄天天操| 亚洲操逼视频网站| 天天摸天天插天天日| 使劲用力艹少妇视频一区二区| 久久久久久人| 一级片视频啪啪| 国产精品久久久久久 百度| 97色婷婷| 国产美女激情| 欧美综合1性辶| 国产传媒午夜理伦精品| 精品人人插人人操| 欧美日韩亚洲天堂| 亚洲AV高潮| 欧美线天码中字| 人人搞人人插人人操| 九色在线熟女国产黑人| 亚州色交| 97精品国产手机| 蜜臀99久久国产| 巨爆乳一区二区爆乳区| 三级三级三级日本99| 日本淫穴在线| 91熟女网| 51久久夜色精品国产麻豆| 色色色99| 国产十八禁视频| 99在线精品视频| 口爆吞精在线观看| 1024日韩| 91九九九逼| 91熟女在线| 1禁看欧美黄片免费看| 人妻插插人妻人| 中文字幕视频二区| 亚州免费啪啪视频| 99亚亚热| 热热色综合网| 高潮的A片激情扒开一区| 东京热男人的天堂网| 无毛精品| 超碰免费人妻人人| 综合网色| 青青伊人这里只有精品| 日韩欧美性吧婷婷乱伦大香蕉| 一区二区三区机械有限公司| 国产中文福利| 十八禁啪啪视频| 插欧洲美女欧美精品| 亚洲色图欧美另类在线| 深夜福利黄片| 天天色播| 亚洲综合色在线| 欧美激情性爱视频网站| 在线黄页看毛片| 99re99在线视频| 成人午夜小视频手机在线看| 国产一级久久久| 亲子敌伦对白在线播放| 99欧美| 一二视频神马久久传媒| 无码人妻精品一区二区中文 | 亚洲好色人妻| 国产精品久久久久久无码红治院| 国产精品一区人妻精品阁在线| 欧美天天影院| 久精品无码av一区二免费国产在线观看 | 炮色五月| 久久久四区| 狠狠色丁香| 亚洲中文字幕久久无码精品| 操逼1区| 五月天春色激情网| 亚州综合在线| 人妻加勒比东京热| 欧美黑人熟妇精品91| 亚洲精品男人的天堂| 极品少妇久久久|