Перейти к содержимому

Mar_S

Mar_S

Регистрация: 25.12.2008, 00:42
Offline Активность: 25.12.2008, 08:52
-----

В теме: Проблемы флэшек

25.12.2008, 02:44:40

Просто восстанавливать нет смысла, проще купить новую. Ради информации можно поиграться. Нужна такая же живая флешка, просто паяльным веном перекину ПЗУ из мертвой в живую.

Наивный чукотский юноша :dandy:
Чтобы такое прокатило надо совпадение как минимум двух обстоятельств.
1. Флешка-донор должна быть из той же партии, что и флешка-пациент.
2. У флешки-пациента проблема должна быть в контроллере, а не в трансляторе, а как показывает практика чаще всего "ложится" именно он, либо иная критичная для работы флешки служебная информация.

Для "танкистов" объясняю по пунктам:
1. Микроконтроллер имеет определенную ревизию, которая прописана также и в дампе NAND флэш чипа. И естественно, что при их не совпадении флешка не запустится как внешний носитель памяти.

2. Флешка, независимо от того это карта памяти, или же самостоятельное USB устройство имеет в своем дампе определенные области зарезервированные под системную информацию. Там находится паспорт флешки, таблицы дефектов, транслятор, если он у флешки табличный и т.д. Кроме этого, ввиду того, что NAND флеш имеет крайне ограниченное количество циклов записи от 10 до 100 тыс. циклов, в зависимости от типа производства, при записи информации в такой чип, микроконтроллер использует технологию называющуюся wearleveling, суть которой состоит в том, что данные постоянно перемешиваются внутри NAND чипа, чтобы все секторные блоки изнашивались равномерно. Т.е. например данные лежат в неком секторе, если мы их изменяем и сохраняем назад, то ложатся они не в то же место NAND флеш чипа, где лежали до этого, а совершенно в иное, и так происходит всегда при записи. Чтобы контроллер ориентировался какому логическому сектору соответствует тот или иной физический сектор, в конце каждого сектора находится так называемое spare поле, которое содержит данные для ECC коррекции, количество циклов записи, которое пришлось на данный сектор, а также маркер идентифицирующий этот сектор внутри логического пространства флеш накопителя. И если, по каким-то причинам появляется сбой при записи, то внутри дампа оказывается несколько физических секторов ссылающихся на один и тот же логический сектор. При подаче питания на такой накопитель контроллер считывает сразу все spare поля, чтобы построить в своей памяти карту логического простанства и в итоге обламывается, а также обламывает пользователя сообщая о том, что флешка умерла.

Если бы все было так просто, как утверждает Океан, то никто бы не заморачивался вычитыванием на специальном программаторе NAND флеш чипы, и потом не собирал бы руками транслятор, а просто тупо менял бы контроллер, благо их не так уж и много. Однако у каждого контроллера десятки ревизий микропрограммы и каждая из них формирует транслятор по своему.

Размещение рекламы на сайте     Предложения о сотрудничестве     Служба поддержки пользователей

© 2011-2022 vse.kz. При любом использовании материалов Форума ссылка на vse.kz обязательна.