Ich suche noch nach einer Antwort auf diese Frage:
Warum gibt es einen einfachen Watchdog (Independent Watchdog (IWDG)), während die stm32-MCUs einen perfekten Watchdog haben (ich meine Window Watchdog (WWDG))?
Ich fand diese Seite , die gesagt hat:
ST Microelectronics bietet eine Reihe von Cortex-M3-Geräten an. Der M3 ist bei Embedded-Geräten der unteren Preisklasse sehr beliebt, und der STM32F von ST steht stellvertretend für diese Teile (obwohl der WDT ein ST-Add-On ist und nicht unbedingt die Implementierungen anderer Anbieter widerspiegelt). Der STM32F verfügt über zwei verschiedene Schutzmechanismen. Ein "Independent Watchdog" ist ein hübsches Vanille-Design, das außer der einfachen Bedienung nur wenig zu bieten hat. Ihr Window Watchdog bietet jedoch einen robusteren Schutz. Wenn ein Countdown-Timer abläuft, wird ein Reset generiert, der durch erneutes Laden des Timers verhindert werden kann. Da ist nichts Besonderes. Wenn das Neuladen jedoch zu schnell erfolgt, wird das System ebenfalls zurückgesetzt. In diesem Fall wird "zu schnell" durch einen Wert bestimmt, den man in ein Steuerregister programmiert.
Ein weiteres cooles Feature: Es kann kurz vor dem Zurücksetzen einen Interrupt auslösen. Schreiben Sie ein bisschen Code, um den Interrupt zu blockieren, und Sie können Maßnahmen ergreifen, um z. B. das System in einen sicheren Zustand zu versetzen oder Daten für Debugging-Zwecke zu sichern. ST schlägt vor, den Watchdog mit dem ISR neu zu laden. Treten Sie also den Hund, damit kein Reset erfolgt. Nimm ihren Rat nicht an. Wenn das Programm abstürzt, funktionieren die Interrupt-Handler möglicherweise weiterhin normal. Und die Verwendung eines ISR zum erneuten Laden des WDT macht den gesamten Grund für einen Fenster-Watchdog ungültig.
und das :
Die neue Serie der STM32F4 Cortex ™ -M4-CPUs von STMicroelectronics verfügt über zwei unabhängige Watchdogs. Man läuft über einen eigenen internen RC-Oszillator. Das bedeutet, dass alle möglichen Dinge in der CPU zusammenbrechen können und der WDT weiterhin ausgelöst wird. Es gibt auch einen „Window Watchdog“ (WWDT), bei dem der Code häufig, aber nicht zu oft kitzelt. Dies ist eine sehr effektive Methode, um sicherzustellen, dass abgestürzter Code, der zufällig in den Schutzmechanismus geschrieben wird, kein WDT-Tickle verursacht und der WWDT kurz vor dem Zurücksetzen einen Interrupt erzeugen kann.
ok, schauen wir uns das Referenzhandbuch an :
Der STM32F10xxx verfügt über zwei integrierte Watchdog-Peripheriegeräte, die eine Kombination aus hohem Sicherheitsniveau, Zeitgenauigkeit und flexibler Verwendung bieten. Beide Watchdog-Peripheriegeräte (Independent und Window) dienen zum Erkennen und Beheben von Fehlfunktionen aufgrund eines Softwarefehlers und zum Auslösen eines Systemresets oder eines Interrupts (nur Window-Watchdog), wenn der Zähler einen bestimmten Timeout-Wert erreicht. Der Independent Watchdog (IWDG) wird von einem eigenen Low-Speed-Clock (LSI) getaktet und bleibt somit auch dann aktiv, wenn die Hauptuhr ausfällt. Die Uhr des Window Watchdog (WWDG) ist von der APB1-Uhr vorskaliert und verfügt über ein konfigurierbares Zeitfenster, das so programmiert werden kann, dass ungewöhnlich spätes oder frühes Anwendungsverhalten erkannt wird. Die IWDG eignet sich am besten für Anwendungen, bei denen der Watchdog als völlig unabhängiger Prozess außerhalb der Hauptanwendung ausgeführt werden muss. haben aber geringere zeitliche Genauigkeitsbeschränkungen. Der WWDG eignet sich am besten für Anwendungen, bei denen der Watchdog innerhalb eines genauen Zeitfensters reagieren muss.
Der Window Watchdog wird verwendet, um das Auftreten eines Softwarefehlers zu erkennen, der normalerweise durch externe Interferenzen oder durch unvorhergesehene logische Bedingungen verursacht wird und dazu führt, dass das Anwendungsprogramm seinen normalen Ablauf verlässt. Die Überwachungsschaltung erzeugt nach Ablauf einer programmierten Zeitspanne einen MCU-Reset, es sei denn, das Programm aktualisiert den Inhalt des Abwärtszählers, bevor das T6-Bit gelöscht wird. Ein MCU-Reset wird auch generiert, wenn der 7-Bit-Abwärtszählerwert (im Steuerregister) aktualisiert wird, bevor der Abwärtszähler den Fensterregisterwert erreicht hat. Dies bedeutet, dass der Zähler in einem begrenzten Fenster aktualisiert werden muss.
Wie Sie sehen, hat keiner von ihnen gesagt, warum es zwei Watchdog gibt. Wenn ich frage, was sind die Unterschiede zwischen den beiden Watchdog, werden Sie alle Funktionen zählen, die Sie oben sehen können, und wenn Sie die beiden vergleichen möchten, wird offensichtlich der Window Watchdog (WWDG) der Gewinner sein! Warum gibt es dann zwei Wachhund?
Ich möchte wissen, wann ich IWDG und wann WWDG verwenden soll?
und gibt es einen Grund, der uns sagt, warum sie die zweite Uhr so nennen -> "Window Watchdog"?