El uso de firmas de almacenamiento de memoria para determinar si un temporizador de vigilancia es lo que causó su último reinicio es un esquema que debe evitarse a toda costa. Ese esquema está lleno de problemas y no proporciona un esquema infalible.
Aquí hay algunos factores clave a considerar que conducen a que este sea un enfoque problemático. (Hay otros también, así que analízalos cuidadosamente).
1) Las firmas almacenadas en la RAM pueden o no ser legítimas después de un reinicio del ciclo de energía porque la RAM puede mantener su contenido durante un período de tiempo después de un ciclo de energía.
2) Es probable que un reinicio de vigilancia se deba a un error falso en la electrónica del hardware en algún lugar. ¿Cómo puede estar seguro de que esto no ha comprometido el almacenamiento de las firmas?
3) El almacenamiento de firmas en FLASH u otra memoria no volátil es problemático debido al hecho de que el tiempo de espera / reinicio del perro guardián podría ocurrir durante el tiempo en que dichas firmas se almacenan.
Es muy superior configurar el hardware de su sistema con una lógica que captura el "motivo de reinicio" en flop-flops especiales o bits de registro que el software puede sondear en su secuencia de inicio para determinar si el reinicio se debió a un tiempo de espera del perro guardián . Si el procesador de su sistema no tiene esto integrado en el chip, considere la posibilidad de sustituir otro procesador que incluya esta capacidad. En los casos en que el perro guardián se implementa fuera del controlador, considere agregar un circuito externo simple que pueda proporcionar el "motivo de reinicio" al procesador a través de un pin de E / S.