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.
您好,
我们正在研究 MCU+ SDK 中的 Enet_lwip_cpsw_am243x-EVM-r5fs0-0_FreeRTOS_ti-arm-clang 示例,以确定 Lwip TCP/IP 堆栈的代码/数据大小。
查看.map 文件(附件),我们大致看到以下内容:
|
大小 |
|
文本 |
718 768 |
|
rodata |
141 632人 |
ROM:860 400 |
数据 |
50,176 |
|
BSS |
400,896 |
|
BSS:ENET_DMA_DESC_MEMOOL |
28 672 |
|
BSS:ENET_DMA_RING_MEMPOOL |
16,384 |
|
BSS:ENET_DMA_PKT_MEMOOL |
172 032人 |
|
.bss:ENET_DMA_OBJ_MEMOOL |
11 788人 |
|
.bss:ENET_DMA_PKT_INFO_MEMOOL |
0 |
|
BSS:ENET_ICSSG_OCMC_MEM |
0 |
RAM:679 948 |
e2e.ti.com/.../enet_5F00_lwip_5F00_cpsw.Debug.map
Q1)我们能否考虑表中的 ROM 和 RAM 大小是 Lwip 堆栈的占地面积? 它还可能包括代码和应用数据的大小。
问题2)我们可以减小.bss:ENET_DMA__*的大小吗? 它们的最小尺寸是多少?
总的来说,我们正在寻找机会来减少网络 TCP/IP 堆栈的代码/数据大小。 您是否对此进行了分析,并可能已经就哪些方面可以减少问题提出了建议?
谢谢!
——Gunter
您好,Gunter,
问题1:是的。Lwip 的足迹是代码(ROM)大小+数据(RAM)大小。
问题2:正在努力显著减少 Lwip 堆栈的占用空间(从1.4MB 到几百 KB)。
此致,
明
您好,Ming,
您能否仅共享当前版本的 Enet (ICSS)的足迹信息,而不共享 Lwip?
此致,
月米勒
大家好,Moonil,
它位于您附加的地图文件中。 它是~750KB (代码,ro 数据和 r/w 数据):
C:/ti/mc_plus_sdk_am243x_08_02_00_12/source/networking_Enet/lib/enet-lwip.am243x.r5f.ti-arm-clang.debug.lib
enet_app_memutils_cfg.obj 12 96 225152
Enet_SOC.OBJ 6000 48657 22908
cpsw_ale.obj 44728 1462 1.
Enet_mcm.obj 9380 2076 26817.
icssg.obj 3968 5037 29.
lwip2enet.obj 6552 572 24061
Enet_UDMA_priv.obj 14124 1228 11857
cpsw.obj 20988 4195 29.
icssg_utils.obj 20476 2232 345
CSL_cpsw.obj 21180 0 0
enet_r.obj 14432 2622 1.
Enet_UDMA.OBJ 14060 2670 1.
enetph.obj 12204 2063 614
cpsw_macport.obj 11984 1430 1.
enet_appmemutils.obj 4900 1633 5621
cpsw_CPTs.obj 8860 1773 1.
Enet_apputils.obj 1404 8487 1.
Enet.obj 6740 1612 1.
CSL_cpsw_ale_9G_tblcfg.obj 7552 0
CSL_cpsw_ale_4g_tblcfg.obj 7348 0
Enet_udmautils.obj 3692 715 2541
lwip2lwipif.obj 1652 325 4097
dp83869.obj 4156 1283 40.
dp83867.obj 4140 1283 40.
Enet_osal_dflt.obj 1956 233 2960-
Enet_phymdio_dflt.obj 39728424
cpsw_stats.obj 4004 830 1.
cpsw_hostport.obj 3960 659 1.
MDIO.OBJ 3788 686 1.
icssg_timesync.obj 3116 978 1.
Enet_osal.obj 2852 1061
CSL_CPT.OBJ 3496 0 0
lwipifcb.obj 2560 593 97
vsc8514.obj 2140 626 41.
enet_queue.obj 1796 519 1.
enet_board_cfg.obj 1416 853 1.
enet_utils.obj 1428 266 217.
Enet_apputils_K3.obj 1480 369 1.
enet_hostport.obj 1372 319 1.
enet_ioctlutils.obj 1124 487 1.
icssg_stats.obj 1248 53 272.
dp83822.obj 1084 414 40.
K3_SOC.OBJ 1216 237 0
CSL_cpgmac_SL.obj 1448 0 0
pbufq.obj 892144 396
CSL_MDIO.OBJ 1352 0 0
generic_phy.obj 828 165 40.
CSL_cpsw_ss.obj 600 0
enet_apprmcfg.obj 248 272 72
Enet_appoc.obj 328 209 1.
enet_app_cpsw_cfg.obj 496 31 4.
default_netif.obj 104 0 144
enet_utils_dflt.obj 228 3 0
enet_trace.obj 88 0 1.
------------------ 正负--- 正负--- 正负--- +
总计:328252 102299 328537
此致,
明
您好,Ming,
感谢您的及时响应。提出这一问题的原因是我们还在考虑使用铯网络(TCP/IP)堆栈的另一种以太网/IP 解决方案。 因此,首先,我们需要知道如何将铯网移植到我们的产品(使用 AM2432)。 据我了解,TCP/IP 堆栈必须在以太网/IP 的 Enet 驱动程序 ICSS 之上运行,而不是在 CPSW 上运行。 正确吗?
如果需要新的 TCP/IP 堆栈移植到 Enet 驱动程序,请共享移植指南和任何参考?
此致
月米勒
大家好,Moonil,
TCP/IP 堆栈移植指南和参考 是另一个主题。 您能否关闭此线程并启动另一条线程,以便我们找到合适的专家来帮助您。 谢谢!
明
您好,Ming,
是的,我创建了另一个用于移植的线程。
我问 的是 Enet 驱动程序 ICSS 的大小。 我们是否可以考虑尺寸~750K 同时包括 ICSS 和 CPSW?
此致
月米勒
大家好,Moonil,
是的。 你是对的。 750KB 包括 ICSS 和 CPSW。
要了解与 CPSW 相关的内容,可以减少 cpsw_*和 CSL_cpsw_*的占用空间
cpsw_ale.obj 44728 1462 1.
cpsw.obj 20988 4195 29.
cpsw_macport.obj 11984 1430 1.
cpsw_CPTs.obj 8860 1773 1.
CSL_cpsw_ale_9G_tblcfg.obj 7552 0
CSL_cpsw_ale_4g_tblcfg.obj 7348 0
cpsw_stats.obj 4004 830 1.
CSL_cpsw_ss.obj 600 0
enet_app_cpsw_cfg.obj 496 31 4.
它是~100KB。 ICSS 的 ENET 总大小约为650KB。 请注意,地图文件是调试版本,因此对于发行版本,代码大小可能会减小更多。
此致,
明
你(们)好,明
[引用 userid="15702" url="~/support/iclers/arm-based iclers-group/arm-based icles/arm-milers-forum-forum/1083645/MCU-plus-sdk-am243x-lwip-stack-code-data-size/4010904#4010904]Q2:我们正在大幅减少1,4MB 的占地面积[仅为1.4kb]。您能否告诉我们大致的目标大小以及堆栈的发布日期?
如果您或您的团队分享预计规模和时间表,这将对我们的决策非常有帮助。
此致,
月米勒
大家好,Moonil,
我不知道确切的 KB 数字,因为它仍在进行中。
此致,
明
大家好,Moonil,
请从我们的 SW 团队了解有关内存优化计划的详细信息。
1.当前占地面积-
2.优化计划(暂定)。 我们的目标是在优化练习结束前达到200KB (也在下面添加)。
目标摘要 ICSSG (不包括数据包缓冲区)
目标摘要 CPSW
我们将在几天后发布的 SDK8.2将进行一些优化。
您好,普拉萨德,
感谢您分享详细信息。 我必须知道使用 TCP/IP 所需的总目标大小。 因此,让我再次要求澄清这些数字。
[引用 userid="121564" url="~/support/icls/arm-based 微处理器组/基于 ARM 的微控制器/f/arm-based 微控制器-forum/1083645/MCU-plus-sdk-am243x-lwip-stack-code-data-size/4014425#4014425"]我们的目标是在200kb/引用中获得优化[Q1)我可以在第一个表中看到1.4M,其中包括 Enet LLD,Free RTOS,Other Driver 和 Lwip。 您能否再次阐明哪一个模块将优化为200K? 您的意思是,Lwip(4442KB)将为200KB?
[引用 userid="121564" url="~/support/icls/arm-based 微处理器组/基于 ARM 的微处理器/f/arm-based 微处理器- forume/1083645/MCU-plus-SDK-am243x-lwip-stack-code-data-size/4014425#4014425"]目标摘要 ICSSG/packet 缓冲区[不包括数据包]问题2)您是否也可以共享估计的数据包缓冲区大小?
供参考,当我在 SDK 中检查示例代码时,我发现 ICSS 切换模式仅支持一个 Enet Mac 端口。 但是,根据 SDK 文档,它应该支持2个端口(ENET_MAC_Port1,ENET_MAC_port2)。 它还不支持两个端口吗? 如果您需要了解更多详细信息,请告诉我。 我会在这个问题上制造另一条线程。
此致,
月米勒
大家好,Moonil,
我的回答如下-
[引用 userid="506396 " url="~ë/support/icls/arm-based 微处理器组/基于 ARM 的微处理器/f/arm-based 微处理器- forume/1083645/MCU-plus-SDK-am243x-lwip-stack-code-data-size/4014474#4014474"]Q1)我可以在第一个表中看到1.4M,其中包括 Enet LLD,Free RTOS,Other Driver 和 Lwip。 您能否再次阐明哪一个模块将优化为200K? 您的意思是,Lwip(4442KB)将为200KB?
[/引用]
是的,计划是优化驱动程序和 lwip 配置以达到200KB。 我们正在发布更详细的优化计划,该计划应该有更详细的细节。 我们将在本月末发布计划。
[引用 userid="506396 " url="~ë/support/icls/arm-based 微处理器组/基于 ARM 的微处理器/f/arm-based 微处理器- forume/1083645/MCU-plus-SDK-am243x-lwip-stack-code-data-size/4014474#4014474"]供参考,当我在 SDK 中检查示例代码时,我发现 ICSS 切换模式仅支持一个 Enet Mac 端口。 但是,根据 SDK 文档,它应该支持2个端口(ENET_MAC_Port1,ENET_MAC_port2)。 它还不支持两个端口吗? 如果您需要了解更多详细信息,请告诉我。 我会在这个问题上制造另一条线程。
[/引用]您是否会在应用程序中使用 CPSW 或 ICSSG? ICSSG 的交换机模式示例确实支持两个端口(链接到下面的文档)。 请您告诉我您只能看到一个端口的例子吗?
AM243x MCU+ SDK:Enet VLAN ICSSG 示例(TI.com)
此致,
普拉萨德
您好,普拉萨德,
感谢您的及时响应。
[引用 userid="121564" url="~/support/icls/arm-based 微处理器组/基于 ARM 的微控制器/f/arm-based 微控制器-forum/1083645/MCU-plus-sdk-am243x-lwip-stack-code-data-size/4014482#4014482"]是,计划优化驱动程序并获取 lwip-config[引用200kb]。这意味着驱动程序(200KB)+ Lwip(442KB)将优化为200KB。 因此,大约642KB 将减少到200KB。 正确吗?
[引用 userid="121564" url="~/support/icls/arm-based 微处理器组/基于 ARM 的微控制器/f/arm-based 微控制器-forume/1083645/MCU-plus-sdk-am243x-lwip-stack-code-data-size/4014482#4014482"],您可以在哪里找到我的示例/单端口?]示例为“Examples\networking\lwip\Enet_lwip_icssg\am243x-EVM”。 在本例中,EMAC 模式默认为“双 MAC”。
我尝试在示例代码中将其更改为“切换模式”,如下所示。 供参考,当我在 syscfg 中更改 EMAC 模式以切换时,它没有更改我的 comp2010中生成的任何代码。
void EnetApp_getEnetInstInfo(Enet_Type *enetType, uint32_t *instId, Enet_MacPort macPortList[], uint8_t *numMacPorts) { *enetType = ENET_ICSSG_SWITCH; *instId = 1; *numMacPorts = 2; macPortList[0] = ENET_MAC_PORT_1; macPortList[1] = ENET_MAC_PORT_2; }
请参阅下面的代码,此处显示“已发生断言”。 SDK 中的“sources\networking\enet\core\lwipif\src\v1\lwipifcb.c”。
使用 EMAC 模式=交换机的 Enet_lwip_icssg,您是否可以在结束时复制此内容?
此致,
月米勒
这意味着驱动程序(200KB)+ Lwip(442KB)将优化为200KB。 因此,大约642KB 将减少到200KB。 正确吗?
[/引用]
是的,这就是计划。
关于你
[引用 userid="506396 " url="~ë/support/icls/arm-based 微处理器组/基于 ARM 的微处理器/f/arm-based 微处理器- forume/1083645/MCU-plus-SDK-am243x-lwip-stack-code-data-size/4014531#4014531"]我尝试在示例代码中将其更改为“切换模式”,如下所示。 供参考,当我在 syscfg 中更改 EMAC 模式以切换时,它没有更改我的 comp2010中生成的任何代码。
[/引用]请将此内容发布为新线程吗? 我会将其分配给 ICSSG 专家,以便他可以帮助配置交换机模式。
此致,
普拉萨德
你好,Pradad
我在 “交换机模式 ”主题和支持的端口数量上创建了另一个线程。
此致,
月米勒
谢谢,Moonil!
我将关闭此线程,因为有关内存占用空间的查询已得到解答。
您好,普拉萨德,
我通过您团队的电子邮件(通过 Gunter)获得了“HSR_prp_demo”的地图文件。它的大小似乎仍然很大,如下所示:
ICSS_PKT_BUF_MEM |
00010000 |
65,536人 |
64KB 缓冲区 |
BSS |
000585c0 |
361,920 |
230k = 360K–130K (任务堆栈) |
数据 |
00000c10. |
3 088 |
|
文本 |
00033600 |
210 432人 |
|
rodata |
00011500 |
70,912 |
|
此外,我们还拥有08.02.00.12中的示例生成的地图文件。 我想这是您喜欢的另一个最新版本的示例 08.02.00.28。
您能澄清这种规模吗? 这种最终占用空间是否适用于您的内存优化?
您能否告诉我要下载的 SDK 08.02.00.28的 Web URL?
此外,如果内存优化不是最终的,请分享您的内存优化计划。
此致,
月米勒
大家好,Moonil,
当与 Enet LwIP 内存占用空间相关的查询得到应答时,我将结束此线程。
是否可以为 HSR/PRP 内存大小创建新线程? 我将把它分配给我们的工业协议专家。
此致,
普拉萨德
您好,普拉萨德,
感谢您的支持。 此线程可以闭合。
我在 下面的链接中为“Lwip 和 ICSS_EMAC 驱动程序的内存占用空间”创建了一个新线程。
此致,
月米勒