Su microcontrolador puede tener alguna EEPROM, memoria OTP, bits de fusible de usuario, donde puede establecer una bandera.
No existe un "mejor método en C incrustado", escribir memoria no volátil es diferente en cada microcontrolador.
editar:
DESTELLO
El contenido de la memoria flash se borra mientras se programa el dispositivo. Después de la programación, todos los bytes que no se escribieron contienen 0xFF. Consulte la hoja de datos para encontrar un área que se pueda programar de forma segura desde el firmware en ejecución.
EEPROM
Aunque no está garantizado en las hojas de datos, todas las EEPROM que he visto hasta ahora contenían 0xFF: s cuando se enviaban desde la fábrica (excepto las preprogramadas con una dirección MAC única, pero eso está documentado explícitamente). Algunos dispositivos / software de programación también pueden borrar o programar contenidos EEPROM. Algunos pueden estar protegidos contra escritura, de forma permanente o reversible.
OTP
La memoria programable de una vez siempre contiene valores iniciales bien definidos, documentados en la hoja de datos.
Siempre es una buena idea incluir una buena suma de verificación como CRC32 con los datos escritos, para proteger contra la corrupción de datos causada por piezas defectuosas, errores de transmisión, rayos cósmicos, lo que sea.