Chapter 4. Using DriverWizard

This chapter describes the WinDriver DriverWizard utility and its hardware diagnostics and driver code generation capabilities.

CardBus devices are handled via WinDriver's PCI API; therefore PCI references in this chapter apply also to CardBus, on the operating systems on which it is supported [1.1].

4.1. An Overview

DriverWizard (included in the WinDriver toolkit) is a graphical user interface (GUI) tool that is targeted at two major phases in the hardware and driver development:

  • Hardware diagnostics — DriverWizard enables you to write and read hardware resources before writing a single line of code. After the hardware has been built, insert your device into the appropriate bus slot on your machine, view its resources — memory and I/O ranges, PCI configuration registers, and interrupts — and verify the hardware's functionality by reading/writing memory and I/O addresses, defining and accessing custom registers, and listening to interrupts.
  • Code generation — Once you have verified that the device is operating to your satisfaction, use DriverWizard generate skeletal driver source code with functions to view and access your hardware's resources.
    If you are developing a driver for a device that is based on an enhanced-support PCI chipset (PLX 6466, 9030, 9050, 9052, 9054, 9056, 9080 and 9656; Altera Qsys design; Xilinx BMD design), we recommend that you first read Chapter 7: Enhanced Support for Specific Chipsets to understand your development options.

On Windows, DriverWizard can also be used to generate an INF file [15.1] for your hardware.

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 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.