5 Stimmen

Über den Watchdog-Timer

Kann mir jemand sagen, ob wir den Watchdog während des Startvorgangs/der Bootcode-Ausführung aktivieren oder deaktivieren sollten? Mein Freund hat mir gesagt, dass wir den Watchdog normalerweise im Bootcode deaktivieren. Kann mir jemand sagen, was der Vorteil oder Nachteil dabei ist??

4voto

Nate Punkte 17748

Es hängt wirklich von Ihrem Projekt ab. Der Watchdog ist da, um Ihnen zu helfen sicherzustellen, dass Ihr Programm nicht "stecken bleibt", während Code ausgeführt wird. - Wenn es eine Chance gibt, dass Ihr Programm während des Boot-Vorgangs hängen bleibt, kann es sinnvoll sein, den Watchdog auch dort einzubinden.

Das gesagt habend, starte ich den Watchdog im Allgemeinen am Ende meiner Startvorgänge.

3voto

Eli Bendersky Punkte 246100

Normalerweise wird der WD (Watchdog) nach dem Boot-Vorgang aktiviert, da das Programm dann in seine "Schleife" eintritt und regelmäßig den WD aktiviert. Während des Boot-Vorgangs, bei dem ich annehme, dass Sie die lineare Initialisierung von Hardware und Peripheriegeräten meinen, gibt es viel weniger Periodizität in Ihrem Code und es ist schwierig, einen WD-Aktivierungszyklus einzufügen.

3voto

Tim Henigan Punkte 57320

Die Produktionscode sollte immer den Watchdog aktivieren. Hobby- und/oder Prototypenprojekte sind offensichtlich eine besondere Ausnahme, die den Watchdog möglicherweise nicht erfordern.

Wenn der Watchdog beim Booten aktiviert ist, gibt es einen speziellen Fall, der berücksichtigt werden muss. Das Löschen und Schreiben von Speicher dauert lange (das Löschen eines gesamten Geräts kann Sekunden dauern, um abzuschließen). Daher müssen Sie sicherstellen, dass Ihre Lösch- und Schreibroutinen regelmäßig den Watchdog bedienen, um ein Zurücksetzen zu verhindern.

3voto

Wenn Sie debuggen, möchten Sie es ausschalten, da das Gerät sonst neu gestartet wird, wenn Sie versuchen, den Code durchzugehen. Ansonsten liegt es bei Ihnen. Ich habe gesehen, wie Wachhunde Projekte gerettet haben, und ich habe gesehen, wie Wachhunde zu unbeabsichtigten Neustartschleifen geführt haben, die dazu führen, dass Kunden die Support-Hotlines verstopfen und dem Unternehmen somit eine Menge kosten.

Sie treffen die Entscheidung.

3voto

Gerhard Punkte 6391

Die beste Praxis wäre, dass der Watchdog automatisch beim Einschalten aktiviert wird. Wenn Ihre Hardware nicht dafür ausgelegt ist, schalten Sie ihn so schnell wie möglich ein. Normalerweise stelle ich den Watchdog während des Bootvorgangs auf eine lange Dauer ein, aber sobald der Bootvorgang abgeschlossen ist, gehe ich zu einer kurzen Time-out-Zeit über und warte regelmäßig den Watchdog auf.

Es besteht die Möglichkeit, dass Sie nicht immer in der Nähe sind, um eine Platine zurückzusetzen, die nach einem Anlagenstillstand und Neustart an einem entfernten Standort hängen geblieben ist. Oder die Platine befindet sich an einem unzugänglichen Kellerraum und startet nach einem Stromausfall nicht neu. Die einfache Praxis im Labor ist nicht die beste Praxis in der realen Welt.

Versuchen Sie, Ihre Hardware so zu gestalten, dass Ihre Software die Reset-Ursache beim Booten überprüfen und melden kann. Wenn es zu einem Watchdog-Timeout kommt, müssen Sie es wissen, da es ein Fehler in Ihrem System ist und das Ignorieren später Probleme verursachen kann.

Es ist einfacher, mit dem Watchdog auszuführen, aber während der Entwicklung sollte regelmäßig mit dem Watchdog getestet werden, um sicherzustellen, dass alles planmäßig verläuft.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X