Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Борьба с битыми секторами USB Flash
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > RS232/LPT/USB/PCMCIA/FireWire
kernel32ddl
Необходимо осуществить проверку на битость секторов USB Flash памяти.
Я так понимаю в наборе Mass Storage команд для этого есть команда VERIFY (0x2F), в параметрах которой есть 2 параметра: адрес логического блока (LBA) и количество блоков для проверки.
Она должна возвращать ОК в случае удачной проверки секторов и FAILE в противном случае.
После того как выполнение данной команды возвращает ошибку, хостом отправляется команда REQUEST_SENSE, в ответ на нее устроство должно возвращать код последней ошибки, т.е. сообщить хосту о том, что по определенному адресу находиться битый блок (я так себе это представляю).
В моем устройстве на данный момент в ответ на эту команду всегда отправляется ОК. В спецификации на SCSI команды, я так и не смог найти внятного ответа на данный вопрос. Есть небольшой абзац, в котором написано, что-то вроде "если вы хотите передать список битых секторов вы должны сохранить его в странице списка...", вобщем я ничего из этого не разобраз.
Если кто-нибудь занимался данной проблемой подскажите help.gif , времени на разбирательство нет - сроки очень поджимают.
kernel32ddl
Все-таки решил отказаться от данной команды. Буду делать внутреннюю проверку на битость и потом просто подменять адрес если будет производиться запись в битый сектор, таким образом можно значительно продлить ресурс флэши и не пугать пользователя присутствием битых секторов на "нулевом" устройстве.
Из проверенных мною имеющихся флэшек, на 3 256М-байтных была одна битая страница(128 кбайт), 128М-байтных на одной из трех.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.