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

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

Агуров П.В. Интерфейсы USB. Практика использования и программирования — БВХ-Петербург, 2004. — 576 c.
ISBN 5-94157-202-6
Скачать (прямая ссылка): interfeysusbpraktikaispolzovaniya2004.djvu
Предыдущая << 1 .. 126 127 128 129 130 131 < 132 > 133 134 135 136 137 138 .. 168 >> Следующая

keyboard, ' mouse, serial, and pirbllel.deviqes. г
! For devices that transfer large amounts of data in a short time, such
as storage devices.
.This release of DriverWizard supports Buffered or Direct access only.
Finish;
Cancel
Help
Рис. 14.17. Вкладка Buffers девятого шага создания драйвера
NT/WDM Device Driver Wizard (DriverWorks) - Step 9 of H
Define one or mote device classes.
ATDriverDevice
Interface] Buffers Power
Rename...
Power Management Support
WDM drivers must support power management: vindicate thi level of support
fpt pdWet management; for this device. •
Г tflanjge power for this device;
|T'Enabi&;rtdtA4ake.$upport .: .
П &eviee jed""af( thrudisif powprot startup
: Finish
Cancel
Help
Рис. 14.18. Вкладка Power девятого шага создания драйвера
Гпава 14. Создание USB-устройства на основе ATMEL АТ89С5131
421
Шаг 10. Задание кодов IOCTL
На десятом шаге задаются КОДЫ функции DeviceloControl (рис. 14.19), если,
конечно, была выбрана поддержка этой функции на 6 шаге. Кнопка Add
позволяет добавить код пользовательской функции (рис. 14.20).
NT/WDM Device Driver Wizard (DriverWorks) - Step 10 of 11
Define control codes used to communicate with applications or other
drivers through the Device 10 Control interface.
fxfl
Name _________________I Q? I .Ordinal I Method j Access
ATD RIVE R J 0 CTL_800 N 0x800 "Buffered 'Any
Add...
d
Edit...
Bemove
Include File Name: . ATDrivenoctl.h
Next >
Finish 1 Cancel
Help
Рис. 14.19. Десятый шаг создания драйвера
Add 10 Control Code (IOCTL) E
Earameter Name
t JATDRIVERJOCTL800
Ordinal
j0x800
!...'МеЛКоЙ:: 1:! 11i-.¦
:| Buffered d
Access
Г .Queue [icrial ге| this i-iouest code Cancel-
OK.
Рис. 14.20. Добавление кода пользовательской функции
422
Часть IV. Создание USB-устройств
Шаг 11. Дополнительные настройки
На последнем шаге создания драйвера (рис. 14.21) выбирается, нужно ли
создавать тестовое приложение для драйвера (Create test console
application) и дополнительные настройки отладки и создания лога событий.
NT/WDM Device Driver Wizard (DriverWorks) - Step 11 of 11
DriverWorks
< Back
Additional options
Test Application -:----------------------
¦ Eilename |T est_ATDrivei I Debug Options ---------------___
Wm
mm
Ш
...........
,,! -
Г" Enable Break at Driver Entry Г generate Trace Code ¦
IrDTA
Specify default pool tag for memory Enter four characters in reverse
order.
Mote Options - t Г ЕдаЫе Event Lo
Г" Enable DrwScftkrts Suppo'tfl DI Г lent] Г Generate S4 bit
configurations
Finish
Cancel
m
Help
Рис. 14.21. Последний шаг создания драйвера
Вообще говоря, тестовое приложение нам не нужно, т. к. для создания
приложения мы будем использовать Delphi, но для простейшего тестирования
драйвера можно использовать и приложение C++.
14.2.4. Доработка шаблона драйвера
Получившийся драйвер является заготовкой для настоящего USB-драйвера и
требует небольшой доработки. Точнее, требуется выполнить следующий набор
действий:
1. Дописать реализацию функций в/в.
2: Сгенерированный драйвер содержит только один интерфейс, поэтому при
необходимости нужно создать нужное число экземпляров класса
KUsblnterface.
Глава 14. Создание USB-устройства на основе ATMEL АТ89С5131
423
3. По умолчанию активизируется конфигурация номер 1; если устройство
имеет другие настройки или несколько конфигураций, нужно обеспечить их
функционирование.
4. Дописать реализацию функций IOCTL.
14.2.5. Базовые методы класса устройства
Листинг 14.4 показывает код класса ATDriver (мы позволили себе несколько
сократить листинг, выделив только важные места кода). Обратим внимание на
переменную m_unit. При загрузке драйвера (функция DriverEntry) эта
переменная обнуляется, а при каждом вызове AddDevice увеличивается на
единицу. Это позволяет создавать экземпляры класса ATDriverDevice с
уникальными в пределах системы именами. Первое устройство, для которого
будет загружен драйвер, будет иметь имя ATDriverDeviceO, второе
ATDriverDevice 1 и т. д.
Шшяяяаж!
fdefine VDWJMAIN #include <vdw.h> finclude <kusb.h> finclude "ATDriver.h"
¦include "ATDriverDevice.h"
¦pragma hdrstop("ATDriver.pch")
// Generated by DriverWizard version DriverStudio 2.6.0 (Build 336)
miimiimiimiimimuimiummuimiimimitimttmt
II ATDriver:-.DriverEntry ,
N Вызывается при загрузке драйвера!
iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiu
NTSTATUS ATDriver::DriverEntry(FUNICQDEjSTRING RegistryPath)
1
m_Unit = 0;
return STATUSjSUCCESS;
}
II End INIT section
iiiiimmiiimnmnmiiunumiiuuuunniuiiiiiiiiiiiiii
¦pragma code_seg()
iinnimmmimuimiiiinitimtinttmuuuuiiiiiiiiiiiui
H HUJirinillM I М.У F.FF'J F VSH.F P.! " -
•••..........¦¦¦;;¦( - '¦* i и )•¦:> I'i't
............................................ na'iiLltiil',
424
Часть IV. Создание USB-устройств
И ATDriver::AddDevice
II Вызывается при подключении устройства
IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
NTSTATUS ATDriver::AddDevice(PDEVICE_OBJECT Pdo)
Предыдущая << 1 .. 126 127 128 129 130 131 < 132 > 133 134 135 136 137 138 .. 168 >> Следующая
Книги
Web-программирован-
ие
Аппаратное обеспечение Графика Руководство по П.О. Самоучитель Теория программирования Фотошоп Языки программирования
Новые книги
Вирт Н. "Систематическое программирование " (Теория программирования)

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

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

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

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