А я делаю очень просто - при закатывании данных к ней пришивается поле с подписью. В этом поле хранится информация о версии и СРС32 всего блока данных - на всякий случай но, если честно, то пользоватся ей еще не пользовался. Это блок хранится в определенном месте. Смеда данных происходит по следующему алгоритму. 1. Отправляется команда о смене данных. Контроллер на нее затирает заголовок текущих данных. 2. отправляются данные пакетами ( у меня по 128 байт - не хотелось использовать двухбайтный счетчик) При получении 4 пакетов образуется консенсус страницы и контроллер пишет ее и заодно верифицирует ( я еще заодно проверяю на идентичность - а вдруг ее не надо писать). 3. После успешной верификации отправляется новая подпись, которую контроллер пишет на известное место. В случае облома в любом месте будет известно, что типа данных во флеше нет, либо они не валидны..
|