TI中文支持网
TI专业的中文技术问题搜集分享网站

AM2732: mmwave_mcuplus_sdk_04_02_00_03 enet例程中 lwip 占用 DSS_L3 内存过多,能否有好的办法进行裁剪。

Part Number:AM2732

从编译出的 map 文件看到 memp_memory_POOL_1792_base 占用了约600KB,memp_memory_PBUF_POOL_base 占用了约312KB。

对 lwip 的内存管理不熟,正在了解中。想问下这两块内存都是必要的吗?希望 lwip 内存占用不要超过 200 KB,当前计划使用的场景就是建立一个tcp client,用来向外传输点云数据;建立一个tcp server,用来接收外界的简单控制命令。

Chris Meng:

你好,

有计划在优化网络驱动的大小,但可能要3Q末才能提供。

如果你现在就需要做优化,英文论坛上也有一些相关讨论,提到可以在网上搜索一些优化的建议。

(1) AM2432: Memory footprint of Lwip and ICSS_EMAC driver – Arm-based microcontrollers forum – Arm-based microcontrollers – TI E2E support forums

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1083645/mcu-plus-sdk-am243x-lwip-stack-code-data-size/4029933 

,

qing zhang:

简单了解了lwip的内存分配策略,主要有2中,内存池和内存堆。现在sdk里默认是用内存池 MEM_USE_POOLS 的方式进行分配。使用这个方式优点是分配释放快,没有内存碎片,内存容易浪费,用空间换时间。而且内存需要自己深入理解底层的运行和业务才能确认分多大。

1、现在想用内存堆的方式来分配,但 r5f_linker_enet.cmd里相关内存不知道怎么处理,有相应指导吗?

2、memp_memory_POOL_1792_base 占用了约600KB,memp_memory_PBUF_POOL_base 占用了约312KB。这两个例程中分配这么大的原因可以描述下吗?看看是否能直接减小这两块内存分配?

,

Chris Meng:

你好,

demo应该使用了两个cmd文件,你可以看一下编译demo后mss 的map文件,了解现有的内存使用情况。

,

Chris Meng:

你好,

优化IWIP驱动的信息更新,见下:

MCU-PLUS-SDK-AM273X: LWIP driver and stack size – Arm-based microcontrollers forum – Arm-based microcontrollers – TI E2E support forums

赞(0)
未经允许不得转载:TI中文支持网 » AM2732: mmwave_mcuplus_sdk_04_02_00_03 enet例程中 lwip 占用 DSS_L3 内存过多,能否有好的办法进行裁剪。
分享到: 更多 (0)