本文轉自公眾號歡迎關注
基于DWC_ether_qos的以太網驅動開發-LWIP在PC上進行開發調試 (qq.com)
https://mp.weixin.qq.com/s/YCHunvHybX6Ugp93GvsldQ
一.前言
LWIP是優秀的嵌入式TCP/IP協議棧,我們之前介紹了其在嵌入式環境裸機和RTOS環境的移植,有時候我們僅僅是需要調試協議棧本身,在嵌入式環境中可能調試不便,此時我們可以直接在PC環境下進行協議棧調試。以下以WSL+Ubuntu環境介紹LWIP的開發環境的搭建。
二.創建 tap 虛擬網卡
安裝 UML
sudo apt install uml-utilities
創建 tap0
sudo tunctl -u someuser
如下
lhj@DESKTOP-BINN7F8:~/lwip$ sudo tunctl -u lhj
查看網卡
ifconfig
如下
tap0: flags=4099 mtu 1500
設置網卡IP并啟用
sudo ifconfig tap0 192.168.1.10up
如果需要刪除網卡可以使用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 #默認使用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
四.測試
另開一個shell,安裝工具iperf
sudo apt install iperf
運行連接服務端進行測試
iperf -c 192.168.1.200
新開的shell作為客戶端IP為192.168.1.1,lwipbridge可以看到
lwipbridge: flags=4163 mtu 1500
原來運行example_app的shell為服務端IP為192.168.1.200監聽端口5001。
測試結果如下
五.使用gdb調試
lwip/contrib/ports/unix/example_app/Makefile
添加一行
CFLAGS+=-g3
重新make
使用gdb調試代碼
sudo gdb ./example_app
b main #斷點到main函數處
r #運行,到main斷點處停止
layout src #查看源碼
n #運行到下一行
s #單步運行到下一語句
使用vscode瀏覽代碼
code .
六.總結
LWIP可以方便的在PC上搭建開發環境進行協議棧的開發調試。
審核編輯 黃宇
-
以太網
+關注
關注
40文章
5423瀏覽量
171684 -
調試
+關注
關注
7文章
578瀏覽量
33934 -
LwIP
+關注
關注
2文章
86瀏覽量
27166
發布評論請先 登錄
相關推薦
評論