На самом деле это не программный вопрос (гораздо меньше C ++). Он принадлежит electronics.se , но, похоже, нет возможности перенести вопросы туда ... только на такие сайты, как superuser или webmasters.se.
Короткий ответ: аппаратное обеспечение ненадежно. В теории всегда что-то может пойти не так, что прерывает процесс записи или приводит к записи неправильного бита.
Длинный ответ заключается в том, что схемы Flash обычно рассчитаны на максимальную надежность. Внезапная потеря мощности при записи, вероятно, не приведет к повреждению, потому что схема драйвера может иметь достаточную емкость или способность работать в условиях низкого напряжения достаточно долго, чтобы закончить разрядку заряда по мере необходимости. Потеря мощности при стирании может быть сложнее. Вам действительно нужно проконсультироваться с производителем.
Для «мягкого» сброса системы без прерывания питания было бы довольно удивительно, если бы аппаратное обеспечение не всегда полностью удаляло те байты, с которыми оно немедленно работало. Обычно байты стираются в предопределенном порядке, поэтому вы можете использовать первый или последний, чтобы указать, является ли страница заполненной или пустой.