Ihr Mikrocontroller verfügt möglicherweise über ein EEPROM, einen OTP-Speicher und Benutzersicherungsbits, in denen Sie ein Flag setzen können.
Es gibt keine "beste Methode in eingebettetem C". Das Schreiben von nichtflüchtigem Speicher ist in jedem Mikrocontroller unterschiedlich.
bearbeiten:
BLITZ
Flash-Speicherinhalte werden beim Programmieren des Geräts gelöscht. Nach dem Programmieren enthalten alle nicht geschriebenen Bytes 0xFF. Konsultieren Sie das Datenblatt, um einen Bereich zu finden, der sicher aus der laufenden Firmware heraus programmiert werden kann.
EEPROM
Obwohl dies in den Datenblättern nicht garantiert ist, enthielten alle EEPROMs, die ich bisher gesehen habe, 0xFF: s, wenn sie ab Werk geliefert wurden (mit Ausnahme derjenigen, die mit einer eindeutigen MAC-Adresse vorprogrammiert sind, dies ist jedoch ausdrücklich dokumentiert). Einige Programmiergeräte / Software können auch EEPROM-Inhalte löschen oder programmieren. Einige können dauerhaft oder reversibel schreibgeschützt sein.
OTP
Einmal programmierbarer Speicher enthält immer genau definierte Anfangswerte, die im Datenblatt dokumentiert sind.
Es ist immer eine gute Idee, den geschriebenen Daten eine gute Prüfsumme wie CRC32 beizufügen, um sie vor Datenkorruption zu schützen, die durch fehlerhafte Teile, Übertragungsfehler, kosmische Strahlung usw. verursacht wird.