L'initialisation d'une puce de microprocesseur 8259A implique plusieurs étapes :
1. Réinitialisation à la mise sous tension : Mettez sous tension la puce 8259A. Cela initialise la puce et la met dans un état connu.
2. ICW1 (Mot de contrôle d'initialisation 1) :
- Écrivez 0x11 dans le registre de contrôle d'initialisation (ICW1) pour démarrer le processus d'initialisation.
- Le premier bit (IC4) est mis à 1, indiquant une commande d'initialisation.
- Le deuxième bit (IC3) est également mis à 1, permettant au 8259A d'accepter davantage de mots d'initialisation.
3. ICW2 (Mot de contrôle d'initialisation 2) :
- Écrivez le numéro de base du vecteur d'interruption souhaité dans ICW2.
- Cette valeur spécifie le point de départ des vecteurs d'interruption. Par exemple, si vous écrivez 0x20, les interruptions commenceront à l'emplacement mémoire 0x20.
4. ICW3 (Mot de contrôle d'initialisation 3) :
- Écrivez le mode cascade et le mode interruption souhaités dans ICW3.
- Le bit 0 (IR0-IR2) spécifie le mode d'interruption pour la demande d'interruption (IRQ) 0, 1 et 2.
- Bit 3 (ICW3-4) précise si la puce fonctionne en mode simple (ICW3-4 =0) ou en cascade (ICW3-4 =1).
5. ICW4 (Mot de contrôle d'initialisation 4) :
- Écrivez le mode de masque spécial souhaité et le mode tamponné/déclenché par bord dans ICW4.
- Le bit 1 (SFNM) spécifie le mode spécial entièrement imbriqué.
- Le bit 3 (BUF/EDG) précise si les interruptions sont déclenchées par front (BUF/EDG =0) ou par niveau (BUF/EDG =1).
6. Activer les interruptions :
- Écrivez 0x00 dans le registre de masque d'interruption (IMR) pour activer toutes les interruptions. Cela permet au 8259A de commencer à traiter les interruptions.
Ces étapes complètent le processus d'initialisation de la puce du microprocesseur 8259A, en la configurant pour gérer les demandes d'interruption et les acheminer vers les routines de service d'interruption appropriées.
|