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; Microchip PIC18F4550; Philips PDIUSBD12; Texas Instruments TUSB3410, TUSB3210, TUSB2136 and TUSB5052; Agere USS2828; Silicon Laboratories C8051F320), 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 and can generate an INF file for your hardware on Windows.

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.