WinDriver - No Performance Limitations
Improve Driver Performance Checklist
The following "Checklist" will help you
determine how to improve the performance of your driver:
- Create your driver in the User Mode as explained in
the previous chapters of this manual.
- Compile and debug your driver in the User Mode.
- When working in the User Mode, performance may take a
hit. Check if you have performance problems. If you do
not have any performance problems, you have finished
your driver development.
If you do have performance problems:
- Identify which part of the code the performance
problem is at. Classify and solve the problem according
to the table below:
| |
Problem |
Solution |
|
#1 |
ISA
Card - Accessing an IO mapped range on the card. |
- Try to convert multiple calls to WD_Transfer() to one
call to WD_MultiTransfer()
- If this does not solve the problem, handle the IO at
Kernel Mode, by writing a Kernel PlugIn.
|
|
#2 |
PCI
Card - Accessing an IO mapped range on the card. |
- First, try to change the card from IO mapped to memory
mapped by changing bit 0 of the address space PCI
configuration register to 0, and then try the solutions for
problem #3. You will probably need to re-program the EEPROM
to initialize BAR0/1/2/3/4/5 registers with different
values.
- If this is not possible, try the solutions suggested for
problem #1.
- If this does not solve the problem, handle the IO at
Kernel Mode, by writing a Kernel PlugIn.
|
|
#3 |
Accessing a memory mapped range on the card. |
- Try to access memory without using WD_Transfer(), by
using direct access to memory mapped regions
- If this does not solve the problem, then there is a
hardware design problem. You will not be able to increase
performance by using any software design method, or by
writing a Kernel PlugIn, or by writing a full kernel driver.
|
|
#4 |
Interrupt latency. (Missing interrupts, Receiving interrupts
too late) |
- You need to handle the interrupts at Kernel Mode, by
writing a Kernel PlugIn.
|
Technical Reference
WinDriver products are accompanied with highly detailed technical references that are designed to assist you in various stages of the development process.
If you have just started evaluating or using WinDriver, you may find our Quick Start Guides helpful.
Should you require more in-depth information, or would like to know more about the technical aspects of WinDriver, please refer to our Online Manual.
For other technical information such as FAQs, technical documents or to contact our support team.
jungo,windriver,kerneldriver,Go-Hotswap,device driver,device drivers,driver development,driver development toolkit,driver development tool,device driver development tools,User Mode device drivers,PCI,USB,ISA,DMA,DDK,NT driver,Linux drivers,Solaris driver,WIndows CE driver,Windows drivers,Embedded USB Software,embedded systems,sys,USB driver,USB drivers,PnP driver,USB stack,USB NT,hotswap,high availability,CompactPCI,memory map,kernel mode,USB 2.0,PCI-X,3GIO,PCI Express,NDIS,Network,Ethernet,Storage,quickpci,USBTracer,USB Host,USB Device,USB On The Go,USB Tracker, USB analyzer, USB analysis software,USB Tracker 110,USB explorer 200,usb solutions
,driver software,pci drivers,pci driver,writing a console application,video controllers drivers,ide drivers tools,device driver wizard,custom device driver