| Zeile 93: | Zeile 93: | ||
=== Die ISR === | === Die ISR === | ||
| − | Wenn ein Interrupt eintrifft, dann zeigt das CSR0-Register den Grund dafür an | + | Wenn ein Interrupt eintrifft, dann zeigt das CSR0-Register den Grund dafür an (Die folgende Tabelle stellt keine vollständige Übersicht über alle möglichen Zustände des CSR0-Registers dar): |
| − | + | {| {{prettytable}} | |
| − | + | !Bit | |
| − | + | !Name | |
| + | !Erklärung | ||
| + | |- | ||
| + | |0x8000 | ||
| + | |ERR | ||
| + | |Ein Fehler ist aufgetreten. Bit ist gesetzt, wenn CERR-, MISS- oder MERR-Bit in CSR0 gesetzt ist. | ||
| + | |- | ||
| + | |0x2000 | ||
| + | |CERR | ||
| + | |"Collision Error" | ||
| + | |- | ||
| + | |0x1000 | ||
| + | |MISS | ||
| + | |"Missed Frame". Ein eingehendes Paket wurde verloren, weil kein Deskriptor verfügbar war. | ||
| + | |- | ||
| + | |0x800 | ||
| + | |MERR | ||
| + | |"Memory Error" | ||
| + | |- | ||
| + | |0x400 | ||
| + | |RINT | ||
| + | |"Receive Interrupt". Ein Paket wurde abgearbeitet. Siehe dazu „Empfangen von Paketen“. | ||
| + | |- | ||
| + | |0x200 | ||
| + | |TINT | ||
| + | |"Transmit Interrupt". Ein Sendedeskriptor wurde abgearbeitet. Im Fehlerfall wurde das ERROR-Bit im flags-Feld des Deskriptors (0x40000000) gesetzt, andernfalls wurde das Paket gesendet. Die Felder "flags" und "flags2" des Deskriptors sollten dann auf 0 gesetzt werden. | ||
| + | |} | ||
Am Ende der ISR sollte der Inhalt des CSR0-Registers dorthin zurückgeschrieben werden, um der Karte anzuzeigen, dass der Interrupt abgearbeitet wurde. | Am Ende der ISR sollte der Inhalt des CSR0-Registers dorthin zurückgeschrieben werden, um der Karte anzuzeigen, dass der Interrupt abgearbeitet wurde. | ||