如何用QMK Toolbox三分钟搞定机械键盘固件刷写?免费开源工具终极指南
2026/7/11 11:06:03
以下通过Mermaid结构图清晰展示LwIP核心.c文件的层级依赖、调用关系,按「基础层→核心层→应用层」的逻辑梳理,同时标注关键文件的核心作用:
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。ip4.c是核心,承接arp.c(地址解析)、icmp.c(差错报告),向下调用pbuf.c,向上为传输层提供IP封装/解封装;udp.c直接依赖ip4.c,逻辑简单,无复杂状态管理;tcp.c是核心,拆分tcp_in.c(接收)、tcp_out.c(发送)、tcp_timer.c(超时)、tcp_win.c(窗口),整体依赖ip4.c和sys_arch.c(定时器/同步)。api_lib.c/api_msg.c):直接封装tcp.c/udp.c,是最底层API;netconn.c):基于RAW API封装,增加连接对象抽象,依赖sys_arch.c(线程/信号量);sockets.c):最高层封装,基于NETCONN API实现BSD兼容接口,对外提供socket()/connect()等函数。dhcp.c:依赖ip4.c(IP地址管理)和netif.c(网卡配置);dns.c:依赖udp.c(DNS用UDP通信)和ip4.c(目标IP解析);igmp.c/ppp.c等:基于ip4.c扩展,按需启用。pbuf.c(数据)和ip4.c(网络层核心);tcp.c核心;sys_arch.c(OS适配)和ethernetif.c(网卡驱动),无需改动协议栈核心文件。