TMS320F28388D: cpu1跑ethercat例程,cm核跑lwIP TCP例程,28388D

Part Number: TMS320F28388D

cpu1跑ethercat例程,cm核跑lwIP TCP例程。发现如果单独跑cm核(cpu1不配置ethercat),可以正常TCP通讯,但如果同时跑cpu1的ethercat,则ethernet会失败(可以响应IPC中断,但是ethernet部分有问题)。如果在线debug单步执行cm核的初始化、配置部分代码,倒是可以ethercat、ethernet同时正常跑起来。为什么?

  • cpu1单独跑ethercat,cm单独跑ethernet,都是没有问题的。cpu1跑ethercat+cm跑ethernet在debug模式下,单步执行cm核(while 循环前的配置代码),也是没有问题的

  • 感谢您对TI产品的关注。
    我们正在核实您的问题,请等待我们的答复。

  • 期待回复。

    例程\libraries\communications\Ethercat\f2838x\examples\f2838x_cpu1_echoback_solution,\libraries\communications\Ethernet\third_party\lwip\examples\enet_lwip_udp

  • 您好

    你能验证这两种情况下的时钟配置吗?我知道eCAT有特定的时钟配置要求,最好使用AUXPLL生成eCAT核心。

  • 各种情况下的时钟配置是一样的,且ecat一直是正常的,不正常的是cm核跑的ethernet例程。另外,比较疑惑的是debug模式下运行正常,但正常运行却不行。

        //
        // Aux = 500MHz and use /5 to get 100MHz for ECAT IP
        // (There is a built in /4 to get 25MHz for PHY when using
        //  internal clocking for PHY)
        //
        SysCtl_setECatClk(SYSCTL_ECATCLKOUT_DIV_5, SYSCTL_SOURCE_AUXPLL,
                          ESC_USE_INT_PHY_CLK);
    
        SysCtl_setCMClk(SYSCTL_CMCLKOUT_DIV_5, SYSCTL_SOURCE_AUXPLL); //100MHZ

  • 如果cpu1跑ethernet_c28x_config例程,cm核的ethernet lwIP TCP程序是正常运行没问题。所以我怀疑是不是cpu1跑的EtherCAT和cm核跑的ethernet有资源共享产生了冲突?或者其他我还不清楚的原因。但是,连上JTAG仿真器在线debug,单步执行cm的配置代码确实能正常运行,我不明白为什么?

  •   debug模式下,即便不单步运行、不打断点(cm好像只支持打1个断点)也是正常的。但是正常跑就是不行。不明白哪里有问题,时序问题?我尝试每段配置后加1s延时,正常跑也还是不行

  •   若把EtherCAT的HW_Init()注释掉,不在debug模式下也是能正常运行cm核的EtherNET的。HW_Init()就是例程里提供的。所以看上去是2个问题:1、为什么debug模式下ecat和enet同时运行正常?2、为什么HW_Init()会影响正常运行时cm核的ethernet运行,但在JTAG在线debug运行时却没有任何影响?

  • 各种情况下的时钟配置是一样的,且ecat一直是正常的,不正常的是cm核跑的ethernet例程。另外,比较疑惑的是debug模式下运行正常,但正常运行却不行。

    在对多核项目进行常规测试时,您遵循的顺序是什么?您是先加载并运行cpu1吗?听起来cpu1可能没有正确分配资源和释放CM核心。我会看看另一位专家是否可以发表评论。