主题中讨论的其他器件:LP-AM243、 DP83869
工具与软件:
你(们)好、
我有另一个用例、如其他主题中所述。 在一个 LP-AM243x 上、我们删除了 PHY_IN 并保留了 PHY_OUT。 我们所做的 已添加 一个用于规避缺失 PHY_IN 的 PHY 驱动程序。 我们看到、无论 EtherCAT 主站节点是否连接到该板上、EtherCAT SSC 代码均已启动。 我们自己的 EtherCAT 主站应用程序可以扫描并连接到此电路板上的 EtherCAT SSC:由于 PHY_IN 已移除、因此我们使用了主站侧的线路交叉。
然后、我们移除了另一个 LP-AM243电路板上的 PHY_OUT、并保留了 PHY_IN。 我们针对缺少的 PHY 使用了相同的软件和相同的 Phy 驱动程序。 此次 EtherCAT SSC 可以正常启动。 代码在 while 循环的 MDIO_phyRegRead ()中挂起。
if (retval == SystemP_Success)
{
/*等待事务完成*/
while (CSL_MDIO_USER_GROUP_USER_ACCESS_REG_GO_EN_0x1 ==
CSL_FEXT (hMdioRegs->USER_GROUP[userGroup]。 USER_ACCESS_REG、MDIO_USER_GROUP_USER_ACCESS_REG_GO)
{}
// PS:
我们交换了数组中的元素0和1 -这并没有改变结果。
静态 CUST_PHY_CBextPhyLibDetect_t CUST_PHY_knownImplementation []=
{
CUST_PHY_DP83869_DETECT、
CUST_PHY_Mock_detect、
null
};
您能否提供一些提示、用于调试代码在调用任何 Detect 函数之前在 while 循环中挂起的问题?