La pregunta igualmente importante es cómo reprogramar mi AVR cuando mi código de usuario cuelga el chip (poco después del reinicio) ... Es bueno tener una función que funciona sin importar lo que esté o no esté programado.
Como ya se mencionó, es un caso de lógica pura, o alguna lógica y código en una rom utilizada para implementar esta función. Bastante simple para la lógica pura.
El hecho de que un pin esté etiquetado como restablecer no significa que toda la lógica deba restablecer todo el diseño. Mire JTAG por ejemplo (en los chips que lo tienen), tiende a tener su propio reinicio separado del reinicio del chip primario y es o puede ser un dominio de reinicio completamente separado del reinicio del chip primario. Restablecer es solo otra entrada que se usa como lo desean los diseñadores, no es una razón automática por la que cada parte de la lógica tenga que responder a ella.
Obviamente hay lógica y quizás algún código que no esté en ese dominio de restablecimiento (se encuentra esencialmente en el dominio de restablecimiento de energía y / o el restablecimiento invertido, cuando suelta el pin de restablecimiento, esta lógica puede reiniciarse y cuando afirmar el pin de reinicio que esta lógica puede liberar).