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.