Je cherche toujours à trouver une réponse à cette question:
Pourquoi, alors que les MCU stm32 ont un chien de garde parfait (je veux dire le chien de garde de fenêtre (WWDG)), il y a un chien de garde simple (chien de garde indépendant (IWDG))?
J'ai trouvé cette page qui a dit:
ST Microelectronics dispose d'une gamme d'appareils Cortex-M3. Le M3 est devenu extrêmement populaire pour les appareils intégrés bas de gamme, et le STM32F de ST est représentatif de ces pièces (bien que le WDT soit un complément ST, et ne reflète pas nécessairement les implémentations d'autres fournisseurs). Le STM32F possède deux mécanismes de protection différents. Un "chien de garde indépendant" est une jolie conception vanille qui n'a que peu d'intérêt en dehors de sa facilité d'utilisation. Mais leur Watchdog Window offre une protection plus robuste. Lorsqu'un compte à rebours expire, une réinitialisation est générée, qui peut être entravée en rechargeant le compte à rebours. Rien de spécial là-bas. Mais si le rechargement se produit trop rapidement, le système se réinitialise également. Dans ce cas, "trop rapidement" est déterminé par une valeur que l'on programme dans un registre de commande.
Autre fonctionnalité intéressante: il peut générer une interruption juste avant la réinitialisation. Écrivez un peu de code pour accrocher l'interruption et vous pouvez prendre des mesures pour, par exemple, mettre le système dans un état sûr ou pour créer des images instantanées à des fins de débogage. ST suggère d'utiliser l'ISR pour recharger le chien de garde - c'est-à-dire, donner un coup de pied au chien afin qu'une réinitialisation ne se produise pas. Ne prenez pas leurs conseils. Si le programme plante, les gestionnaires d'interruption peuvent très bien continuer à fonctionner normalement. Et l'utilisation d'un ISR pour recharger le WDT invalide la raison entière d'un chien de garde de fenêtre.
et ceci :
La nouvelle série de processeurs STM32F4 Cortex ™ -M4 de STMicroelectronics dispose de deux chiens de garde indépendants. L'un s'exécute à partir de son propre oscillateur RC interne. Cela signifie que toutes sortes de choses peuvent s'effondrer dans le processeur et que le WDT se déclenchera toujours. Il existe également un «watchdog de fenêtre» (WWDT) qui nécessite que le code le chatouille fréquemment, mais pas trop souvent. Il s'agit d'un moyen très efficace de garantir que le code bloqué qui écrit de manière aléatoire dans le mécanisme de protection ne provoque pas de chatouillement WDT, et le WWDT peut générer une interruption peu de temps avant la réinitialisation.
ok, jetons un œil dans le manuel de référence :
Le STM32F10xxx possède deux périphériques de surveillance intégrés qui offrent une combinaison de haut niveau de sécurité, de précision de synchronisation et de flexibilité d'utilisation. Les deux périphériques de surveillance (indépendant et fenêtre) servent à détecter et à résoudre les dysfonctionnements dus à une panne logicielle, et à déclencher la réinitialisation du système ou une interruption (fenêtre de surveillance uniquement) lorsque le compteur atteint une valeur de temporisation donnée. Le chien de garde indépendant (IWDG) est cadencé par sa propre horloge dédiée à faible vitesse (LSI) et reste donc actif même si l'horloge principale tombe en panne. L'horloge de surveillance de fenêtre (WWDG) est prédimensionnée à partir de l'horloge APB1 et possède une fenêtre temporelle configurable qui peut être programmée pour détecter un comportement d'application anormalement tardif ou précoce. L'IWDG est le mieux adapté aux applications qui nécessitent que le chien de garde s'exécute en tant que processus totalement indépendant en dehors de l'application principale, mais ont des contraintes de précision de synchronisation plus faibles. Le WWDG est le mieux adapté aux applications qui nécessitent que le chien de garde réagisse dans une fenêtre de synchronisation précise.
Le chien de garde de la fenêtre est utilisé pour détecter la survenance d'un défaut logiciel, généralement généré par des interférences externes ou par des conditions logiques imprévues, qui amène le programme d'application à abandonner sa séquence normale. Le circuit de surveillance génère une réinitialisation MCU à l'expiration d'une période de temps programmée, à moins que le programme ne rafraîchisse le contenu du décompteur avant que le bit T6 ne soit effacé. Une réinitialisation MCU est également générée si la valeur de comptage descendant à 7 bits (dans le registre de contrôle) est actualisée avant que le compteur descendant n'atteigne la valeur de registre de fenêtre. Cela implique que le compteur doit être actualisé dans une fenêtre limitée.
Comme vous pouvez le voir, aucun d'eux n'a dit pourquoi il y a deux chiens de garde. si je demande quelles sont les différences entre les deux chiens de garde, vous compterez toutes les fonctionnalités que vous pouvez voir dans ce qui précède et si vous voulez comparer les deux, évidemment le chien de garde de fenêtre (WWDG) sera le gagnant! alors pourquoi il y a deux chiens de garde?
Je veux savoir quand dois-je utiliser IWDG et quand WWDG?
et y a-t-il une raison qui nous dit Pourquoi appellent-ils la deuxième montre par ce nom -> "Watchdog Window"?