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:AM2432 MCU SDK 与工业 SDK enet_layer2_icssg 示例

Guru**** 2540720 points
Other Parts Discussed in Thread: SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1548718/am2432-am2432-mcu-sdk-vs-industrial-sdk-enet_layer2_icssg-example

器件型号:AM2432
Thread 中讨论的其他器件:SysConfigAM2434

工具/软件:

你好。

我有一个关于我的发展的问题。

我正在升级以前一个工程的 SDK 版本...

前一个工程使用了 ind_comms_sdk_am243x_09_00_00_03。

当我第一次开发该工程时、基本示例是 enet_layer2_icssg。

我要更改的 SDK 版本是 ind_comms_sdk_am243x_11_00_00_08。

我在 ind_comms_sdk_am243x_11_00_08 上运行 enet_layer2_icssg(在 mcu_plus_sdk_am243x_10_01_00_32 中提供)时遇到问题。 有什么我应该检查的吗?

基于 enet_layer2_icssg 的示例是否需要使用 MCU SDK? 是否可以使用工业 SDK?

我会等待你的答复。

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

    此外、我使用了 dp83822 phy。

    对于定制板、我使用 enet_custom_board_config.c、如下所示:

    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include “ti_board_open_close.h"</s>“
    #include “ti_drivers_config.h"</s>“
    #include “ti_board_config.h"</s>“
    #include

    /* PHY 驱动程序*/
    extern PhyDrvDp83822;Phy_Drv Obj_t gEnetPhyDrvDp83822;
    extern PhyDr.Obj_t Phy_Drv;
    /*========================================================================= */
    /*宏和类型定义*/
    /*========================================================================= */


    /*========================================================================= */
    /*结构声明*/
    /*========================================================================= */
    /*! 简要介绍所有注册的 PHY 特定驱动程序。 */
    静态常量 EthPhy Drv_If gEnetPhyDrvs[]=

    &gEnetPhyDrvDp83822、/* DP83822 */
    &gEnetPhyDrvGeneric、/*通用 PHY — 必须是最后一个*/
    };

    const Enet PhyDrvTbl Phy_Drv =

    .numHandles = ENET_ARRAYSIZE (gEnetPhyDrvs)、
    .hPhyDrvList = gEnetPhyDrvs、
    };

    /*========================================================================= */
    /*函数声明*/
    /*========================================================================= */

    static const Enet Board_Port Cfg *EnetBoard_getPortCfg (const Enet Board_Eth *ethPort);

    static const Enet Board_Port Cfg *EnetBoard_findPortCfg (const Enet Board_Eth *ethPort、
    const Enet Cfg Board_Port、
    uint32_t numEthPorts);

    静态 void EnetBoard_setEnetControl (Enet_Type enetType、
    Enet_Mac 端口 macPort、
    EnetMac Port_Interface *mii);

    /*========================================================================= */
    /*全局变量*/
    /*========================================================================= */

    静态常量 Dp83822_Cfg gEnetCpbBoard_dp83822PhyCfg =

    #if 0
    .txClkShiftEn = true、
    .rxClkShiftEn = true、
    #endif
    };

    /*
    * AM64x 电路板配置。
    *
    * 1 个 RGMII PHY 连接到 AM64x CPSW_2G MAC 端口。
    */
    static const Enet Board_Port Cfg gEnetCpbBoard_am64xEthPort[]=

    {/*“eth2"(“(ICSSG1 交换机端口 1)*/
    .enetType = ENET_ICSSG_SWITCH、
    .instId = 1U、
    .mii ={ENET_MAC_LAYER_GMII、ENET_MAC_SUBLAYER_REDULED}、
    .macPort = ENET_MAC_PORT_1、
    .phyCfg =

    .phyAddr = 0x3U、
    .isStraped = false、
    .skipExtendedCfg = false、
    .extendedCfg =&gEnetCpbBoard_dp83822PhyCfg、
    .extendedCfgSize = sizeof (gEnetCpbBoard_dp83822PhyCfg)、
    }、
    .flags = 0u、
    }、
    {/*“eth3"(“(ICSSG1 交换机端口 2)*/
    .enetType = ENET_ICSSG_SWITCH、
    .instId = 1U、
    .macPort = ENET_MAC_PORT_2、
    .mii ={ENET_MAC_LAYER_GMII、ENET_MAC_SUBLAYER_REDULED}、
    .phyCfg =

    .phyAddr = 0x1U、
    .isStraped = false、
    .skipExtendedCfg = false、
    .extendedCfg =&gEnetCpbBoard_dp83822PhyCfg、
    .extendedCfgSize = sizeof (gEnetCpbBoard_dp83822PhyCfg)、
    }、
    .flags = 0u、
    }、
    };

    /*========================================================================= */
    /*功能定义*/
    /*========================================================================= */

    const Enet Board_Phy Cfg *EnetBoard_getPhyCfg (const Enet Board_Eth *ethPort)

    const Enet Board_Port Cfg *portCfg;

    portCfg = EnetBoard_getPortCfg (ethPort);

    返回(portCfg !=空)? &portCfg->phyCfg:NULL;
    }

    static const Enet Board_Port Cfg *EnetBoard_getPortCfg (const Enet Board_Eth *ethPort)

    const Enet Cfg *portCfg = Board_Port;

    portCfg = EnetBoard_findPortCfg (ethPort、
    gEnetCpbBoard_am64xEthPort、
    ENETPHY_ARRAYSIZE (gEnetCpbBoard_am64xEthPort);

    返回 portCfg;
    }

    static const Enet Board_Port Cfg *EnetBoard_findPortCfg (const Enet Board_Eth *ethPort、
    const Enet Cfg Board_Port、
    uint32_t numEthPorts)

    const Enet Cfg *ethPortCfg = Board_Port;
    bool found = false;
    uint32_t i;

    适用于 (I = 0U;I < numEthPorts;I++)

    ethPortCfg =&ethPortCfgs[i];

    if ((ethPortCfg->enetType == ethPort->enetType)&&
    (ethPortCfg->instId == ethPort->instId)&&
    (ethPortCfg->macPort == ethPort->macPort)&&
    (ethPortCfg->mii.layerType == ethPort->mii.layerType)&&
    (ethPortCfg->mii.sublayerType == ethPort->mii.sublayerType)

    已找到= true;
    休息;
    }
    }

    是否找到退货? ethPortCfg:NULL;
    }

    int32_t EnetBoard_setupPorts (Enet Board_Eth)*ethPorts、
    uint32_t numEthPorts)

    uint32_t i;

    /*没有其他事情要做*/
    适用于 (I = 0U;I < numEthPorts;I++)

    Enet Board_Eth 端口*ethPort =&ethPorts[i];
    /*通过电路板库覆盖 ENET 控制集*/
    EnetBoard_setEnetControl (ethPort->enetType、ethPort->macPort、&ethPort->mii);

    }
    返回 ENET_Sok;
    }

    静态 void EnetBoard_setEnetControl (Enet_Type enetType、
    Enet_Mac 端口 macPort、
    EnetMac Port_Interface *mii)

    int32_t 状态= ENET_Sok;

    if(!EnetMacPort_isRmii (mii)&&!EnetMacPort_isRgmii (mii)&&!EnetMacPort_isMii (mii))

    //LOG_ERR(“无效的 mii 类型:层%u suyblayer %u\n“、mii->layerType、mii->sublayerType);
    EnetAppUtils_assert (false);
    }

    开关 (enetType)

    ENET_CPSW_3G 案例:
    休息;

    ENET_ICSSG_DUALMAC 案例:
    ENET_ICSSG_SWITCH:
    休息;

    默认值:
    休息;
    }

    EnetAppUtils_assert (status == ENET_Sok);
    }

    void EnetBoard_getMacAddrList (uint8_t macaddr[][ENET_MAC_ADDR_LEN]、
    uint32_t maxMacEntries、
    uint32_t *pAvailMacEntries)

    UINT8_t macAddrBuf[][ENET_MAC_ADDR_LEN]=

    {0x70U、0xFFU、0x76U、0x1DU、0x92U、 0xC1U }、
    {0x70U、0xFFU、0x76U、0x1DU、0x92U、 0xC2U }、
    {0x70U、0xFFU、0x76U、0x1DU、0x92U、 0xC3U }、
    {0x70U、0xFFU、0x76U、0x1DU、0x92U、 0xC4U }、
    };
    uint32_t macAddrCnt = ENET_ARRAYSIZE (macAddrBuf);

    /*仅保存满足最大 MAC 条目数所需的条目*/
    *pAvailMacEntries = EnetUtils_min(macAddrCnt, maxMacEntries);
    memcpy (&macaddr[0U][0U]、&macAddrBuf[0U][0U]、* pAvailMacEntries * ENET_MAC_ADDR_LEN);
    }

    uint32_t EnetBoard_getid (void)

    返回 ENETBOARD_AM64X_AM243X_EVM;
    }

    void EnetBoard_getMiiConfig (EnetMac Port_Interface *mii)

    mii->layerType = ENET_MAC_LAYER_GMII;
    mii->sublayerType = ENET_MAC_sublayer_Reduced;
    mii->variantType = ENET_MAC_variant_Fforced;
    }

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

    属性信息如下所示:

    预定义:

    ${SysConfig_tool_symbols}

    ${COM_TI_INDUSTRIAL_COMMUNICATION_SDK_AM243X_symbols}

    SOC_AM243X ENET_ENABLE_PER_ICSSG=1

    _debug_=1

    包含路径:

    ${SysConfig_tool_include_path}

    ${COM_TI_INDUSTRIAL_COMMUNICATION_SDK_AM243X_INCLUDE_PATH}

    ${CG_TOOL_ROOT}/include/c ${INDUSTRIAL_COMMUNICATION_SDK_PATH}/source

    ${INDUSTRIAL_COMMUNICATION_SDK_PATH}/MCU_PLUS_SDK/source

    ${INDUSTRIAL_COMMUNICATION_SDK_PATH}/MCU_PLUS_SDK/source/kernel/freertos/freertos-Kernel/include

    ${INDUSTRIAL_COMMUNICATION_SDK_PATH}/MCU_PLUS_SDK/source/kernel/freertos/portable/TI_ARM_CLANG/ARM_CR5F

    ${INDUSTRIAL_COMMUNICATION_SDK_PATH}/MCU_PLUS_SDK/source/kernel/freertos/config/am243x/r5f

    ${INDUSTRIAL_COMMUNICATION_SDK_PATH}/MCU_PLUS_SDK_source/networking/lwip/lwip-stack/lwip/include src

    ${INDUSTRIAL_COMMUNICATION_SDK_PATH}/MCU_PLUS_SDK_source/networking/lwip/lwip-port/include

    ${INDUSTRIAL_COMMUNICATION_SDK_PATH}/MCU_PLUS_SDK_source/networking/lwip/lwip-port/freertos/include

    ${INDUSTRIAL_COMMUNICATION_SDK_PATH}/MCU_PLUS_SDK/source/networking/enet

    ${INDUSTRIAL_COMMUNICATION_SDK_PATH}/MCU_PLUS_SDK/source/networking/enet/core/utils

    ${INDUSTRIAL_COMMUNICATION_SDK_PATH}/MCU_PLUS_SDK/source/networking/enet/core/utils/include

    ${INDUSTRIAL_COMMUNICATION_SDK_PATH}/MCU_PLUS_SDK/source/networking/enet/core/utils/V3

    ${INDUSTRIAL_COMMUNICATION_SDK_PATH}/MCU_PLUS_SDK/source/networking/enet/core

    ${INDUSTRIAL_COMMUNICATION_SDK_PATH}/MCU_PLUS_SDK/source/networking/enet/core/include

    ${INDUSTRIAL_COMMUNICATION_SDK_PATH}/MCU_PLUS_SDK/source/networking/enet/core/include/phy

    ${INDUSTRIAL_COMMUNICATION_SDK_PATH}/MCU_PLUS_SDK/source/networking/enet/core/include/core

    ${INDUSTRIAL_COMMUNICATION_SDK_PATH}/MCU_PLUS_SDK/source/networking/enet/k3/am64x_am243x soc

    ${INDUSTRIAL_COMMUNICATION_SDK_PATH}/MCU_PLUS_SDK/source/networking/enet/hw_include

    ${INDUSTRIAL_COMMUNICATION_SDK_PATH}/MCU_PLUS_SDK/source/networking/enet/HW_INCLUDE/MDIO/V4

    ${INDUSTRIAL_COMMUNICATION_SDK_PATH}/MCU_PLUS_SDK/source/board/ethphy/enet/rtos_drivers/include

    ${INDUSTRIAL_COMMUNICATION_SDK_PATH}/MCU_PLUS_SDK/source/board/ethphy/port

     

    包含库文件:

    ${SysConfig_tool_libraries}

    ${COM_TI_INDUSTRIAL_COMMUNICATION_SDK_AM243X_libraries}

    freertos.am243xr5f.ti-arm-clang.release.lib

    drivers.am243x.r5f.ti-arm-clang.release.lib

    enet-icssg.am243xr5f.ti-arm-clang.release.lib

    board.am243x.r5f.ti-arm-clang.release.lib

    libc.a

    libsysbm.a

    包括 库路径:

    ${SYSCONFIG_TOOL_LIBRARY_PATH}


    ${COM_TI_INDUSTRIAL_COMMUNICATION_SDK_AM243X_LIBRARY_PATH}

    ${INDUSTRIAL_COMMUNICATION_SDK_PATH}/MCU_PLUS_SDK/source/kernel/freertos/lib

    ${INDUSTRIAL_COMMUNICATION_SDK_PATH}/MCU_PLUS_SDK/source/drivers/lib

    ${INDUSTRIAL_COMMUNICATION_SDK_PATH}/MCU_PLUS_SDK/source/board/lib

    ${INDUSTRIAL_COMMUNICATION_SDK_PATH}/MCU_PLUS_SDK/source/networking/enet/lib

    ${CG_TOOL_ROOT}/lib

    ${PROJECT_BUILD_DIR}/syscfg

    配置为“释放活动“

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

    尊敬的 Kim:

    请让我尝试在我们的设置中重现问题以了解问题。 如果您在调试模式而不是发布模式下共享应用程序日志、将会更有帮助。 由于持续承诺、请在 1 周内回复。

    谢谢。此致、
    Teja。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Teja:
    感谢您的快速答复。
    我想与大家分享这个示例项目、以帮助您更快地解决这个问题。
    如果您能与我分享、我会尝试一下。
    谢谢你。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Teja:

    此外、我使用的 SBL 使用 mcu_plus_sdk_am243x_08_05_00_24。

    这可能是问题吗?

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

    尊敬的 Kim:

    这可能是一个问题、但如果不了解故障原因、我们还无法确认。 您能否分享该示例的调试日志? 这将帮助我们了解有关故障的更多详细信息。

    谢谢。此致、
    Teja。

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

    尊敬的 Teja:

    此问题已解决。

    我正在将必要的源从 SDK 移动到本地目录后进行处理。
    我不使用 SDK 库链接、而是将所需的源代码添加到导入的 SDK 中的必要段。

    在我处理这个问题时、我一定会再问一些问题。

    谢谢你。

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

    尊敬的 Kim:

    感谢您的答复。 我正在将此主题标记为“已关闭“。 如果您需要任何进一步的支持、请创建一个 E2E

    谢谢。此致、
    Teja。