1、修改 最大一包数据的大小 TCP_MSS , 即 TCP最大报文段大小,根据自己的应用进行修改 比如 我 的一包数据最大 256字节,在 lwipopts.h 文件中
因此 修改 如下:
/* TCP Maximum segment size. */
#define TCP_MSS ( 300 - 40 ) /* TCP_MSS = (Ethernet MTU - IP header size - TCP header size) TCP最大报文段大小 */
编译结果:
修改之前是:
/* TCP Maximum segment size. */
#define TCP_MSS (1500- 40) /* TCP_MSS = (Ethernet MTU - IP header size - TCP header size) TCP最大报文段大小 */
编译结果:
62610 - 54960 = 7650 字节。。。。。
2、因为我使用 FreeRTOS 驱动 lwip,因此 lwip 的线程 栈大小,也是 可以减少内存的,即设定 TCPIP_THREAD_STACKSIZE ,在 lwipopts.h 文件中,这个线程栈的单位是按照 字 计算的哦,要注意!!!
修改如下:
#define TCPIP_THREAD_STACKSIZE 256
编译结果:
xPortGetFreeHeapSize:8384,调用函数:xPortGetFreeHeapSize() 即可。
修改之前:
#define TCPIP_THREAD_STACKSIZE 1024
编译结果:
xPortGetFreeHeapSize:5312,调用函数:xPortGetFreeHeapSize() 即可。
8384- 5312= 3072字节。。。。。 其实就是 1024*4-256*4=3072字节
不定时更新,2018年3月29日21:05:53,suozhang