减少 lwip 消耗 的 RAM

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

 

转载于:https://www.cnblogs.com/suozhang/p/8672264.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值