Next: Funcationality
Up: No Title
Previous: Programming for USB
This section deals with the bottm-up implementation of a USB system under Linux. At the time of configuring the Linux kernel, one has the option of enabling support for USB. When this is enabled the kernel provides support for the bottom two software layers in the USB stack, namely the host controller software layer and the USB system software layer. Inclusion of support for USB means that kernel provides a broad-based support for a variety of devices in terms of drivers. As noted in the previous sections, Linux uses the concept of a virtual filesystem named USBFS to support USB. Use of this virtual filesystem further increases the size of the USB component of the kernel.
In cases of implementing USB support for smaller kernels, there may not be kernel support for virtual filesystems. In such a case, there is a need for lightweight system software support for USB, providing a low -level basic interface for using the bus. This is also the case when implementing USB support for a realtime operating system like RTLinux, where the driver supporting USB has realtime constraints. In such a case, it would greatly help if the implementation of the driver was as explicit as possible. The lack of generality is typically not a concern if the problem being addressed does not demand a generic solution. The simpler design of the driver makes it easier to follow realtime constraints. The rest of the report describes an implementation of a driver at the host-controller level for USB.
Next: Funcationality
Up: No Title
Previous: Programming for USB
Bhanu Nagendra P.
2003-07-28