With a tremendous rise in the rate at which hardware is continuously changing, a challenging area of work remains in extracting the maximum from a given hardware. The existing IT industry focuses in providing a well driven software interface for various applications to access the hardware, irrespective of the hardware intricacies. Device Drivers form this software interface, and is the most important aspect in the design of an Embedded System. Device Drivers are visualized as simple Black Boxes that understand their underlying hardware and provide an abstraction of usage, through user space APIs for various applications.
WorLD targets, the understanding and implementation of drivers, for systems that require the use of an embedded operating system and also systems that do not require the use of an embedded OS.
In Systems that do not require an Embedded Operating System, the application and the drivers are tightly coupled into a single layer and burnt onto the memory. The drivers are normally written in the assembly language of the processor and can also be written as mixtures of both assembly and the C Programming Language.
In systems that involve an Embedded Operating System, the driver resides as a part of the kernel space and facilitates the kernel's appointment with the hardware, on request from the application. They are programmed in middle level languages like the C Programming Language.
|