调试了几天的STM32F,基本功能正常,TCP SERVER也正常,原先的端口数量是4个,正常使用,今天需要增加大到16个,结果发现要么端口打开失败,要么ping不通。反反复复检查opts.h各个参数,进行裕量调整,还是不行。
#define PBUF_POOL_SIZE 64//->16
#define MEMP_NUM_PBUF 64//->16
#define MEMP_NUM_PBUF 64//->16
#define MEMP_NUM_TCP_PCB 64//->5
#define MEMP_NUM_TCP_PCB_LISTEN 16//->8
最后才发现是操作系统总内存不够,LWIP协议栈分配不到足够的内存导致的。
#define configTOTAL_HEAP_SIZE ((size_t)(32*1024))//((size_t)15360)
解决!
原文:https://blog.csdn.net/shjhuang/article/details/79714255