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

USB MSC найти и прочитать один файл без FAT внутри устройства

1 минуту назад, haker_fox сказал:

что всё же может

Может - это не значит обязана, а значит, если на это дело заточить флаг извлечения, то можно опять же получить попадос...

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


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

1 час назад, mantech сказал:

А вот тут возможен попадос, если это время не регламентировано, надо тестировать на разных ОС.

Можно сделать адаптивный алгоритм, который вначале замеряет интервал между TEST_UNIT_READY (например, за первые 10 секунд) и далее полученное значение в качестве критерия для принятия решения.
PS: В линуксе, судя по
 

$ cat /sys/module/block/parameters/events_dfl_poll_msecs
2000

Период опроса 2000 миллисекунд (2 секунды). Так что таймер на 3 секунды, на первый взгляд, будет с достаточным запасом для виндов и для линукса.

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


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

В 05.04.2023 в 08:27, haker_fox сказал:

Есть железка, которая предстаёт как USB MSC для ПК. Сам диск реализован в ОЗУ. Размер 16 Мб. На этот диск записывается один! файл. Можно ли внутри железки без FAT (как я понимаю, именно эта ФС используется в USB MSC по умолчанию в Win) обнаружить, что файл был записан (имя всегда одно и то же) и считать его?

Может всё-же - не пытаться натянуть сову на глобус, а построить механизм передачи данных на другом принципе? Не через MSD, который очевидно - не подходит для вашей задачи, а более соответствующим задаче способом? Тогда и костыли не понадобятся.

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


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

8 minutes ago, jcxz said:

Может всё-же - не пытаться натянуть сову на глобус, а построить механизм передачи данных на другом принципе?

К сожалению, USB MSC - это требование ТЗ.

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


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

1 hour ago, haker_fox said:

Да тут вообще ничего не регламентировано((( Всё нужно тестировать и на разных ОС(((((

Когда я тестировал USB2.0HS на Atmel CortexM7 то там из обработчика прерывания был до пользователя протянут некий "heartbeat" являющийся вроде синхрой идущей в FS с одной частотой, а в HS раз в 100 чаще - можно за её неприход цепляться.

 

Думаю это более низкоуровневое, чем TEST UNIT READY.

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


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

35 минут назад, haker_fox сказал:

К сожалению, USB MSC - это требование ТЗ.

Ну вроде как ТЗ должно согласовываться с разработчиком. Как минимум. Я уже не говорю о том, что чаще всего оно и пишется как раз самим разработчиком.

У вас разве не так?

33 минуты назад, _4afc_ сказал:

Когда я тестировал USB2.0HS на Atmel CortexM7 то там из обработчика прерывания был до пользователя протянут некий "heartbeat" являющийся вроде синхрой идущей в FS с одной частотой, а в HS раз в 100 чаще - можно за её неприход цепляться.

Может всё-таки USB-SOF? Который в USB-FS = 1кГц, а в USB-HS = 8кГц?

Только как он поможет ТСу в его задаче?

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


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

8 minutes ago, jcxz said:

Может всё-таки USB-SOF? Который в USB-FS = 1кГц, а в USB-HS = 8кГц?

Точно. USB-SOF.

8 minutes ago, jcxz said:

Только как он поможет ТСу в его задаче?

Я хотел сказать, что USB-SOF более низкоуровневый, быстрый и всегда в наличии вариант, чем  TEST UNIT READY.

Если вдруг TEST UNIT READY как-то участвует в решении задачи.

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


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

5 минут назад, _4afc_ сказал:

Я хотел сказать, что USB-SOF более низкоуровневый, быстрый и всегда в наличии вариант, чем  TEST UNIT READY.

В общем случае SOFы будут приходить, пока устройство будет подключено к порту. Поэтому судить по SOFам о работе на более верхнем уровне КМК не получится.

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


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

1 minute ago, makc said:

В общем случае SOFы будут приходить, пока устройство будет подключено к порту. Поэтому судить по SOFам о работе на более верхнем уровне КМК не получится.

ТЗ у ТС менялось несколько раз. Если надо определить что физически вынули кабель - то SOFы помогут.

 

1.Если устройство MSC говорит removable - WIN пытается его отформатировать, показывает как флешку и шлёт TEST UNIT READY при работе.

2.Если устройство MSC не говорит removable - WIN не показывает его если оно не отформатировано, считает HDD и не шлёт TEST UNIT READY при работе.

 

Вроде обоих можно отмонтировать.

А вот шлются ли SOFы  после отмонтирования - надо проверять, может и от сборки винды зависить и от режима производительности... это ж WIN.

 

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


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

15 hours ago, jcxz said:

У вас разве не так?

У нас настолько всё сложно, что я бы даже не стал развивать эту тему. Мне проще иногда выполнить то, о чём просят, чем даже вступать в какие-либо дебаты. Условия работы разные у всех. Но есть моменты, которые иногда позволяют на всё это закрыть оба глаза))))

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


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

1 час назад, haker_fox сказал:

У нас настолько всё сложно, а порой и по идиотски, что я бы даже не стал развивать эту тему.

Сорри за оффтоп, но как же здорово, когда сам можешь выбирать, на какую работу соглашаться)))

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


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

3 часа назад, makc сказал:

В общем случае SOFы будут приходить, пока устройство будет подключено к порту. Поэтому судить по SOFам о работе на более верхнем уровне КМК не получится.

А хост, разве, не может дать команду SUSPEND, не требуя принудительного закрытия активных файлов на MSC-девайсе? Например, для экономии энергии...

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


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

32 минуты назад, Arlleex сказал:

А хост, разве, не может дать команду SUSPEND, не требуя принудительного закрытия активных файлов на MSC-девайсе? Например, для экономии энергии...

Теоретически может, но на моей практике такого не встречалось.

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


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

3 часа назад, makc сказал:

Теоретически может, но на моей практике такого не встречалось.

Вот в этом тут и проблема. Например в своем первом усб-стеке я вообще не давал команду TEST_UNIT_READY периодически. Но потом встретил упоминание, что если этого не делать, флешка может уйти в IDLE, и потом потребуется повторная инициализация, но при этом проверял на целой коробке флешек, штук 50 и много разных, и никто никуда не уходил, все работало штатно, НО никто не гарантирует, что 51я флешка возьмет да и выполнит данный алгоритм...

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


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

3 часа назад, mantech сказал:

Вот в этом тут и проблема. Например в своем первом усб-стеке я вообще не давал команду TEST_UNIT_READY периодически. Но потом встретил упоминание, что если этого не делать, флешка может уйти в IDLE, и потом потребуется повторная инициализация, но при этом проверял на целой коробке флешек, штук 50 и много разных, и никто никуда не уходил, все работало штатно, НО никто не гарантирует, что 51я флешка возьмет да и выполнит данный алгоритм...

Согласен, что решить задачу в общем случае при таких исходных данных практически невозможно. Но при этом обеспечить работоспособность хотя бы в 90% случаев, а для остальных дать критерии для подбора правильных параметров настройки ОС и софта - вполне реально. И в данном случае использование TEST_UNIT_READY вполне себе вариант.

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


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

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

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

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

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

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

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

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

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