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.

[参考译文] MCU-PLUS-SDK AM243X:使用 QUOT;EtherNet/IP 适配器演示在 MCU-PLUS-SDK AM243X 版本08.06.00.43&QUOT 中用于发送和接收数据的功能和缓冲器;示例?

Guru**** 2535150 points
Other Parts Discussed in Thread: AM2434

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1271526/mcu-plus-sdk-am243x-which-function-and-buffer-used-to-transmit-and-receive-data-with-ethernet-ip-adapter-demos-in-mcu-plus-sdk-am243x-version-08-06-00-43-example

器件型号:MCU-PLUS-SDK
主题中讨论的其他器件: AM2434

大家好、
我们正在使用 " MCU-PLUS-SDK AM243X 版本08.06.00.43中的 EtherNet/IP 适配器演示 "示例 且此示例运行正常、请查看随附的示例输出。

Pbuf_alloc 在接收 NRT 帧时失败
Pbuf_alloc 在接收 NRT 帧时失败
Pbuf_alloc 在接收 NRT 帧时失败
Pbuf_alloc 在接收 NRT 帧时失败
Pbuf_alloc 在接收 NRT 帧时失败
警告:未接收到 EtherType 的帧。
Pbuf_alloc 在接收 NRT 帧时失败
Pbuf_alloc 在接收 NRT 帧时失败
Pbuf_alloc 在接收 NRT 帧时失败
Pbuf_alloc 在接收 NRT 帧时失败
警告:未接收到 EtherType 的帧。
警告:未接收到 EtherType 的帧。
警告:未接收到 EtherType 的帧。
警告:未接收到 EtherType 的帧。
警告:未接收到 EtherType 的帧。
Pbuf_alloc 在接收 NRT 帧时失败
警告:未接收到 EtherType 的帧。
警告:未接收到 EtherType 的帧。
警告:未接收到 EtherType 的帧。
警告:未接收到 EtherType 的帧。
警告:未接收到 EtherType 的帧。
警告:未接收到 EtherType 的帧。
警告:未接收到 EtherType 的帧。
警告:未接收到 EtherType 的帧。
Pbuf_alloc 在接收 NRT 帧时失败
Pbuf_alloc 在接收 NRT 帧时失败
警告:未接收到 EtherType 的帧。
警告:未接收到 EtherType 的帧。
警告:未接收到 EtherType 的帧。
Pbuf_alloc 在接收 NRT 帧时失败
警告:未接收到 EtherType 的帧。
警告:未接收到 EtherType 的帧。
警告:未接收到 EtherType 的帧。
警告:未接收到 EtherType 的帧。
警告:未接收到 EtherType 的帧。
警告:未接收到 EtherType 的帧。
警告:未接收到 EtherType 的帧。
警告:未接收到 EtherType 的帧。
警告:未接收到 EtherType 的帧。
警告:未接收到 EtherType 的帧。
警告:未接收到 EtherType 的帧。
警告:未接收到 EtherType 的帧。
警告:未接收到 EtherType 的帧。
警告:未接收到 EtherType 的帧。
警告:未接收到 EtherType 的帧。
Pbuf_alloc 在接收 NRT 帧时失败
警告:未接收到 EtherType 的帧。
Pbuf_alloc 在接收 NRT 帧时失败
Pbuf_alloc 在接收 NRT 帧时失败
Pbuf_alloc 在接收 NRT 帧时失败
Pbuf_alloc 在接收 NRT 帧时失败
警告:未接收到 EtherType 的帧。
Pbuf_alloc 在接收 NRT 帧时失败
Pbuf_alloc 在接收 NRT 帧时失败
Pbuf_alloc 在接收 NRT 帧时失败
警告:未接收到 EtherType 的帧。
Pbuf_alloc 在接收 NRT 帧时失败
Pbuf_alloc 在接收 NRT 帧时失败
Pbuf_alloc 在接收 NRT 帧时失败
警告:未接收到 EtherType 的帧。
Pbuf_alloc 在接收 NRT 帧时失败
警告:未接收到 EtherType 的帧。
Pbuf_alloc 在接收 NRT 帧时失败
警告:未接收到 EtherType 的帧。
Pbuf_alloc 在接收 NRT 帧时失败
警告:未接收到 EtherType 的帧。
警告:未接收到 EtherType 的帧。
警告:未接收到 EtherType 的帧。
警告:未接收到 EtherType 的帧。
警告:未接收到 EtherType 的帧。
警告:未接收到 EtherType 的帧。
Pbuf_alloc 在接收 NRT 帧时失败
警告:未接收到 EtherType 的帧。
警告:未接收到 EtherType 的帧。
警告:未接收到 EtherType 的帧。
警告:未接收到 EtherType 的帧。
警告:未接收到 EtherType 的帧。
警告:未接收到 EtherType 的帧。
Pbuf_alloc 在接收 NRT 帧时失败
警告:未接收到 EtherType 的帧。
警告:未接收到 EtherType 的帧。
警告:未接收到 EtherType 的帧。
警告:未接收到 EtherType 的帧。
警告:未接收到 EtherType 的帧。
警告:未接收到 EtherType 的帧。
警告:未接收到 EtherType 的帧。
警告:未接收到 EtherType 的帧。
警告:未接收到 EtherType 的帧。
警告:未接收到 EtherType 的帧。
警告:未接收到 EtherType 的帧。
警告:未接收到 EtherType 的帧。
Pbuf_alloc 在接收 NRT 帧时失败
警告:未接收到 EtherType 的帧。
警告:未接收到 EtherType 的帧。
警告:未接收到 EtherType 的帧。

我们根据以下连接在 AM2434 EVM 与 PC 之间进行了测试、并使用 Wireshark 测量了捕获的数据。 我已成功发送和接收数据

我对此的查询是

  • 哪个函数用于发送和接收数据?
  • 如何" EI_API_ADP_pruicssInit () "函数工作、此函数的源代码在哪里?
  • 如果我要传输我自己的自定义数据、我该怎么做?

请帮我解决问题。

等待您的反馈。

--

谢谢。此致、

D·帕特尔

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

    尊敬的 Divyesh:  

    由于印度度假、请预计本主题的回复会延迟至9/19。

    此致、

    布伦南

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

    尊敬的 Brennan:

    等待您的反馈。

    --

    谢谢。此致、

    D·帕特尔

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

    你好,Divyesh

    我们知道问题(警告:接收不到 EtherType 的帧。) 在 MCU+SDK 08.06.00.43的此 UART 日志中提到、它们在工业通信09.00.00.03中固定。 当 LWIP 的池缓冲区已满并且无法为新帧分配空间时、报告"pbuf_alloc 在接收 NRT 帧时失败"消息。 在这种情况下、帧被丢弃、另一侧将重复一个请求。 这种情况下、通过在断点处停止即可轻松进行仿真、但也可能随时发生。

    关于您的问题:

    1) 1)哪个函数用于发送和接收数据?

    这在应用程序一侧是无法实现的。 接收和发送由堆栈库处理。 在堆栈库内、您可以使用以下内容:
    RX:PRU_eip_EmacNrtRxCallback 用于非实时数据或
    用于实时数据的 PRU_eip_EmacRtRxCallback
    TX:PRU_eip_sendTxPacket

    2)如何使用"EI_API_ADP_pruicssInit()"函数,这个函数的源代码在哪里?

    此函数是 EtherNet/IP 适配器堆栈接口函数。 方式在堆栈(库)端实现。 调用顺序为:
    EI_API_ADP_pruicssInit→DTK_EI_API_ADP_pruicssInit→PRU_eip_loadPru
    PRU_eip_loadPru 函数是对 PRU-ICSS 块和 EthPhy 进行基本初始化、并在内部加载固件。

    3) 3)如果我要传输我自己的自定义数据、我该怎么做?

    如果可以理解为客户想要发送自己的帧、无论是否有以太网协议报头、则不允许从应用端执行该操作。 客户只能配置属于我们的堆栈支持的特定协议的某些特定数据部分。 一个很好的示例是 CIP 身份、其中可以定义特定于供应商的数据、使其比在响应帧中使用的数据更少、但以太网标头和响应帧的其他部分是由堆栈层(CIP 身份对象和 LWIP)创建的。