Früher haben wir Watchdog-Signaturen in unseren Steuerungsanwendungen verwendet.
Grundsätzlich haben wir einen reservierten Speicher im RAM (nicht initialisiert) zugewiesen und die Watchdog-Signaturen gespeichert.
Beim Einschalten prüft das System auf die Watchdog-Signatur und basierend darauf haben wir früher herausgefunden, ob es sich um einen Watchdog-Reset oder einen normalen Reset handelt.
Meine Frage ist, welcher Speicher besser zum Speichern der Watchdog-Signaturen geeignet ist, ob RAM oder Flash?
Die Verwendung von Speichersignaturen, um festzustellen, ob ein Watchdog-Timer das letzte Zurücksetzen verursacht hat, ist ein Schema, das um jeden Preis vermieden werden sollte. Dieses Schema ist voller Probleme und stellt kein narrensicheres Schema bereit.
Hier sind einige Schlüsselfaktoren zu berücksichtigen, die dazu führen, dass dies ein problematischer Ansatz ist. (Es gibt auch andere, also analysieren Sie sorgfältig).
1) Im RAM gespeicherte Signaturen können nach einem Power-Cycle-Reset legitim sein oder nicht, da der RAM seinen Inhalt für einige Zeit nach einem Power-Cycle beibehalten kann.
2) Ein Watchdog-Reset wird wahrscheinlich irgendwo durch einen falschen Fehler in der Hardware-Elektronik verursacht. Wie können Sie sicher sein, dass dadurch die Speicherung der Signaturen nicht beeinträchtigt wurde?
3) Die Speicherung von Signaturen in FLASH oder einem anderen nichtflüchtigen Speicher ist problematisch aufgrund der Tatsache, dass das Watchdog-Timeout/Reset während der Zeit auftreten könnte, in der solche Signaturen gespeichert werden.
Es ist weitaus besser, Ihre Systemhardware mit einer Logik einzurichten, die den "Reset-Grund" in speziellen Flop-Flops oder Registerbits erfasst, die die Software in ihrer Startsequenz abfragen kann, um festzustellen, ob der Neustart auf ein Watchdog-Timeout zurückzuführen ist. Wenn Ihr Systemprozessor dies nicht direkt in den Chip integriert hat, sollten Sie erwägen, einen anderen Prozessor zu ersetzen, der diese Fähigkeit enthält. In Fällen, in denen der Watchdog außerhalb des Controllers implementiert ist, sollten Sie eine einfache externe Schaltung hinzufügen, die dem Prozessor über einen I/O-Pin den „Reset-Grund“ liefern kann.
Wenn Sie die Informationen nicht während eines Aus- und Wiedereinschaltens beibehalten müssen, ist RAM besser, insbesondere wenn Ihre Signatur häufig neu geschrieben wird und Probleme mit dem Flash-Verschleiß verursachen kann. Die einzige andere Sorge, die Sie haben könnten, ist, wenn die Stabilität der Stromversorgung ein Problem ist und dann ein Stromstoß Ihre Signatur auslöschen könnte.
schlechtz
Michael Karas