Die Initialisierung eines 8259A-Mikroprozessorchips umfasst mehrere Schritte:
1. Einschalt-Reset: Versorgen Sie den 8259A-Chip mit Strom. Dadurch wird der Chip initialisiert und in einen bekannten Zustand versetzt.
2. ICW1 (Initialisierungssteuerwort 1):
- Schreiben Sie 0x11 in das Initialization Control Register (ICW1), um den Initialisierungsprozess zu starten.
– Das erste Bit (IC4) ist auf 1 gesetzt, was einen Initialisierungsbefehl anzeigt.
– Das zweite Bit (IC3) ist ebenfalls auf 1 gesetzt, sodass der 8259A mehr Initialisierungswörter akzeptieren kann.
3. ICW2 (Initialisierungssteuerwort 2):
- Schreiben Sie die gewünschte Interrupt-Vektor-Basisnummer in ICW2.
– Dieser Wert gibt den Startpunkt für die Interrupt-Vektoren an. Wenn Sie beispielsweise 0x20 schreiben, beginnen die Interrupts am Speicherort 0x20.
4. ICW3 (Initialisierungssteuerwort 3):
- Schreiben Sie den gewünschten Kaskadenmodus und Interrupt-Modus in ICW3.
- Bit 0 (IR0-IR2) gibt den Interrupt-Modus für Interrupt Request (IRQ) 0, 1 und 2 an.
- Bit 3 (ICW3-4) gibt an, ob der Chip im Einzel- (ICW3-4 =0) oder Kaskadenmodus (ICW3-4 =1) arbeitet.
5. ICW4 (Initialisierungssteuerwort 4):
- Schreiben Sie den gewünschten Spezialmaskenmodus und den gepufferten/flankengetriggerten Modus in ICW4.
- Bit 1 (SFNM) gibt den speziellen vollständig verschachtelten Modus an.
- Bit 3 (BUF/EDG) gibt an, ob Interrupts flankengesteuert (BUF/EDG =0) oder pegelgesteuert (BUF/EDG =1) sind.
6. Interrupts aktivieren:
- Schreiben Sie 0x00 in das Interrupt Mask Register (IMR), um alle Interrupts zu aktivieren. Dadurch kann der 8259A mit der Verarbeitung von Interrupts beginnen.
Diese Schritte schließen den Initialisierungsprozess des 8259A-Mikroprozessorchips ab und konfigurieren ihn für die Verarbeitung von Interrupt-Anfragen und deren Weiterleitung an die entsprechenden Interrupt-Serviceroutinen.