Algunas preguntas aquí en la misma línea, estoy mirando la hoja de datos de la familia MSP430x2xx (estoy usando el MSP430F235 FWIW). Dice allí en la sección 2.2.4 que "búsqueda de instrucción ilegal" es una fuente de interrupción para el vector de reinicio. Luego, por separado bajo 2.2.1 bajo el tema de Interrupciones no enmascarables (NMI), "una violación de acceso a la memoria flash" se cita como fuente.
(1) ¿Puede alguien explicarme la diferencia entre (y / o las causas de) estas dos fuentes de eventos aparentemente distintas (con diferentes consecuencias aparentemente diferentes)?
(2) ¿Puedo escribir un ISR para la fuente de NMI y hacer que actúe como un reinicio suave reinicializando el puntero de pila y "recursivamente" llamando a main o algo así, para que el registro y la RAM (variable global) estado no esta alterado?
(3) Suponiendo que no puedo interceptar el que resulta en un vector de reinicio (que supongo que también viene junto con una reinicialización de todos los registros), ¿puedo al menos detectar al inicio que sucedió al verificar algunos bit de estado para decidir qué hacer al respecto, y si es así, ¿qué registro / bit de estado sería?