Votre microcontrôleur peut avoir de l'EEPROM, de la mémoire OTP, des bits de fusible utilisateur, où vous pouvez définir un indicateur.
Il n'y a pas de "meilleure méthode en C embarqué", l'écriture de mémoire non volatile est différente dans chaque microcontrôleur.
Éditer:
ÉCLAT
Le contenu de la mémoire flash est effacé lors de la programmation de l'appareil. Après la programmation, tous les octets non écrits contiennent 0xFF. Consultez la fiche technique pour trouver une zone qui peut être programmée en toute sécurité à partir du firmware en cours d'exécution.
EEPROM
Bien que cela ne soit pas garanti dans les fiches techniques, toutes les EEPROM que j'ai vues jusqu'à présent contenaient 0xFF: s lorsqu'elles sont expédiées de l'usine (sauf celles préprogrammées avec une adresse MAC unique, mais cela est explicitement documenté). Certains appareils / logiciels de programmation peuvent également effacer ou programmer le contenu de l'EEPROM. Certains peuvent être protégés en écriture, de façon permanente ou réversible.
OTP
La mémoire programmable unique contient toujours des valeurs initiales bien définies, documentées dans la fiche technique.
C'est toujours une bonne idée d'inclure une bonne somme de contrôle comme CRC32 avec les données écrites, pour se protéger contre la corruption de données causée par des pièces défectueuses, des erreurs de transmission, des rayons cosmiques, peu importe.