Click here to Skip to main content
16,004,479 members
Home / Discussions / Hardware & Devices
   

Hardware & Devices

 
AnswerRe: wireless router ip address Pin
Richard MacCutchan8-Sep-09 12:21
mveRichard MacCutchan8-Sep-09 12:21 
GeneralRe: wireless router ip address Pin
εїзεїзεїз8-Sep-09 22:18
εїзεїзεїз8-Sep-09 22:18 
QuestionWhat's a device driver. Pin
_80865-Sep-09 2:56
_80865-Sep-09 2:56 
AnswerRe: What's a device driver. Pin
Luc Pattyn5-Sep-09 3:48
sitebuilderLuc Pattyn5-Sep-09 3:48 
GeneralRe: What's a device driver. Pin
_80865-Sep-09 19:43
_80865-Sep-09 19:43 
GeneralRe: What's a device driver. Pin
Luc Pattyn6-Sep-09 0:43
sitebuilderLuc Pattyn6-Sep-09 0:43 
GeneralRe: What's a device driver. Pin
thecreditcardguy8-Sep-09 23:16
thecreditcardguy8-Sep-09 23:16 
AnswerRe: What's a device driver. [modified] Pin
mustang867-Sep-09 20:54
mustang867-Sep-09 20:54 
Often, in general, when people talk about a "device driver", that's low-level code that writes and read directly with the hardware. It uses absolute addresses. In general, user code can't write/read absolute hardware locations.

You would need a drive if you have custom hardware in your PC. That means if you make a PCI card with custom hardware, then a device driver needs to be written so that application-level programs can have access to the hardware. Think of it as a "delegate". Smile | :)

The above is the "simple answer". Smile | :)



But, wait, there's more! Smile | :)

For something that goes on the USB or network, that gets more involved. There are many software/firmware/hardware levels in a Network/USB/Firewire transaction.

So, we can quickly get into "terminology hell/confusion" when we start talking about "drivers". Sigh | :sigh:

I can argue what goes where in an application that uses TCP/IP over Ethernet. I can argue what goes where and why from the upper most GUI layer way down in the the core switching hub software. That's because of what I did in grad school and spent many many years in Networking.

But, with USB/Firewire, the distinction between hardware/firmware/software is always changing. Yes, it is similar in the Networking world. But, for me, words like "Brouter" (bridge/router) don't scare me, since I was designing Brouters in the 90's.

However, USB and Firewire are both very complicated! They are just as complicated as the TCP/IP flow. Maybe even more so since USB/Firewire now support so many different modes and hubs.


My point is that writing a "driver" for a new custom USB device is not the same as writing a driver for a new video card. Yes, they are both called "drivers". But, the "driver" that is written for a new USB device will be calling a lower level driver that talks directly to the USB chip/hardware. I hope that last sentence makes sense. Again, it's due to the different layers involved in a Network transaction. It may help to think of them as a "Layer 3 driver", "Layer 4 driver", etc.

So, a "driver" for a new USB device can easily be written in C# without the need to know any hardware details. Or, by knowing only a few higher level hardware details/limitations - like how fast the new device can take/send data if you don't want to overrun a buffer.


Since I do embedded CPUs and FPGAs, I often write low level drivers that directly control the hardware. It often takes a very good understanding of hardware and of the particular hardware.

On the other hand, I would be clueless on how to write a "USB driver" for a new custom USB device. There's a ton of stuff to learn and to understand. There's also the important interactions with the OS. I know of a number of USB devices that "hang the port" if they are disconnected without proper shutdown. I have a programmer for an embedded CPU that will blue screen my PC if I accidentally disconnect the USB during a chip program. That's a good case of someone that did a hack job writing the "USB driver" for that chip programmer.

Writing drivers are like that. Many people can write hack drivers. However, only a few people are very good at writing low level drivers. I know that Cypress is infamous for their horrible low-level drivers in their PSoC embedded CPU. They often have minimal or no error handling.


I like it because it's close to the hardware. Smile | :) Many people don't since it can be very hard to debug low-level drivers.


Hope the above helps, and doesn't confuse you more.
It may help to re-read it a few times. I tried to cover a lot of stuff in a little space.

______________
Joe

modified on Tuesday, September 8, 2009 3:00 AM

AnswerRe: What's a device driver. Pin
Roger Wright12-Sep-09 20:41
professionalRoger Wright12-Sep-09 20:41 
QuestionNewbie to hardware programming... Pin
thangvel27-Aug-09 8:46
thangvel27-Aug-09 8:46 
AnswerRe: Newbie to hardware programming... Pin
LloydA11128-Aug-09 11:09
LloydA11128-Aug-09 11:09 
AnswerRe: Newbie to hardware programming... Pin
Parker M cCauley10-Sep-09 5:53
Parker M cCauley10-Sep-09 5:53 
QuestionPort forwarding Pin
manish.m.meshram26-Aug-09 23:50
manish.m.meshram26-Aug-09 23:50 
AnswerRe: Port forwarding Pin
mustang8627-Aug-09 6:12
mustang8627-Aug-09 6:12 
AnswerRe: Port forwarding Pin
Michael Dunn14-Sep-09 13:42
sitebuilderMichael Dunn14-Sep-09 13:42 
QuestionSerial Port Issue Rx is working Tx is not Working. Pin
Nanda_MR26-Aug-09 20:29
Nanda_MR26-Aug-09 20:29 
AnswerRe: Serial Port Issue Rx is working Tx is not Working. Pin
Luc Pattyn27-Aug-09 8:05
sitebuilderLuc Pattyn27-Aug-09 8:05 
AnswerRe: Serial Port Issue Rx is working Tx is not Working. Pin
Parker M cCauley10-Sep-09 7:16
Parker M cCauley10-Sep-09 7:16 
QuestionHow to catch moment when other application going to use USB webcam Pin
Softvoile26-Aug-09 3:05
Softvoile26-Aug-09 3:05 
QuestionHow much RAM will mobo hold Pin
David Crow22-Aug-09 16:40
David Crow22-Aug-09 16:40 
AnswerRe: How much RAM will mobo hold [modified] Pin
mustang8622-Aug-09 21:09
mustang8622-Aug-09 21:09 
AnswerRe: How much RAM will mobo hold Pin
Sebastian Schneider24-Aug-09 3:05
Sebastian Schneider24-Aug-09 3:05 
AnswerRe: How much RAM will mobo hold Pin
Expert Coming24-Aug-09 7:59
Expert Coming24-Aug-09 7:59 
GeneralRe: How much RAM will mobo hold Pin
David Crow24-Aug-09 8:05
David Crow24-Aug-09 8:05 
AnswerRe: How much RAM will mobo hold Pin
Jörgen Andersson25-Aug-09 2:37
professionalJörgen Andersson25-Aug-09 2:37 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.