MSP430 parece restablecerse de forma intermitente

Estoy usando la variante MSP430F5515 . No puedo encontrar ninguna razón estructurada para ello, pero el chip claramente se restablece ocasionalmente: estoy registrando datos y coloco una cadena 'conocida' que solo se imprime al inicio en el código. Estoy pensando que tiene algo que ver con mi manipulación de los registros del Sistema de reloj unificado, o tal vez algo que ver con las funciones del supervisor de voltaje del lado alto/bajo (que no estoy cambiando de los valores predeterminados del sistema). Estoy bastante seguro de que no tengo ningún tipo de desbordamiento de pila (sin juego de palabras), pero uno nunca puede descartarlo.

En cuanto a mi pregunta aquí... ¿hay alguna configuración de registro que uno deba asignar explícitamente en su código de inicio MSP430 para que el sistema no se reinicie? ¿Hay algún diagnóstico que pueda usar para determinar por qué motivo (al menos "el último") se produjo el restablecimiento? Estoy pensando en usar el programador/depurador MSP430FET-UIF para detener el procesador y ver algunos valores de registro, aunque mi instinto dice que no puedo conectarme a un procesador en ejecución sin reiniciarlo y cargar un nuevo programa... Cualquier idea / se agradeceria un consejo...

-vic

Dices que estás ejecutando un registrador. ¿Le importaría publicar el código que debería estar ejecutándose mientras toma sus registros? Sospecho firmemente que tiene algún tipo de problema de desbordamiento de pila/puntero nulo.
Además, ¿ cuándo no se debe reiniciar el sistema? Hay muchas formas de restablecer el micro (o al menos hacer que comience desde el principio de su código). ¿Desea que continúe ejecutándose cuando se activa un determinado error? ¿Cuándo cambias el contador de tu programa a 0x00? ¿Cuándo se activa el temporizador de vigilancia? ¿Cuándo se presiona el botón de reinicio? Si desea una o más de estas condiciones, ¿qué debería hacer si cree que está tan dañado que necesita reiniciarse?
¿Hay alguna manera de emular el procesador en una computadora?

Respuestas (2)

Para ver por qué está siendo REINICIALIZADO, debe verificar el vector de reposo del sistema (SYSRSTIV) en la dirección 019Eh y podrá ver la causa de su reinicio. Hay muchas cosas en un MSP430 que provocarán un reinicio

si el perro guardián está habilitado, asegúrese de no tener algún código que ocasionalmente pueda tardar mucho tiempo en ejecutarse (generalmente bloqueando IO). Si existe dicho código, asegúrese de acariciar al perro guardián durante tales operaciones.

+1 por mencionar el temporizador de vigilancia. Por lo que recuerdo, debe deshabilitarlo explícitamente durante el inicio, si no desea usarlo.
Sí, esa fue la asociación inmediata para mí también. Y como dijo otra respuesta, verifique el vector de reinicio en busca de pistas.
A partir de ahora, en lugar de volver a activar o reiniciar mis temporizadores de vigilancia, los acariciaré. Buena respuesta, por cierto.