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.
您好!
我将 AM263x-cc EVM 与 SDK 版本"MCU_PLUS_SDK_am263x_08_02_01_08"配合使用。
我想使用 UDP 或 TCP 协议检查 EST 效果。
因此、我集成了示例 est+lwip、并在 lwip 中启用 VLAN 标记和 pcp。
现在、我可以发送具有不同 PCP 的 UDP 封包、但似乎数据包传输时间不符合门控设置。
我的栅极控制设置列表如下:
我还附上了数据包捕获文件供您参考:
e2e.ti.com/.../AM26EVM_5F00_LWIP_5F00_EST_5F00_500us_5F00_Cycle.zip
我同时递归地发送了带有 PCP 0、2、4、6的 UDP 数据包。
您对我的测试有什么建议吗?
谢谢、
Josh
Josh、您好!
我建议您转到最新版本的 MCU+ SDK、即 MCU_PLUS_SDK_am263x_08_03_00_23。
您也可以在 MCU + SDK-AM263X 软件开发套件(SDK)|德州仪器 TI.com 上下载该软件
另外,请告诉我们最新版本的 MCU+ SDK 是否再次出现此问题?
谢谢、此致、
Aakash
Josh、
您能否确认 您是否正在设置以下配置参数?
hostPortCfg->rxVlanRemapEn =真;
hostPortCfg->rxDscpIPv4RemapEn =真;
hostPortCfg->rxDscpIPv6RemapEn =真;
此外、请注意 Wireshark 时间戳不是很准确。 最好使用专用设备(如果有)。
尊敬的 Misael:
是的,我在 LwipApp_init()中添加了 cpswcfg
// Josh static void EnetApp_portLinkStatusChangeCb(Enet_MacPort macPort, bool isLinkUp, void *appArg) { EnetAppUtils_print("MAC Port %u: link %s\r\n", ENET_MACPORT_ID(macPort), isLinkUp ? "up" : "down"); } static void EnetApp_mdioLinkStatusChange(Cpsw_MdioLinkStateChangeInfo *info, void *appArg) { static uint32_t linkUpCount = 0U; if ((info->linkChanged) && (info->isLinked)) { linkUpCount++; } } static void EnetApp_initCpswCfg(Cpsw_Cfg *cpswCfg) { CpswAle_Cfg *aleCfg = &cpswCfg->aleCfg; CpswHostPort_Cfg *hostPortCfg = &cpswCfg->hostPortCfg; CpswCpts_Cfg *cptsCfg = &cpswCfg->cptsCfg; /* Peripheral-level config */ cpswCfg->mdioLinkStateChangeCb = EnetApp_mdioLinkStatusChange; cpswCfg->mdioLinkStateChangeCbArg = NULL; cpswCfg->portLinkStatusChangeCb = &EnetApp_portLinkStatusChangeCb; cpswCfg->portLinkStatusChangeCbArg = NULL; cpswCfg->vlanCfg.vlanAware = true; /* ALE config */ aleCfg->modeFlags = CPSW_ALE_CFG_MODULE_EN; aleCfg->agingCfg.autoAgingEn = true; aleCfg->agingCfg.agingPeriodInMs = 1000U; aleCfg->nwSecCfg.vid0ModeEn = true; aleCfg->vlanCfg.aleVlanAwareMode = TRUE; aleCfg->vlanCfg.cpswVlanAwareMode = cpswCfg->vlanCfg.vlanAware; aleCfg->vlanCfg.unknownUnregMcastFloodMask = CPSW_ALE_ALL_PORTS_MASK; aleCfg->vlanCfg.unknownRegMcastFloodMask = CPSW_ALE_ALL_PORTS_MASK; aleCfg->vlanCfg.unknownVlanMemberListMask = CPSW_ALE_ALL_PORTS_MASK; aleCfg->policerGlobalCfg.policingEn = false; /* Host port config */ hostPortCfg->removeCrc = true; hostPortCfg->padShortPacket = true; hostPortCfg->passCrcErrors = false; /* Hardware switch priority is taken from packet's PCP or DSCP */ hostPortCfg->rxVlanRemapEn = true; hostPortCfg->rxDscpIPv4RemapEn = true; hostPortCfg->rxDscpIPv6RemapEn = true; /* CPTS config (CPTS_RFT_CLK = 200MHz) */ cptsCfg->cptsRftClkFreq = CPSW_CPTS_RFTCLK_FREQ_200MHZ; } static int32_t LwipApp_init(Enet_Type enetType) { int32_t status = ENET_SOK; EnetMcm_InitConfig enetMcmCfg; Cpsw_Cfg cpswCfg; #if (ENET_ENABLE_PER_ICSSG == 1) Icssg_Cfg icssgCfg; #endif EnetRm_ResCfg *resCfg = &cpswCfg.resCfg; EnetCpdma_Cfg dmaCfg; EnetApp_getEnetInstInfo(&gLwipIfCbObj.enetType, &gLwipIfCbObj.instId, gLwipIfCbObj.macPortList, &gLwipIfCbObj.numMacPorts); EnetAppUtils_assert(gLwipIfCbObj.enetType == enetType); /* Set configuration parameters */ if (Enet_isCpswFamily(gLwipIfCbObj.enetType)) { cpswCfg.dmaCfg = (void *)&dmaCfg; Enet_initCfg(gLwipIfCbObj.enetType, gLwipIfCbObj.instId, &cpswCfg, sizeof(cpswCfg)); EnetApp_initCpswCfg(&cpswCfg); // Josh EnetApp_getCpswInitCfg(gLwipIfCbObj.enetType, gLwipIfCbObj.instId, &cpswCfg); EnetAppUtils_assert(EnetAppUtils_isDescCached() == false); dmaCfg.isCacheable = false; dmaCfg.rxInterruptPerMSec = 8; dmaCfg.txInterruptPerMSec = 2; enetMcmCfg.perCfg = &cpswCfg; resCfg = &cpswCfg.resCfg; } #if (ENET_ENABLE_PER_ICSSG == 1) else { Enet_initCfg(gLwipIfCbObj.enetType, gLwipIfCbObj.instId, &icssgCfg, sizeof(icssgCfg)); /* Currently we only support one ICSSG port in NIMU */ EnetAppUtils_assert(gLwipIfCbObj.numMacPorts == 1U); resCfg = &icssgCfg.resCfg; icssgCfg.dmaCfg = (void *)&dmaCfg; enetMcmCfg.perCfg = &icssgCfg; } #else else { enetMcmCfg.perCfg = NULL; } #endif EnetAppUtils_assert(NULL != enetMcmCfg.perCfg); EnetAppUtils_initResourceConfig(gLwipIfCbObj.enetType, EnetSoc_getCoreId(), resCfg); enetMcmCfg.enetType = gLwipIfCbObj.enetType; enetMcmCfg.instId = gLwipIfCbObj.instId; enetMcmCfg.setPortLinkCfg = EnetApp_initLinkArgs; enetMcmCfg.numMacPorts = gLwipIfCbObj.numMacPorts; enetMcmCfg.periodicTaskPeriod = ENETPHY_FSM_TICK_PERIOD_MS; /* msecs */ enetMcmCfg.print = EnetAppUtils_print; memcpy(&enetMcmCfg.macPortList[0U], &gLwipIfCbObj.macPortList[0U], sizeof(enetMcmCfg.macPortList)); status = EnetMcm_init(&enetMcmCfg); return status; }
我们使用矢量 VN5640捕获数据包。
此致、
Josh
Aakash、您好!
需要一些时间来修改新的 SDK、我稍后会向您提供反馈。
此致、
Josh