Перейти к содержанию
    

USB устройство со встроенной файловой системой

Вопрос из разряда поиска информации. Года два назад, мне казалось, что я видел спецификацию USB устройства со встроенной файловой системой. Обычные флешки предлагают себя как область памяти сегментированную или нет, но файловая система обеспечивается внешней ОС, например Windows. А тут вопрос о том, что внутри устройства уже есть файловая система. Может то, что я видел раньше, это не то что мне надо. Потому вопрос: Существует ли некая спецификация устройств USB так, что бы компьютер обращался именно пофайлово? Это еще интересно тем, что можно поднять некие системные ресурсы в виде виртуальных папок.

Возможно, как вариант, технология Push (ActiveSync) от Microsoft. С ней не сталкивались? Она вроде требует лицензирования.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

что я видел спецификацию USB устройства со встроенной файловой системой.

Вообще не представляю, нафига такое может быть использовано. И вообще, простые FAT совсем просто пишутся где угодно, а сложные слишком интимны, а производительные столько ресурсов жрут, что не для брелков.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вообще не представляю, нафига такое может быть использовано.

Девайс достаточно сложен внутри и имеет на флеш диске файловую систему не поддерживаемую Windows. Можно, конечно, и сэмулировать FAT отформатированное пространство для Windows, но решение несколько кривое. Как вариант оно рассматривается, но с низким приоритетом. Хотелось бы по-человечески, файловое обращение. Если бы это было сетевое устройство, а не USB, то я бы просто повесил ftp сервер.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вообще не представляю, нафига такое может быть использовано. И вообще, простые FAT совсем просто пишутся где угодно, а сложные слишком интимны, а производительные столько ресурсов жрут, что не для брелков.

 

Самое смешное, это какой прикладной протокол для этого предполагается использовать.

Уж не AT ли команды? :biggrin:

SCSI как понимаю засложный будет, да и мапирование верхнего уровня для конкретной реализации файловой системы потребуется неслабое поверх SCSI.

Но и для AT команд описание такого мапирования займет приличную книгу.

Характерный пример это чипы Vinculum.

Там описание дурного ASCII протокола для обмена с USB дисками чуть ли не больше по объему чем описание SCSI команд хоста для USB флешей.

Т.е. интегрировать Vinculum для специалиста будет более накладно чем интегрировать софт USB хоста.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Самое смешное, это какой прикладной протокол для этого предполагается использовать.

Уж не AT ли команды?

Как-то было реализовано. Но тогда мне это было не надо и я не вникал. А сейчас...

Реализовано было не сложно, девайс был достаточно простой. Суть была в том, что подключенное к компу устройство было видно как диск. При этом в самом устройстве никаких дисков не было. На этом сэмулированном диске были файл конфигурации, который можно было отредактировать из текстового редактора и таким образом настроить устройство и файлы логов событий, они были вроде как только для чтения. Сама идея такого простого администрирования устройства мне тогда и запала в душу.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Суть была в том, что подключенное к компу устройство было видно как диск.

Свежайшая и оригинальнейшая идея :)

При этом в самом устройстве никаких дисков не было

Были, были. Разве только не физические. Какая разница, транслируется open() в некий неведомый запрос неведомому драйверу общающемуся по неведомому протоколу с неведомым устройством. Или, все, как обычно обращается к драйверу FAT и далее.

На этом сэмулированном диске были файл конфигурации, который можно....

Отлично! Поднимаете примитивнейший FAT, причем совершенно не изобретая ни сущностей, ни велосипедов и вот оно счастье:

Сама идея такого простого администрирования устройства мне тогда и запала в душу.

Хотя какой фат тут даже, если файл один.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Суть была в том, что подключенное к компу устройство было видно как диск.

Делаю что-то подобное, но на этом диске приходится держать exe-шник, ибо по другому не получается победить кэширование в винде.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Какая разница, транслируется open() в некий неведомый запрос неведомому драйверу общающемуся по неведомому протоколу с неведомым устройством.

Вот неведомых там не было, ничего дополнительного в винды не ставилось.

Отлично! Поднимаете примитивнейший FAT, причем совершенно не изобретая ни сущностей, ни велосипедов и вот оно счастье:

Не понял, поподробнее. С флэш дисками фатом заведует Винда, а флеш диск, сколько я знаю, представляет из себя плоскую область памяти. Вы имеете в виду поднять в моем устройстве анти FAT? Т.е. эмуляцию FAT отформатированного пространства. В моем устройстве, в отличе от того, что я видел, будет много папок, часть из них виртуальные, а доступ к разным файлам будет зависеть от состояния устройства. Тут бы конечно а-ля сетевой доступ было бы проще реализовать, ну или, по крайней мере, прозрачнее, но Ethernet в нем нет и IP так же. А если эмулировать пространство, то мне заранее неизвестно в какой сектор захочет винда положить измененный или новый файл, она просто начнет писать, а потом модифицировать область DIR и FAT. Получается, что однозначное решение только на чтение.

Изменено пользователем Мусатов Константин

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Делаю что-то подобное, но на этом диске приходится держать exe-шник, ибо по другому не получается победить кэширование в винде.

А как Вы реализуете, эмуляция FAT отформатированного пространства или по-другому?

 

Информация: USB.Mass.Storage

Спасибо! Похоже тут ответы на все вопросы!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А как Вы реализуете, эмуляция FAT отформатированного пространства или по-другому?

Я ничего не эмулирую. Форматирует винда. Я только туда логи в виде файлов пишу. Для винды они read only. Вот винда эти файлы и кэширует, ну не понимает она, что там может что-то без неё изменится. И стандартными программами перечитать не получится...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я ничего не эмулирую. Форматирует винда.

Т.е. у Вас плоское адресное пространство, отформатированное виндой под FAT. Вы сами так же к нему обращаетесь через встроенный драйвер FAT и пишете туда логи. Я правильно понял?

Если так, то мне это не подходит, поскольку встроенная MicroDS карточка в нашем проекте отформатирована не под FAT, а под отказоустойчивую файловую систему, которую Win не понимает и я не могу отрыть плоский доступ к ней. А проблемы кеширования у меня наоборот нет, во время обслуживания, основной работы контроллером не ведется.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если так, то мне это не подходит, поскольку встроенная MicroDS карточка в нашем проекте отформатирована не под FAT, а под отказоустойчивую файловую систему,

 

ExtFAT и есть самая что ни на есть отказоустойчивая файловая система. :biggrin:

 

Как выход делать Mass Storage c FAT на RAM. А уж от туда перекачивать на вашу проприетарную систему.

Можно эмулировать FAT и в файле на физической другой файловой системе.

Но почему вам трудно сделать FTP через тот же RNDIS?

Или вам ключи от сорсов еще дать? :laughing:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ExtFAT и есть самая что ни на есть отказоустойчивая файловая система

Как я понял, не совсем, хотя с элементами танзакционности. :)

К тому же ее надо лицензировать у Мелкомягких, она не свободная, а девайс коммерческий.

Как выход делать Mass Storage c FAT на RAM. А уж от туда перекачивать на вашу проприетарную систему.

Опасаюсь, что РАМ-а не хватит, там итак плотненько.

Но почему вам трудно сделать FTP через тот же RNDIS?

Придется ставить еще и IP. Но это вариант.

Или вам ключи от сорсов еще дать?

А покажите того, кто откажется :))))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Несколько запоздало, но была еще MTP спецификация. Микрософт ее поддерживает. Может быть, не очень удобно для передачи логов, но зато это объектно-ориентированная передача, файлы передаются как единое целое и не требуют Fat'а на устройстве.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...