你好:
我们板子使用6748的MDIO接口连接lan8700芯片。代码参照starterware\third_party\lwip_1.3.2\ports\am1808\netif中的sitaraif.c编写。
现象:
1、代码执行到下图(a)第2步时,返回ERR_CONN,即执行Lan8710aLinkStatusGet()函数后,返回0;
(a)
2、查看Lan8710aLinkStatusGet()函数定义时,见图(b);
单步执行Lan8710aLinkStatusGet()函数,linkStatus的值一直为0;
但是linkStatus的bit31应该为1时,才能使得Lan8710aLinkStatusGet()返回非零值(见标红数字1)
只有这样,才能执行break命令,返回一个非零值。(见标红数字2)
(b)
3、查看MDIOPhyLinkStatusGet()函数,如图(c);以及LINK寄存器的定义可知,只有当LINK寄存器的值为1时,表示has a link,见图(d)
但是现在单步执行到MDIOPhyLinkStatusGet(),其一直返回0。
问:
1、上述现象应该表示:8700没有和PC连接上吧?
2、如果我的网线交叉或者直连模式有问题,会不会导致LINK不上?
3、EAMC模式如果设置有问题,会不会导致LINK不上?
(我仔细查看了代码中有关EMAC和RMII的初始化和设置,应该没有问题)
(c)
(d)



