Les interruptions – Ph. Hoppenot Les interruptions I.Notion d'interruption II.Exemple du 8051 III.Exemple du 68000
Les interruptions – Ph. Hoppenot I. Notion d'interruption Evénement extérieur Pgm principal: Routine IT: SP -> Sauvegarde du contexte Acquittement Restitution du contexte Retour Adresse de retour Contexte Interruption validée ? Recherche de l'adresse de la routine d'IT 4
Les interruptions – Ph. Hoppenot I. Notion d'interruption A retenir pour mettre en œuvre une interruption Initialisation - Validation de l'interruption - Choix de l'adresse de la routine d'IT Fonctionnement - Evénement - Sauvegarde du contexte - Acquittement - Restitution du contexte Le reste est exécuté automatiquement par le système.
Les interruptions – Ph. Hoppenot I. Notion d'interruption Notion de priorité Si 2 événements arrivent en même temps L'interruption de niveau le + élevé s'exécute, puis celle de niveau inférieur. Si un événement arrive pendant l'exécution d'une routine d'IT - 1 interruption de niveau inférieur ne peut pas interrompre une interruption de niveau supérieur - 1 interruption de niveau supérieur peut éventuellement interrompre une interruption de niveau inférieur
Les interruptions – Ph. Hoppenot II. Exemple du 8051 Sources d'interruption Validation Priorité
Les interruptions – Ph. Hoppenot II. Exemple du 8051 Adresses des routines d'interruption RESET :Saut à l'adresse0000h de la mémoire INT0:Saut à l'adresse0003hde la mémoire TIMER0 :saut à l'adresse000Bhde la mémoire INT1:Saut à l'adresse0013hde la mémoire TIMER1 :Saut à l'adresse001Bhde la mémoire TI ou RI :Saut à l'adresse0023hde la mémoire
Les interruptions – Ph. Hoppenot II. Exemple du 8051 org0000h; Prochaine instruction à l'adresse 0000h de la mémoire prgm ljmpdebut; saut à l'adresse du label debut org00013h; Prochaine instruction à l'adresse 0013h de la mémoire prgm ljmppint1; saut à l'adresse du label pint1 org0030h; Prochaine instruction à l'adresse 0030h de la mémoire prgm debut:clr PX1 ; Priorité de l'interruption INT1 à 0 clr IE1; indicateur d'interruption : en attente setb EX1; demasque l'interruption INT1 setb EA; validation générale des interruptions …; suite des initialisations Princ:…; programme principal ljmp Princ; boucle du programme principal pint1: push PSW; sauvegarde du contexte push ACC …; acquittement de l'iterruption …; traitement pop ACC; restitution du contexte pop PSW reti; retour au programme principal
Les interruptions – Ph. Hoppenot III. Exemple du Sources d'interruptions Reset 7 sources externes BERR IT logicielles Validation des interruptions SR
Les interruptions – Ph. Hoppenot III. Exemple du Priorité des interruptions Reset BERR Extérieures: en fonction du n° d'IT (IPL) IT logicielles Adresse d'une routine d'interruption VBRPointeur sur une table de vecteurs d'interruptions A chaque interruption est associé un numéro de vecteur A l'adresse de ce vecteur on trouve l'adresse de la routine d'IT Ex:IT externes n°25 à 31 n° vecteur: n°IT*4 Vecteur n° 284*28 = 112 = $70