0% found this document useful (0 votes)
185 views

Chapter - 10 - RTOS - Device Driver

Dhdidnbsshshhsshshdbd aisiz so and B's atha sha sts again start again scs SF SFS vs scsysfs SFS SFS sat affairs ya systems be sy SFS stststsysgs so it's supposed she's system specific su ssiisht

Uploaded by

Suhas Mathapati
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
185 views

Chapter - 10 - RTOS - Device Driver

Dhdidnbsshshhsshshdbd aisiz so and B's atha sha sts again start again scs SF SFS vs scsysfs SFS SFS sat affairs ya systems be sy SFS stststsysgs so it's supposed she's system specific su ssiisht

Uploaded by

Suhas Mathapati
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 9

@ McGraw-Hill Education

PROPRIETARY MATERIAL. © 2009 The McGraw-Hill Companies, Inc. All rights reserved. No part of this PowerPoint slide may be displayed, reproduced or
distributed in any form or by any means, without the prior written permission of the publisher, or used beyond the limited distribution to teachers and educators
permitted by McGraw-Hill for their individual course preparation. If you are a student using this PowerPoint slide, you are using it without permission.
1
@ McGraw-Hill Education

Designing with RTOS


Device Drivers

 Device driver is a piece of software that acts as a


bridge between the operating system and the
hardware
 In an operating system based product architecture,
User Level Applications/Tasks
the user applications talk to the Operating System App 1 App 2 App 3
kernel for all necessary information exchange
including communication with the hardware Operating System Services
peripherals (Kernel)

 The architecture of the OS kernel will not allow Device Drivers


direct device access from the user application
 All the device related access should flow through the Hardware

OS kernel and the OS kernel routes it to the


concerned hardware peripheral
 OS Provides interfaces in the form of Application
Programming Interfaces (APIs) for accessing the
hardware
 The device driver abstracts the hardware from user
2
applications
@ McGraw-Hill Education

Designing with RTOS


Device Drivers
 Device drivers are responsible for initiating and managing the communication
with the hardware peripherals
 Drivers which comes as part of the Operating system image is known as ‘built-
in drivers’ or ‘onboard’ drivers. Eg. NAND FLASH driver
 Drivers which needs to be installed on the fly for communicating with add-on
devices are known as ‘Installable drivers’
 For installable drivers, the driver is loaded on a need basis when the device is
present and it is unloaded when the device is removed/detached
 The ‘Device Manager (Name may vary depending on OS kernel)’ service of the
OS kernel is responsible for loading and unloading the driver, managing the
driver etc.
 The underlying implementation of device driver is OS kernel dependent
 How the driver communicates with the kernel is dependent on the OS structure
and implementation. Different Operating Systems follow different
implementations
3
@ McGraw-Hill Education

Designing with RTOS


Device Drivers
 The device driver implementation normally follows a layered architecture where
the upper layer provides the OS specific interface and the lower layer provides
platform dependent (device dependent) implementation
 The upper layer of this architecture is referred as ‘Model Device Driver (MDD)’
or ‘Logical Device Driver (LDD)
 The ‘Platform Dependent Driver (PDD)’ implements the platform (hardware
specific) part of the device driver
 MDD provides a platform neutral implementation for the driver
 For a standard driver, for a specific operating system, the MDD/LDD always
remains the same and only the PDD part needs to be modified according to the
target hardware
 The OS provides access to the device driver interface through a set of interfaces
called Application Programming Interfaces (APIs)
 User applications can talk to the device driver through the API interface

4
@ McGraw-Hill Education

Designing with RTOS


Device Drivers
 Device drivers can run on either user space or kernel space
 Device drivers which run in user space are known as user mode drivers and the
drivers which run in kernel space are known as kernel mode drivers
 User mode drivers are safer than kernel mode drivers
 If an error or exception occurs in a user mode driver, it won’t affect the services
of the kernel
 If an exception occurs in the kernel mode driver, it may lead to the kernel crash

5
@ McGraw-Hill Education

Designing with RTOS


Device Drivers
The way how a device driver is written and how the interrupts are handled in it are
Operating system and target hardware specific. However regardless of the OS
types, a device driver implements the following:

Device (Hardware) Initialization and Interrupt configuration


Interrupt handling and processing
Client interfacing (Interfacing with user applications)

6
@ McGraw-Hill Education

Designing with RTOS


Device Drivers
The Device (Hardware) initialization of part of the driver deals with configuring the
different registers of the device (target hardware). For example configuring the I/O port line
of the processor as Input or output line and setting its associated registers for building a
General Purpose IO (GPIO) driver.
The interrupt configuration part deals with configuring the interrupts that needs to be
associated with the hardware. In the case of the GPIO driver, if the intention is to generate
an interrupt when the Input line is asserted, we need to configure the interrupt associated
with the I/O port by modifying its associated registers. The basic Interrupt configuration
involves the following.
 Set the interrupt type (Edge Triggered (Rising/Falling) or Level Triggered (Low or
High)), enable the interrupts and set the interrupt priorities.
 Bind the Interrupt with an Interrupt Request (IRQ). The processor identifies an interrupt
through IRQ. These IRQs are generated by the Interrupt Controller. In order to identify
an interrupt the interrupt needs to be bonded to an IRQ.
 Register an Interrupt Service Routine (ISR) with an Interrupt Request (IRQ). ISR is the
handler for an Interrupt. In order to service an interrupt, an ISR should be associated
with an IRQ. Registering an ISR with an IRQ takes care of it.
7
@ McGraw-Hill Education

Designing with RTOS


Device Drivers

When an interrupt occurs, depending on its priority, it is serviced and the


corresponding ISR is invoked
The processing part of an interrupt is handled in an ISR
The whole interrupt processing can be done by the ISR itself or by invoking an
Interrupt Service Thread (IST)
The IST performs interrupt processing on behalf of the ISR
It is always advised to use an IST for interrupt processing, to make the ISR
compact and short

8
@ McGraw-Hill Education

Designing with RTOS


Device Drivers

The Client interfacing part of the device driver is responsible for


Informing the user application that the device has generated an interrupt and data is
received from the device
exchange of data between driver and user application through shared buffers
User applications can create events, register for the events and wait for their
occurrence
Device driver sets the event when an interrupt occurs

You might also like