|
|
  |
USB Mass Storage, как объявить его "только чтение"? |
|
|
|
Oct 31 2013, 15:38
|
Профессионал
    
Группа: Свой
Сообщений: 1 351
Регистрация: 21-05-10
Пользователь №: 57 439

|
Цитата(igorle @ Oct 31 2013, 15:21)  Использую пример от ST. Данные хранятся на SD карте. Хочу, чтобы мое устройство было read only. Я проследил всю цепочку - от USB прерывания до собственно функции записи. По дороге никакие флаги не проверяются. Я полагаю, что мое устройство, когда представляет себя хосту, должно сказать, что оно Read Only".
Скорее всего - я должен модицифировать дескриптор моего устройства (MASS_DeviceDescriptor в usb_desc.c) Но там не структура, а массив. Сооветственно имен полей нет. Пристальное вглядывание в дескриптор не помогло. Вопросы: - Как сказать, что устройство Read Only? - Где посмотреть структуру MASS_DeviceDescriptor? Если это большая карта, то там есть механический переключатель: http://www.olympusamerica.com/files/oima_c...es/_SD_Lock.jpgВы на Линуксе?
|
|
|
|
|
Oct 31 2013, 17:15
|
Частый гость
 
Группа: Участник
Сообщений: 168
Регистрация: 14-02-10
Пользователь №: 55 490

|
Цитата(Tarbal @ Oct 31 2013, 19:38)  Если это большая карта, то там есть механический переключатель: К сожалению, это только кусочек пластмассы, который служит толкателем для контакта "кармана" Цитата Mechanical write protect switch (Host responsibility only) The position of the write protect switch is unknown to the internal circuitry of the card. см 4.3.6 этого документа
--------------------
#define TRUE (4==(2*2))
|
|
|
|
|
Oct 31 2013, 17:51
|
Частый гость
 
Группа: Участник
Сообщений: 168
Регистрация: 14-02-10
Пользователь №: 55 490

|
Цитата(igorle @ Oct 31 2013, 15:21)  Скорее всего - я должен модицифировать дескриптор моего устройства Вот проделал такой опыт - взял карту, вставил в ридер, считал дескрипторы. Затем переставил движок и снова считал. Разницы нет. При этом в самом деле запись на карту не проходит. Так что, наверное, устройство должно опрашивать состяние движка через контакт и отвергать запросы хоста на запись. Отпишитесь, как будет успех.
--------------------
#define TRUE (4==(2*2))
|
|
|
|
|
Oct 31 2013, 20:09
|
Частый гость
 
Группа: Участник
Сообщений: 168
Регистрация: 14-02-10
Пользователь №: 55 490

|
Цитата(igorle @ Oct 31 2013, 23:19)  Спасибо! А какой получить такие красивые текстовые файлы с дескрипторами (да еще и с расшифровкой)? UVCView.x86.exe - как есть, надежен ли источник, вам решать
--------------------
#define TRUE (4==(2*2))
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|