kernel32ddl 0 27 февраля, 2006 Опубликовано 27 февраля, 2006 · Жалоба По ходу дела возник такой вопрос: какую файловую систему лучше использовать для флэшены? Гворят что ФАТ32 не очень хороша для нее... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
one_man_show 0 27 февраля, 2006 Опубликовано 27 февраля, 2006 · Жалоба Уважаемый kernel32ddl! Большое спасибо за подробный ответ, по-больше бы таких постов :) Пользуетесь ли Вы каким-нибудь тулкитом или все приходится делать руками? Слышал и частично видел USBIO, что нашлось даже в наших сусеках, но к сожалению не нашел там раздела Firmware, только Drivers. Интересно мнение спецов на счет этой тулсы, знающих толк в этом деле, уже реализовавших на своих машинках Mass Storage USB Disk И еще чайниковский вопрос. У меня машинка на х86, на борту CompactFlash, USB организован через последовательный порт машинки на FTDI FT232BM. Сейчас пользуюсь на РС виртуальным СОМ-портом, в машинке реализован FAT16 и протокол файлового обмена. Чтобы это чудо обслужить на РС, пришлось делать свою прогу под тот реализованный протокол. Хочется услышать от знатоков следующее. Если использовать USB Firmware Library от Thesycon (или его подобие), то какие грабли или непреодолимые препятствия ожидают. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kernel32ddl 0 28 февраля, 2006 Опубликовано 28 февраля, 2006 · Жалоба one_man_show, спасибо за столь лесную похвалу :) . Что такое USBIO к сожалению понятия не имею :( , лично я делаю своё детище на TMS5509a, в Code Composer Studio от Texas Instrument. Очень помог пример реализации USB устройства на сайте c5000.spectrumdigital.com. Практически 70% всего кода, необходимого для реалиции устройства уже есть в этом примере, оставалось только надстроить его до необходимого класса (добавить нужные команды и т.п.). Вообще разработчики TI сделали хорошую абстракцию от аппаратной части (CSL библиотека USB), никаких портов программировать не надо, берешь функцию, указаваешь ей буфер с данными, номер конечной точки и вперед - данные передаются! Все очень просто. Для снятия протоколов обмена пользуюсь USB Monitor и SnoopyPro. На последний ваш вопрос, ответить не могу - ничего в этом не смыслю :smile3046:. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kernel32ddl 0 28 февраля, 2006 Опубликовано 28 февраля, 2006 · Жалоба Забыл добавить еще одну важную ссылку, при описании документации www.rs232.ru. Там есть спецификация на USB по русски. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
v_mirgorodsky 0 28 февраля, 2006 Опубликовано 28 февраля, 2006 · Жалоба Не знаю как для флешей, но для обычных жестких дисков самый первый сектор на диске - MBR. В нем содержится таблица разделов диска. Далее в начале каждого раздела находится BOOT. Так как MBR в вашем случае имеет неправильную структуру, поскольку он BOOT по формату, то винда и не хочет с ним корректно работать и пытается найти MBR на следующей дорожке. Для проверки данного утверждения необходимо все снести с флешки (забить ее нулями) и попытаться выполнить все операции по разметке средствами самой винды. Если запись/чтение реализованы корректно, то проблем быть не должно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kernel32ddl 0 1 марта, 2006 Опубликовано 1 марта, 2006 · Жалоба На флэшках, структуру которых мне удалось посмотреть MBR и таблицы нет. Идет сразу раздел со своей загрузочной областью. Объясняется это наверно тем, что в ней просто нет неоходимости - раздел-то на флэшке только один. Наконец-то удалось раздобыть флэшину на 128 мб :cheers: , обнаружил много несоответствий. Как только исправлю все, сообщу о результатах. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kernel32ddl 0 3 марта, 2006 Опубликовано 3 марта, 2006 · Жалоба Итак... Первым делом пришлось фарматировать флэш средствами винды под ФАТ16. Винда создала там таблицу разделов, мбр и собственно сам раздел. Но тут меня ожидал БАЛЬШОООЙ облом. После полного копирования всего вышеописанного на флэшь.... НИЧЕГО НЕ ИЗМЕНИЛОСЬ!!! Как не работало, так и не стало работать. И тут я обратил внимание на одну проблему, значение которой я поначалу не придал. Ответ винде от моего устройства приходол только тогда, когда винда повторно отправляла команду! А все из-за того, что после передачи ей данных я не отправлят пустые пакеты (SEND_ACK и GET_ACK). Но на этом проблемы не закончились... Некоторые ответы на команды иногда все равно отправлялись только со второго раза. И возникла некая несогласованность. Объясняю(пример): Приходит команда(25), в ответ на команду должны передаться данные (data25), затем ответ на команду. Данные сразу не передаются и команда принимается еще раз и данные со второго раза передаются. Затем приходит другая команда и data25 опять передаются. Вобщем бардак. ЗНАЮЩИЕ ЛЮДИ БОЛЬШАЯ ПРОСЬБА! ОБЪЯНИТЕ МНЕ ДУРАКУ В КАКИХ СЛУЧАЯХ НАДО ОТПРЯВЛЯТЬ SEND_AKC и GET_ACK? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jhoo 0 7 марта, 2006 Опубликовано 7 марта, 2006 · Жалоба Что такое пустые пакеты SEND_ACK и GET_ACK? Просто usb пакеты нулевой длины (ZLP)? Какая стоит win? Для первых экспериментов лучше отключить кеширование. Правильно ли контролируешь отработку этапов CBW-DATAIN-CSW? Даже если предположить что размер данных совпадает с размером bulkin, то это не согласуется с командой RBC_READ_CAPACITY_10=0x25, для которой формат данных READ_CAPACITY_DATA равен 8 байт, а размер CSW 13 байт. Лучше отлаживать все команды по отдельности, например через usbio. Я делал так: подключал обычную usb флешку и с помощью сниффера записывал все команды, котрые использует винда. А уж потом из программы usbio отправлял бинарные файлы с командами и данными. Тогда сразу видно будет кто виноват. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kernel32ddl 0 20 марта, 2006 Опубликовано 20 марта, 2006 · Жалоба Лучше отлаживать все команды по отдельности, например через usbio. уважаемый jhoo не подскажите что это за программа и где ее можно взять? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jhoo 0 3 апреля, 2006 Опубликовано 3 апреля, 2006 · Жалоба Может быть поздно. Но, http://www.thesycon.de/ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kernel32ddl 0 3 апреля, 2006 Опубликовано 3 апреля, 2006 · Жалоба Спасибо Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
afe 0 7 июня, 2006 Опубликовано 7 июня, 2006 · Жалоба На флэшках, структуру которых мне удалось посмотреть MBR и таблицы нет. Идет сразу раздел со своей загрузочной областью. Объясняется это наверно тем, что в ней просто нет неоходимости - раздел-то на флэшке только один. Наконец-то удалось раздобыть флэшину на 128 мб :cheers: , обнаружил много несоответствий. Как только исправлю все, сообщу о результатах. Voobsheto nikto ne zapreshaet sdelat' neskol'ko razdelov, po krayney mere na CF ya delal bez problem. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
TobyBar 0 16 февраля, 2017 Опубликовано 16 февраля, 2017 · Жалоба one_man_show, спасибо за столь лесную похвалу :) . Что такое USBIO к сожалению понятия не имею :( , лично я делаю своё детище на TMS5509a, в Code Composer Studio от Texas Instrument. Очень помог пример реализации USB устройства на сайте c5000.spectrumdigital.com. Практически 70% всего кода, необходимого для реалиции устройства уже есть в этом примере, оставалось только надстроить его до необходимого класса (добавить нужные команды и т.п.). Вообще разработчики TI сделали хорошую абстракцию от аппаратной части (CSL библиотека USB), никаких портов программировать не надо, берешь функцию, указаваешь ей буфер с данными, номер конечной точки и вперед - данные передаются! Все очень просто. Для снятия протоколов обмена пользуюсь USB Monitor и SnoopyPro. На последний ваш вопрос, ответить не могу - ничего в этом не смыслю :smile3046:. Еще парочку USB аналайзеров (Виндовые, хотя и USBmon тоже виндовый, использовал его ранее, хорошая прога, но лично мне понравились эти благодаря удобному интерфейсу) - USB Data Logger (http://www.eltima.com/products/usb-data-logger/) и USB Port Sniffer (http://www.eltima.com/products/usb-port-monitor/) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 50 10 марта, 2017 Опубликовано 10 марта, 2017 (изменено) · Жалоба С набором команд как раз-таки все впорядки данные передаются и принимаются без ошибок. Ответы на команды тоже коррекные, формируются согласно спецификации SCSI. Логическую адресацию устройство поддерживает, вопрос в том почему ни одна программа не хочет ее форматировать.. ФАТ тут ни при чем, как уже объяснили, устройство должно только отвечать на команды, выдавать данные по емкости, кол-ву секторов и работать с блоками непосредственно данных, и ей должно быть без разницы, какой кто сектор запрашивает, запрашивает 64й, значит системе виднее, зачем ей это, флешка должна просто предоставить данные из этого сектора. Если не идет форматирование, значит какая-то служебная инфа не получена. Изменено 10 марта, 2017 пользователем mantech Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться