igorle 0 31 октября, 2013 Опубликовано 31 октября, 2013 · Жалоба Использую пример от ST. Данные хранятся на SD карте. Хочу, чтобы мое устройство было read only. Я проследил всю цепочку - от USB прерывания до собственно функции записи. По дороге никакие флаги не проверяются. Я полагаю, что мое устройство, когда представляет себя хосту, должно сказать, что оно Read Only". Скорее всего - я должен модицифировать дескриптор моего устройства (MASS_DeviceDescriptor в usb_desc.c) Но там не структура, а массив. Сооветственно имен полей нет. Пристальное вглядывание в дескриптор не помогло. Вопросы: - Как сказать, что устройство Read Only? - Где посмотреть структуру MASS_DeviceDescriptor? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Tarbal 4 31 октября, 2013 Опубликовано 31 октября, 2013 · Жалоба Использую пример от 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 Вы на Линуксе? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vladivolt 0 31 октября, 2013 Опубликовано 31 октября, 2013 · Жалоба Если это большая карта, то там есть механический переключатель: К сожалению, это только кусочек пластмассы, который служит толкателем для контакта "кармана" 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 этого документа Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
igorle 0 31 октября, 2013 Опубликовано 31 октября, 2013 · Жалоба Я работаю на STM32. Там не то что Линукс - там всего 20 килобайт кода у меня. Механический Lock на SD карте - это всего лишь кнопка. Вот я и хочу сообщить хосту, что эта "кнопка" находится в состоянии "Locked" Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vladivolt 0 31 октября, 2013 Опубликовано 31 октября, 2013 · Жалоба Скорее всего - я должен модицифировать дескриптор моего устройства Вот проделал такой опыт - взял карту, вставил в ридер, считал дескрипторы. Затем переставил движок и снова считал. Разницы нет. При этом в самом деле запись на карту не проходит. Так что, наверное, устройство должно опрашивать состяние движка через контакт и отвергать запросы хоста на запись. Отпишитесь, как будет успех. usb_sd.zip Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
igorle 0 31 октября, 2013 Опубликовано 31 октября, 2013 · Жалоба Спасибо! А какой получить такие красивые текстовые файлы с дескрипторами (да еще и с расшифровкой)? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vladivolt 0 31 октября, 2013 Опубликовано 31 октября, 2013 · Жалоба Спасибо! А какой получить такие красивые текстовые файлы с дескрипторами (да еще и с расшифровкой)? UVCView.x86.exe - как есть, надежен ли источник, вам решать Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 53 31 октября, 2013 Опубликовано 31 октября, 2013 · Жалоба Вот проделал такой опыт - взял карту, вставил в ридер, считал дескрипторы. Затем переставил движок и снова считал. Разницы нет. При этом в самом деле запись на карту не проходит. В карте проверки на readonly нет!! Это должен делать контроллер. В УСБ-флешках есть такая функция, реализуется либо переключателем на корпусе либо программно, с помощью проги для встроенного контроллера (сам видел для чипов phison и alcor) так же флеха может сама перейти в только чтение при повреждении внутреннего нанда. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
igorle 0 31 октября, 2013 Опубликовано 31 октября, 2013 · Жалоба Дак ведь я и делаю тот самый контроллер. Вопрос - как мне сказать хосту, что я разрешаю только чтение? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 53 1 ноября, 2013 Опубликовано 1 ноября, 2013 (изменено) · Жалоба Дак ведь я и делаю тот самый контроллер. Вопрос - как мне сказать хосту, что я разрешаю только чтение? В смысле, УСБ-хосту? Ему на это какбы пофиг Он сам "говорит" об этом файловой системе, по моему это было в diskstatus или ioctl уже подзабыл немного. Там нужно выставить флаг readonly. Изменено 1 ноября, 2013 пользователем mantech Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Tarbal 4 1 ноября, 2013 Опубликовано 1 ноября, 2013 · Жалоба Дак ведь я и делаю тот самый контроллер. Вопрос - как мне сказать хосту, что я разрешаю только чтение? Наверняка в протоколе есть сообщения об ошибках. Вот и возвращайте подходящую ошибку. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться