cpu1跑ethercat例程,cm核跑lwIP TCP例程。发现如果单独跑cm核(cpu1不配置ethercat),可以正常TCP通讯,但如果同时跑cpu1的ethercat,则ethernet会失败(可以响应IPC中断,但是ethernet部分有问题)。如果在线debug单步执行cm核的初始化、配置部分代码,倒是可以ethercat、ethernet同时正常跑起来。为什么?
cpu1跑ethercat例程,cm核跑lwIP TCP例程。发现如果单独跑cm核(cpu1不配置ethercat),可以正常TCP通讯,但如果同时跑cpu1的ethercat,则ethernet会失败(可以响应IPC中断,但是ethernet部分有问题)。如果在线debug单步执行cm核的初始化、配置部分代码,倒是可以ethercat、ethernet同时正常跑起来。为什么?
感谢您对TI产品的关注。
我们正在核实您的问题,请等待我们的答复。
期待回复。
例程\libraries\communications\Ethercat\f2838x\examples\f2838x_cpu1_echoback_solution,\libraries\communications\Ethernet\third_party\lwip\examples\enet_lwip_udp
各种情况下的时钟配置是一样的,且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
若把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核心。我会看看另一位专家是否可以发表评论。