Aller au contenu

EX06 - Traitement des interruptions

Exercice 1 : Concept général

Décrivez succinctement le concept général d’un interruption, d’exception et de leur traitement.

Exercice 2 : Types d’événements

Citez et décrivez les types d’événements pouvant survenir sur un système à µP.
Décrivez la différence entre des événements ou interruptions synchrones et asynchrones.

Exercice 3 : Séquence d’interruption

Citez les 4 étapes principales du traitement d’une interruption.

Exercice 4 : Table des vecteurs d’interruptions

Décrivez la fonction de la table des vecteurs d’interruptions.
Indiquez son contenu.

Exercice 5 : Commutation de contexte

Expliquez la commutation de contexte d’interruption.
Décrivez la latence d’interruptions.
Décrivez la gigue d’interruptions et donnez quelques exemples.

Exercice 6 : Interruptions imbriquées

Décrivez le principe d’interruptions imbriquées.

Exercice 7 : Section critique

Quel est le résultat de l’instruction ci-dessous si durant l’exécution de l’instruction une interruption matérielle est levée et appelle la fonction “irq_handler” ?

int len = 0;

len += 2;   // <-- irq_handler() est appelée durant l'exécution

void irq_handler(void)
{
  len += 4;
}

Comment procéder pour pallier à ce problème ?

Exercice 8 : Interruptions matérielles

Citez les 3 techniques pour connecter des périphériques d’entrées/sorties à un processeur pour un traitement interruptif.

Exercice 9 : Génération d’exceptions

Imaginez des petits codes permettant de générer les exceptions suivantes:

  • Une interruption logicielle
  • Une instruction non définie
  • Une exception “data abort”
  • Une exception “prefetch abort”

Indiquez pour chacune de ces exceptions le numéro de vecteur pour un µC du profil M.

Exercice 10 : Traitement d’un bouton-poussoir par interruption

Détectez les changements d’état d’un bouton-poussoir à l’aide d’interruptions.