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.

[参考译文] PROCESSOR-SDK-AM64X:Enet 第2层 CPSW 示例不再适用于 SDK 版本08.05.00.24

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1185565/processor-sdk-am64x-enet-layer-2-cpsw-example-does-not-work-anymore-with-sdk-version-08-05-00-24

器件型号:PROCESSOR-SDK-AM64X

您好!

使用最新版本的 MCU-Plus SDK 08.05.00.24、"Enet Layer 2 CPSW"示例在 SK-AM64x 上不再起作用。 示例适用于 SDK 版本08.04.00.17。

这是 Debug-UART 的输出:

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
==========================
Layer 2 CPSW Test
==========================
Init all peripheral clocks
----------------------------------------------
Enabling clocks!
Create RX tasks
----------------------------------------------
cpsw-3g: Create RX task
Open all peripherals
----------------------------------------------
cpsw-3g: Open enet
EnetAppUtils_reduceCoreMacAllocation: Reduced Mac Address Allocation for CoreId:1 From 4 To 3
Init all configs
----------------------------------------------
cpsw-3g: init config
Mdio_open: MDIO Manual_Mode enabled
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

BTW:我正在讨论 MCU-PLUS-SDK-AM64X,但在创建线程时无法选择此器件型号...

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

    感谢您的查询。

    我将检查并很快回来。

    此致

    Ashwani

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

    Dominik、

    感谢您的指出。 我们确认存在问题"Enet Layer 2 CPSW Example"。 我们正与开发团队合作以解决问题。

    请允许我给您一些时间、以确定解决方案的时间表。

    此致

    安州

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

    尊敬的 Dominik:

    请参阅 https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1097991/sk-am64-ethernet-access-from-freertos/4081226#4081226

    并确保在 AM64x-SK 电路板中对 CPSW 进行了与引脚多路复用相关的更改。

    此致

    Ashwani

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

    您好、Ashwani、

    这不能解决我的问题。 我在该 SDK 版本中使用的是 SDK 版本8.5.0.24、已经明确地为 SK-AM64x 提供了一个示例。 在该示例中、pinmux 看起来是正确的。 那么、无需更改任何内容?!

    此处是使用的 example.syscfg 中的相关行

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    enet_cpsw1.$name = "CONFIG_ENET_CPSW0";
    enet_cpsw1.DisableMacPort2 = true;
    enet_cpsw1.mdioMode = "MDIO_MODE_MANUAL";
    enet_cpsw1.txDmaChannel[0].$name = "ENET_DMA_TX_CH0";
    enet_cpsw1.rxDmaChannel[0].$name = "ENET_DMA_RX_CH0";
    enet_cpsw1.pinmux[0].$name = "ENET_CPSW_PINMUX0";
    enet_cpsw1.pinmux[0].MDIO.$assign = "MDIO0";
    enet_cpsw1.pinmux[0].MDIO.MDC.$assign = "ball.R2";
    enet_cpsw1.pinmux[0].MDIO.MDIO.$assign = "ball.P5";
    enet_cpsw1.pinmux[0].RGMII1.$assign = "RGMII1";
    enet_cpsw1.pinmux[0].RGMII1.RD0.$assign = "ball.AA13";
    enet_cpsw1.pinmux[0].RGMII2.$assign = "RGMII2";
    const udma = scripting.addModule("/drivers/udma/udma", {}, false);
    const udma1 = udma.addInstance({}, false);
    enet_cpsw1.udmaDrv = udma1;
    /**
    * Pinmux solution for unlocked pins/peripherals. This ensures that minor changes to the automatic solver in a future
    * version of the tool will not impact the pinmux you originally saw. These lines can be completely deleted in order to
    * re-solve from scratch.
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    我还完成了此处介绍的最后一步:


    您能否对 MCU+ SDK 8.02中提供的 SBL 空引导加载程序进行编程、而不是07.03.00.19。 您可以按照相同的步骤刷写二进制文件。
     两个 SDK 之间的二进制文件可能存在差异

    因此、我使用了 SDK 8.5.0.24中提供的最新配置"default_sbl_null cfg"+ python 脚本

    但问题仍然存在!

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

    感谢 Dominik 的更新。

    是否有本地编译设置?

    如果是、请执行以下步骤:

    1. 打开文件:mcu_plus_sdk_am64x_08_05_00_24\source\networking\.meta\enet_cpsw\templates \am64x_am243x\enet_soc_cfg.c.xdt
    2. Fullscreen
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      /*!
      * \brief CPSW3G default configuration
      *
      * Note: If user wishes to change the Resource Partition the following
      * things must be considered:
      * 1. Sum of numTxCh allocated to each core should not exceed 8.
      * 2. Sum of numRxFlows allocated to each core should not exceed 7 (not 8),
      * as one Rx flow is reserved to the master core.
      *
      */
      static EnetRm_ResPrms gEnetAppRmDefCfg_3G =
      {
      .coreDmaResInfo =
      {
      [0] =
      {
      .coreId = `module.getCpuID()`,
      .numTxCh = ENET_SYSCFG_TX_CHANNELS_NUM, /* numTxCh */
      .numRxFlows = (ENET_SYSCFG_RX_FLOWS_NUM + 1), /* numRxFlows. Need one additional flow for reserved flow */
      .numMacAddress = 3U, /* numMacAddress */
      },
      XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
       
      1. 更改 .numMacAddress = 3U、  /* numMacAddress */
      2. 默认情况下应为4
    3. 打开命令提示符  
    4. CD C:\ti\mcu_plus_sdk_am64x_08_05_00_24
    5. gmake -s -C examples/networking_enet_layer2_cpsw/am64x-sk/r5fss0-0_freertos/ti-arm-clang clean
    6. gmake -s -C examples/networking_enet_layer2_cpsw/am64x-sk/r5fss0-0_freertos/ti-arm-clang all
    7. 生成的.out 可在中找到
      1. C:\ti\mcu_plus_sdk_am64x_08_05_00_24\examples\networking\enet_layer2_cpsw\am64x-sk\r5fs0-0_freertos\ti-arm-clang
      2. 文件名将为 enet_L2_cpsw.release.out
    8. 尝试使用 CCS 加载此文件

    不应出现此问题。

    此致

    Ashwani

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

    您好、Ashwani、

    幸运的是、我已经设置为使用 gmake 编译。 调试输出已更改、但仍然存在断言、如前所述:

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    ==========================
    Layer 2 CPSW Test
    ==========================
    Init all peripheral clocks
    ----------------------------------------------
    Enabling clocks!
    Create RX tasks
    ----------------------------------------------
    cpsw-3g: Create RX task
    Open all peripherals
    ----------------------------------------------
    cpsw-3g: Open enet
    EnetAppUtils_reduceCoreMacAllocation: Reduced Mac Address Allocation for CoreId:1 From 3 To 2
    Init all configs
    ----------------------------------------------
    cpsw-3g: init config
    Mdio_open:282
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

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

    尊敬的 Dominic:

    我将共享 CCS 项目设置的屏幕截图。 请确认您的一方是否相同?

    在我的设置中、我可以重现您所面临的问题。

    但是、在添加更改之后、我建议您、我可以摆脱问题。

    e2e.ti.com/.../enet_5F00_l2_5F00_cpsw.release.out



    打开所有外设
    ------------------------
    CPsw-3G:开放环境
    EnetAppUtils_reduceCoreMacAllocation:将 CoreID:1的 MAC 地址分配从4减少到3

    初始化所有配置
    ------------------------
    cpsw-3G:初始化配置
    MDIO_OPEN:启用 MDIO 手动模式

    正在启动 NULL 引导加载程序...

    DMSC 固件版本8.5.3-v08.05.03 (Chill Capybar
    DMSC 固件版本0x8
    DMSC ABI 修订版3.1

    INFO:bootloader_runCpu:155:CPU r5F1-0初始化为800000000 Hz!!!
    INFO:bootloader_runCpu:155:CPU r5F1-1被初始化为800000000 Hz!!!
    INFO:bootloader_runCpu:155:CPU m4f0-0初始化为400000000 Hz!!!
    INFO:bootloader_runCpu:155:CPU A530-0初始化为800000000 Hz!!!
    INFO:bootloader_runCpu:155:CPU A530-1初始化为800000000 Hz!!!
    INFO:bootloader_loadSelfCpu:207:CPU r5f0-0初始化为800000000 Hz!!!
    INFO:bootloader_loadSelfCpu:207:CPU r5f0-1初始化为800000000 Hz!!!
    INFO:bootloader_runSelfCpu:217:全部完成,正在重新发送...

    ===================================
    第2层 CPSW 测试
    ===================================

    初始化所有外设时钟
    ------------------------
    启用时钟!

    创建 RX 任务
    ------------------------
    cpsw-3G:创建 RX 任务

    打开所有外设
    ------------------------
    CPsw-3G:开放环境
    EnetAppUtils_reduceCoreMacAllocation:将 CoreID:1的 MAC 地址分配从3减少到2

    初始化所有配置
    ------------------------
    cpsw-3G:初始化配置
    MDIO_OPEN:282
    CPsw-3G:打开端口1
    EnetPhy_bindDriver:1718
    PHY 0处于活动状态
    PHY 1处于活动状态

    在所有外设上连接内核 ID 1
    ------------------------
    CPsw-3G:连接内核
    CPsw-3G:打开 DMA
    initQs() txFreePtInfoQ 初始化为16pts
    CPsw-3G:正在等待链路建立...



    此致

    Ashwani

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

    尊敬的 Dominic:

    您能否提供您正在使用的工具的详细信息,例如 :sysfw 版本?

    此致

    Ashwani

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

    您好、Ashwani、

    感谢您的耐心等待。 我已完全删除旧项目并重新导入该项目。 现在、它适用于您建议的解决方案。

    谢谢!

    此致

    Dominik

    针对具有相同问题的其他人的提示:在 SDK 中应用了更改后、您还可以使用 CCS 来通常构建您不一定需要通过 gmake 生成的工程

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

    尊敬的 Dominic:

    感谢您的确认。  

    但这并不是一个干净的解决方案。 这只是为了确保我们正确获得根本原因、并且这种更改不会对您的电路板产生其他副作用。

    我将与开发团队合作、制定时间表、为您提供解决此问题的全新方法。

    此致

    Ashwani

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

    Ashwani、您好!

    我在我这边也有同样的问题、我认为问题是 EEPROM 的内容。

    实际上、在 SDK 8.05中、MAC 地址的数量从电路板的 EEPROM 存储器中读取:

    我认为、写入 2个最大地址可以解决这个问题(尽管实际 MAC 地址值不是第二个值是0x00)。这个行为看起来像 SDK 8.04

    但是、我在以太网数据包的交换部分的性能非常差:

    抱歉,它是法语的,但每秒 ping 一次,我就会丢失数据包:/

    (如果您愿意、我可以为此打开另一个问题)

    此致、

    纪尧姆

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [报价 userid="540355" URL"~/support/processors-group/processors/f/processors-forum/1185565/processor-sdk-am64x-enet-layer-2-cpsw-example-does-not-work-anymore-with-sdk-version-08-05-00-24/4499450 #4499450"]如果您需要,我可以为该问题打开另一个问题

    这会很有帮助。 请打开另一个主题以跟踪问题。

    此致

    Ashwani