LwIP 协议栈核心.c 文件依赖关系图

LwIP协议栈核心.c文件依赖关系图

以下通过Mermaid结构图清晰展示LwIP核心.c文件的层级依赖、调用关系,按「基础层→核心层→应用层」的逻辑梳理,同时标注关键文件的核心作用:
基础类型定义
数据载体
可选依赖
cc.c

平台数据类型适配
所有文件
sys_arch.c

OS/裸机适配(线程/信号量)
mem.c

堆内存管理
tcp.c

TCP核心逻辑
netconn.c

NETCONN API
memp.c

内存池管理
pbuf.c

数据包缓冲管理
所有数据收发模块
netif.c

网卡接口管理
ethernetif.c

以太网驱动适配
arp.c

ARP协议处理
ip4.c

IPv4核心(转发/封装)
ip_frag.c

IP分片/重组
icmp.c

ICMP协议(Ping)
igmp.c

组播管理(可选)
udp.c

UDP协议
tcp_in.c

TCP接收处理
tcp_out.c

TCP发送处理
tcp_timer.c

TCP超时重传
tcp_win.c

TCP滑动窗口
api_lib.c

RAW API核心
api_msg.c

RAW API消息处理
sockets.c

Socket API(BSD兼容)
dhcp.c

DHCP客户端
dns.c

DNS解析
debug.c

调试日志
chksum.c

校验和计算

核心文件关系说明

1. 基础依赖链(必选)
  • 最底层cc.c(定义u8_t/u16_t等跨平台类型)、sys_arch.c(OS/裸机适配)是所有模块的基础;
  • 内存/缓冲mem.c/memp.c(内存管理)→ pbuf.c(数据包缓冲),所有数据收发模块(tcp/udp/ip)都依赖pbuf.c传递数据;
  • 网卡接口netif.c(网卡管理)是链路层与网络层的桥梁,ethernetif.c是具体的以太网驱动适配,依赖netif.c
2. 协议层调用链
  • 网络层ip4.c是核心,承接arp.c(地址解析)、icmp.c(差错报告),向下调用pbuf.c,向上为传输层提供IP封装/解封装;
  • 传输层
    • UDP:udp.c直接依赖ip4.c,逻辑简单,无复杂状态管理;
    • TCP:tcp.c是核心,拆分tcp_in.c(接收)、tcp_out.c(发送)、tcp_timer.c(超时)、tcp_win.c(窗口),整体依赖ip4.csys_arch.c(定时器/同步)。
3. API层封装关系
  • RAW API(api_lib.c/api_msg.c):直接封装tcp.c/udp.c,是最底层API;
  • NETCONN API(netconn.c):基于RAW API封装,增加连接对象抽象,依赖sys_arch.c(线程/信号量);
  • Socket API(sockets.c):最高层封装,基于NETCONN API实现BSD兼容接口,对外提供socket()/connect()等函数。
4. 可选模块依赖
  • dhcp.c:依赖ip4.c(IP地址管理)和netif.c(网卡配置);
  • dns.c:依赖udp.c(DNS用UDP通信)和ip4.c(目标IP解析);
  • igmp.c/ppp.c等:基于ip4.c扩展,按需启用。

总结

  1. LwIP文件依赖遵循「基础层→数据缓冲→链路层→网络层→传输层→API层 」的层级逻辑,核心是pbuf.c(数据)和ip4.c(网络层核心);
  2. TCP模块是最复杂的部分,拆分为多个子文件(tcp_in/out/timer/win),均依赖tcp.c核心;
  3. API层是逐层封装关系:Socket API → NETCONN API → RAW API,底层均指向传输层(TCP/UDP)核心;
  4. 移植时核心修改sys_arch.c(OS适配)和ethernetif.c(网卡驱动),无需改动协议栈核心文件。
相关推荐
清风66666619 分钟前
基于单片机与DAC0832的双路波形信号发生系统设计
单片机·嵌入式硬件·毕业设计·课程设计·期末大作业
Hello:CodeWorld1 小时前
C 风格变参 vs C++ 变参模板:核心区别与选型指南
c语言·c++·算法
azwsm2 小时前
电路元器件和GPIO控制器
单片机·嵌入式硬件
换个昵称都难3 小时前
webrtc 音频模块FEC模块
网络·音视频·webrtc
十月的皮皮3 小时前
C语言学习笔记20260606- 求月份天数三种写法
c语言·笔记·学习
youngerwang4 小时前
【从搬运工到协处理器:网卡芯片架构、算法、验证与边缘演进深度剖析】
网络·算法·架构·芯片
caimouse4 小时前
Reactos 第 5 章 进程与线程 — 5.8 Windows 的 APC 机制
c语言·windows
kebidaixu5 小时前
FreeRTOS 移植到 STM32F407VETX 记录(一)
stm32·单片机·嵌入式硬件
点灯小铭6 小时前
基于单片机的数码管定时插座设计与定时开关功能实现
单片机·嵌入式硬件·毕业设计·课程设计·期末大作业
智慧光迅AINOPOL6 小时前
校园在线巡课系统方案:督导全覆盖
网络·全光网解决方案·全光网·校园全光网·校园全光网解决方案