реклама на сайте
подробности

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> Mass Storage Usb Flash Disk, Файловая система flash памяти (FAT 16)
kernel32ddl
сообщение Feb 27 2006, 12:34
Сообщение #16


Участник
*

Группа: Свой
Сообщений: 44
Регистрация: 20-02-06
Из: Penza
Пользователь №: 14 526



По ходу дела возник такой вопрос: какую файловую систему лучше использовать для флэшены? Гворят что ФАТ32 не очень хороша для нее...
Go to the top of the page
 
+Quote Post
one_man_show
сообщение Feb 27 2006, 14:35
Сообщение #17


Помогу, чем смогу
******

Группа: Админы
Сообщений: 2 741
Регистрация: 28-05-04
Из: Москва
Пользователь №: 25



Уважаемый kernel32ddl!
Большое спасибо за подробный ответ, по-больше бы таких постов smile.gif

Пользуетесь ли Вы каким-нибудь тулкитом или все приходится делать руками? Слышал и частично видел USBIO, что нашлось даже в наших сусеках, но к сожалению не нашел там раздела Firmware, только Drivers.

Интересно мнение спецов на счет этой тулсы, знающих толк в этом деле, уже реализовавших на своих машинках Mass Storage USB Disk

И еще чайниковский вопрос.
У меня машинка на х86, на борту CompactFlash, USB организован через последовательный порт машинки на FTDI FT232BM. Сейчас пользуюсь на РС виртуальным СОМ-портом, в машинке реализован FAT16 и протокол файлового обмена. Чтобы это чудо обслужить на РС, пришлось делать свою прогу под тот реализованный протокол. Хочется услышать от знатоков следующее. Если использовать USB Firmware Library от Thesycon (или его подобие), то какие грабли или непреодолимые препятствия ожидают.


--------------------
С уважением,
Ваган Саруханов
Проекты|Форум|Facebook|Linkedin
Go to the top of the page
 
+Quote Post
kernel32ddl
сообщение Feb 28 2006, 11:06
Сообщение #18


Участник
*

Группа: Свой
Сообщений: 44
Регистрация: 20-02-06
Из: Penza
Пользователь №: 14 526



one_man_show, спасибо за столь лесную похвалу smile.gif .

Что такое USBIO к сожалению понятия не имею sad.gif , лично я делаю своё детище на TMS5509a, в Code Composer Studio от Texas Instrument. Очень помог пример реализации USB устройства на сайте c5000.spectrumdigital.com. Практически 70% всего кода, необходимого для реалиции устройства уже есть в этом примере, оставалось только надстроить его до необходимого класса (добавить нужные команды и т.п.). Вообще разработчики TI сделали хорошую абстракцию от аппаратной части (CSL библиотека USB), никаких портов программировать не надо, берешь функцию, указаваешь ей буфер с данными, номер конечной точки и вперед - данные передаются! Все очень просто.
Для снятия протоколов обмена пользуюсь USB Monitor и SnoopyPro.
На последний ваш вопрос, ответить не могу - ничего в этом не смыслю smile3046.gif.
Go to the top of the page
 
+Quote Post
kernel32ddl
сообщение Feb 28 2006, 13:44
Сообщение #19


Участник
*

Группа: Свой
Сообщений: 44
Регистрация: 20-02-06
Из: Penza
Пользователь №: 14 526



Забыл добавить еще одну важную ссылку, при описании документации www.rs232.ru. Там есть спецификация на USB по русски.
Go to the top of the page
 
+Quote Post
v_mirgorodsky
сообщение Feb 28 2006, 16:46
Сообщение #20


Местный
***

Группа: Свой
Сообщений: 338
Регистрация: 21-02-05
Пользователь №: 2 804



Не знаю как для флешей, но для обычных жестких дисков самый первый сектор на диске - MBR. В нем содержится таблица разделов диска. Далее в начале каждого раздела находится BOOT. Так как MBR в вашем случае имеет неправильную структуру, поскольку он BOOT по формату, то винда и не хочет с ним корректно работать и пытается найти MBR на следующей дорожке. Для проверки данного утверждения необходимо все снести с флешки (забить ее нулями) и попытаться выполнить все операции по разметке средствами самой винды. Если запись/чтение реализованы корректно, то проблем быть не должно.


--------------------
WBR,
V. Mirgorodsky
Go to the top of the page
 
+Quote Post
kernel32ddl
сообщение Mar 1 2006, 10:22
Сообщение #21


Участник
*

Группа: Свой
Сообщений: 44
Регистрация: 20-02-06
Из: Penza
Пользователь №: 14 526



На флэшках, структуру которых мне удалось посмотреть MBR и таблицы нет. Идет сразу раздел со своей загрузочной областью. Объясняется это наверно тем, что в ней просто нет неоходимости - раздел-то на флэшке только один.
Наконец-то удалось раздобыть флэшину на 128 мб cheers.gif , обнаружил много несоответствий. Как только исправлю все, сообщу о результатах.
Go to the top of the page
 
+Quote Post
kernel32ddl
сообщение Mar 3 2006, 12:57
Сообщение #22


Участник
*

Группа: Свой
Сообщений: 44
Регистрация: 20-02-06
Из: Penza
Пользователь №: 14 526



Итак... Первым делом пришлось фарматировать флэш средствами винды под ФАТ16. Винда создала там таблицу разделов, мбр и собственно сам раздел. Но тут меня ожидал БАЛЬШОООЙ облом. После полного копирования всего вышеописанного на флэшь.... НИЧЕГО НЕ ИЗМЕНИЛОСЬ!!! Как не работало, так и не стало работать. И тут я обратил внимание на одну проблему, значение которой я поначалу не придал. Ответ винде от моего устройства приходол только тогда, когда винда повторно отправляла команду! А все из-за того, что после передачи ей данных я не отправлят пустые пакеты (SEND_ACK и GET_ACK). Но на этом проблемы не закончились... Некоторые ответы на команды иногда все равно отправлялись только со второго раза. И возникла некая несогласованность.
Объясняю(пример):
Приходит команда(25), в ответ на команду должны передаться данные (data25), затем ответ на команду. Данные сразу не передаются и команда принимается еще раз и данные со второго раза передаются. Затем приходит другая команда и data25 опять передаются.
Вобщем бардак.
ЗНАЮЩИЕ ЛЮДИ БОЛЬШАЯ ПРОСЬБА! ОБЪЯНИТЕ МНЕ ДУРАКУ В КАКИХ СЛУЧАЯХ НАДО ОТПРЯВЛЯТЬ SEND_AKC и GET_ACK?
Go to the top of the page
 
+Quote Post
jhoo
сообщение Mar 7 2006, 06:10
Сообщение #23


Участник
*

Группа: Новичок
Сообщений: 22
Регистрация: 19-04-05
Пользователь №: 4 288



Что такое пустые пакеты 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 отправлял бинарные файлы с командами и данными.
Тогда сразу видно будет кто виноват.
Go to the top of the page
 
+Quote Post
kernel32ddl
сообщение Mar 20 2006, 12:58
Сообщение #24


Участник
*

Группа: Свой
Сообщений: 44
Регистрация: 20-02-06
Из: Penza
Пользователь №: 14 526



Цитата(jhoo @ Mar 7 2006, 09:10) *
Лучше отлаживать все команды по отдельности, например через usbio.

уважаемый jhoo не подскажите что это за программа и где ее можно взять?
Go to the top of the page
 
+Quote Post
jhoo
сообщение Apr 3 2006, 06:32
Сообщение #25


Участник
*

Группа: Новичок
Сообщений: 22
Регистрация: 19-04-05
Пользователь №: 4 288



Может быть поздно. Но, http://www.thesycon.de/
Go to the top of the page
 
+Quote Post
kernel32ddl
сообщение Apr 3 2006, 08:55
Сообщение #26


Участник
*

Группа: Свой
Сообщений: 44
Регистрация: 20-02-06
Из: Penza
Пользователь №: 14 526



Спасибо
Go to the top of the page
 
+Quote Post
afe
сообщение Jun 7 2006, 13:44
Сообщение #27


Частый гость
**

Группа: Свой
Сообщений: 94
Регистрация: 4-05-05
Из: Харьков
Пользователь №: 4 740



Цитата(kernel32ddl @ Mar 1 2006, 13:22) *
На флэшках, структуру которых мне удалось посмотреть MBR и таблицы нет. Идет сразу раздел со своей загрузочной областью. Объясняется это наверно тем, что в ней просто нет неоходимости - раздел-то на флэшке только один.
Наконец-то удалось раздобыть флэшину на 128 мб cheers.gif , обнаружил много несоответствий. Как только исправлю все, сообщу о результатах.


Voobsheto nikto ne zapreshaet sdelat' neskol'ko razdelov, po krayney mere na CF ya delal bez problem.


--------------------
SY AfE
Go to the top of the page
 
+Quote Post

2 страниц V  < 1 2
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 31st May 2016 - 17:55


Страница сгенерированна за 0.01419 секунд с 7
ELECTRONIX ©2004-2014