Sie sind auf Seite 1von 34

Device Driver Training Schedule

Sr
No.

Module name

Linux as OS

Topic

Sub-Topics

What is open source and its importance.

Why Linux?, Linux vs Windows, Linux


features & Characteristics.

# days

Training
material

Method of
Instruction

10

Yes

PPT & Practical

Practical
everyday

Tools Used
Linux OS

Linux - Introduction & basic commands (ls,cd,pwd,cal,arch,date etc..).


Linux Internal architecture (/mnt,/proc,/dev,/etc & more)
Linux process management

Foreground vs Background process,

Linux File & Directory permissions.

chmod,chgrp & chown commands usage.


Mounting filesystems(USB,CDROM).
Vim editor operations
and programming in

Editors & its implementation-gedit, vim & nano editor.


Shell script with Exercise
Make file concept

Types,Operators & Expressions.

Variable Names,Data types & Sizes


Type Conversions,Increment & Decrement
Operators.
Precedence & Order of Evaluation.

Control Flow

If else,else if,Switch case.

Yes

PPT & Practical

Logic devlopment by
25 program on each

Linux OS with C
Compiler

Yes

PPT & Practical

1 major Project in DS +
Prog. For Array +

Linux OS with C
Compiler

Loops (While,Do-while,For).
Functions & Arrays

Static Variables,Initialization & Recursion.


Multi Dimensional Arrays.
Pointers & Function Arguments

Pointers & Structure

Pointer Array, Pointers to Pointers


Pointer to Functions
Command Line Arguments
Basics of Structures
Structures & Functions
Typedef

Mock Interview-1 on C

Expert Session-Teksun Technical Team Presentation on Device Driver,Hardware Board Design and Software

Data Structure

Stacks

Operations On Stacks

Queues

Priority Queues

10

Singly,Singly-Circular,Doubly,DoublyCircular.
Selection Sort

Linked List
Sorting & Searching

Bubble Sort
Merge Sort
Insertion Sort
Quick Sort
Trees

Concepts
Operations On Binary Trees

Mock Interview-2 on Data Structures


4

Operating Systems

Operating System Concepts

1
Processes

10

Yes

PPT & Practical

Yes

PPT & Practical

Linux OS

Address Spaces
File system-ext2,ext3,ext4,vfs.
Introduction to Kernel & its services.
Process Model,Process Creation &
Termination.
Process Hierarchies & States.

Process

Threads

Interprocess Communication (IPC)

POSIX threads
Implementing Threads in User Space &
Kernel Space.
Race conditions & Critical Regions
Semaphores
Mutex
Sleep & Wakeup.

Scheduling

Introduction
Scheduling in batch systems & Real time
systems.
Thread scheduling.

Memory Management

Virtual Memory

Debugging Tools.

Use of gdb & strace.


Mock Interview-3 by Teksun Team - Device Driver

Implementation on
Setting up the cross compilation tool chain on host machine.
Beagle board - xm
Using tool chain for compiling kernel for target board.

Using tool chain for compiling user space


application for target board.
Using tool chain for compiling kernel
modules for target board

Cross Compilation for


Beagle Board - xm
Pandaboard

Install Software

Installation of ti-sdk into host machine

Configure the host

Formatting SD Card.
Root File system creation
Boot Process of Pandaboard/BeagleBoardxM
Cross Compilation for ARM

Configure the target

Flash Filesystem
Network Filesystem

Device Driver
Concepts

Introduction to Linux Device Drivers

Introduction to Kernel modules and kernel


sources
Understanding kernel configuration
Building kernel for ubuntu and for Panda
board
Building dynamically loadable modules

Understanding the build process


Writing a Simple Kernel Module as device driver

Architecture of device driver

Initialization functionality
Cleanup functionality
Compiling the module & Make file concept
Passing parameters to modules
Module utilities, kernel logs utilities
Module dependencies
Application Vs kernel modules
Writing Char/Misc devices-Part 1

Anatomy of character device driver

Kernel interface to device driver


Introduction to files operations/system calls
Major and Minor numbers
User interface to device driver

Writing Char/Misc devices-Part 2

Introduction to device files, types of devices


Registering and de-registering the character
device driver
Modules spanning multiple files
Copying data to and from user space and
device driver
proc files related to device drivers

Yes

PPT & Practical

Lab practicals for Each


Topic+1 major Project

Kernel 3.0+

Linux kernel error codes


General purpose kernel APIS
memory/string utilities
link list data structures
IOCTLS

choosing ioctl commands


predefined commands
using ioctl arguments
Implementing ioctl command

IPC

Pipes
Message queues
Shared Memory
Sockets

Memory management and allocations

Physical and virtual memory

virtual memory organisation


Physical and virtual memory mapping
Allocators in kernel memory
Kmalloc allocator
page allocator
vmalloc allocator
Implementing memory allocation in driver
Race conditions and synchronization methods

Need of concurrency in driver


Concurrency protection using locking
mechanisms
Mutex & Semaphore

Spinlocks
Atomic variables
Implementing locking mechanism in driver
Final Mock Interview for Mentor Sessions by Teksun Device Driver Team
Sleeping and wait queues

Blocking and Non-blocking IO


Waiting for IO, sleeping
Conditions to put to sleep
Sleeping mechanisms

Introduction to wait queue


Wait queue APIs
Waking up
Waking APIs

Interrupt handling

Implementing waiting/sleep calls in driver


Using interrupt service routine (ISR) to
handle interrupts
Registering/De-registering ISR in the driver

ISR prototype
ISR's functionality and constraints
Top and Bottom half handling
Deffered functions (softirq, tasklet, workqueue)

SoftIRQ

Tasklets
Workqueues

Network Programming

Threaded interrupts
Implemention various deffered
functionality and interrupt handling in
Interfacing with hardware (memory and IO
mapped IO)
The net_device structure

Sockets
Client/server paradigm
Naming scheme and registration
Network driver methods
NAPI the new API
TOTAL
DAYS: 69

]]

Das könnte Ihnen auch gefallen