Systèmes embarqués et firmware
Pourquoi est-il déconseillé de réarmer (« kicker ») inconditionnellement le chien de garde dans le gestionnaire d'interruption de temporisateur appelé toutes les 1 ms ?
- AParce qu'il est interdit d'accéder au chien de garde depuis une interruption
- BParce que l'interruption continue de s'exécuter même si le traitement principal est bloqué, par exemple dans une boucle infinie, et que le chien de garde ne peut plus détecter l'anomalie
- CParce qu'un réarmement toutes les 1 ms endommage le chien de garde
Afficher la réponse et l'explication
Réponse : B. Parce que l'interruption continue de s'exécuter même si le traitement principal est bloqué, par exemple dans une boucle infinie, et que le chien de garde ne peut plus détecter l'anomalie
Le chien de garde réinitialise le microcontrôleur s'il n'est pas réarmé dans le délai imparti, ce qui permet de se rétablir d'un emballement. Or l'interruption de temporisateur continue de s'exécuter même si le traitement principal est bloqué ; un réarmement inconditionnel à cet endroit empêche de détecter le blocage. Le principe est de vérifier que la boucle principale et chaque tâche ont effectué normalement un tour complet, et de ne réarmer que lorsque toutes ces conditions sont réunies.
Continuer : 9 autres questions sur Systèmes embarqués et firmware