![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
nullpoint |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 51 Регистрация: 4.6.2013 Репутация: нет Всего: нет |
Собственно сабж. Какой максимальный размер блока данных, которые можно считать/записать за раз с/на usb флешки по протоколу Bulk-only Mass Storage Device?
|
|||
|
||||
tzirechnoy |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1173 Регистрация: 30.1.2009 Репутация: -1 Всего: 16 |
А что Вы понимаете под "одним разом".
|
|||
|
||||
borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 21 Всего: 135 |
ЕМНИП, по спецификации USB 2.0 размер пакета равен 512 байт, а в USB 3.0 - 1024 байта, но все драйвера контроллера USB на материнке умеют буферизировать пакеты и вы можете заказывать у устройства достаточно большой размер данных. Насколько большой - зависит от реализации драйверов
-------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
nullpoint |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 51 Регистрация: 4.6.2013 Репутация: нет Всего: нет |
tzirechnoy, за один запрос
Например, где-то видел для usb дисковода, там в режиме OHCI за один запрос передавалось 4Кб, а в EHCI 16Кб, т.е. размер сектора диска помноженный соответственно на 2 и на 8. borisbn, как раз таки и пишу драйвер для микроконтроллера. Это сообщение отредактировал(а) nullpoint - 18.2.2015, 12:49 |
|||
|
||||
tzirechnoy |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1173 Регистрация: 30.1.2009 Репутация: -1 Всего: 16 |
За один, простите, запрос кого к кому? У меня вот один запрос к команде dd вполне можэт прочитать 4 тэрабайта по USB mass storage bulk transfer с жёсткого диска соответствующего размера. |
|||
|
||||
nullpoint |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 51 Регистрация: 4.6.2013 Репутация: нет Всего: нет |
tzirechnoy, я только начинаю разбираться с написанием драйверов и поэтому могу неправильно называть вещи. За одну транзакцию передачи или приема.
|
|||
|
||||
tzirechnoy |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1173 Регистрация: 30.1.2009 Репутация: -1 Всего: 16 |
Совершэнно на каждом уровне есть что-нибудь, что можно назвать одной транзакцыей. Собственно, ничто не мешает мне назвать транзакцыей вот тот вызов dd, с 4 тэрабайтами данных. Я, честно говоря, не знаю точно, чем тебе можно помочь. У этого протокола есть несекретная часть -- та, что описана в USB Mass Storage Bulk-only transport. Если бы ты её прочитал и понял -- ты бы говорил сейчас не про "одну транзакцыю", а про что-нибудь более конкретное, и у нас был бы предмет для обсуждения. В общем, для планов программирования USB Mass storage со стороны микроконтроллера, тебе надо что-то сделать, чтобы понять хотя бы эту спецыфикацыю. Что -- не знаю, поскольку понятия не имею, почему ты её не прочитал или непонял -- я не знаю, но, думаю, здесь какой-то вопрос с пониманием USB-стэка как такового или дажэ программирования (а, возможно, и проблемы с чтением). Возможно, впрочем, что проблемы с поиском. До того, как ты избавишься от этой проблемы, которая не позволяет тебе её понять -- я как-то не вижу никакой для тебя возможности извлечь пользу из любого конкретного числа про любой конкретный уровень, которое мы тебе могли бы назвать. Возможно, впрочем, что ты не планируешь программировать микроконтроллер, тогда, возможно, тебе и не надо понимать никаких спецыфикацый -- но, опять жэ, любое конкретное число будет безсмысленным. Впрочем, в таком случае, возможно, если ты скажэшь задачу, для которой тебе захотелось узнать это число -- то мы сможэм как-нибудь помочь с этой задачей. |
|||
|
||||
nullpoint |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 51 Регистрация: 4.6.2013 Репутация: нет Всего: нет |
tzirechnoy, не отрицаю что в дебрях usb стека я не ориентируюсь, но как мне кажется вы тоже не совсем (а может и совсем) не понимаете (или объясняете так, что я вас не понимаю) то о чем говорите. Вот так вам будет понятней что за транзакцию я имею ввиду?
![]() Это сообщение отредактировал(а) nullpoint - 18.2.2015, 21:37 |
|||
|
||||
tzirechnoy |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1173 Регистрация: 30.1.2009 Репутация: -1 Всего: 16 |
Да, так понятнее (хотя видеть этот рисунок по-русски, конечно, несколько странно).
Максимальный размер этого пакета ("транзакцыи") устанавливается самим девайсом (в дескрипторе конфигурацыи endpoint), для USB1 (low speed или full speed) стандарт вводит ограничение этого максимума в 64 байта, для USB2 (high speed) -- 512 байт. Это сообщение отредактировал(а) tzirechnoy - 19.2.2015, 08:36 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |