Цитата(aaarrr @ Apr 18 2009, 04:57)

А TE сбрасывать приходится? Ну, может просто повезло. Однако ситуация была отловлена вполне конкретно: TGO стоит, а передачи на самом деле нет.
Приходится, но это редкое явление, хотя устройств много... уже б наверное проявилось где-то/как-то.
Вот сейчас проделал небольшой эксперимент "в лоб", после установки EMAC_TSTART вставил сл. код:
Код
....
// Start frame transmission.
pEMAC->EMAC_NCR |= AT91C_EMAC_TSTART;
delay_cycles( rnd() & 0xFFF );
if (pEMAC->EMAC_TSR & AT91C_EMAC_TGO)
{
pEMAC->EMAC_NCR &= ~AT91C_EMAC_TE;
r++;
if (pEMAC->EMAC_TSR & AT91C_EMAC_TGO)
f++; // TGO still set (reset failed)
else
s++; // TGO=0 (reset succeed)
}
....
}
Пока r == s (уже > 100K)
PS: проц из относительно старой партии - 0616.