¿Debería la mayoría de los sistemas embebidos del consumidor tener un botón de reinicio completo?

Un sistema integrado bien diseñado no debería necesitar un botón de restablecimiento completo. Principalmente porque esto suele ser inconveniente o inviable. Por ejemplo, ¿cómo sugeriría restablecer manualmente un sistema ABS, un satélite, un avión no tripulado o un marcapasos?

Por lo tanto, la necesidad de un botón de reinicio se elimina con al menos uno o una combinación de los siguientes métodos:

  • Escribiendo mejor código. En algunas industrias, el código debe cumplir con ciertos estándares, por ejemplo, MISRA
  • Manejar adecuadamente ciertos eventos / excepciones que pueden hacer que el procesador se vaya a AWOL como errores matemáticos o errores de direccionamiento En ese caso, el código que permite que la ejecución del programa finalice o se reinicie correctamente se incluirá y se ejecutará cuando se produzcan excepciones.
  • Código de supervisión o hardware. Ciertos hardware y sistemas tienen protección de memoria para evitar cambios accidentales de memoria. Además, el software de supervisión se incluye en algunos sistemas para garantizar que todas las tareas se ejecuten según lo diseñado.
  • Construido en hardware y software de redundancia.
  • Finalmente, el uso efectivo del temporizador de vigilancia puede salvar la vida y las extremidades en un día malo.

Al emplear cualquiera o una combinación de las técnicas descritas anteriormente, se puede eliminar de forma segura un botón de restablecimiento completo.

Sí, casi todos los productos deben tener un restablecimiento completo, a menos y hasta que haya algún problema de seguridad serio que deba tenerse en cuenta.

Lo que sugiero es que el botón puede estar oculto dentro de la carcasa y no estar expuesto al usuario regularmente. Se puede proporcionar un reinicio por software en algunos casos, pero no se puede jugar con un reinicio por hardware.

Desde mi punto de vista, es un no. Para un buen ingeniero de firmware integrado, siempre hay que usar un temporizador de vigilancia. Ahora, para una empresa con producción en masa, proporcionar un interruptor de restablecimiento completo costaría una cantidad de dinero que podría ahorrarse usando el temporizador de vigilancia.

No. Si el sistema está diseñado correctamente, ningún consumidor debería presionar un botón de reinicio. No recuerdo un producto de consumo con ningún procesador integrado que tuviera uno. Un temporizador de vigilancia que restablece silenciosamente el procesador si el código pasa a las malezas podría no ser lo peor. Cosas como arcos y chispas pueden hacer que una CPU se comporte mal, y un reinicio que no requiere intervención del operador puede ser apropiado en algunos casos.