TP / Programmation des Entrées / sorties sur PC
(voir notes à la fin du document)
Objectif 1 :
Modifier timer.c pour vérifier que le compteur est incrémenté 18,5 fois par
seconde
Modifier timer.c pour que la fonction activée par l’interruption d’horloge ne
fasse plus appel à l’ancien gestionnaire de l’événement d’horloge
(fonctionnement identique à Timer2.exe)
Modifier timer.c pour que la fonction activée par l’interruption d’horloge
n’indique plus au contrôleur d’interruption 8259 la fin du traitement de
l’évènement (résultat ?)
Objectif 2 :
1- Comme chaque demande d'interruption peut provenir de plusieurs
interfaces, quel est l'élément qui gère ces demandes et les transmet au
processeur ?
2- Dessiner un schéma représentant cet élément, le processeur et l'interface
8250, avec leurs principales connexions.
3- Comment peut-on interdire la prise en compte de nouvelles interruptions
pendant l'exécution d'un gestionnaire d'interruption ?
4- Que se passe-t-il si une demande d'interruption est faite alors que le
processeur a masqué les interruptions ?
5- Comment le PIC connaît-il le numéro de l'interruption reçue ? Comment ce
numéro est-il transmis au processeur ?
Modifier timer .c pour afficher l’adresse de l’ancien gestionnaire d’interruption
d’horloge : utiliser le format printf ("\t%8.8lx") et vérifier que l’adresse de ce
gestionnaire affichée par x:mft.exe est identique (Mft : afficher FirstMeg +
Interrupt + F3 pour trier par N° INT)
En utilisant MFT, répondre aux questions suivantes :
Combien y a-t-il de vecteurs d’interruptions ?
Combien sont utilisés pour les IRQ
(interruptions matérielles gérées par un 8259)
Un PC AT dispose de 2 circuits 8259 « liés » par un numéro
d’interruption : Compléter le tableau suivant