Les interruptions I Notion dinterruption II Exemple du

  • Slides: 9
Download presentation
Les interruptions I. Notion d'interruption II. Exemple du 8051 III. Exemple du 68000 Les

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 3 Interruption validée ? 4 Recherche de l'adresse de

I. Notion d'interruption Evénement extérieur 3 Interruption validée ? 4 Recherche de l'adresse de la routine d'IT Pgm principal: . 2 . 1. . . SP ->. 11 . Contexte 7 9 SP -> Adresse de retour. 5 10. 6 Routine IT: 7 Sauvegarde du contexte Acquittement 8. . . 9 Restitution du contexte Retour 10 Les interruptions – Ph. Hoppenot

I. Notion d'interruption A retenir pour mettre en œuvre une interruption Initialisation - Validation

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

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 Priorité Sources d'interruption Validation Les interruptions – Ph. Hoppenot

II. Exemple du 8051 Priorité Sources d'interruption Validation Les interruptions – Ph. Hoppenot

II. Exemple du 8051 Adresses des routines d'interruption RESET : INT 0: TIMER 0

II. Exemple du 8051 Adresses des routines d'interruption RESET : INT 0: TIMER 0 : INT 1: TIMER 1 : TI ou RI : Saut à l'adresse saut à l'adresse Saut à l'adresse 0000 h 0003 h 000 Bh 0013 h 001 Bh 0023 h de la mémoire de la mémoire Les interruptions – Ph. Hoppenot

II. Exemple du 8051 org 0000 h ; Prochaine instruction à l'adresse 0000 h

II. Exemple du 8051 org 0000 h ; Prochaine instruction à l'adresse 0000 h de la mémoire prgm ljmp debut ; saut à l'adresse du label debut org 00013 h ; Prochaine instruction à l'adresse 0013 h de la mémoire prgm ljmp pint 1 ; saut à l'adresse du label pint 1 org 0030 h ; Prochaine instruction à l'adresse 0030 h de la mémoire prgm debut: clr PX 1 ; Priorité de l'interruption INT 1 à 0 clr IE 1 ; indicateur d'interruption : en attente setb EX 1 ; demasque l'interruption INT 1 setb EA ; validation générale des interruptions … ; suite des initialisations Princ: … ; programme principal ljmp Princ ; boucle du programme principal pint 1: 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 68000 Sources d'interruptions Reset 7 sources externes BERR IT logicielles Validation

III. Exemple du 68000 Sources d'interruptions Reset 7 sources externes BERR IT logicielles Validation des interruptions SR Les interruptions – Ph. Hoppenot

III. Exemple du 68000 Priorité des interruptions Reset BERR Extérieures: en fonction du n°

III. Exemple du 68000 Priorité des interruptions Reset BERR Extérieures: en fonction du n° d'IT (IPL) IT logicielles Adresse d'une routine d'interruption VBR Pointeur 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° 28 4*28 = 112 = $70 Les interruptions – Ph. Hoppenot