Ваш микроконтроллер может иметь EEPROM, память OTP, биты пользовательских предохранителей, где вы можете установить флаг.
Не существует «лучшего метода во встроенном C», запись энергонезависимой памяти различна в каждом микроконтроллере.
редактировать:
ВСПЫШКА
Содержимое флэш-памяти стирается при программировании устройства. После программирования все не записанные байты содержат 0xFF. Обратитесь к таблице данных, чтобы найти область, которая может быть безопасно запрограммирована из запущенной прошивки.
EEPROM
Хотя это не гарантируется в таблицах данных, все EEPROM, которые я видел до сих пор, содержали 0xFF: s при поставке с завода (кроме тех, которые запрограммированы с уникальным MAC-адресом, но это явно задокументировано). Некоторые устройства программирования / программы также могут стирать или программировать содержимое EEPROM. Некоторые могут быть защищены от записи, постоянно или обратимо.
OTP
Программируемая однократная память всегда содержит четко определенные начальные значения, документированные в таблице данных.
Всегда полезно включать в записанные данные хорошую контрольную сумму, такую как CRC32, для защиты от повреждения данных, вызванного неисправными деталями, ошибками передачи, космическими лучами и т. Д.