Het initialiseren van een 8259A-microprocessorchip omvat verschillende stappen:
1. Reset bij inschakelen: Schakel de 8259A-chip van stroom. Hierdoor wordt de chip geïnitialiseerd en in een bekende staat gebracht.
2. ICW1 (Initialisatiecontrolewoord 1):
- Schrijf 0x11 naar het Initialization Control Register (ICW1) om het initialisatieproces te starten.
- De eerste bit (IC4) wordt op 1 gezet, wat een initialisatiecommando aangeeft.
- De tweede bit (IC3) wordt ook op 1 gezet, waardoor de 8259A meer initialisatiewoorden kan accepteren.
3. ICW2 (Initialisatiecontrolewoord 2):
- Schrijf het gewenste basisnummer van de interruptvector naar ICW2.
- Deze waarde specificeert het startpunt voor de interruptvectoren. Als u bijvoorbeeld 0x20 schrijft, beginnen de interrupts op geheugenlocatie 0x20.
4. ICW3 (Initialisatiecontrolewoord 3):
- Schrijf de gewenste cascademodus en interruptmodus naar ICW3.
- Bit 0 (IR0-IR2) specificeert de interruptmodus voor Interrupt Request (IRQ) 0, 1 en 2.
- Bit 3 (ICW3-4) specificeert of de chip in enkele (ICW3-4 =0) of cascademodus (ICW3-4 =1) werkt.
5. ICW4 (Initialisatiecontrolewoord 4):
- Schrijf de gewenste speciale maskermodus en gebufferde/randgetriggerde modus naar ICW4.
- Bit 1 (SFNM) specificeert de speciale, volledig geneste modus.
- Bit 3 (BUF/EDG) specificeert of interrupts flankgetriggerd (BUF/EDG =0) of niveaugetriggerd (BUF/EDG =1) zijn.
6. Onderbrekingen inschakelen:
- Schrijf 0x00 naar het Interrupt Mask Register (IMR) om alle interrupts in te schakelen. Hierdoor kan de 8259A beginnen met het verwerken van interrupts.
Deze stappen voltooien het initialisatieproces van de 8259A-microprocessorchip, waarbij deze wordt geconfigureerd om interruptverzoeken af te handelen en deze naar de juiste interruptserviceroutines te routeren. |