Frage:
ARM Watchdog zurückgesetzt
brokenlcd
2010-01-07 03:41:49 UTC
view on stackexchange narkive permalink

Ich habe ein MP3-Entwicklungsboard, das ich von sparkfun aufgenommen habe und das vom ARM-Prozessor LPC2148 ausgeführt wird. Beim Durchsuchen des Codes sehe ich eine Funktion zum Erzwingen eines Watchdog-Resets. Meine Frage ist, wie können Sie herausfinden, welche Werte in das Watchdog-Register eingegeben werden sollen? Ich habe das LPC2148-Datenblatt durchgesehen und konnte es nicht herausfinden. Ich möchte nicht nur den Code anderer Leute verwenden, sondern auch verstehen, warum sie das getan haben, was sie getan haben und wie sie herausgefunden haben, was zu tun ist.

Drei antworten:
#1
+5
Leon Heller
2010-01-07 06:07:05 UTC
view on stackexchange narkive permalink

Dies ist der Code, den ich für einen LPC2148 verwende:

WDTC = 0x00000FFF; // sehr kurze Zeitüberschreitung

WDMOD = 0x03; // Watchdog setzt CPU zurück

WDFEED = 0xAA; // Watchdog starten

WDFEED = 0x55;

0xAA und 0x55 werden häufig in dieser Art von Code verwendet, was eine Anwendung stark beeinflusst, da es unwahrscheinlich ist, dass sie während der normalen Codeausführung auftreten. - Leon Heller
#2
+4
Malkocoglu
2010-01-07 16:05:42 UTC
view on stackexchange narkive permalink

Aus dem LPC23XX-Datenblatt sollte für LPC2148 ::

Watchdog-Feed-Sequenzregister dasselbe sein. Wenn Sie 0xAA gefolgt von 0x55 in dieses Register schreiben, wird der Watchdog-Timer mit dem in WDTC enthaltenen Wert neu geladen.

#3
+3
akohlsmith
2010-07-21 01:58:55 UTC
view on stackexchange narkive permalink

Es hört sich so an, als würden Sie versuchen, einen Watchdog-Reset zu erzwingen, und nicht verhindern, dass der Watchdog Sie zurücksetzt. Dies wird durch einen Papierstau erreicht: Füttern des Watchdogs 0xaa, gefolgt von einem Wert ANDERER als 0x55. Beispiel:

  WDFEED = 0xAA; / * Richtiger Feed ... * / WDFEED = 0x00; / * ... Ups, Insta-Reset! * /  


Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 2.0-Lizenz, unter der er vertrieben wird.
Loading...