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.

[参考译文] AM2434:INDUSTRIAL-COMMUNICATIONS-SDK AM243X-AM243X v11.x、EthertNet/IP、栈大小不足

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1570506/am2434-industrial-communications-sdk-am243x-v11-x-ethertnet-ip-unsufficient-stack-size

器件型号:AM2434


工具/软件:

您好:

我看到预编译的 EtherNet/IP 工业 SDK 中、特别是名为“packet"的“的 FreeRTOS 任务中出现堆栈溢出。 如果 EtherNet/IP 已预编译、如何放大“数据包“任务栈?
应用:INDUSTRIAL-COMMUNICATIONS-SDK AM243X-v11.x(11.00.00.08 和 11.00.00.13 中的问题相同)。
已附加屏幕截图。

此致、
维特

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

    尊敬的 Vit:

    通常、EtherNet/IP 协议栈使用的内部任务的任务大小 当前无法在应用程序侧进行配置。 我会通知您、这是否将在下一个版本中作为一项功能添加。

    出于好奇心、您是否制定了许多明确的信息? 默认大小实际上对于大多数用例来说已经足够了、因此我想了解您的具体要求。

    此致、
    Pourya
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    出于好奇、您是否建立了许多明确的消息? 默认大小实际上足以满足大多数用例、因此我有兴趣了解您的具体要求。

    如何控制/设置/限制它们?

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

    EtherNet/IP 在后台创建哪些任务?
    只是这 4 -“LinkTask",“,"RxTask"、"RxTask",“,"phymdix“"phymdix task"、 task"和“和"packet"“"packet"(“(我“我的(我的问题)?
    多大尺寸(每一个)?

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

    尊敬的 Vit:

    您不应该限制沟通、我的问题是为了了解问题发生的背景。
    简而言之、当您的设备上正在进行大量的 UDP 和 TCP 通信时、“数据包“任务的堆栈使用量可能会变高。
    您是否在任务中更改了优先级(在 app.c 中)?

    此致、
    Pourya

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

    事实上、EtherNet/IP 通信优先级几乎是所有任务中最高的。 但它是您的 EthertNet/IP 示例的默认设置。

    如果 UART 驱动程序根据请求固定到本地临时数组(因为 DRV_UART_printf (***) 需要可重入!)、则在 EtherNet/IP 通信(与 PLC)运行时会出现堆栈溢出。

    随附屏幕截图、以查看所有优先级和问题。

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

    请尽快修复这两个错误(立即修复)、因为“数据包“任务堆栈溢出错误确实阻止了我完成项目 (2 天后到期、2025年30月09日)。 这不是一个复杂的错误(而且完全解释),所以我认为你不需要超过 0.5 天来解决它。

    请随时向我通报进展情况。
    提前感谢您。

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

    你好、Vit、

    很遗憾、您需要等待下一个版本来解决此问题。 如果您需要加急或定制堆栈支持、我建议联系您当地的 TI 销售办事处以讨论潜在的解决方案。

    同时、您可以通过优化应用程序来减少“数据包“任务堆栈内存消耗、从而解决此问题。 考虑实施这些修改:
    1. 检查为对象注册的所有回调并消除其中的大型数组或大型结构。

    2. 查看添加到对象中的服务、并同样避免在这些服务中加入大型数组或结构。

    这些优化由您控制、如果进行适当的调整、您应该能够防止“数据包“任务中出现堆栈溢出问题。

    此致、
    Pourya

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

    发布周期有多长时间? (一周,一个月,一年...?)
    计划在何时发布下一个版本?

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

    尊敬的 Vit:

    我无法提供 确切的日期、但下一个版本应在 11 月提供。

    此致、
    Pourya

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

    您好、请注意、此问题的状态是什么(EthertNet/IP 的 Industrial Communication SDK 11.00.00.xx 中的“数据包“任务中的栈大小不足)?

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

    你好、Vit、

    可配置的内部任务栈大小是计划在未来版本中使用的一项功能。 但是、由于优先级的变化、此更改可能不会包含在下一版本中。

    此致、
    Pourya

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

    在下一个版本中、任务堆栈大小是否至少会放大(大约+512 字节)(尽管尚未配置)?

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

    你好、Vit、

    在即将发布的版本中、我们不会增加“数据包“任务的任务堆栈大小、因为此调整是针对您的特定用例定制的、否则会导致内存消耗增加、从而减少应用和最终用户的可用内存。  

     更好的解决方案是可配置的任务栈大小 、这不太可能成为 下一个版本的一部分。

    此致、
    Pourya