CubeMx生成的文件主要是两个文件,lwipopts.h和ethnetif.c。
lwipopts.h主要是对于lwip中一些宏的定义的选择。该文件include在lwip的opt.h文件前面。因此在本文件定义的宏,会生效。若lwipopts.h未定义,则使用opt.h文件中的宏。
lwipopts.h
我用到了以下宏:
LWIP_DHCP获取网络IP。
LWIP_IGMPudp的组播使能。
NO_SYS是否使用操作系统。
MEMP_MEM_MALLOC是使用的memp,lwip的mem和memp的区别。
另外我还定义了以下宏用来替代默认的宏值。
#define MEM_SIZE (15*1024)
#define TCP_MSS (1500 - 40) //最大TCP分段,TCP_MSS = (MTU - IP报头大小 - TCP报头大小
#define TCP_SND_BUF (4*TCP_MSS) //TCP发送缓冲区大小(bytes).
#define TCP_SND_QUEUELEN (2* TCP_SND_BUF/TCP_MSS) //TCP_SND_QUEUELEN: TCP发送缓冲区大小(pbuf).这个值最小为(2 * TCP_SND_BUF/TCP_MSS)
#define TCP_WND (2*TCP_MSS) //TCP发送窗口
opt.h前一部分