Question:
Réinitialisation du chien de garde ARM
brokenlcd
2010-01-07 03:41:49 UTC
view on stackexchange narkive permalink

J'ai une carte de développement MP3 que j'ai récupérée chez Sparkfun et qui fonctionne avec le processeur ARM LPC2148. En regardant à travers le code, je vois une fonction pour forcer une réinitialisation du chien de garde. Ma question est la suivante: comment déterminez-vous quelles valeurs alimenter le registre de surveillance? J'ai parcouru la fiche technique du LPC2148 et je n'ai pas pu le comprendre. Je ne veux pas seulement utiliser le code d'autres personnes, je veux comprendre pourquoi ils ont fait ce qu'ils ont fait et comment ils ont compris ce qu'il fallait faire.

Trois réponses:
#1
+5
Leon Heller
2010-01-07 06:07:05 UTC
view on stackexchange narkive permalink

Voici le code que j'utilise pour un LPC2148:

WDTC = 0x00000FFF; // délai d'expiration très court

WDMOD = 0x03; // watchdog réinitialise le CPU

WDFEED = 0xAA; // démarrer le chien de garde

WDFEED = 0x55;

0xAA et 0x55 sont souvent utilisés dans ce type de code qui affecte une application de manière importante, car il est peu probable qu'ils soient rencontrés lors de l'exécution normale de code. - Léon Heller
#2
+4
Malkocoglu
2010-01-07 16:05:42 UTC
view on stackexchange narkive permalink

De la fiche technique LPC23XX, devrait être la même chose pour LPC2148 ::

Registre de séquence de flux Watchdog. L'écriture de 0xAA suivi de 0x55 dans ce registre recharge la minuterie Watchdog avec la valeur contenue dans WDTC.

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

On dirait que vous essayez de forcer une réinitialisation du chien de garde, pas d'empêcher le chien de garde de vous réinitialiser. Ceci est accompli par un bourrage: alimenter le chien de garde 0xaa suivi d'une valeur AUTRE que 0x55. Exemple:

  WDFEED = 0xAA; / * Avance correcte ... * / WDFEED = 0x00; / * ... Oups, insta-reset! * /  


Ce Q&R a été automatiquement traduit de la langue anglaise.Le contenu original est disponible sur stackexchange, que nous remercions pour la licence cc by-sa 2.0 sous laquelle il est distribué.
Loading...