Carleton University - Canada’s Capital University Carleton University - Canada’s Capital University Sitemap
Contact SCS
Campus Map
Computer Science Search:
Powered by Google
News & Seminars Future Students Current Students SCS Research People Tech Support
Undergraduate Honours Projects

Carleton University - School of Computer Science
Undergraduate Honours Project

Winter 2010
Linux USB Driver Programming

Christopher Landry



ABSTRACT

Device driver programming is a complex subject. This document is an effort to introduce USB device driver programming to undergraduate Computer Science students using the GNU/Linux operating system. Though there are practical uses for developing software that can communicate with external devices, such as to perform experiments with interfaces for audio hardware or robotics, it is a subject that is seldom taught at the undergraduate level. There are many preliminary skills which need to be honed beforehand, including C programming, Linux kernel programming, an understanding of the USB architecture, and a comprehension of the technology of the external device for which the driver is written. The approach taken in this document introduces each of these skills gradually to provide an effective learning path for device driver programming.