Есть некие данные, которые хранятся в EEPROM, вызываются по мере надобности, могут быть изменены в ходе работы скетча и так далее. Вопрос: как определить есть ли там корректные данные или там пока еще "мусор" (например первый запуск этого скетча на этой плате или уничтожение данных после ядерного взрыва). Если есть отработанное решение этого вопроса, то прошу подсказать. Мне же пока видится такой способ: пара байт отвести под некий "ключ", состояние которого проверяется при запуске, если "ключ" равен заданному, значит данные уже занесены, если не равен, то выполняется первичное занесение данных по умолчанию включая упомянутый "ключ". Вероятность совпадения мусора с "ключом" очень невелика, особенно если сделать его подлиннее, хотя бы до размера int. Верно ли я рассуждаю?
В целом верно. Это называется контрольная сумма. Просто складываете все байты и результат храните в отдельной ячейке. Для проверки снова складываете и сравниваете с этой ячейкой. Для пущей уверенности можно составить алгоритм вычисления контрольной суммы таким образом, что сумма никогда не будет равна нулю.
Контрольная сумма в этом случае интересное и универсальное решение. Но обязательно ли усложнять задачу, вычисляя сумму для проверки наличия осмысленных данных в памяти? Уникального набора из одного или более байт недостаточно?
Вот у этого чела сделано именно так: если в ячейке с адресом "0" записано определенное число, то считается что "некоторые данные" уже имеются в EEPROM и стартует обычная логика работы. Если заданного числа там нет, то стартует функция по первичному занесению данных (в данном случае запись мастер-метки).