Architecture of Device I/O Drivers

Many embedded systems developers will tell you that writing a device driver consists of a lot of "bit-bashing and register-twiddling" to convince some ornery unit of hardware to submit to the control of driver software. You've got to get every one of a myriad of details right -- the bits, the sequences, the timing -- or else that chunk of hardware will just refuse to do its thing. Traditionally, the focus in writing device drivers has been at this nuts-and-bolts level. But I would like to take a somewhat different, higher-level view of device driver software.

This technical paper discusses the high-level design of driver software that is to operate hardware I/O devices that are interfaced to embedded computers. It begins with a discussion of basic driver design issues such as mutual exclusion of device access, and synchronous vs. asynchronous I/O models. Then it goes through a series of structural models for device driver design, in order of their growing complexity.

View Entire Paper | Previous Page | White Papers Search

If you found this page useful, bookmark and share it on:

 
Embedded Star Newsletter
Don't have time to visit Embedded Star everyday? Then sign up for our free newsletter. We'll send you an email when we have something to share with you. Your email address will be kept confidential and we will not share, sell, or rent it to anyone. You can unsubscribe at any time by clicking a link in the email.

Enter your email address to sign up for our free newsletter:   

If you are familiar with RSS feeds, you can also sign up for our free blog feed. Our RSS feed is updated in real-time while our newsletter is updated daily.