La réponse en bref
Rafraîchir régulièrement le watchdog ne prouve pas que l'application fonctionne. L'autorisation de rafraîchissement doit dépendre de la progression des fonctions surveillées dans leurs délais respectifs.
Définir une progression observable
Pour une tâche de mesure, il peut s'agir d'une acquisition terminée et validée. Pour une communication, d'une requête traitée ou rejetée de façon maîtrisée. Un compteur dans une interruption périodique ne détecte pas une tâche principale bloquée. Zephyr présente des canaux distincts de surveillance des tâches Zephyr Project — Task Watchdog.
Justifier les fenêtres temporelles
Mesurez la durée maximale admissible en incluant accès Flash, attente du bus et initialisation. Affectez à chaque tâche un délai et une réaction définie. Tenez compte du sommeil et de l'horloge du watchdog. Un délai très long limite les déclenchements intempestifs, mais peut retarder excessivement la détection. Séparez les contraintes de démarrage de celles du fonctionnement normal.
Mettre la surveillance à l'épreuve
Bloquez volontairement une tâche tout en laissant temporisateurs et autres tâches fonctionner. Testez ensuite l'arrêt du planificateur si la plateforme permet un essai contrôlé. Relevez délai de détection, état des sorties et cause du redémarrage. Après plusieurs resets successifs, le produit devrait atteindre un état diagnostique défini plutôt que relancer indéfiniment un actionneur.
Liste de vérification
- Définir progression et délai pour chaque tâche.
- Tester un blocage avec temporisateur actif.
- Vérifier cause du reset et redémarrages répétés.
Questions fréquentes
Faut-il toujours rafraîchir depuis une interruption ?
Seulement si cette architecture détecte les défauts visés. Un rafraîchissement périodique indépendant peut masquer des tâches applicatives arrêtées.
Sources techniques
Prestation associée