¿Firma del perro guardián en la memoria Flash o RAM?

2

Solíamos utilizar firmas de Watchdog en nuestras aplicaciones de control.

Básicamente, usamos para asignar una memoria reservada en RAM (sin inicializar) y usamos para almacenar las firmas de vigilancia.

Al encenderse, el sistema verifica la firma del perro guardián y, en base a eso, lo usamos para averiguar si es el reinicio del perro guardián o el reinicio normal que ha ocurrido.

Mi pregunta es, ¿qué memoria es mejor para almacenar las firmas de vigilancia, ya sea RAM o Flash?

    
pregunta badz

2 respuestas

4

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.

    
respondido por el Michael Karas
2

Si no necesita retener la información a través de un ciclo de alimentación, entonces la RAM es mejor, especialmente si su firma es algo que se reescribe a menudo y puede crear problemas de desgaste del flash. La única otra preocupación que puede tener es si la estabilidad de la fuente de alimentación es una preocupación y luego un transitorio de energía podría borrar su firma.

    
respondido por el naven87

Lea otras preguntas en las etiquetas