Пытаюсь запустить пример EMAC из пакета примеров. Программа виснет, ждёт окончания тайаута, в функции
DWORD PHYInit( DWORD PHYType )
при чтении и проверки флага BMCR_RESET
Код
WritePHY( PHY_BMCR, BMCR_RESET );
for ( i = 0; i < 0x20; i++ ); /* short delay */
timeout = MII_BMSR_TIMEOUT * 4;
while ( timeout != 0 )
{
regValue = ReadPHY( PHY_BMCR );
if ( (regValue & BMCR_RESET) == 0x0000 )
{
break; /* Reset self cleaned once the reset process is complete */
}
timeout--;
}
Что не так делаю?
В даташите не найду описание портов, регистров, флагов (PHY_BMCR, BMCR_RESET, ...).