Компьютерные книги
Главное меню
Главная Поиск по сайту Добавить материал О нас Карта книг Карта сайта
Реклама
computersbooks.net -> Добавить материал -> Аппаратное обеспечение -> Агуров П.В. -> "Интерфейсы USB. Практика использования и программирования" -> 157

Интерфейсы USB. Практика использования и программирования - Агуров П.В.

Агуров П.В. Интерфейсы USB. Практика использования и программирования — БВХ-Петербург, 2004. — 576 c.
ISBN 5-94157-202-6
Скачать (прямая ссылка): interfeysusbpraktikaispolzovaniya2004.djvu
Предыдущая << 1 .. 151 152 153 154 155 156 < 157 > 158 159 160 161 162 163 .. 168 >> Следующая

обеспечением.
516
Часть V. Справочник
18.3. Обработка списка дескрипторов UCH
Порядок выполнения запросов определяется планом обработки дескрипторов
(Schedule Layout). В начале выполнения очередного кадра хост-контроллер
получает из списка кадров указатель на список дескрипторов, который
должен быть обработан в данном кадре.
Список дескрипторов формируется согласно определенным правилам (рис.
18.3). Каждый элемент списка может быть действительным или
недействительным. Действительный элемент списка кадров должен содержать
указатель на дескриптор передачи или очередь заголовка. В нормальном
режиме работы контроллера все элементы списка должны быть
действительными.
Список кадров
Указатель кадра Q Т
Указатель кадра Q Т
Q т
Указатель кадра Q т
Дескрипторы
управляющих
посылок
Дескрипторы
передачи
данных
Рис. 18.3. Пример списка дескрипторов
В первую очередь должны быть обработаны дескрипторы изохронной передачи,
поэтому такие дескрипторы размещаются последовательно друг за другом в
начале списка. Далее обрабатывается список заголовков, в начале которого
размещены заголовки очередей дескрипторов для передачи по прерываниям,
затем следуют заголовки очередей дескрипторов управляющих посылок. В
конце списка находятся заголовки очередей дескрипторов передачи данных.
Список дескрипторов изохронной передачи в каждом кадре свой, а список
заголовков очередей общий для всех кадров.
Каждый заголовок очереди указывает на первый из находящихся в очереди
дескрипторов передачи. Обычно список заголовков очередей обрабатывается
по горизонтали (в ширину): контроллер извлекает из заголовка первый
дескриптор в очереди, обрабатывает его и переходит к следующему заголовку
очереди. При необходимости можно установить режим обработки очереди по
вертикали: контроллер в этом случае вначале обработает всю очередь и
только потом перейдет к заголовку следующей очереди.
Глава 18. Хост-контроллер UCH
517
Если выполнение операции, заданной дескриптором передачи, не завершено в
текущем кадре (например, данные не готовы для передачи), в следующем
кадре операция повторяется. Когда операция завершена, дескриптор передачи
помечается как обслуженный и удаляется из очереди: контроллер извлекает
из него указатель на следующий дескриптор и переписывает его в заголовок
очереди. Область, зарезервированная в дескрипторе передачи для
программного обеспечения, в первую очередь предназначена для "сборки
мусора": из обслуженных и ненужных дескрипторов можно сформировать
очередь с целью повторного использования занимаемых ими участков памяти.
Каждая очередь дескрипторов передачи обычно формируется прикладной
программой для работы с определенной функцией или конечной точкой
функции. Если программа работает с несколькими конечными точками или в
системе параллельно выполняется несколько прикладных программ, в списке
будут присутствовать несколько очередей дескрипторов.
Глава 19
Инструменты
В разд. 9.5 мы уже рассматривали инструменты создания драйверов, а в этой
главе мы опишем некоторые инструменты, облегчающие работу.
19.1. Средства Microsoft Visual Studio
Поставка Microsoft Visual Studio 6 включает несколько программ, которые
могут оказаться полезными при разработке USB-устройств и драйверов.
19.1.1. Depends
Программа Depends (рис. 19.1) позволяет посмотреть внутреннее содержание
DLL-модулей: импортируемые и экспортируемые функции, использование других
модулей, версии модулей и т. д.
19.1.2. Error Lookup
Программа Error Lookup (рис. 19.2) отображает строковое значение ошибки
по номеру ошибки.
19.1.3. GuidGen
Программа GuidGen (рис. 19.3) позволяет сгенерировать уникальный
идентификатор GUID для ключа в реестре или для идентификатора драйвера
(устройства).
Более простая консольная программа UUIDGEN создает один идентификатор при
каждом запуске.
Глава 19. Инструменты
519
Dependency Walker - [ftserui2.dll]
.SlJ ?dit : View Window' Help
.JjSJXj
tel A <*| %|B|m| к?|
FT5ERUI2.DLL
•Ш SETUPAPI.DLL H-3 MSVCRT.DLL Н Jfj KERNEL32.DLL
¦•¦3a3NTDa.DLL О NTDLL.DLL AJ ADVAPI32.DLL В СЭ GDI32.DLL
"Й NTDLL.DLL : В -tai KERNEL32.DLL 3 Jtl NTDLL.DLL : *; U5ER32.DLL E45J
KERNEL32.DLL
-3sljNTDLL.DLL
В О RPCRT4.DLL
Ordinalл Hint Function Entry Point 1

Ordinalл Hint Function Entry Point 1
[§ 1 (0x0001) @ 2 (0x0002) В 3 (0x0003) В 4 (0x0004) 0 (0x0000) 1
(0x0001) 2 (0x0002) 3 (0x0003) LibMain
ParallelPortPropPageProvider Portsdasslnstaller
SerialPortPropPageProvider OX000039C3 0x00004432 OX000039E5 0X000015BD
Module л Time Stamp Size Attributes Machine -it Subsystem t Debug t
;B?sei;:t 4
? ADVAPI32.DLL 06/19/03 12:05p 387,344 A Intel x86 Win32
console No ох'тсгвоо
CD COMCTL32.DLL 08/29/02 8:14a 529,680 A Intel x86 Win32 GUI
No 0к71П1QQ
CD FTSERUI2.DLL 06/11/03 11:48a 48,625 A Intel x86 Win32
console Yes 0x004000
CD GDI32.DLL 08/05/03 4:14p 222,992 A Intel x86 Win32
console No 0x77F400
? KERNEL32.DLL 08/05/03 4:14p 711,440 A Intel x86 Win32
Предыдущая << 1 .. 151 152 153 154 155 156 < 157 > 158 159 160 161 162 163 .. 168 >> Следующая
Книги
Web-программирован-
ие
Аппаратное обеспечение Графика Руководство по П.О. Самоучитель Теория программирования Фотошоп Языки программирования
Новые книги
Вирт Н. "Систематическое программирование " (Теория программирования)

Эком "Microsoft Excel 2000 шаг за шагом Русская версия самоучитель " (Самоучитель)

Поляков А.Ю. "Методы и алгоритмы компьютерной графики в примерах Vizual C++" (Графика)

Баяковский Ю.М. "Графическая библиотека Open GL " (Графика)

Валиков А. "Технология " (Языки программирования)
Авторские права © 2013 ComputersBooks. Все права защищены.