ABSTRACT

This chapter discusses the main design principles of a real-time device driver. It also discusses the design and implementation of device driver for embedded system. In a device driver intended for a small, embedded operating system, the application task interface is often designed for performance instead of being fixed and standardized, as happens in a general-purpose operating system. The device driver software is mainly responsible for configuring the device, delivering the data in the shared memory to upper layers for processing, and moving data that comes from the upper layers to the shared memory to prepare for transmission. The design and implementation of different protocol stacks by different people do not assume the existence of a unified device driver interface. The Ethernet block together with the software device driver offer the functionality of the media access control sublayer of the data link layer in the OSI reference model. Interrupt handling is also quite an important part of device driver development.