0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于DWC_ether_qos的以太網(wǎng)驅(qū)動(dòng)開發(fā)-LWIP在PC上進(jìn)行開發(fā)調(diào)試

嵌入式USB開發(fā) ? 來(lái)源:嵌入式Lee ? 作者:嵌入式Lee ? 2023-09-11 08:40 ? 次閱讀

本文轉(zhuǎn)自公眾號(hào)歡迎關(guān)注

基于DWC_ether_qos的以太網(wǎng)驅(qū)動(dòng)開發(fā)-LWIP在PC上進(jìn)行開發(fā)調(diào)試 (qq.com)

https://mp.weixin.qq.com/s/YCHunvHybX6Ugp93GvsldQ

一.前言

LWIP是優(yōu)秀的嵌入式TCP/IP協(xié)議棧,我們之前介紹了其在嵌入式環(huán)境裸機(jī)和RTOS環(huán)境的移植,有時(shí)候我們僅僅是需要調(diào)試協(xié)議棧本身,在嵌入式環(huán)境中可能調(diào)試不便,此時(shí)我們可以直接在PC環(huán)境下進(jìn)行協(xié)議棧調(diào)試。以下以WSL+Ubuntu環(huán)境介紹LWIP的開發(fā)環(huán)境的搭建。

二.創(chuàng)建 tap 虛擬網(wǎng)卡

安裝 UML

sudo apt install uml-utilities

創(chuàng)建 tap0

sudo tunctl -u someuser

如下

lhj@DESKTOP-BINN7F8:~/lwip$ sudo tunctl -u lhj

查看網(wǎng)卡

ifconfig

如下

tap0: flags=4099 mtu 1500

設(shè)置網(wǎng)卡IP并啟用

sudo ifconfig tap0 192.168.1.10up

如果需要?jiǎng)h除網(wǎng)卡可以使用sudo tunctl -d tap0

三.編譯LWIP

安裝必要的工具

sudo apt install bridge-utils

sudo apt install cmake

lgit clone https://github.com/lwip-tcpip/lwip.git

lcd lwip

lsudo ./contrib/ports/unix/setup-tapif #默認(rèn)使用tap0

lcp ./contrib/examples/example_app/lwipcfg.h.example ./contrib/examples/example_app/lwipcfg.h

lvim ./contrib/examples/example_app/lwipcfg.h

去掉`#define USE_DHCP 0` 和`#define USE_AUTOIP 0`的注釋,并將`LWIP_LWIPERF_APP`的宏定義為 1

lcd ./contrib/ports/unix/example_app/

lmkdir build && cd build

lcmake -DLWIP_DIR=/home/lhj/lwip ..

lmake

lsudo ./example_app

四.測(cè)試

另開一個(gè)shell,安裝工具iperf

sudo apt install iperf

運(yùn)行連接服務(wù)端進(jìn)行測(cè)試

iperf -c 192.168.1.200

新開的shell作為客戶端IP為192.168.1.1,lwipbridge可以看到

lwipbridge: flags=4163 mtu 1500

原來(lái)運(yùn)行example_app的shell為服務(wù)端IP為192.168.1.200監(jiān)聽端口5001。

測(cè)試結(jié)果如下

wKgaomT-a4eASU5pAAN8tVb5SkU139.png


五.使用gdb調(diào)試

lwip/contrib/ports/unix/example_app/Makefile

添加一行

CFLAGS+=-g3

重新make

使用gdb調(diào)試代碼

sudo gdb ./example_app

b main #斷點(diǎn)到main函數(shù)處

r #運(yùn)行,到main斷點(diǎn)處停止

layout src #查看源碼

n #運(yùn)行到下一行

s #單步運(yùn)行到下一語(yǔ)句

wKgZomT-a4eAcGJTAAO1wIvbvLk990.pngwKgaomT-a4iAMWx0AAK4eAwCxhQ439.png

使用vscode瀏覽代碼

code .

六.總結(jié)

LWIP可以方便的在PC上搭建開發(fā)環(huán)境進(jìn)行協(xié)議棧的開發(fā)調(diào)試。

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 以太網(wǎng)
    +關(guān)注

    關(guān)注

    40

    文章

    5424

    瀏覽量

    171700
  • 調(diào)試
    +關(guān)注

    關(guān)注

    7

    文章

    578

    瀏覽量

    33936
  • LwIP
    +關(guān)注

    關(guān)注

    2

    文章

    86

    瀏覽量

    27168
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    基于DWC_ether_qos以太網(wǎng)驅(qū)動(dòng)開發(fā)-MAC幀格式介紹

    本文轉(zhuǎn)自公眾號(hào),歡迎關(guān)注 基于DWC_ether_qos以太網(wǎng)驅(qū)動(dòng)開發(fā)-MAC幀格式介紹 (qq.com) 一.前言 ?
    的頭像 發(fā)表于 08-30 09:23 ?2381次閱讀
    基于<b class='flag-5'>DWC_ether_qos</b>的<b class='flag-5'>以太網(wǎng)</b><b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>開發(fā)</b>-MAC幀格式介紹

    基于DWC_ether_qos以太網(wǎng)驅(qū)動(dòng)開發(fā)-MDIO驅(qū)動(dòng)編寫與測(cè)試

    本文轉(zhuǎn)自公眾號(hào)歡迎關(guān)注 基于DWC_ether_qos以太網(wǎng)驅(qū)動(dòng)開發(fā)-MDIO驅(qū)動(dòng)編寫與測(cè)試 一.前言
    的頭像 發(fā)表于 08-30 09:37 ?3766次閱讀
    基于<b class='flag-5'>DWC_ether_qos</b>的<b class='flag-5'>以太網(wǎng)</b><b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>開發(fā)</b>-MDIO<b class='flag-5'>驅(qū)動(dòng)</b>編寫與測(cè)試

    基于DWC_ether_qos以太網(wǎng)驅(qū)動(dòng)開發(fā)-描述符鏈表介紹

    本文轉(zhuǎn)自公眾號(hào)歡迎關(guān)注 一.描述符概述 1.0 前言 對(duì)于DWC Ethernet QoS驅(qū)動(dòng)的編寫來(lái)說(shuō),初始化完成之后,核心操作就是DMA的描述符鏈表配置(linked list
    的頭像 發(fā)表于 08-30 09:39 ?4534次閱讀
    基于<b class='flag-5'>DWC_ether_qos</b>的<b class='flag-5'>以太網(wǎng)</b><b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>開發(fā)</b>-描述符鏈表介紹

    基于DWC_ether_qos以太網(wǎng)驅(qū)動(dòng)開發(fā)-數(shù)據(jù)流驗(yàn)證過(guò)程

    轉(zhuǎn)自公眾號(hào)歡迎關(guān)注 https://mp.weixin.qq.com/s/klrHhaLMM_0W3FGVwHXFkA 基于DWC_ether_qos以太網(wǎng)驅(qū)動(dòng)開發(fā)-數(shù)據(jù)流驗(yàn)證過(guò)程
    的頭像 發(fā)表于 08-31 08:41 ?2053次閱讀
    基于<b class='flag-5'>DWC_ether_qos</b>的<b class='flag-5'>以太網(wǎng)</b><b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>開發(fā)</b>-數(shù)據(jù)流驗(yàn)證過(guò)程

    基于DWC_ether_qos以太網(wǎng)驅(qū)動(dòng)開發(fā)-收發(fā)驅(qū)動(dòng)編寫與調(diào)試

    本文轉(zhuǎn)自公眾號(hào),歡迎關(guān)注 基于DWC_ether_qos以太網(wǎng)驅(qū)動(dòng)開發(fā)-收發(fā)驅(qū)動(dòng)編寫與調(diào)試 (
    的頭像 發(fā)表于 09-05 08:47 ?2340次閱讀
    基于<b class='flag-5'>DWC_ether_qos</b>的<b class='flag-5'>以太網(wǎng)</b><b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>開發(fā)</b>-收發(fā)<b class='flag-5'>驅(qū)動(dòng)</b>編寫與<b class='flag-5'>調(diào)試</b>

    基于DWC_ether_qos以太網(wǎng)驅(qū)動(dòng)開發(fā)-無(wú)OS環(huán)境移植LWIP

    本文轉(zhuǎn)自公眾號(hào)歡迎關(guān)注 基于DWC_ether_qos以太網(wǎng)驅(qū)動(dòng)開發(fā)-無(wú)OS環(huán)境移植LWIP (qq.com) https://mp.we
    的頭像 發(fā)表于 09-06 08:40 ?1613次閱讀
    基于<b class='flag-5'>DWC_ether_qos</b>的<b class='flag-5'>以太網(wǎng)</b><b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>開發(fā)</b>-無(wú)OS環(huán)境移植<b class='flag-5'>LWIP</b>

    基于DWC_ether_qos以太網(wǎng)驅(qū)動(dòng)開發(fā)-LWIP的內(nèi)存池介紹

    ,protocol控制塊,包緩存等。memp.c下實(shí)現(xiàn)。 LWIP的內(nèi)存池有兩種方式實(shí)現(xiàn),通過(guò)宏MEMP_MEM_MALLOC配置,默認(rèn)opt.h中配置為0. 配置為1使用mem_malloc
    的頭像 發(fā)表于 09-07 08:45 ?1745次閱讀
    基于<b class='flag-5'>DWC_ether_qos</b>的<b class='flag-5'>以太網(wǎng)</b><b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>開發(fā)</b>-<b class='flag-5'>LWIP</b>的內(nèi)存池介紹

    基于DWC_ether_qos以太網(wǎng)驅(qū)動(dòng)開發(fā)-LWIP的堆管理介紹

    本文轉(zhuǎn)自公眾號(hào)歡迎關(guān)注 基于DWC_ether_qos以太網(wǎng)驅(qū)動(dòng)開發(fā)-LWIP的堆管理介紹 (qq.com) https://mp.wei
    的頭像 發(fā)表于 09-08 08:40 ?1318次閱讀
    基于<b class='flag-5'>DWC_ether_qos</b>的<b class='flag-5'>以太網(wǎng)</b><b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>開發(fā)</b>-<b class='flag-5'>LWIP</b>的堆管理介紹

    基于DWC_ether_qos以太網(wǎng)驅(qū)動(dòng)開發(fā)-LWIP的堆(內(nèi)存池)未對(duì)齊導(dǎo)致問(wèn)題的案例分享

    本文轉(zhuǎn)自公眾號(hào)歡迎關(guān)注 https://mp.weixin.qq.com/s/ErIa2ss2YZLGYbSwoJEzog 一.?前言 內(nèi)存未對(duì)齊訪問(wèn)問(wèn)題這個(gè)已經(jīng)是老生常談的問(wèn)題了, 由于LWIP
    的頭像 發(fā)表于 09-09 08:44 ?1742次閱讀
    基于<b class='flag-5'>DWC_ether_qos</b>的<b class='flag-5'>以太網(wǎng)</b><b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>開發(fā)</b>-<b class='flag-5'>LWIP</b>的堆(內(nèi)存池)未對(duì)齊導(dǎo)致問(wèn)題的案例分享

    基于DWC_ether_qos以太網(wǎng)驅(qū)動(dòng)開發(fā)-RTOS環(huán)境移植LWIP與性能測(cè)試

    本文轉(zhuǎn)自公眾號(hào),歡迎關(guān)注 基于DWC_ether_qos以太網(wǎng)驅(qū)動(dòng)開發(fā)-RTOS環(huán)境移植LWIP與性能測(cè)試 (qq.com) https:
    的頭像 發(fā)表于 09-11 11:20 ?2129次閱讀
    基于<b class='flag-5'>DWC_ether_qos</b>的<b class='flag-5'>以太網(wǎng)</b><b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>開發(fā)</b>-RTOS環(huán)境移植<b class='flag-5'>LWIP</b>與性能測(cè)試

    基于DWC_ether_qos以太網(wǎng)驅(qū)動(dòng)開發(fā)-LWIP的定時(shí)器模塊詳解

    一. 前言 LWIP的定時(shí)器模塊,實(shí)現(xiàn)了通用的軟件定時(shí)器,用于內(nèi)部的周期事件處理,比如arp,tcp的超時(shí)等,用戶也可以使用。這一篇來(lái)分析該模塊的實(shí)現(xiàn)。 二.代碼分析 2.1源碼 源碼
    的頭像 發(fā)表于 09-18 09:33 ?1680次閱讀
    基于<b class='flag-5'>DWC_ether_qos</b>的<b class='flag-5'>以太網(wǎng)</b><b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>開發(fā)</b>-<b class='flag-5'>LWIP</b>的定時(shí)器模塊詳解

    基于DWC_ether_qos以太網(wǎng)驅(qū)動(dòng)開發(fā)-LWIP的ARP模塊介紹

    TCP/IP通訊第一步需要先調(diào)通ARP,否則TCP/IP包都不知道MAC地址要發(fā)給誰(shuí)。這一篇來(lái)基于LWIP的ARP實(shí)現(xiàn)進(jìn)行相關(guān)的分析。
    的頭像 發(fā)表于 09-18 09:34 ?1915次閱讀
    基于<b class='flag-5'>DWC_ether_qos</b>的<b class='flag-5'>以太網(wǎng)</b><b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>開發(fā)</b>-<b class='flag-5'>LWIP</b>的ARP模塊介紹

    基于DWC_ether_qos以太網(wǎng)驅(qū)動(dòng)開發(fā)-LWIP的ICMP模塊介紹與PING收發(fā)測(cè)

    報(bào)的緩沖能力時(shí),以及當(dāng)網(wǎng)關(guān)可以指示主機(jī)較短的路由上發(fā)送數(shù)據(jù)時(shí)。 互聯(lián)網(wǎng)協(xié)議的設(shè)計(jì)并不是絕對(duì)可靠的。ICMP這些控制消息的目的是提供有關(guān)通信環(huán)境中問(wèn)題的反饋
    的頭像 發(fā)表于 09-18 17:51 ?2007次閱讀
    基于<b class='flag-5'>DWC_ether_qos</b>的<b class='flag-5'>以太網(wǎng)</b><b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>開發(fā)</b>-<b class='flag-5'>LWIP</b>的ICMP模塊介紹與PING收發(fā)測(cè)

    設(shè)計(jì)軟件核心以太網(wǎng)服務(wù)質(zhì)量數(shù)據(jù)手冊(cè)免費(fèi)下載

    本文描述Synopsys設(shè)計(jì)軟件核心以太網(wǎng)服務(wù)質(zhì)量DWC以太網(wǎng)QoS核心5.10A。DWC以太網(wǎng)
    發(fā)表于 10-23 08:00 ?16次下載
    設(shè)計(jì)軟件核心<b class='flag-5'>以太網(wǎng)</b>服務(wù)質(zhì)量數(shù)據(jù)手冊(cè)免費(fèi)下載

    基于DWC_ether_qos以太網(wǎng)驅(qū)動(dòng)開發(fā)-包過(guò)濾

    以太網(wǎng)上數(shù)據(jù)非常多,如果所有數(shù)據(jù)都接收交給軟件去處理軟件負(fù)載會(huì)非常重,所以一般只需要接收發(fā)給自己的數(shù)據(jù)即可
    的頭像 發(fā)表于 09-02 09:19 ?1790次閱讀
    基于<b class='flag-5'>DWC_ether_qos</b>的<b class='flag-5'>以太網(wǎng)</b><b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>開發(fā)</b>-包過(guò)濾