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:AM243x LP 电路板通信问题

Guru**** 2796425 points

Other Parts Discussed in Thread: AM2434, SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1621762/am2434-am243x-lp-board-commucation-question

器件型号: AM2434
主题: SysConfig 中讨论的其他器件

你好。 我是 Autonics 的 FW 工程师。

有关我使用的 TI 产品的信息如下。

  1. MCU : AM2434 LP 板
  2. IND SDK: ind_comms_sdk_am243x_2025_00_00_08
  3. MCU PLUS SDK:mcu_plus_sdk_am243x_11_01_00_19

我们的通信概念如下。

  1. 我们的产品支持三种通信协议:EtherNet/IP、Profinet 和 Modbus TCP。
  2. EtherNet/IP 和 Profinet 在初始化期间根据产品线进行分类、并必须移植到单个应用固件中。

  3.  所有产品线 (EtherNet/IP 和 Profinet) 都必须支持 Modbus TCP。  

我在代码中链接了该库以执行概念 2。

image.png

但是、出现了一条错误消息、表明该错误消息 RRU0_Firmware PRU1_Firmware 都被声明为多次  

[5]错误#10056:符号“PRU0_firmware"已“已重新定义:首先在“C:/ti/ind_comms_sdk_am243x_2025_00_00_08/source/industrial_comms/ethernetip_adapter/stack/lib/ethernetipadapter_mii.am243x.r5f.ti-arm-clang.release.lib<pru_EthernetIPFreeRTOS.c.obj>“中定义;重新定义在“C:/ti/ind_comms_sdk_am243x_2025_00_00_08/source/industrial_comms/profinet_device/icss_fwhal/lib/profinet_device_irt_mii_icss_fwhal.am243x.r5f.ti-arm-clang.release.lib<iPNDrv.obj>“中

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

[6]错误#10056:符号“PRU1_FIRMWARE"重新“重新定义:首先在“C:/ti/ind_comms_sdk_am243x_2025_00_00_08/source/industrial_comms/ethernetip_adapter/stack/lib/ethernetipadapter_mii.am243x.r5f.ti-arm-clang.release.lib<pru_EthernetIPFreeRTOS.c.obj>“中定义;重新定义在“C:/ti/ind_comms_sdk_am243x_2025_00_00_08/source/industrial_comms/profinet_device/icss_fwhal/lib/profinet_device_irt_mii_icss_fwhal.am243x.r5f.ti-arm-clang.release.lib<iPNDrv.obj>“中

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

是否有方法将它们一起声明而不会导致重复的声明错误?

尽管我们的产品同时支持 EtherNet/IP 和 Profinet、但实际运行中实际只使用一种通信协议。 (EtherNet/IP 或 Profinet)

是否可以在其他通信协议(如 EtherNet/IP 或 Profin)运行时使用 Modbus TCP?   

在我看来、这应该是可能的、因为它们是在不同的层次上运作的。 但是、在查看实际的示例代码后、我担心这可能无法实现。 在这种情况下、应如何使用  PRU 固件 输入信号吗?  

谢谢  

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

    您好、  

    通常、我们尚未测试是否运行两个在同一内核上使用 PRU 的以太网协议栈。 不过、如果只初始化一个、这应该是可能的。

    因为我们尚未对其进行测试、所以您会看到链接问题。 你可以自己解决这个问题。 只需在 source/industrial_comms/Profinet  器件/ICSS_fwhal 的源代码中为 PRU0_firmware/PRU1_firmware 命名。 您可以重新编译库、这应该没问题。  

    Modbus TCP 独立于 PRU。 它只需要 LWIP。 PROFINET 和 EtherNet/IP 中已有 LWIP。 因此,您只需将 Modbus 库与该示例的 Modbus 特定初始化一起使用,就可以在现场总线堆栈 LWIP 上运行它。  

    此致

    Christof

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

    你好。 感谢您的及时答复。

    我还有几个问题。

    指定 '.sysconfig' 、使用工业 SDK SysConfig 时、我们可以选择通信类型。

    我想将默认通信设置为 EtherNet/IP。 目前、当我以这种方式配置代码时、我的代码可以正常运行、而不会出现任何问题

    ...

    如果我在初始化期间将通信更改为 Profinet(不使用 EtherNet/IP)、如何配置 SysConfig?

    我希望保持 SysConfig 不变、并在代码中更改通信模式。

    根据我的检查结果、我需要更改 PRUICSS_Firmware、initialization (EIP 或 PN) 和协议栈。
    是否有任何其他器件也需要修改?

    请检查它。

    谢谢。 此致。

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

    您好、  

    PRU 固件加载是协议初始化的一部分。 因此、只需调用相应的协议特定函数即可切换该方。  

    更关键的部分是 SysConfig。 您只能在 SysConfig 中选择一个协议、并对该协议进行配置。 如果要在运行时期间进行切换、必须在软件中实现不同的初始化。 若要查看所需的内容、我建议为所有型号生成 SysConfig、生成输出并查看什么是 DIFF。  

    对于您的用例、一种更简单的方法是为每个协议创建一个独立的应用程序。 (与我们的所有示例一样)。 您可以调整引导加载程序并决定要加载的应用程序级别。 这种方法将更容易、并且已经在我们这边进行了测试。  

    此致

    Christof