日韩精品一区二区三区在线视频放-无码中文字幕V?一区二区-成年片免费观看视频-国内少妇人妻丰满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
返回資訊列表
欧美日韩人人精品| 中文字幕 码精品视频网站| 黄色十八禁网站| 在线视频97| 日韩精品99久久久久久中文字幕 | 97亚洲自在精品在线观看| 性爱av网站| 69一区二区三区 | 亚洲图片 欧美电影| 天天日天天爽| 日本成人A片免费看| 清纯唯美综合亚洲| 中文字幕艹艹| 高清无码网址| 国产精品久久久久亚洲av| 亚洲无码日韩电影| 在线五区| 99re在线精品78| 色5月婷婷| 八戒午夜福利理论片| 东京热AV男人的天堂| 亚洲情色图片区| 偷拍伦理视频| 亚洲色久| 超碰在线国产| 美国一区二区免费视频| 欧美丰满少妇xx高潮| 黄色成年| 久草色在线观看| 欧美成人综合| 国产白领连续中出在线播放| 操香逼| 九九99精品| 性在久久久久久| 国产亚洲精品久久久久小| 综合网 欧美| 麻豆黄四叶草网站| 久久夜嗨| 99re69| 日韩激情视频| 久久大香蕉手机高清| 伊人女女资源在线观看| 日本媚薬中文字幕在线| 加勒比中文av| 久9精品| 国内一级精品| 天天操夜夜操| 精品九九九| 99无码| 91老女人| 青娱乐福利99| 国产97在线视频| 欧洲人妻视频| 97色伦97色伦国产欧美| 天天躁日日躁AAAAXXXX国产| 在线欧美69V免费观看视频| 日韩无码精品综合久久| 国产精品亚洲天堂网址| 日韩一性一交一A片俄罗斯| 97人人夜夜精品视频| 国产午夜福利专区综合| 性做久久久久久免费观看软件| 成年女人黄网站| 亚洲欧美在线观看免费| 欧美综合区| 99久久综合网| 美腿丝袜偷拍亚洲欧美| 曰韩少妇无码| 青青草在线视频播放器| 欧美97| 国产丝袜美女在线一区| 久热香蕉精品在线视频| 91精品丝袜久久久久久| 丰满少妇精品一区二区| 91模特在线观看| 无码操逼天堂| 三级色影综合网| 97在线播放| 九九热精品| 欧美不卡在线一区二区| 午夜理论片在线观看免费| 五月色网| 欧美情色贴图| 992视频一区| 91色色网站| 日日操丁香五月天| 色色无码| 中文字幕综合人妻| 欧美在线91| 国产高清无码一区三区二区| 99热这里是精品| 麻豆精品A片免费观看| 丝袜高跟澳门91视频| 欧洲人妻视频| 99热9| 天天干天天日天天射黄色大片| 久色99999| 91欧美亚洲| 99re公开精品免费视频| 日韩97视频!在线| AV色五月天| 毛片久久| 麻豆久久视频在线地址| 茄子社区国产精品| 亚洲av综合色| 亚洲天堂另类小说男人| 2019天天干| 99综合视频一体| 亚州色国| 草莓精品视频在线免费观看| 美女啊啊啊啊pc| 欧美色九九| 亚洲欧美日韩免费电影| 免费成人在线熟妇网| 九九九久久久| 丁香五月天视频| 欧美日本天堂| 中文操逼字幕| 人人澡综合涩| 日本在线观看网址| 99爱久久视频频| 亚洲AV不卡在线观看| 午夜.DJ高清在线观看免费7| 亚洲精品丝袜| 男人午夜天堂| 精品无吗久久| 亚洲视频1区| 330Dv国产女人终合视频极品人与兽| 风韵犹存大大大大香蕉| 成视频在线观看免费看| 日日夜夜骚| 亚洲色欧美| 五月激情综合网| 亚洲日韩资源| 一本一道波多野毛片中文在线| 久久精品一区| 影音先锋日本一区二区| 久久人妇| 人妻系列无码专区中文有码| 亚洲欧美校园| 夜夜操二区| juliaann欧美丝袜办公室| 日本污ww视频网站| 超碰97男女| 日韩精品99999| 999999精品| 亚洲,欧美,春色,另类| 蜜臀久久99精品久久久久久| 欧美激情总合网| 国产精品操| 青青青国产| 夜夜草我| 日噜夜夜夜夜夜夜夜夜夜夜爽爽爽爽爽爽爽爽爽爽爽爽 | 色香91| 国人欧美精品一区二区| 97超碰超欧美。| 亚洲精品影视老司机| 超碰97在线中文| 午夜国产成人福利视频| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区 | 一本色道久久天天射天天干| 国产青青美女玩逼视频| 色丁香五月婷婷| 日韩97在线| 亚洲色图久久精品蜜| 欧差乱伦二三| 丝袜美腿91| 中文字幕日韩综合| 国产精品福利视频| 夜夜高潮夜夜爽国产伦精品| 91人妻人人妻| 久久香蕉网| 2017av无码免费无线播| 欧美色蜜桃97| 91l欧美在线| 91人妻Pr| 欧亚无码视频| 亚洲精品乱码线路中文字幕| 啊啊啊啊啊啊啊在线| 国产精品久久久鸭无码的功能| 先锋女优在线观看视频| 精品九九九九九九九九九| 欧美色五月| 亚洲AV无码乱码| 爱丝福利| 狠狠色一区二区中文字幕| 国产99热| 亚洲精品视频在线播放| 久久精品国产AV一区二区三区| 性色高清..……| 96AV精品| 婷婷九月| 加勒比大香蕉视频在线| 在线无码操| 91P0RNY大屁股人妻| 久湿久久| 1二区9| 色乱二区| 人人摸人人添人人操| 97资源久久| 婷婷10月天青娱乐| 99在线啪| 91久久堂| 五月天色电影| 色综合美国| 91色婷婷综合久久中文字幕二区| 在线啊v一区| 成人日韩3| 欧美黄页| 超碰午夜| 久久线上视频免费看| 亚洲。天堂。日本在线观看| 精品人妻视频一区二区三区蜜桃视频| 日韩内射视频| 性色国产东北露脸精品视频| 久久不卡一区二区| 99999精品视频| 精人妻无码一区二区三区伊人直播| 欧美另类自拍| 久久久久久性爱视频| 五月天色色色| 丝袜美腿诱惑亚洲欧美视频在线观看 | 97超碰jingpin| 四虎AV在线观看| 五月天综合在线| 欧美疯狂做爰xxxx| 色99视频| 亚州国产精品乱| 婷婷97| 99re视频在线观看这里只有精品| 国产91美女高潮| 久久人妻丝袜一区二区三| 激情综合五月天| 婷婷五月天色色| 天天日日舔舔| 加勒比综合九九99视频在线播放| 五月天欧美色图| 青青草国产欧美非洲黑人| 欧美成人免费在线观看| 欧美日韩国产三级黄色| 五月婷婷激情网| 色综合潮| 国产白丝av| 99精品国产户外露出| 一区二区三区免费视频入口| 色伊人91| 一区二区三区网站日日骚| 亚洲激情网一二三四区| av天堂影视中文在字幕在线中文| 亚洲五月天激情| 日韩乱伦视频| 97人肏| 97在线免费看| 亚洲色资源| 亚洲污污网站| 一本大道青青| 91久久久亚洲| 青青青国产手线观看视频2| 美女黄网| a片 xxxx受爽视频| 国产精品毛片?v一区二区三区| 亚洲日韩美国人妻| 欧美成人黄网色网站| 91小视频| www.四虎在线| 美女上床网站| 一个国产在线综合网站| 色色五月婷| 1二区9| 精品久久97| 久久久久久久久久久免费精品| 中文字幕av亚洲在线| 亚洲熟妇乱女区二区三区| 五十路二区在线| 思思久热在线精品66| 黑人操一区二区| 一区,二区,三区网站| 精品妇操一区二区三区| а√天堂资源官网在线资源| 天天综合网站| 99re综合伊人| 中日亚韩免费视频| 夜夜操91744565| 亚洲中文字幕av| 免费日韩黄片| 久久一二三四五六七八九区区| 久久婷婷成人综合色怡春院| 艹精品| 久久一二区四| 欧洲精品一级二级精品综合视频综合| 色吧综合网| 国产欧洲精品亚洲午夜拍精品| 国产精品一二三区18| www色色色com| 97超碰美女| 日本久久天堂| 欧美激情久久久久| 国产精品一级毛片不卡视| 婷婷久久综合| 屁股久久久久久久| 色婷婷综合网| 72av视频| 日本99视频| 国产精品午夜精品| 欧美性爱视频免费一区一A | 亚洲欧美九九九| 欧美激情综合网| 婷婷视频网| 熟女久久| 在线 制服丝袜中出 人妻| 天天躁夜夜躁狠狠躁AV| 人人做人人妻人人夜视频| 亚洲日韩乱码中文无码蜜桃臀网站| 久久亚洲AV无码白度| 欧美专区在线| a亚洲欧美色欲| 91亚·色| 亚洲精品自拍| 超碰地址97| 久久东京伊人一本到鬼色| 狠狠搞 亚洲91| 久久亚洲欧美中文字幕国语| 99精品高潮| 婷婷视频在线免费观看| 综合色欧美| 99色综合| 亚洲精品乱码线路中文字幕| 日韩中文字幕精品一二三事国产精品| 操逼操操操91| 啊v在线观看视频| 99re这里只有精品中心播放| 伊人久久在线视频观看| 无卡一区=区| 99热这里只有精品9| 一二视频神马久久传媒| 色婷婷丁香五月天| 亚洲美女AV无码| 开心六月色| 国产Aα| 久久久久久九九九九九九| 99热这里只有精品9| 久久精品一区二区三区四区五区| 久久视频,这里只有精品| 免费综合亚洲中文| 欧美精品三级黄片| 伊人在线大香蕉二。| 99热综合| 看一级特黄a大一片| 97中文字幕九区| 久久嫩草国产成人一区| 静品嫩模一区二区| 熟妇的味道HD中文字幕| 亚洲黄色电影| 日韩图区| 色欲人妻一区二区在线| 精品一区二区亚洲国产| 亚洲精品一二牛牛| 青青青青青手机视频| 久久一留热品黄| 午夜婷婷| 黄色欧美性爱视频| 韩国一级做a久久久久| 亚洲男人的天堂AV| 中文字幕 人妻不满 在线视频| 久久久久久久久久va| 丝袜美腿丝袜| 大乔未久88一区| 99精品网| www.91理论| 亚洲精品国语在线播放| 91日产桃蜜| 国产精品久久久久久久久久久久久久久久| 97午夜剧场日韩| 久久久国产成人一区二区三区在线| 精品乱码久久久久| 色五月丁香五月| 日本不卡高清视频| 欧美自拍偷拍综合图片| 风月影院十八禁| 一区二区不卡免费| 天天弄欧美| 中文字幕丝袜国产第一页不卡| 大香蕉线| 色欲天香天天综合网-成年人三级片网站-欧美乱妇狂野-日韩国产专区-久久久久久 | 91色人| 不卡码视频| 日韩成人综合网| www.zbzhongsen.com| 欧美网站免费| 亚洲国产尤物yw在线观看| 亚洲色图亚洲| 亚洲一区二区AV| 国产精品对白自产拍| 操淫穴亚洲五月丁香 | 久久久成人免费av电影| 久久精品国产精品| 综合网97| 99热精品在线观看| 亚洲av青草久久一区二区| 熟女少妇视频| 熟女少妇一区二区三区| 大香蕉日韩| 天天综合网在线91| 亚洲 在线| 欧美性高潮| 麻豆 美女 丝袜 人妻 中文| 91n欧美| 精品一区二区三区麻豆| 女性91网站| 91久久青青草原精品| 噜噜噜噜久久久精品免费| 99热这里都是精品| 日韩成年人性爱视频| 色在线视频导航| 欧洲在线性爱视频| 上海一级黄片| 亚洲日本韩国在线| 欧美激情综合色综合啪啪五月| 色色色热| 天天综合影院91| 超碰免费欧美7| 丝袜av一区二区三区| 搡老女人老91妇女熟女| 香蕉精品二区二区| 欧美真人抽搐一进一出gif | www.狠狠| 中文字幕一二三区| 日日夜夜草草草| 日本中文字幕一区| 久操免费观看| 黄色av片三级三级三级免费看| 97超碰jingpin| 欧美色图偷拍另类| www久久精品| 中文字幕99999| 亚洲性网| 国产高清精品福利| 99亚亚热| 亚洲AV在线资源| 91亚洲色图| 麻豆视频国产一区二区| 色青青久久影视| 九九久久久九九| 超碰欧美97资源| 日韩一级二级三级免费看完整版| 性爱乱伦网址| 久久婷婷五月综合| 日影院久久婷婷夜夜网| 亚洲欧美另类图片| 每日更新AV| 91女网站| 后入合集| av在线一区二区三区| 久久一区无码| 综合网少妇| 91w欧美| 黄色一级视| 超碰亚洲97| 青青草导航在线视频| 超碰精品国产无码| 亚洲中文字幕有码视频一区二区三区| 亚州高清av| 立川理惠被中出无码| www亚洲免费| 欧美三级一级| 后入国产| 国内精品伊人久久久久影院会| 性性欧美| 亚洲av国产av综合av卡| 久久久艹艹艹| 秋霞Av理论一级在线| 91日本在线观看| 天美传媒Av在线| 人妻丝袜日本| 五月婷色| 中文有码9| 91精品啪在线观看国产城中村| 国产精品久久久蜜臀| 日本熟妇人妻一区二区三区| 国产亚洲精品第一最新| 香蕉色网| AA特级绝黄| 欧美日韩成人| 揉揉揉夜夜| 亚洲黄网在哪免费看| 日韩视频小说在线观看| 青娱乐国产精品| 欧美视频激情久久久久久| 国产无码精品久久久久久| 插入综合网| 91视频综合网| 久久仑合| 亚欧日韩成人| 另类欧美| www.99热| 亚洲综合九九| 在线视频一区二区传媒| 91亚洲色人| 96国产污污污丝袜| 国产精品99精品视频网站| 久久只有精品一区二区三区| 8x福利精品第一福利视频导航| 色爱欲亚洲| 污污汅18禁网站在线永久免费观看| 欧美色日本| 岛国毛片手机在线观看| 91成人亚洲色图| 91久热这里只有精品| 亚洲激情视频| 91久久堂| 91九色精品熟女内射| 欧美亚洲丝袜人妻制服中文99| 久久丁香| 黄色片一区二区三区四区五区| 久操影视| 99re6久热只有精品6在线直播 | 久久精品国产亚洲粉嫩| 日本 成 人 小说 电影 一区二区| 亚洲精品国产熟女久久久| 手机在线观看不卡无码av| 亚洲中文sv| 德国一二三不卡| 狠狠中文字幕| 黄色工厂这里只有精品| 国产超碰国产97| 91碰超| 这里只有97精品| 国产精品91ai| 人妻22p| 久久久久白虎| 亚洲成人妻日韩在线| 91婷婷| 国内精品久久人妻性色av| 揉揉揉夜夜| 亚洲三级。日韩三级| 老熟女熟妇| 丁香六月婷婷久久综合| 人人贴人人摸| 久久狠狠色噜噜狠狠狠狠97| 亚洲在钱| 丝袜美腿校园春色| 熟妇亚洲一区二区三区| 国产高潮AA片免费看| 视频一区二区三区精品| 午夜传煤十二区精品| 少妇内射www在线观看视频| 婷婷99狠狠| 一起草欧美| 一区二区三区国产在线播放| 91精品操美女| 精品乱码久久久久| 99re3这里只有精品| 中国一级特黄大片护士| 屁股久久久久久| 精品无人区麻豆乱码1区2区图片 | 日本最新1区2区3区| 一二三啪啪专区| 色欧美天天| 激情综合网五月婷婷| 欧美日韩不卡a片| 丁香五六月啪啪| 神马久久久久久| 亚春色色| 欧洲精品欧洲精品| 色麻豆AV| 亚洲乱色视频一区、二区在线| 五月丁香婷婷综合网| 97超碰磁| 波多野42部激情无码喷潮| 亚州男人天堂| 99在线精品视频| 青草伊人网| 久热精品在线| 老司机香蕉| 校园春色欧美| av草草在线电影| 国桃视频产巨乳精品一区二区在线| 亚洲AV乱码专区国产噜噜亚洲| 9久超碰| 99热色精品| 五月天精品| 99热这里都是精品| 日韩99神马视频播放片在线播放| 欧亚综合一卡二卡中文字幕| 大胆91| 最新加勒比丝袜在线| 一区二区三区精品黑丝白丝酒店对鸡| 国产免费一区二区在线A片视频| 免费观看欧美日韩操逼视频| 日本三级人妻a人妻一在线| 91Chinese在线| 天天日日夜夜| 97玖玖人妻| 亚洲无码99| 香一区二区三区| 久久九七| 精品176精品2| 中文字幕色AV| 亚洲在线欧美| 天天综合-91入口| 51国产午夜精品视频| 欧美人人曰人人操人人射射| 18禁的网站在线| 日本一级性爱| 国产精品视频精品一二| 爱爱动态120秒| 伊人久久久日韩一区| 是还免费视频1727我| 久久久三区二区一区| 99久草| 欧美A片中文字幕| PMv在线观看| 亚洲成A∨人影院在线欢看| 激情色播| 午夜精品久久久久| 日日躁夜夜躁狠狠躁超爽| 操逼操2| 凹凸久久人人| 中文字幕一区二区三区蜜臀| 999色欧美中文字幕| 以及麻豆国产入口在线观看免费| 婷婷九月| 亚洲se电影| 国产精品一区午夜福利| 大香蕉AV丝袜| 搞中出久久| 色色婷| 伊人96在线| 人人干黄色| 花野真衣| 青青青在线高清视频在线一二三四区| 国产精品午夜AV完会免费| 欧美日韩国产高清在线一二三区 | 人人操人人插人www| 五月天激情婷婷| 亚州色阁| 伦激情人妻另类人妻| 亚洲男人天堂Av| 日日干日日操五月天伦理视频| 欧美夜色| 中国AV美女| 国产人妻精品久久久一区二区三区 | 色色色综合网| 淫穴高潮色图| 九九干| 中文字幕少妇色 | 乱伦3P视频| 中文字幕精品久久久久人妻红杏ⅰ| 另类专区加勒比| 久久草草亚洲蜜桃臀| 高凊专区人人操| 亚欧色图在线激情| 99爱久久视频频| 波多野结衣AV无码一区| 久久综合精品一区二区三区| 自拍偷拍草一草| 亚洲情色图片区| 99国产在线 精品 视频| 色麻豆AV| 日韩久久激情精品| 久久99国产精品| 老鸭窝黄色视频网站| 日韩国产不卡在线视频| 91性高| 黄色片A级一区二区三区| 人妻密肉在线观看| 无遮挡一级毛片视频免费的| 330Dv国产女人终合视频极品人与兽| 中文字幕在线免费观看2| 91精品人妻一区二区三区蜜桃臀| 伊人专区一区二区三区| 伊人操操| 婷婷丁香熟妇综合网| 日韩AV一起草| 国产精选视频| 天天操av懂色| a亚洲欧美色欲| 色制服丝袜夫妻av一区| 久久这里只精品99re66图| 国产精品不卡少妇白| 先锋影音av先锋一区| 欧美午夜色妇色鬼| 乳欲人妻办公室奶水| 中出20p| 丁香五月婷婷啪啪| 精品视频在线观看精品| 日韩少妇在线视频| 五月婷婷六月天| 97超碰磁| 大香蕉2017| 蜜臀在线免费观看在线免费观看| 国产精品久久久久久照片| 国产精品午夜精品| 精品人妻一区二区三区-国产| WWW啪啪的com| 东京太热男人的天堂久久久| 人人澡综合涩| 99久在线精品99re8| 2017av无码免费无线播| 91在线国产后入风骚翘臀美女素人| 99热精品在线观看| 亚洲熟女精品| 99在线精品视频| 99蜜桃臀久久久欧美精品网站| 中文字幕jul-617人妻熟女| 青娱乐二区免费| 91成人亚洲色图| 1二区9| 亚洲日韩AV视色| 亚欧Av| 亚洲97成人在线观看| 精品少妇高潮久久| 亚洲精品1区| 九九九九88| 啊v视频在线观看| 日逼视频日本| 亚洲成人激情小说视频| 精品人妻一区二区三区视频在线| 2017大香蕉国产精品久久| 熟女丰满人妻一区| 国产精品一区二区黄片| 欧美十八禁导航成人| 欧美呦呦性爱| 超碰欧美| 97在线看| 嗯嗯不要视频| 国产9l 大屁股| 密臀国产在线| 久草成人影片| 天天干夜夜肏| 丝袜狠狠草尤物 91| 久久爽爽精品| 欧美日韩少妇色情| 欧美大香蕉97| 亚洲熟妇熟在线电影视频| 亚洲。日韩。欧美| 大鸡巴久久久| 操九九九九九九| 粉嫩国产精品久久粉嫩| 夜夜爽33333| 98色网| 青草视频在线看看看看看看看看看| www.色操逼| 婷婷AV一区二区三区| 国产真实野战在线视频| 亚洲欧综合另类无码一区| 亚洲精品性爱片| 国产Av超碰| 日韩偷拍一区二区三区| 欧美一区二区日韩三区| 日韩欧美大力操| 少妇无码av专区线| 开心五月婷婷激情| 99久久久| 欧亚洲精品有视频| 欧美 综合| 中 文字幕一区二区三四 五 区日 日 骚 | 欧美精品三区| 天天在线91| 人妻丝袜一区二区三区在线| 97欧美综合| 国产真乱mangent| 最新三级网址| 亚洲国产日韩欧美熟妇在线| 狠狠操天天干| 日本不卡卡一区| 日韩丝袜高跟制服在线观看| 婷婷激情五月综合| 91欧美亚洲| 亚洲 欧美 制服 另类 自拍| 婷婷丁香五月天亚洲天堂网| 久久XX| 亚洲AV乱码专区国产噜噜亚洲| 加勒比AV网| 我想要啊 啊 啊| 亚洲精品人体| www亚洲免费| 欧美黄色片AAAAA| 毛片中心9视频99| 成人热久久精品| 撸无码不卡免费视频| 91久久久亚洲| 男男H黄动漫啪啪无遮挡网站| 射 色综合| 欧美91网站| 94色色电影网| 日韩熟女乱伦中出| 天天干,夜夜爽| 97超级欧美| 麻豆尤物视频网| 国产乱伦性爱区| 综合色播| 精品一区二区三区四区外站 | 丁香五月性| 中文乱码99| 日韩无码人妻中字久久三区四区| 免费A片三p视频| 综合五月婷婷| 青青草成人视频在线观看二区| 啊啊啊啊免费视频| 日本欧美一区二区三区免费| 亚洲天天艹| 国产AV线| 隔壁邻居波多野结衣中文字幕| 91碰碰碰| 伊人96在线| 成人无码在线超碰网| 色五月婷婷麻豆在| 蜜桃狠狠色伊人亚洲综合| 中英熟女操女| 6080yy午夜理论三级一区二区三区无码| 歐美性天天| 亚洲成人激情小说视频| 国产67194| 国偷自 一区二区| 综合国产影视三级| 日韩紧密久久| 天美传媒AV在线播放| 日韩性爱小视频在线观看| 亚洲精品国产精品乱码不卡| 狠狠干91| 国产玖玖| 亚州性色| 五月婷视频| 成人情色综合网| 福利伊人玖玖国产| 一本大道综合伊人精品热热| 麻豆国产精品午夜视频| 亚洲青青青视频在线| 亚洲欧美在线丝袜| 婷婷五月激情综合| 91美女视频。| 欧美在线干| 亚洲双插| 色色丁香| 偷拍盗拍亚洲色图图片 | 久久综合女优| 操操吧亚洲乱伦视频| 午夜欧美神马久久久久| 午夜视频久久久久一区| 天天做天天爱天天爽AV| 日韩av免费一级电影| 久插综合| 国产精品爽爽v| 大香蕉男人的天堂| 狼狼色丁香久久婷婷综合五月| 99精品伊人| 亚洲暴力强奸AV| 超碰在线1234区| 在线不卡视频| 欧美亚洲综合高清在线| 久久理论字幕视频| 亚洲国产91精品一区二区久久| 97天天操天天干| 乱伦图一区| 精品少妇一区二区| 亚洲有码 欧美精品| 色哟哟 日韩精品| 久久久久密臀一区二区| 午夜寂寞欧美| 日夜精品| 国产AV人人 夜夜人人澡| 约操熟妇| 欧美se综合| 九九九久千久久激情蜜桃在线看| 国产精品麻豆免费视频| 久久久熟女一区| 五月丁香久久| 久久黄片国产一区二区| 玖玖爱伊人玖玖爱| 中文字幕在线观看丝袜| 亚洲成人精品在线一区| 亚洲色图自拍| 一二三四免费视频| 欧美黄色大片在线观看 | 大屁股人妻女教师撅着屁股| 操淫穴亚洲五月丁香| 欧美一区二区亚洲天堂| 电家庭影院午夜69久久夜色精品国产69乱| 久久亚州高清| 免费看久久久性性| 超碰97久久| 超碰97导航| 蜜臀精品1区2区| 人人操人人操草草| 亚洲精品久久久久毛片A片拉屎 | 骚逼一区二区| 五月婷婷激情网| 日本成人A片网站| 久久东京热成人| 欧美日韩大陆黑人少妇99| 男女一级A片大黄,一进一出| 成人26uuu| 日曰骚久久精品| 久久爱超碰网| 偷拍欧美激情| 婷婷91| 亚洲第一精品在线视频| 97爱综合| 欧美少妇高潮视频| 97一区二压| 骚妻少妇精品性色无码四色A V| 国产不卡精品91| 91人妻Pr| 久久91视频| 肉动漫无遮挡h在线观看| 国产美女高潮视频| 日韩综合97P| 久久视网78| 特污免视频| 午夜色婷婷| 国产美女mm131爽爽爽爽| 人人看黄色视频| 婷婷午夜清品久久久久久久性色视频观| 神马久久69| 一区二区三区四区五区高清无码永久视频 | 男女激烈网站最新| 亚洲国产精品无码AV久久| 欧美综合综合| 婷婷五月天色网| 中文字幕人乱码中文字的预防方法 | 日韩精品高清资源在线| 黑操B| 久热这里| 五月香婷婷| 亚洲欧美中文日韩视频中国语| ..日韩av毛片精品久久久| 欧美一区二区三区互相| 人妻色偷色噜| 亚洲精品久久久久毛片A片拉屎 | 日韩一级二级三级免费看完整版国语版| 春色校园综合网| 欧美久久婷| 麻豆国产原创AV色哟哟| 亚洲 欧美 天天| 嗯嗯啊啊视频在线看| 99re视频在线观看这里只有精品| 天天操天天舔| 偷窥自拍A片| 亚洲最大无码中文字幕网站| 亚洲精品第一| 干婷婷综合网| 欧美网站免费| 日韩性爱视频免费在线| 国产三级电影免费观看| 五月丁香综合激情| 亚 欧 美 综合| 嗯嗯嗯啊啊啊在线免费观看| 色噜噜人妻av 中文字幕| 久久久99久9| 精品国产99| 天天看高清麻豆| 亚洲图片在线| 四虎精品永久在线观看| 亚洲不雅视频1区二区| 亚洲97| 一道α片欧美| 18禁免费视频| 国产女人成人精品视频| 色999亚洲人成色| 亚洲黑丝在线| 亚洲最大的黄色电影网站。| 丰满精品人妻少妇久久字幕| 60秒免费视频| 午夜噜噜噜| 人妻天天爽天天爽三区| 宅男影院久久久,99| 日韩亚洲Av人人夜夜澡人人爽| 999岛国大片| 老女人爆菊| 天美欧美国产| 超碰在线日韩一区| 中文字幕欧美日韩三级| 久操网视频| 久9视频| 欧美18禁91| 日韩毛片9| 亚洲?V高清一区二区三区尤物| 成人无码在线超碰网| 国内精品久久久久影院亚洲| 99青草| 午夜精品久久999热蜜桃介男人用| 怡红院久久老司机| 三级日本一区二区三区| 国产高清成人传媒影视| 久久9亚洲| 久久久久九九九九九| 天美传媒婬乱| 青娱乐久久艹| 怡红院怡春院| 91N综合网| 精品国产乱码| 色婷婷狠狠| 秋霞福利网| 人人弄人人摸| 狼人久草| 9999亚洲精品| 放黄片放3级黄片没穿衣服| 欧美一区二区观看在线| 2001天天操| 久9综合在线| 免费av高清无码| 久久人妻丝袜一区二区三| 国产精品国产| 欧美人与动性人交a| 超碰成人免费| 天堂资源站| 免费无码婬片AAAA片直播色戒| 99热99色| 嗯嗯啊啊的视频| 亚洲熟女乱色一区二区三区| 99热只有| 208天天久久九九九| 亚洲一区二区三区不卡国产欧美| 天天操狠狠日夜夜干超碰撸com视频在线观看 | 性感美女91影视| 嫩草影院在线观看精品| 香蕉久久精品| 在线视频亚洲无码| 一品道视频一区二区三区| 欧美日韩精品久久久久东北老熟妇| 亚洲国产成人7777| 99r九九| 狠狠爱综合网| 日本 欧美 亚中文字幕| 青青草大香蕉视频| 中文久久爆乳| 伊人久久亚洲色欲综合网站 | 欧美久久伊人| 99精品久久久久久| 大黄片做爱的大的| 亚洲区限制级| 欧美日韩另类在线播放| 成人女人国产| se吧提供91精品国产91久久久久久 | 无码人妻精品一区二区三区九九| 97超碰人人模人人拍人人| 69精品少妇一区二区三区蜜桃| 91情色在线| 狠狠色色| 97色综合中文网| 久久精品一区二区三区不卡| 色妺妺AⅤ| 1024久久高清视频| 男女一进一出视频久久| 国产一区二区三区不卡手机在线| 2020久久免费视频| 麻豆黄四叶草网站| 亚欧免费| 亚洲综合 欧美| 国产女性无套 免费观看| 综合大香蕉美。| 激情看片网站| 97干在线视频| 久久久不能久久久久| 东京热视频网| 天天综合麻豆视频| 日本福利二区视频| 91老司机视频| 久久久久久大| 18禁中文字幕| 日夜尻逼网| 很很干很很操| 欧美福利视频啊啊啊啊| 超碰97久久观看| 欧美黄色大香蕉一区二区| 97碰碰色| 人人摸人人干| 久操视频资源站公开| 男女啊啊啊| 亚洲色图 欧美热图 清纯唯美 另类自拍| 天天射天天操天天干天天吃2018| 人人妻人人色| 国内自拍 日韩激情 99| 蜜臀久久99精品久久久久久| 中文字幕天天天天天| 综合在线导航一区| 欧美se综合| 干b在线性社区| 青青草丝袜在线视频| av中亚| 啊啊啊啊好疼视频| 欧美视频在线第3页| 香蕉久久AⅤ...| 中文字幕一区二区三区人妻不卡 | 射久久| av东京热男人的天堂| 人妻少妇色综合| 国产精品视频自拍在线| 亚洲一区中文字幕| 午夜啊啊啊| 久久九九99| 国产精品国产自产高清AV| 超碰97伊人| 久草热制服丝袜在线观看| 无码99| 性做久久久久久久| 亚洲 欧美 精品专区 极品| 91在线一起| 六月丁操逼| 婷婷五月天伊人| 99精品欧美一区二区三区桃色| 97免费视频在线| 97超色| 东北老女人的激情视频| 久久 亚洲 日韩 人妻| 丁香五月天激情| 国产精品无套内谢| 亚洲欧美日韩免费观看| 国产在线激情| 豆1无夜无码| 久久偷拍人| 人妻啊啊人妻啊| 干婷婷综合网| 日韩性爱1级片视频| 亚洲欧美成人网站AAA| 99热这里都是精品| 人人爽夜夜玩视频| 色情亚洲日本成人| 欧美专区在线| 伊人网av| 99啪啪视频| 美女一区二区国产精品| www.久久制服糖| 1769一区| 狠狠爱综合网| 蜜臀网 一区| 大香蕉一人| 久操视频在线| 狠狠干妹子| 骚逼自拍99| 丝袜美女诱惑 91 视频| 天天舔九色婷婷| 色婷婷综合久久中文字幕雪峰| 亚洲天天艹| 无码免费一区二区三区啪啪| 色色综合网站| 色婷婷综合网站| 免費黃色視頻觀看一| 亚洲一区二区三区四区视频| 无码天天操| 国产欧美岛国精品一区| jk白丝没脱就开始啪啪| 午夜超爽| 国产91啪| 久久一区二区高清免费| 日韩乱中文 | 亚洲性图91| 亚洲高清少妇| 熟女露脸激情自拍视频| 久久中文字幕女同性恋一区| nuu12国产麻豆精品| 欧美淫乱视频| 天天天肏屄肏屄肏屄欧美欧美| 午夜啊啊| 欧美亚洲91| 天天日天天干天天色| 久久久久亚洲av综合波多野制衣| 国产精品 久久久精品一牛| 亚洲成人日韩小说|