您好!
我的客户使用 AMIC110创建了 EtherNet/IP 适配器产品。
主设备(扫描仪)以菊花链的形式连接到7个从设备(适配器)。
运行几天后、从器件将随机进入无限循环、无法进行通信。
频率未知。 有时它不会在一周内发生、有时它会在几十小时内发生。
他们已经在各种环境中进行了验证、从设备更换、电缆更换...
因此、我们怀疑 AMIC110软件是问题所在。
此程序与 PRU-ICSS 以太网 IP 示例几乎相同。
μ・PROCESSOR-SDK-RTOS (版本:05.02.00.10)
・PRU-ICSS-EtherNetIP-ADAPTER (版本:01.00.03.04)
μ・Code Composer Studio (版本:9.3.0.00012)
当通信中断时、器件处于无限循环中。
pdk_am335x_1_0_13\packages/ti\transport \NDK\Nimu_ICSS\src\Nimu_icssSwitchEmac.c
在"Nimu_ICSS_rxServiceCheck"函数中。
我们猜测 rxCallBack 调用的 ICSS_EmacRxPktGet 中可能存在问题。
pdk_am335x_1_0_13\packages/ti_drv\ICSS_EMAC\src\ICSS_emacDrv.c
正常操作为"update_rd_ptr <queue_wr_ptr", and WP (wr_ptr) is copied to RP (rd_ptr).
出现此问题时、update_rd_ptr (RP)> queue_wr_ptr (WP)。
因此、"if (update_rd_ptr! = Queue_wr_ptr)"始终为真、并执行"rxArg->More = 1"。
通常不会发生这种情况。 (由于环形缓冲器、它可能偶尔发生)
客户有以下问题:
问题1:"RP>WP"何时出现?
问题2:您能告诉我如何解决这种情况吗?
此致、
请