Pregunta:
Restablecimiento del perro guardián ARM
brokenlcd
2010-01-07 03:41:49 UTC
view on stackexchange narkive permalink

Tengo una placa de desarrollo MP3 que adquirí de sparkfun y que funciona con el procesador ARM LPC2148. Al mirar el código, veo una función para forzar un reinicio del perro guardián. Mi pregunta es, ¿cómo averigua qué valores alimentar al registro de vigilancia? Miré la hoja de datos de LPC2148 y no pude averiguarlo. No solo quiero usar el código de otras personas, quiero entender por qué hicieron lo que hicieron y cómo descubrieron qué hacer.

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

Este es el código que utilizo para un LPC2148:

WDTC = 0x00000FFF; // tiempo de espera muy corto

WDMOD = 0x03; // perro guardián restablece la CPU

WDFEED = 0xAA; // iniciar el perro guardián

WDFEED = 0x55;

0xAA y 0x55 se utilizan a menudo en este tipo de código que afecta a una aplicación en gran medida, ya que es poco probable que se encuentren durante la ejecución normal del código. - Leon Heller
#2
+4
Malkocoglu
2010-01-07 16:05:42 UTC
view on stackexchange narkive permalink

De la hoja de datos de LPC23XX, debería ser el mismo para LPC2148 ::

Registro de secuencia de alimentación de Watchdog. Escribir 0xAA seguido de 0x55 en este registro recarga el temporizador Watchdog con el valor contenido en WDTC.

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

Parece que estás intentando forzar un reinicio del perro guardián, no evitar que el perro guardián te reinicie. Esto se logra por un atasco: alimentando el perro guardián 0xaa seguido de un valor DIFERENTE a 0x55. Ejemplo:

  WDFEED = 0xAA; / * Alimentación correcta ... * / WDFEED = 0x00; / * ... Ups, insta-reset! * /  


Esta pregunta y respuesta fue traducida automáticamente del idioma inglés.El contenido original está disponible en stackexchange, a quien agradecemos la licencia cc by-sa 2.0 bajo la que se distribuye.
Loading...