Chapter 5. Using DriverWizard

This chapter describes WinDriver DriverWizard's hardware diagnostics and driver code generation capabilities.

5.1. An Overview

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.