ppt- unit-6 part-2
ppt- unit-6 part-2
Part-2
• Device drivers, System calls and Programming languages: assembly
languages, high level languages like C/C++, Source Code Engineering
tool for Embedded C/C++. Introduction to Embedded Java.
•
Defining device drivers
• Most embedded hardware requires some type of software
initialization and management.
• The software that directly interfaces with and controls this hardware
is called a device driver.
• All embedded systems that require software have, at the very least,
device driver software in their system software layer.
• Device drivers are the software libraries that initialize the hardware
and manage access to the hardware by higher layers of software.
• Device drivers are the liaison between the hardware and the
operating system, middleware, and application layers.
Ref: https://www.edn.com/embedded-systems-architecture-device-drivers-part-1-interrupt-
handling/
Device drivers- Compatibility
• The reader must always check the details about the particular
hardware if the hardware component is not 100% identical to what is
currently supported by the embedded system.
• Never assume existing device drivers in the embedded system will be
compatible for a particular hardware part—even if the hardware is
the same type of hardware that the embedded device currently
supports! So, it is very important when trying to understand device
driver libraries that:
• Different types of hardware will have different device driver requirements
that need to be met.
• Even the same type of hardware, such as Flash memory, that are created by
different manufacturers can require substantially different device driver
software libraries to support within the embedded device.
Device drivers_ architecture-specific or
generic
• Device drivers are typically considered either architecture-specific or
generic.
• A device driver that is architecture-specific manages the hardware
that is integrated into the master processor (the architecture).
• Examples of architecture-specific drivers that initialize and enable
components within a master processor include on-chip memory,
integrated memory managers (memory management units (MMUs)),
and floating-point hardware.
Device drivers- generic
• A device driver that is generic manages hardware that is located on the
board and not integrated onto the master processor.
• In a generic driver, there are typically architecture-specific portions of
source code, because the master processor is the central control unit and
to gain access to anything on the board usually means going through the
master processor.
• However, the generic driver also manages board hardware that is not
specific to that particular processor, which means that a generic driver can
be configured to run on a variety of architectures that contain the related
board hardware for which the driver is written.
• Generic drivers include code that initializes and manages access to the
remaining major components of the board, including board buses (I2C, PCI,
PCMCIA, etc.), off-chip memory (controllers, level 2+ cache, Flash, etc.),
and off-chip I/O (Ethernet, RS-232, display, mouse, etc.).
Regardless of the type of device driver or the hardware it manages, all device drivers are generally
made up of all or some combination of the following functions: