Device Drivers Witawas Srisa-an Embedded Systems Design and Implementation.

Slides:



Advertisements
Similar presentations
Windows 2000 I/O System, Cache Manager and File Systems Computing Department, Lancaster University, UK.
Advertisements

COMPUTERS: TOOLS FOR AN INFORMATION AGE Chapter 3 Operating Systems.
Introduction to the Windows XP Architecture
Building Embedded Systems With Windows® CE Platform Builder 3
MHK200 Module 1: Introduction to Windows CE. MHK200 Overivew Windows CE Design Goals Windows CE Architecture Supported Technologies, Libraries, and Tools.
Memory Protection: Kernel and User Address Spaces  Background  Address binding  How memory protection is achieved.
Operating System Security : David Phillips A Study of Windows Rootkits.
Windows 2000 System Architecture (continued) Computing Department, Lancaster University, UK.
Contiki A Lightweight and Flexible Operating System for Tiny Networked Sensors Presented by: Jeremy Schiff.
INTRODUCTION OS/2 was initially designed to extend the capabilities of DOS by IBM and Microsoft Corporations. To create a single industry-standard operating.
Embedded Real-time Systems The Linux kernel. The Operating System Kernel Resident in memory, privileged mode System calls offer general purpose services.
1 CE6130 現代作業系統核心 Modern Operating System Kernels 許 富 皓.
Chapter 6 - Implementing Processes, Threads and Resources Kris Hansen Shelby Davis Jeffery Brass 3/7/05 & 3/9/05 Kris Hansen Shelby Davis Jeffery Brass.
Operating Systems Concepts 1. A Computer Model An operating system has to deal with the fact that a computer is made up of a CPU, random access memory.
CSE 451: Operating Systems Winter 2012 Module 18 Virtual Machines Mark Zbikowski and Gary Kimura.
Stack Management Each process/thread has two stacks  Kernel stack  User stack Stack pointer changes when exiting/entering the kernel Q: Why is this necessary?
Slide 6-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 6.
Programming mobile devices Part II Programming Symbian devices with Symbian C++
1 Input/Output. 2 Principles of I/O Hardware Some typical device, network, and data base rates.
Chapter 3.1:Operating Systems Concepts 1. A Computer Model An operating system has to deal with the fact that a computer is made up of a CPU, random access.
1 CS503: Operating Systems Part 1: OS Interface Dongyan Xu Department of Computer Science Purdue University.
Chapter 8 Windows Outline Programming Windows 2000 System structure Processes and threads in Windows 2000 Memory management The Windows 2000 file.
About the Presentations The presentations cover the objectives found in the opening of each chapter. All chapter objectives are listed in the beginning.
UNIX System Administration OS Kernal Copyright 2002, Dr. Ken Hoganson All rights reserved. OS Kernel Concept Kernel or MicroKernel Concept: An OS architecture-design.
UNIX SVR4 COSC513 Zhaohui Chen Jiefei Huang. UNIX SVR4 UNIX system V release 4 is a major new release of the UNIX operating system, developed by AT&T.
Department of Electrical Engineering Electronics Computers Communications Technion Israel Institute of Technology High Speed Digital Systems Lab. High.
CSE 101 Spring 2000 Operating Systems. The Tasks of the Operating System Single Task Multitasking.
The IT700 PIM only supports up to network layer, all other above layers must be executed by other processor. Therefore in the PLC control network two types.
Windows 2000 Course Summary Computing Department, Lancaster University, UK.
Operating System What is an Operating System? A program that acts as an intermediary between a user of a computer and the computer hardware. An operating.
Processes Introduction to Operating Systems: Module 3.
Operating Systems Structure what is the organizational principle?
Dissecting the Windows CE Build Process James Y. Wilson Principal Engineer, Windows Embedded MVP CalAmp, Inc. James Y. Wilson Principal Engineer, Windows.
UNIX Unit 1- Architecture of Unix - By Pratima.
Implementation of Embedded OS Lab3 Porting μC/OS-II.
Chapter Eleven Windows XP Professional Application Support.
Win32 Programming Lesson 19: Introduction to DLLs.
Windows CE Object Store Windows CE name for persistent storage Provides storage for the –Registry –Databases –File System In a non-volatile portion of.
Lecture 5 Rootkits Hoglund/Butler (Chapters 1-3).
Overview of Windows Driver Development Reference: us/gstart/hh/gstart/gs_intro_031j.asp.
Business-logic Layer Presentation Layer Network Layer Digital Signal Processing Layer SmartHome API SmartHome Software Architecture SH mobile application.
CITA 171 Section 1 DOS/Windows Introduction. DOS Disk operating system (DOS) –Term most often associated with MS-DOS –Single-tasking operating system.
Virtualization With:. Virtualization With: What Kind of Virtualization? Full virtualization Platform Resource.
Introduction to Operating Systems Concepts
Computer System Structures
Input/Output (I/O) Important OS function – control I/O
Computer System Structures
Windows Programming Environments
Hardware and OS Design and Layout.
Current Generation Hypervisor Type 1 Type 2.
Credits: 3 CIE: 50 Marks SEE:100 Marks Lab: Embedded and IOT Lab
Implementation of Embedded OS
Windows API.
Mobile Operating System
Operating Systems: A Modern Perspective, Chapter 6
Unit OS2: Operating System Principles
CS490 Windows Internals Quiz 2 09/27/2013.
KERNEL ARCHITECTURE.
Chapter 3: Windows7 Part 1.
OS Virtualization.
Windows Internals Brown-Bag Seminar Chapter 1 – Concepts and Tools
CS703 - Advanced Operating Systems
Mid Term review CSC345.
Lecture Topics: 11/1 General Operating System Concepts Processes
B.Ramamurthy Chapter 2 : Appendix
Chapter 5: I/O Systems.
Mac OS X thread APIs Mach threads POSIX threads (pthreads)
Outline Operating System Organization Operating System Examples
Operating Systems Structure
Overview of System Development for Windows CE.NET
Presentation transcript:

Device Drivers Witawas Srisa-an Embedded Systems Design and Implementation

Device Drivers What are device drivers? –What are they used for? –Why are they important? Abstraction of underlying hardware from the OS and applications. Provide uniform APIs to access hardware.

Why Do We Need Drivers? Custom platforms –Contain many peripheral devices and kernel (e.g. CE) supported CPU OAL development to get kernel to boot on the board Device drivers to allow applications to access peripheral devices

An Example To access a serial port in Windows CE –calls CreateFile( ) on COMx – calls WriteFile( ) to write some bytes of data to the serial port –calls CloseHandle( ) to close the serial port.

Drivers in CE A driver is simply a dynamic-link library (DLL) –DLLs are loaded into a parent process address space –Run in user mode (different than most OSs) –the parent process can then call any of the interfaces exposed from the DLL LoadLibrary( ) LoadDriver( ) --- memory resident

Writing Device Drivers Most of the time spent on system integration is in this process –Some devices have support on standard CE release and some dont Onboard or installable –Onboard devices may require platform dependent modification to the kernel image –Installable devices may require code to be more platform independent –Drivers APIs can also be used to provide application-level services

Device Driver Models Device drivers, over the years, have become very complex –Drivers are separated into classes Serial, network, audio, video, touch panel, etc. –Layer approach is used To support a new device, a layer is modified instead of rewriting the entire driver Processing functions required for a given class often do not require modification

Device Driver Architecture Device Drivers Interrupt Service Threads Interrrupt Service Routines OAL Kernel User Mode Kernel Mode From Wilson and Havawala, Building Powerful Platform with Windows CE Addison-Wesley, 2001 page 227.

Stream-Interface Allow accesses to an array of devices through basic file I/O interfaces –Often used for installable devices –The device manager (DM) manages stream- interface drivers DM operates as its own process –Device driver DLLs are mapped into the address space

Other Driver Models Native Interface USB Interface Network Device Interface Specification

Device Driver Labs 9FB3-23E8B8944F3E&displaylang=enhttp:// 9FB3-23E8B8944F3E&displaylang=en Download lab tools from the course website Create a simple Internet Appliance Windows CE project Create a device driver workspace and build the workspace Build OS image Attach the device Open prompt through build OS | Open Release Directory –dumpbin –exports StreamDrv.dll