Цитата(CrimsonPig @ Mar 20 2015, 01:20)

Какое отношение имеет SPI к FLASH вообще?
Гуглить-то наверное надо по "flash wear levelling" или "eeprom wear levelling" в зависимости от того, что такое "обычная spi флешка".
Данные как пишутся ? Линейно, по случайному алдресу или в одно и тоже место ?
Ну, просто выразился я не правильно. Под SPI-Flash подразумевал serial flash, навроде 25df161, w25q64... За "правильные" запросы в гугл спасибо, изучаемс.. Данные разные. Какие-то было бы проще всего писать в одно и то же место. Это некоторые флаги, в том числе об предыдущем состоянии устройства и счетчики. Некоторые можно писать линейно, "по кругу", так как если не успели обработать последние, то первые уже теряют актуальность.
Цитата(jcxz @ Mar 20 2015, 08:40)

Надо не бороться с последствиями, а лечить саму проблему.
Пути решения:
1. Переделать алгоритм записи так, чтобы писалось не в одно место, а каждая запись - в новое. Чтобы флешь равномерно изнашивалась. И, при необходимости, увеличить её объём с запасом, произведя элементарный расчёт с учётом: срока службы изделия, частоты стираний, максимального допустимого кол-ва циклов стирания ИС.
2. Заменить флешь на другой тип памяти (например FRAM или батарейное ОЗУ или просто ОЗУ с монитором питания). Даже если необходим большой объём записи, то с помощью FRAM может быть возможно уменьшить кол-во циклов стирания флешь.
Я понимаю, что писать нужно не в одно место, я про это говорил в первом посте. Менять железо - не вариант. Нужно просто продумать алгоритм, при котором устройство бы продолжало нормально функционировать даже при ~80% битой памяти у флеши (но сигнализировало бы о том, что не плохо было бы при случае пройти ремонт).
Я просто думал, что есть уже какие-то open-source решения, что бы можно было бы хотя-бы от чего то оттолкнуться. Но видимо ничего нет, и впереди меня ждет увлекательный путь велосипедостроения...