调试了几天的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)
解决!
本文记录了作者在STM32F上将TCP端口从4个扩展到16个的过程中遇到的问题及解决方案。主要问题是由于内存不足导致端口无法正常工作,通过调整LWIP协议栈和操作系统内存配置最终解决了问题。
890

被折叠的 条评论
为什么被折叠?



