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.

[参考译文] AM2432:Profinet LWIP 和 TFTP

Guru**** 2526700 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/1509909/am2432-profinet-lwip-and-tftp

器件型号:AM2432


工具/软件:

您好、

我将 AM2432 与工业 SDK 09.02.00.24 中的 Profinet 配合使用。

我正在移植在 AM2432 工程上实现的代码、该工程在使用 Profinet 的 AM2432 上使用 EthernetIP、
代码会使用 mcu_plus_sdk/source/networking/lwip/lwip-stack/sdk/apps/tftp/tftp.c.内的 src 源文件创建一个 TFTP 服务器
在使用 EthernetIP 的项目上、一切正常工作、而在使用 Profinet 的项目上、我根本没有任何响应。
我注意到、 在 sdk 源代码 tftp.c 中调用函数 tftp_init_common 时、在 EthernetIP 工程  中、我可以跟随 UDP 函数(例如 udp_new_ip_type、udp_bind、...)的执行 src src、  

在任何情况下、在 Profinet 项目上、当我运行相同的功能和相同的代码时、仍然没有收到错误消息、但当我发送 TFTP 请求时、模块没有响应。

Profinet 和 EthernetIP 是否使用相同的 LWIP 源代码? 我可以做些什么来更好地理解我的问题?

谢谢您、

此致、

Andrea

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

    您好、Andrea、

    感谢您的查询。

    是的、Profinet 和 EthernetIP 使用相同的 LWIP 源代码、但 它们都根据其特定的要求和配置构建自己的 LWIP 库。

    不过、您应该能够从 Profinet 工程调试 LWIP 的源代码。

    -你能尝试在一些基本的 LWIP 函数(例如 Ethernet_input )上设置一个断点,看看调试器是否停止在那里并显示源代码吗? 您可能需要找到 CCS 的源文件、才能找到它。

    -你能分享你的示例代码中发生问题的部分吗? 我也可以尝试在我这边进行调试。

    此致、
    Kamil  

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

    尊敬的 Kamil:

    感谢您的答复。
    我尝试在函数 TCPIP_init 上设置一个断点、实际上执行就会在这里停止。 但要设置它、我必须使用 Disassembly 工具查找函数在存储器中的位置、并在我找到的存储器地址设置断点。 这样我看不到源代码。 然后我看到此函数是在 mcu_plus_sdk/source/networking/lwip/lwip-stack/cc/api/tcpip.c 中实现的、我在 src 中移动了它并尝试在函数上设置一个断点、但 CCS 告知在实现函数的行没有关联代码。 我有什么问题吗?

    我附加了源代码(我删除了应用程序的一些特定部分,但有受影响的部分):

    e2e.ti.com/.../TFTPServer.c

    e2e.ti.com/.../profinet_5F00_ICSS_2D00_EMAC.projectspec.txt

    主任务调用 TFTPServer_run、显然它可以正常运行、我希望在发出 TFTP 请求(我使用 tftpd64)后、调用 TFTPServer_file_openClbk 和 TFTPServer_file_writeClbk、就像在 EthernetIP 项目中一样、但这不会发生。

    如果需要更多详细信息、请告诉我。

    谢谢您、

    此致、

    Andrea

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

    您好、

    我怀疑我看不到 LWIP 源代码、因为默认情况下、它们是在 Profinet 的发布模式下编译的(即使我使用 gmake -s libs profile=debug 来编译 SDK)。 实际上、在 EthernetIP 工程中、库在释放和调试模式下编译、而在其 projectspec 中指定了调试。

    是否有办法也可以在 Profinet 的调试模式下编译 LWIP 库?

    谢谢您、

    此致、

    Andrea

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

    您好、有任何更新吗?

    谢谢您、

    此致、

    Andrea

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

    您好、Andrea、

    很抱歉耽误你的时间... 我们有一些高优先级任务要处理... 我将对此进行深入研究、并明天提供反馈。

    谢谢。
    此致、
    Kamil

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

    您好、Andrea、

    我查看了此问题、它似乎与您使用的 SDK 有关... 您是否可以升级到最新的 SDK? 在您的查询方面已经做了一些改进、您应该能够毫无问题地构建和调试 LWIP 代码。

    谢谢。
    此致、
    Kamil

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

    尊敬的 Kamil:

    感谢您的答复。

    现在、通过切换到新版本的 Industrial SDK 11、我可以正确调试 LWIP 部分、我将在下周更新您的更多问题。

    谢谢您、

    此致、

    Andrea

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

    尊敬的 Kamil:

    我使用新 SDK 进行了测试、但使用 Profinet 进行 TFTP 请求后没有响应的问题仍然存在(尽管我现在可以使用 LWIP 源代码执行这些操作)。

    在我的 Profinet 项目中,我在 ethernet_input () 上添加了一个断点,当我发出 TFTP 请求时,两条消息都是 ARP 类型的消息 ,由函数 etharp_input () 处理,然后再也没有了。  

    我使用我的 EthernetIP 进行了相同的测试、实际上这里有一个断点、我可以在收到 TFTP 数据包时看到:

    我将 Wireshark 跟踪与 Profinet 和 EthernetIP 相连、 其中:
    - TFTP 客户端(我的 Tftpd64 笔记本电脑)有 192.168.1.22
    - TFTP 服务器(我的设备 AM2432 Profinet / EthernetIP)有 192.168.1.50
    -同一网络上的另一台设备有 192.168.1.112
    -网关有 192.168.1.1

    (我临时上传了它们,因为我无法在此处附加它们)  

    我可以做些什么来更好地理解问题?

    谢谢您、

    此致、

    Andrea

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

    您好、有任何更新吗?

    谢谢您、

    此致、

    Andrea

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

    您好、Andrea、

    感谢您在这个紧张时期的耐心。

    我刚开始研究这个问题。 PROFINET 协议栈似乎正在丢弃 TFTP 帧。 我将详细说明这一点、并在星期一上给您一个答复。

    此致、
    Kamil

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

    您好、Andrea、

    我已向您发送一封电子邮件、其中包含您的问题的解决方案。 请进行测试并向我发送您的反馈。

    谢谢。
    此致、
    Kamil

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

    尊敬的 Kamil:  

    我尝试了您提供的解决方案、但我注意到、现在 Profinet 堆栈明确拒绝了 TFTP 请求(而对于官方库,这些请求只是被忽略了)。 我有什么问题吗?

    谢谢您、

    此致、

    Andrea

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

    您好、Andrea、

    默认情况下、堆栈不应拒绝您的请求。
    您是否可以共享 Wireshark 跟踪、以便我们可以进一步调查此问题?

    谢谢。
    此致、
    Kamil