реклама на сайте
подробности

 
 
> Скорость по USB (MassStorage).
Oleg_IT
сообщение Dec 22 2010, 06:40
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 922
Регистрация: 3-06-05
Из: Москва
Пользователь №: 5 709



LPC2478. Разобрался с MassStorage с SD картой, но скорость, мягко говоря, низкая, на LPC 33-35 ед., та же карта с кардридером ~5000 ед. Как заставить эту парочку быстрее работать?

Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Oleg_IT
сообщение Dec 23 2010, 03:37
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 922
Регистрация: 3-06-05
Из: Москва
Пользователь №: 5 709



Примерно понятно, не знаю только, что есть чанк. Часть cектора? Как определить какой сектор хост потребует в следующий раз? Работу программы понимаю так (разбирая исходник, может и ошибаюсь), хост запрашивает данные из куска заданного сектора, эти данные вычитываются с карточки и пересылаются в хост. Пока данные пересылаются, могу вычитать следующий сектор, но какой? Ходя по программе дебагером видно, что сектора не всегда вычитываются последовательно.
Go to the top of the page
 
+Quote Post
=AK=
сообщение Dec 23 2010, 06:26
Сообщение #3


pontificator
******

Группа: Свой
Сообщений: 3 055
Регистрация: 8-02-05
Из: страны Оз
Пользователь №: 2 483



Цитата(Oleg_IT @ Dec 23 2010, 17:07) *
что есть чанк.

"Чанками" (от английского chunk - "кусок") я называю USB-пакеты. В USB длинное сообщение не передается целиком, а разбивается на куски и передается пакетами.

Для балк-трубы (а масс-сторадж качает данные через балк) размер пакета может быть 8, 16, 32 или 64 байта, он декларируется в дескрипторе устройства. Как правило для балка все используют пакеты в 64 байта.

К секторам это не имеет отношения. Когда вы перекачиваете файл или массив через USB, низкоуровневый софт и железо (или даже вообще одно только железо, надо смотреть, кто это делает в вашем случае) разбивает его на чанки и закидывает в USB. Если размер очередного чанка равен 64 байта, значит, файл еще не закончился, хост будет требовать еще. Если чанк меньше 64 байт (вплоть до нуля), то хост знает, что это последний чанк файла.
Go to the top of the page
 
+Quote Post
sonycman
сообщение Dec 23 2010, 10:39
Сообщение #4


Любитель
*****

Группа: Свой
Сообщений: 1 864
Регистрация: 20-08-06
Из: Тольятти
Пользователь №: 19 695



Цитата(=AK= @ Dec 23 2010, 13:26) *
Если размер очередного чанка равен 64 байта, значит, файл еще не закончился, хост будет требовать еще. Если чанк меньше 64 байт (вплоть до нуля), то хост знает, что это последний чанк файла.

Хм, вообще-то, в случае mass storage, хост всегда знает, каков размер запрашиваемого пакета, так как сам выставляет девайсу эту информацию в виде: логический номер первого нужного сектора + количество байт.

Поэтому никакого смысла в лишней транзакции с нулевой длиной нет.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st August 2025 - 16:28
Рейтинг@Mail.ru


Страница сгенерированна за 0.01386 секунд с 7
ELECTRONIX ©2004-2016