从编译出的 map 文件看到 memp_memory_POOL_1792_base 占用了约600KB,memp_memory_PBUF_POOL_base 占用了约312KB。
对 lwip 的内存管理不熟,正在了解中。想问下这两块内存都是必要的吗?希望 lwip 内存占用不要超过 200 KB,当前计划使用的场景就是建立一个tcp client,用来向外传输点云数据;建立一个tcp server,用来接收外界的简单控制命令。
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
从编译出的 map 文件看到 memp_memory_POOL_1792_base 占用了约600KB,memp_memory_PBUF_POOL_base 占用了约312KB。
对 lwip 的内存管理不熟,正在了解中。想问下这两块内存都是必要的吗?希望 lwip 内存占用不要超过 200 KB,当前计划使用的场景就是建立一个tcp client,用来向外传输点云数据;建立一个tcp server,用来接收外界的简单控制命令。
你好,
有计划在优化网络驱动的大小,但可能要3Q末才能提供。
如果你现在就需要做优化,英文论坛上也有一些相关讨论,提到可以在网上搜索一些优化的建议。
简单了解了lwip的内存分配策略,主要有2中,内存池和内存堆。现在sdk里默认是用内存池 MEM_USE_POOLS 的方式进行分配。使用这个方式优点是分配释放快,没有内存碎片,内存容易浪费,用空间换时间。而且内存需要自己深入理解底层的运行和业务才能确认分多大。
1、现在想用内存堆的方式来分配,但 r5f_linker_enet.cmd里相关内存不知道怎么处理,有相应指导吗?
2、memp_memory_POOL_1792_base 占用了约600KB,memp_memory_PBUF_POOL_base 占用了约312KB。这两个例程中分配这么大的原因可以描述下吗?看看是否能直接减小这两块内存分配?
你好,
demo应该使用了两个cmd文件,你可以看一下编译demo后mss 的map文件,了解现有的内存使用情况。