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.

[参考译文] CCS/66AK2H14:MCSDK clink 示例不起作用。

Guru**** 2943400 points

Other Parts Discussed in Thread: 66AK2H14

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/666613/ccs-66ak2h14-mcsdk-clink-example-not-working

器件型号:66AK2H14
主题中讨论的其他器件:TCI6636K2HTCI6638K2K

工具/软件:Code Composer Studio

尊敬的 e2e 团队:

我不熟悉 TI 处理器和 CCS、因此很难找到正确的路径。 我有 带板载 USB 仿真器的66AK2H EVM 版本4。 我想运行位于 c/ti/mcsdk_BIOS_3_01_04_07/examples/ndk/hellowt/evmk2h 上的 Clint 应用程序。 我已成功将示例导入我的工作空间并进行构建。 当我打开项目属性并转到那里的"产品"选项卡时、我找到了该选项卡           

目标:    ti.targets.elf.c66

平台:   ti.platforms.evmTCI6636K2H

但 我的评估板上没有 TCI6636K2H、而是66AK2H14。  我尝试在平台列表中找到66AK2H、但无法找到。

请告诉我、在为 TCI6636K2H 编写此示例时、是否可以在66AK2H EVM 上运行该示例?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    团队将收到通知。 他们将直接在此处发布反馈。

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

    该平台定义了 CPU 速度、存储器地址和代码/数据放置。 此6636K2H 平台应适用于66AK2H14。

    但 MCSDK 已经过时、请尝试66AK2H14的最新 Processor SDK RTOS: processors.wiki.ti.com/.../Processor_SDK_RTOS_Getting_Started_Guide

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

    我使用的是 CCS 版本:7.4.0.00015和 MCSDK 版本:mcsdk_3_01_04_07_setupwin32。 请告诉我我是否正在使用较旧版本、因为我最近下载了这两个版本。 我也无法找到66AK2H 平台的初始化文件、只要我将 Clint 示例目标从6636K2H 更改为66AK2H、它就无法正常工作。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Clint 示例始终停留在 CSL_IDEF_INLINE void CSL_SerdesWaitForSigGet (uint32_t base_addr、uint32_t lannel_num)中
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    请为 K2H 使用 Processor SDK RTOS 4.2、CCS 为7.3.0、请参阅下载链接:
    software-dl.ti.com/.../index_FDS.html

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

    尊敬的 Eric:

    我现已更新为适用于 K2H 的 SDK RTOS 4.2。

    我找不到 EVM 66AK2H 的初始化文件。

    在中打开 GEL 文件时

    /../emulation/boards/xtcievmk2x/gel/xtcievmk2x.gel   

    *文件名:evmtci6638k2k.gel
    *说明:与 TCI6638K2K EVM 配合使用的实用程序 GEL。

    现在我的 EVM 上没有 TCI6638K2K、但我的 EVM 板上有66AK2H。

    我尝试在 ./../emulation/boards 目录 b 中找到66AK2H EVM、但没有任何类似的东西。

    现在 、客户端示例不起作用的唯一原因是我的板 PLL 配置不正确。

    请告诉我的66AK2H EVM GEL 文件在哪里??????????

    此致、Umer

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

    K2H 的 GEL 文件与 K2K 相同、请使用 ccsv7\ccs_base\emulation\boards\xtcievmk2x\gel 下的 GEL 文件

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

    我选择了您提到的 GEL 文件、并具有以下控制台输出

    C66xx_0:GEL 输出:
    正在连接目标...
    C66xx_0:GEL 输出:TCI6638K2K GEL 文件版本为1.70000005
    C66xx_0:GEL 输出:检测到的 PLL 旁路被禁用:SECCTL[旁路]= 0x00000000
    C66xx_0:GEL 输出:(3A) PLLCTL = 0x00000040
    C66xx_0:GEL 输出:(3B) PLLCTL = 0x00000040
    C66xx_0:GEL 输出:(3c)延迟...
    C66xx_0:GEL 输出:(4) PLLM[PLLM]= 0x0000000F
    C66xx_0:GEL 输出:MAINPLLCTL0 = 0x07000000
    C66xx_0:GEL 输出:(5) MAINPLLCTL0 = 0x07000000
    C66xx_0:GEL 输出:(5) MAINPLLCTL1 = 0x00000040
    C66xx_0:GEL 输出:(6) MAINPLLCTL0 = 0x07000000
    C66xx_0:GEL 输出:(7) SECCTL = 0x00090000
    C66xx_0:GEL 输出:(8A)延迟...
    C66xx_0:GEL 输出:PLL1_DIV3 = 0x00008002
    C66xx_0:GEL 输出:PLL1_DIV4 = 0x00008004
    C66xx_0:GEL 输出:PLL1_DIV7 = 0x00000000
    C66xx_0:GEL 输出:(8D/e)延迟...
    C66xx_0:GEL 输出:(10)延迟...
    C66xx_0:GEL 输出:(12)延迟...
    C66xx_0:GEL 输出:(13) SECCTL = 0x00090000
    C66xx_0:GEL 输出:(延迟...
    C66xx_0:GEL 输出:(延迟...
    C66xx_0:GEL 输出:(14) PLLCTL = 0x00000041
    C66xx_0:GEL 输出:PLL 已配置(CLKIN * PLLM/PLLD/PLLOD = PLLOUT):
    C66xx_0:GEL 输出:PLL 已配置(122.879997MHz * 16/1/2 = 983.039978MHz)
    C66xx_0:GEL 输出:DISABLESTAT --> 0x000007FF
    C66xx_0:GEL 输出:为所有 PSC 模块和 DSP 域加电...
    C66xx_0:GEL 输出:为所有 PSC 模块和 DSP 域加电... 完成。
    C66xx_0:GEL 输出:警告:SYSCLK 是 PA PLL 的输入。
    C66xx_0:GEL 输出:已完成 PA PLL 设置
    C66xx_0:GEL 输出:PAPLLCTL0 -之前:0x09080500之后:0x09080500
    C66xx_0:GEL 输出:PAPLLCTL1 -之前:0x00002040之后:0x00002040
    C66xx_0:GEL 输出:DDR 开始
    C66xx_0:GEL 输出:XMC 设置完成。
    C66xx_0:GEL 输出:DDR3 PLL (PLL2)设置...
    C66xx_0:GEL 输出:DDR3 PLL 设置完成、DDR3A 时钟现在以666MHz 运行。
    C66xx_0:GEL 输出:DDR3A 初始化完成
    C66xx_0:GEL 输出:DDR3 PLL 设置...
    C66xx_0:GEL 输出:DDR3 PLL 设置完成、DDR3B 时钟现在以800MHz 运行。
    C66xx_0:GEL 输出:DDR3B 初始化完成
    C66xx_0:GEL 输出:DDR 完成

    这是否意味着运行 Clint 示例所需的一切都已在66AK2H EVM 上成功配置???

    粘附应用程序仍卡在:

    CSL_IDEF_INLINE void CSL_SerdesWaitForSigGet (uint32_t base_addr、uint32_t lannel_num)

    uint32_t retval = 0;

    while (retval!= 1)

    RetVal =(CSL_SERDES_STATUS) CSL_FEXTR (*(volatile UINT32_t *)
    (base_addr + 0x1ff4)、(0 + lane _num)、(0 + lane num));

     

    请告诉我我为什么会遇到这个问题、以及如何从这个问题中解决?  

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

    它看起来是 SGMII 串行器/解串器问题。 MCSDK 支持已过时、Processor SDK RTOS 4.2 :processors.wiki.ti.com/.../Processor_SDK_RTOS_NDK 中有 NIMU 测试应用 我们对其进行了测试并使用了该应用。

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

    您好!

    感谢您的回答。

    我不认为它的 SGMII 问题。 在调试应用程序之后,我知道 configSerDES();是从 platform.c 调用的

    if (p_flags->phy){
    configSerDES();
    INIT_SGMII (0);
    //Init_SGMII (1);

    当我步入 configSerDES()函数时,该函数会调用另一个从 evmc66x_phy.c 调用的函数

    void CSL_SgmiiDefSerdesSetup()

    uint32_t i;
    CSL_SERDES_RESULT CSL_retval;
    CSL_SERDES_RAIN_ENABLE_STATUS RAIN_REVal = CSL_SERDES_RAIN_ENABLE_NO_ERR;
    CSL_SERDES_RAIN_ENABLE_PARAMS_T SerDes_RAIN_ENABLE_PARAMS;

    memset (&SerDes_lane enable_params、0、sizeof (SerDes_lane enable_params));

    SerDes_lane enable_params.base_addr = CSL_NETCP_SERDES_CFG_regs;
    SerDes_lane enable_params.ref_clock = CSL_SERDES_REF_clock_156p25M;
    SerDes_lane enable_params.linkrate = CSL_SERDES_LINK_RATE_1p25G;
    SerDes_lane enable_params.num_lams = 4;
    SerDes_lane enable_params.phy_type = SERDES_SGMII;
    for (i=0;i< SerDes_lane 启用参数.num_lams;i++)

    SerDes_lane enable_params.lane ctrl_rate [i]= CSL_SERDES 通道四分之一速率;
    SerDes_lane enable_params.loopback _mode.i]= CSL_SERDES_loopback 禁用;

    //当 RX 自动调整打开时,这些是用于 att、boost adaptation 的起始值*/
    SerDes_lane enable_params.rx_coeff.att_start[i]= 7;
    SerDes_lane enable_params.rx_coeff.BOOST_START[i]= 5;

    /*对于更高速度的 PHY-A、强制衰减和升压值*/
    SerDes_lane enable_params.rx_coeff.force_att_val[i]= 1;
    SerDes_lane enable_params.rx_coeff.force_boost_val[i]= 1;

    /* CM、C1、C2通过 Serdes Diagnostic BER 测试获得*/
    SerDes_lane enable_params.TX_coeff.cm_coeff[i]= 0;
    SerDes_lane enable_params.TX_coeff.c1_coeff[i]= 0;
    SerDes_lane enable_params.TX_coeff.c2_coeff[i]= 0;
    SerDes_lane enable_params.TX_coeff.TX_att [i]= 12;
    SerDes_lane enable_params.TX_coeff.TX_vreg[i]= 4;

    SerDes_lane enable_params.lane 掩码=(1 << SerDes_lane enable_params.num_lane)- 1;
    SerDes_lane enable_params.OPERATION_MODE = CSL_SERDES_Functional;

    /*通过串行器/解串器诊断 PRBS 校准测试获取 Att 和升压值*/
    /*对于更高速度的 PHY-A、强制衰减和升压值*/
    SerDes_lane enable_params.forceattboost = CSL_SERDES_FORCE_ATT_BOOST_DISABLED;

    /* SB CMU 和 COMLANE 以及通道设置*/
    CSL_retval = CSL_EthernetSerdesInit (SerDes_lane 使能_params.base_addr、
    SerDes_lane、enable_params.ref_clock、
    SerDes_lane enable_params.linkrate);

    /*通用初始模式*/
    /*迭代模式需要首先设置为公共 Init 模式、且 lane 掩码值等于正在配置的通道总数*/
    /*通道掩码是一种不关心公共 Init 的方法、因为它在所有通道上运行。 它始终在 API 中将其内部设置为0xF */
    serdes_lane_enable_params.iteration_mode = CSL_SERDES_RANE_ENABLE_COMON_INIT;
    SerDes_lane enable_params.lane 掩码= 0xF;
    Lane_retval = CSL_SerdesLaneEnable (&SerDes_lane 启用参数);

    /*信道初始化模式*/
    //使用 iteration_mode = CSL_SERDES_lane ENABLE_common_init 调用 CSL_SerdesLaneEnable 后,需要通过设置启用通道
    iteration_mode = CSL_SERDES_lane、enable_lane、其中 lane 掩码等于要配置的特定通道*
    //例如,如果配置了通道0,则需要将通道掩码设置为0x1。 如果正在配置通道1、则通道掩码需要为0x2等*/
    serdes_lane_enable_params.iteration_mode = CSL_SERDES_RANE_ENABLE_RANE_INIT;
    for (i=0;i< SerDes_lane 启用参数.num_lams;i++)

       SerDes_lane enable_params.lane 掩码= 1<<i;
       Lane_retval = CSL_SerdesLaneEnable (&SerDes_lane 启用参数);

    在该函数中、SerDes_lane 、enable_params.num_lams = 4;语句会导致问题、因为我的 EVM66AK2H bord 上只有两个通道。

    因此、当我将 num_lanes 从4更改为2并编译工程和调试时、应用程序仍显示 num_lanes = 4、我不知道发生这种情况的原因。

    请告诉我为什么 我的项目中未更新 evmc66x_phy.c 中的更改。

     

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

    我尝试了 MCSDK 3.1.4.7客户端示例、我发现了相同的问题、但 MCSDK 已过时、我们没有计划修复它。 您提到过您将代码 num_lanes 从4更改为2、但未生效。 您需要查看 CCS 项目和映射文件、该文件是如何链接的、它是来自类似 platform.lib 的库吗? 另外、尝试在您更改的文件中设置一些语法错误、然后构建该文件、您是否看到任何错误?

    我建议您尝试使用 Processor SDK RTOS 4.2中的 hello world 示例。

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

    您好!

    我已成功构建并运行客户端示例。 但我没有从 DHCP 获取 IP。

    [C66xx_0] QMSS 已成功初始化
    CPPI 已成功初始化
    PA 已成功初始化

    TCP/IP 堆栈示例客户端
    配置 DHCP 客户端
    已成功初始化传递
    以太网子系统已成功初始化
    以太网 EventID:48和 vectId (中断):7.
    EMAC 注册成功,正在等待链接。
    服务状态:DHCP:已启用:000
    服务状态:Telnet:已启用:000
    服务状态:HTTP:已启用:000
    服务状态:DHCP:已启用:正在运行:000

    这是控制台输出、我只是等待很长时间、但它不会向前移动、只停留在这里。 请告诉我哪里出错或周围发生了什么。

    此致、Umer

     

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

    尝试使用固定 IP、EVM 上应该有一些设置:

    //如果指定了 IP 地址,请手动配置 IP 和网关
    #if defined (_SCBP6618X_)|| Defined (_EVMTCI6614_)|| Defined (DEVICE_K2H)|| Defined (DEVICE_K2K)|| Defined (DEVICE_K2E)|| Defined (DEVICE_K2L)
    /* SCBP6618x、EVMTCI6614、EVMK2H、EVMK2K 始终使用 DHCP */
    如果(0)
    其他
    if (!platform_get_switch_state (1)))
    #endif


    只需使用固定 IP 即可直接覆盖代码。 我不确定 DHCP 是否正常工作、如果 EVM 发生故障或 DHCP 服务器出现问题、您可以使用 Wireshark 对其进行调试、以进行数据包跟踪。

    BTW、Processor SDK RTOS 中的同一程序仅支持固定 IP、而不支持 DHCP。

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

    尊敬的 Eric

    我已成功构建并运行 UDP Eco 客户端示例、并使用 Hercules 对其进行测试。

    我的下一个任务是在不使用 IP 协议的情况下传输以太网数据包。 因此、我必须在 EMAC 层上工作。

    您能告诉我哪些层应该绕过才能在 EMAC 层上工作吗? 我们需要最大吞吐量、因此无法承受 IP 开销。  

    我还想知道、可以使用以太网直接连接66AK2H EVM 板与我的笔记本电脑 、以便绕过路由器。

    另外、如果有任何 EMAC 数据包传输示例项目是为了实现高吞吐量而设计的、请告诉我。

    此致、Umer  

     

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

    是的、您可以直接将 EVM 与 PC 相连、两者之间没有任何开关/路由器。 关于高吞吐量、有两个示例、一个是 PA 示例、另一个是 NIMU 示例:
    processors.wiki.ti.com/.../Processor_SDK_RTOS_PA
    processors.wiki.ti.com/.../Processor_SDK_RTOS_NDK

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

    您好!

    实际上、我不想使用任何 IP 地址、因为它应该是只具有 MAC 地址的点对点通信。 我只想将原始以太网帧从 EVM 发送到我的笔记本电脑。

    在 UDP 回波示例中、只有14Mbit/s、与1Gb/s 接口相比、这一数值非常低。  

    是否有任何仅发送和接收原始以太网的低级示例?

    谢谢  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您可以在 processors.wiki.ti.com/.../Processor_SDK_RTOS_PA 下尝试 PA EMAC 示例。 驱动程序只需将预定义的数据包发送出去,当配置为无环回模式时,您可以通过 PC 接收数据包。

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

    尊敬的 Eric

    我尝试了位于  C:\ti\pdk_keystone2_3_01_04_07\packages/ti\drv\pa\examples\emacExample 的 EMAC 示例。  当我在内部回路中使用它时、此示例有效 、但当我将其更改为外部回路 无回路时 、它会被吸入  

    /*等待 SGMII 链接*/
    if (!cpswSimTest)(如果!cpswSimTest

    操作

    CSL_SGMII_getStatus (macPortNum、_sgmiiStatus);

    while (sgmiiStatus.bIsLinkUp!= 1);

    当在两个以太网插孔上都打开时、我看到链路 LED 亮起、显示1Gbps 链路状态。

    我使用的是 EVM66A K2H。

    您能告诉我为什么在本示例中找不到 SGMII 链接吗?  这种行为的可能原因是什么。

    我注意到、在本示例中、没有从 main 调用 platform_init 函数。  

     

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

    PA 示例不需要平台库。 如果您发现 SGMII 链路未启动、则需要检查它是哪个 SGMII 端口? 代码可能定义了两个端口用于测试、EVM 具有2个 RJ-45、您是否都已将它们连接到网络? 或者、您需要使用用于测试的 SGMII 端口号修改测试应用。

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

    是的、在我的 EVM 上有 RJ-45连接器、根据我的知识、连接到 SGMII (0)、另一个连接到 SGMII (1)。 我将两个端口相互连接、即电缆的一端连接到 phy0、另一端连接到 phy1、如外部回路。

    在客户端示例中、从平台初始化函数成功执行了 SGMII 初始化、但在 EMAC 示例中、它只是卡住了。  

    在相互连接到 PHY 端口时是否存在任何错误。

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

    是否可以将 RJ-45连接到 PC? 我相信有这样的代码:

     对于(macPortNum = 0;macPortNum < gNum_Mac_Ports;macPortNum++)

      {

        IF (Init_SGMII (macPortNum))

         返回-1;

        init_MAC (macPortNum、&macSrcAddress[macPortNum][0]、MTU);

      }

    您能否只需初始化用于连接到 PC 的 SGMII 端口0或1来更改代码?

    此致、Eric