Tengo el perro guardián independiente corriendo y recibo reinicios raros por razones desconocidas.
¿Cómo puedo detectar estos errores y hacer un reinicio controlado? Quiero almacenar algunas cosas en EEPROM y luego reiniciar la aplicación.
Sin embargo, al desconectar el dispositivo, el dispositivo debe olvidar todo lo que sabe. Así que solo quiero restaurar EEPROM si se produce un error.
void HardFault_Handler(void){
EEPROM_save_ram();
}
void Reset_Handler(void){
EEPROM_restore_ram();
}
¿Hay algo que me muestre si es un reinicio en caliente? ¿Se ha reiniciado un watchdog? ¿O simplemente un arranque en frío normal?