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.

[参考译文] TMS320F28388D:lwip:在 Cortex M4 上使用 enet_lwip_udp 示例进行连续 UDP TX?

Guru**** 2551110 points
Other Parts Discussed in Thread: C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1538888/tms320f28388d-lwip-using-enet_lwip_udp-example-on-cortex-m4-for-a-continuous-udp-tx

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

工具/软件:

团队、
您能帮助我们的客户开始使用 enet_lwip_udp 工程吗?
https://dev.ti.com/tirex/explore/node?node=A__AAtNQdzsfeH5jTx73vsiWA__C2000WARE__1kRFgrO__LATEST

客户将很快发布使用 enet_lwip_udp 进行测试的结果和使用的设置(CCS、编译器、SDK/C200Ware 版本、F28388D 评估卡版本等)

提前感谢、

Anber

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

    您好、

    我的主要目标是以~100Hz 的频率使用 lwip 栈发送 UDP 消息(消息大小将小于 128 字节)。 为此、 我使用 Texas Instruments 的 F28388D。

    我将 Matlab/Simulink 代码生成工具与 C2000 库配合使用。 生成的代码  写到 f28388D 中集成的 ARM Cortex M4 中。
    我观察到 lwip 堆栈在 20 分钟后崩溃。 我认为存在存储器问题。

    所以、我已经向 AnBer 发送了一条消息、解释我的问题。 他告诉我、我应该尝试使用 enet_lwip_udp 仅测试 lwip 栈。

    我尝试了,有我的结果:

    我的小改动:

    -我在 sysctl_delay 函数中的延迟更改为 60000(~0.01 秒),重新编译项目并刷写它。
    -我正在用 windows PC ping f28388D

    大约 20 分钟后、 f28388D  会停止发送 UDP 消息。
    但是、f28388D 继续回答 PING 测试。

    我怀疑 pbuf_alloc 返回 NULL 指针、但我不知道内存泄漏的位置。
    此外、我不喜欢在代码中使用 malloc。 是否可以在不分配内存的情况下使用 lwip 栈?  
    我有确定性以太网总线 负载是已知的。

    此致、

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

    尊敬的 Medhi:
    如上所述、您是否可以与同事内部核实、因为他们可能找到了解决方法?

    src 代码是从 Matlab/Simulink 自动生成的、因此它可能不是我们已验证可使用 lwip 栈的应用代码。

    如果您仍然遇到问题、请尝试使用第一篇文章中提到的 TI 代码示例作为起点、并进行修改以重现问题。
    这种方式应该能够调查我们一方的问题。

    此致、

    Anthony

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

    尊敬的 

     您可以通过 F2828x 的 C2000Ware 中共享的 OOB 示例观察到什么? 您看到该应用程序的相似不稳定性吗?

    此致、

    Pradeep

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

    你好 Pradeep HN ,

    我正在等待同事帮助我解决此问题、但我也设法测试了 OOB 示例。 以下是我的结果:  

    30 分钟后、f2838x 缺少内存(堆)。 因此、所有 malloc 返回 NULL。
    因此、我的 f2838x 没有其他 UDP 发送。


    我想摆脱 mallocs。 是否有不使用 mallocs 的 lwip 栈的实现?  
    重要的是我们的程序 永远不会 崩溃。 我们真的想要一种确定的行为。
    正如我在上一封电子邮件中所说、以太网总线的负载非常低(有效载荷大小将小于 128 字节、并以~100Hz 的频率发送)。

    此致、

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

    尊敬的
    我们已经修改了这些错误并删除了缓冲区和描述符分配的错误。 我们已观察到内存泄漏、并能够重新出现您所见过的相同问题。 我们已修复该问题、该修复程序应该会在下一个 C2000Ware SDK 版本(6.00.00.00 版、ETA 30-2025 年 7 月 30 日)中提供。

    此致、
    Pradeep

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

    您好 Pradeep、
    感谢您的反馈!

    您能否向我提供与这些 Lwip 增强功能相关的(内部)Jira 编号?

    提前感谢、

    Anthony

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

    这里是:C2000DRIVERS-3272。 作为此票证的一部分、我们还清理了 No-RTOS 示例。

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

    你好 Pradeep HN ,

    非常感谢您的支持。
    我知道、您将于 7 月 30 日发布的 lwip 栈的新实现中没有动态分配。
    我的理解正确吗?

    此致、

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

    您好、

    结果发现、用于创建数据包描述符的内存分配导致了该问题。

      在最新版本的 SDK 中、删除了创建数据包描述符时的每个动态分配、并将其替换为静态分配(基于队列)实现。