Цитата(Dmitrich @ Jan 16 2013, 13:32)

Минимум, что можно стереть - 64К.
Если вы говорите что железо менять нельзя, то у вас в устройстве значит уже должна быть внешняя память.
Либо использовать предложенный мной метод с таблицей трансляции логических номеров кластеров в физические.
Иначе - как вы собираетесь переписать один кластер во флеш с учётом того, что стирать можете только по 64К?
Размер кластеров в вашем FAT какой? 512 или...?
Либо внешняя память и тогда - считываем сектор, стираем его, заменяем изменившиеся кластеры в нём, записываем.
Либо используем таблицу трансляции - тогда не нужен большой буфер в ОЗУ и можно обойтись внутренней ОЗУ CPU.
Но таблицу трансляции надо скидывать по сигналу сбоя питания (это тоже должно быть уже в железе).
Если у вас чего-то из этого в железе нет, то его менять придётся всё равно и лучше заменить микросхему флеш на что-нить более удобное.