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.

[参考译文] AM6421:工业通信 SDK

Guru**** 2487425 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1435657/am6421-industrial-communication-sdk

器件型号:AM6421

工具与软件:

尊敬的  Pourya:

      正如您先前就我们报告的问题所作的回复、何时会使用静态内存池而不是动态内存分配、通过 LWIP 发布工业通信 SDK。

   请更新详细信息。

谢谢。

T Narasimha Rao

上一篇回复2个月前...

尊敬的 Narasimha:

在下一版本中、LWIP 将使用静态内存池而不是动态内存分配。 我希望这可以解决您的问题。
除此之外、您能否给我们提供一些有关您设置的背景信息、什么是循环 I/O 时间? 电路板启动后是否很快出现问题?

此致
Pourya

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

    尊敬的 Narasimha:

    与动态内存分配相关的多个稳定性问题已在工业通信 SDK v 9.2.0.15中修复。 我建议您一探究竟。

    下载链接: https://www.ti.com/tool/download/INDUSTRIAL-COMMUNICATIONS-SDK - AM64X/09.02.00.15. 
    版本说明: https://software-dl.ti.com/processor-industrial-sw/esd/ind_comms_sdk/am64x/09_02_00_15/docs/am64x/ethernetip_adapter/eip_releasenotes.html 

    请注意、从示例访问 I2C0时、由于 I2C 驱动器不在线程安全、可能存在一些死锁情况。 作为一种权变措施、可以根据硬件使用基于 GPIO 的 LED。

    此致
    归档开发

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

    嗨 、Archit Dev、

                我们正在测试来自新工业通信 SDK 9.02.00.15的以太网 IP 适配器分立式 IO 示例。

          以太网/I 适配器 分立式 IO 应用程序在我们连续运行(随机超过2小时)时随机崩溃。

     我们在发生崩溃时观察到以下日志。

    [r5f0-0] 11594.314224s:ENIP_IPSTK_allocFrameBuf 返回 NULL、是否内存不足?
    [r5f0-0] 11603.314015s:ENIP_IPSTK_allocFrameBuf 返回 NULL、是否内存不足?
    [r5f0-0] 11612.313768s:ENIP_IPSTK_allocFrameBuf 返回 NULL、是否内存不足?
    [r5f0-0] 11612.319392s : pbuf_free: p->ref > 0ASSERT: 11612.319429s:/nightlybuilds/ind_comms_internal/jenkins/ind_comms
    [r5f0-0] 11612.319474s:_sdk_am64x_09_02_00_15/mcu_plus_sdk/source/networking/lwip-stack/pbuf_vide src
    [r5f0-0] 11612.319515s ::755:0 failed!!

    请告诉我们如何停止此操作。

     谢谢你。

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

    尊敬的 Narasimha:

    您能回答以下问题吗?

    1.你运行的测试是什么?
    2.测试拓扑是什么?
    3.应用程序代码中是否有运行时动态内存分配调用?

    此致
    归档开发

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

    嗨、Archit Dev、

      感谢您的答复。

      以下是请求的详细信息:

    1.你运行的测试是什么?

       我们将运行 EtherNet/IP 适配器分立式 IO 应用。 与 PLC 之间进行数据通信


    2.测试拓扑是什么?

       数据从 R5F1_0内核上运行的应用程序通过 IPC Notify 和共享存储器收集。

       从 R5F1_0收集的数据作为循环数据(隐式消息)发送到 PLC。

      如果 PLC 针对数据发出任何请求、则该请求会从 R5F1_0中获取、并作为非循环数据(显式消息)发送回 PLC。


    3.应用程序代码中是否有运行时动态内存分配调用?

        我们的应用中没有任何运行时动态内存分配调用。

    谢谢你。

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

    尊敬的 Narasimha:

    感谢您的参与。

    简单地确认、您是将1个 AM64x 器件与 PLC 连接并建立 IO 连接。 您的拓扑/网络中没有其他节点-我的理解是否正确?

    此外、您的案例中配置的周期时间是多少?

    此致
    归档开发

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

    嗨 、Archit Dev、

      是的、我们仅将1个 AM64x 器件与 PLC 连接并建立 IO 连接。

       周期时间在20ms 内。

    谢谢

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

    嗨 、Archit Dev、

            上述问题的任何更新。

    谢谢你

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

    尊敬的 Narasimha:

    我已经通知了我们的 EthernetIP 堆栈专家有关此查询。 他很快就会回到你身边。

    感谢您的耐心。

    此致
    归档开发

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

    尊敬的 Narasimha:

    根据您的描述、这意味着堆栈在 一个内核上运行( R5F0_0 ?)。 您正在尝试从另一个内核收集数据。
    我在此配置中看到的常见陷阱是、您可能会阻止回调从另一个内核获取数据、这反过来又剥夺了堆栈运行时间、最终将导致缓冲区溢出或崩溃。
    解决方案是 不直接在堆栈回调上使用阻塞调用。 您可以拥有一个缓存的值副本、供堆栈回调使用而不会发生阻塞。 (与堆栈在同一内核上运行的另一个任务负责从另一个内核获取数据、并具有可用的本地副本、以便回调使用这些副本)。

    此致
    Pourya