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.

[参考译文] TMS320F28386S:lwIP UDP 内存链接?

Guru**** 2782575 points

Other Parts Discussed in Thread: C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1237928/tms320f28386s-lwip-udp-memory-link

器件型号:TMS320F28386S
主题中讨论的其他器件:C2000WARE

您好!

使用基于 C2000Ware V 4.01.00示例代码的简单 UDP 通信。

我下班大约20分钟后

f2838xif.c 的第323行代码中断

pktDescOrigPtr = mem_malloc (sizeof (Ethernet_Pkt_Desc));
MEM_ALLOC_COUNT++;
if (pktDescOrigPtr == NULL)
{
pbuf_free (p);
Link_stats_INC (link.memerr);
__ asm (" bkpt #0");
返回(ERR_MEM);

我已经看到内存泄漏有一些不连续性。 但在该文件上的不同位置。

我将该文件与最新 C2000ware 版本4.03.00上的文件进行了比较。

这些文件是相同的。 缝隙如未更新修复。

请提供帮助。
我有器件在客户现场卡住。

谢谢!

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

    您好!

    请参阅此主题  

    https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1074652/tms320f28388d-lwip-webserver-example-memory-errors-due-to-ethernet-descriptors-queue-management/4030084?tisearch=e2e-sitesearch&keymatch=lwip#4030084

    请尝试上面的主题中提到的修复、看看它是否有帮助。

    此致

    西达尔特

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

    您好!

    谢谢重播。
    建议对该主题进行一些更改。
    您是否愿意向我指出我应该进行哪些具体更改?

    谢谢!

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

    您好!  

    您是否尝试增加内存? 您还可以检查 lwip_stats 以查看存储器是否已满。

    此致

    西达尔特

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

    我肯定会看到内存泄漏。

    我添加了 numDesc、作为 JK 在他的文件中的用法。

    每次 numDesc 达到46时、代码将在以下位置中断:

    if (pktDescOrigPtr == NULL)
    {
    pbuf_free (p);
    Link_stats_INC (link.memerr);
    __ asm (" bkpt #0");
    返回(ERR_MEM);


    numDesc++;

    321路。

    与 JK 不同、我不使用 Web 服务器。 仅发送和接收 UDP 消息。

    因此,他的错误和修复与我看到的内存泄漏无关。
    此外,在他的帖子,在停止得到错误后,他说,他也看到内存泄漏。

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

    您好!

      在很少的传输之后、您能否继续查看 lwip_stats 值(lwip_stats.mem.used)?  需要检查使用的存储器是否在继续增加还是在成功传输后减小。  

    此致

    西达哈

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

    请参见随附的视频。

    lwip_stats.mem.used 的服务持续增长。

    另请参见"mem_alloc_count"和"mem_free_count"。

    显然、分配然后释放了更多的内存。

    e2e.ti.com/.../lwip_5F00_stats.mem.used.wmv

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

    您可以在此处下载视频:

    https://we.tl/t-7HV7HQzZjQ

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

    您好!  

    我无法访问视频、因为视频被阻止。  

    我将尝试通过运行 UDP 示例重现此问题、然后与您联系。  

    此致

    西达尔特

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

    您好、您是否成功重现了该问题?

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

    您好!  

    会在几天后回来。  

    此致

    西达尔特

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

    您好!

    我可以使用示例代码并对 enet_lwip_udp.c 稍作修改来确认问题:

    在函数 main ()的第870行附近,我添加了一个简单的 for 循环来发送 UDP 消息生成的样本模式100次:

    ...
    
    int j = 0;
    
    ...
    
    //UDP TX block
    
    //if (flag_TX_frame_UDP)
    for (j = 0; flag_TX_frame_UDP && j < 100; j++)
    {
        cnt_FFT++;
        
        ...


    ...并 从 UDP 客户端发出"开始"消息。

     运行~10-15分钟后、触发上述 f2838xif.c 中的同样断点。
    当断点触发时、diff 的值= mem_alloc_count - mem_free_count 接近40。

    希望这有助于 您的调查。

    此致、

    弗兰克

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

    Frank:  

    感谢代码、将使用它来重现问题。  

    目前还没有完成其他任务、因此将在下周前与您联系。

    此致

    西达尔特

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

    尊敬的 Siddharth:

    触摸基座以检查您最终是否成功重现问题。

    此致、

    弗兰克

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

    Frank:  

    很抱歉、但无法查看此问题。  我们计划在本周发布一个 c2000Ware、因此我们对此保持关注。  

    我们将在下周同一时间再见。

    此致

    西达尔特

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

    尊敬的 Siddharth:

    我能否认为计划的 c2000Ware 版本运行良好、并且您有时间最终调查此问题? 你的结论是什么?

    此致、

    弗兰克

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

    Frank:  

    很抱歉有关此问题的响应延迟。  今天、我终于花时间深入探究了它。  

    我使用 前面提到的 Simple for 循环尝试了代码、并 在代码运行大约25分钟后重现了问题(点击 f2838xif.c 文件中的存储器错误断点)。  

    将在本周内开始调试此问题、并让您随时了解我的调查结果。

    此致

    西达尔特  

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

    您好、有没有任何运气/取得任何进展?

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

    您好!

    尚未找到此问题的解决方法。

    会让你保持关注

    此致

    西达尔特