This chapter describes WinDriver DriverWizard's hardware diagnostics and driver
code generation capabilities.
DriverWizard (included in the WinDriver toolkit) is a GUI-based diagnostics
and driver generation tool that allows you to write to and read from the
hardware, before writing a single line of code. The hardware is diagnosed
through a Graphical User Interface —
the device's configuration and pipes information is displayed, data can be
transferred on the pipes, the pipes can be reset, etc.
Once the device is operating to your satisfaction, DriverWizard creates the
skeletal driver source code, with functions to access your hardware's
resources.
If you are developing a driver for a device that is based on one of the
enhanced-support USB chipsets (the Cypress EZ-USB family), we recommend that
you read Chapter 8, which explains WinDriver's
enhanced support for specific chipsets, before starting your driver
development.
DriverWizard can be used to diagnose your hardware; on Windows it can also be
used to generate an INF file for your hardware.
Avoid using DriverWizard to generate code for a device based on one of the
supported USB chipsets [8], as DriverWizard
generates generic code which will have to be modified according to the specific
functionality of the device in question. Preferably, use the complete source
code libraries and sample applications (supplied in the package) tailored to
the various USB chipsets.
DriverWizard is an excellent tool for two major phases in your HW/Driver
development:
- Hardware diagnostics: After the hardware has been built,
attach your device to a USB port on your machine,
and use DriverWizard to verify that the hardware is performing as
expected.
- Code generation: Once you are ready to build your code, let
DriverWizard generate your driver code for you.
The code generated by DriverWizard is composed of the following elements:
- Library functions for accessing each element of your device's
resources (memory ranges, I/O ranges, registers and interrupts).
- A 32-bit diagnostics program in console mode with which you can
diagnose your device. This application utilizes the special library
functions described above. Use this diagnostics program as your skeletal
device driver.
- A project workspace/solution that you can use to automatically load
all of the project information and files into your development
environment.
For Linux, DriverWizard generates the required makefile.