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-plus-SDK-AM243X:Lwip 栈代码/数据大小

Guru**** 2380860 points
Other Parts Discussed in Thread: AM2432
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

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

部件号:MCU-plus-SDK-AM243X
“线程”中讨论的其它部件:DP83869AM2432

您好,

我们正在研究 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 (不包括数据包缓冲区)

    • 100M + MAC 配置文件:~200 KB
    • 100M + MAC +交换机配置文件:~240 KB
    • 交换机+千兆位配置文件:~336 KB
    • TSN 配置文件:待定

    目标摘要 CPSW

    • 100M + MAC 配置文件:~158 KB
    • 交换机+千兆位配置文件:~ 158 KB
    • TSN 配置文件:待定

    我们将在几天后发布的 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中生成的任何代码。

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    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;
    }
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    请参阅下面的代码,此处显示“已发生断言”。 SDK 中的“sources\networking\enet\core\lwipif\src\v1\lwipifcb.c”。

    使用  EMAC 模式=交换机的 Enet_lwip_icssg,您是否可以在结束时复制此内容?

    此致,

    月米勒

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="506396 " url="~ë/support/icls/arm-based 微处理器组/基于 ARM 的微处理器/f/arm-based 微处理器- forume/1083645/MCU-plus-SDK-am243x-lwip-stack-code-data-size/4014531#4014531"]

    这意味着驱动程序(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

    我在 “交换机模式 ”主题和支持的端口数量上创建了另一个线程。

    https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1084908/am2432-emac-mode-swtich-is-not-working-in-sdk-the-example

    此致,

    月米勒

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢,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 驱动程序的内存占用空间”创建了一个新线程。  

    https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1088424/am2432-memory-footprint-of-lwip-and-icss_emac-driver

    此致,

    月米勒