Search the web
Sign In
New User? Sign Up
AgileEmbedded · Agile Embedded
? Already a member? Sign in to Yahoo!

Yahoo! Groups Tips

Did you know...
Hear how Yahoo! Groups has changed the lives of others. Take me there.

Best of Y! Groups

   Check them out and nominate your group.
Having problems with message search? Fill out this form to ensure your group is one of the first to be migrated to the new message search system.

Messages

  Messages Help
Advanced
Training/projects on Linus Device Drivers at Bangalore   Message List  
Reply | Forward Message #36 of 464 |
LINUX DEVICE DRIVERS - Training at Bangalore

 

LINUX DEVICE DRIVERS - Training at Bangalore

 

 

 Prerequisites : 

·                                 Knowledge in Linux OS

 Course Goals : 

People new to Linux often hear that it has excellent support for all kinds of cards and that the device drivers are stable and fast. Sometimes, though, setting up devices under Linux is often not all plug-and-play. Below we try to demystify Linux device drivers, with the aim of smoothing device selection during installs.

Many modern operating systems have a method for installing special files to make hardware work. On the Apple Mac, for instance, the drivers for the hardware devices are usually special files that go in the System Extensions folder. Linux also has special files that it uses to control the hardware.

Linux device drivers work through special kernel code that directly accesses the hardware. To make the services that the card or other device offers available to normal user programs, the kernel uses the special files in /dev

One end of the file in /dev can be opened normally and the other end is attached to the kernel. That is of course an oversimplification, but I think you get the general idea: hardware, kernel, special file, user program and the same path back from user program to hardware. There are two forms of the kernel portion of this equation: compiled-in drivers that are coded in permanently when the kernel is built, and modules.

This course is designed for starters on Device Drivers on Linux Platform, 

Course Content :  

Introduction - Linux & Device drivers

   Overview of Linux system

   The Kernel and what it does

   User Space Vs Kernel Space

   User Process

   User view of devices

   The Role of a device driver

   Major and Minor device number

   Making a device file

   Classes of devices and modules

 

Linux code development

          vi, the Unix Visual Editor at a Glance

         C Compiler Identifying File Types using Filename C

          Command Line Flags

          Using 'make'

 

How Loadable Modules Work

Benefits of loadable modules

Loadable device drivers

Correct use of insmod, modprobe, rmmod, and lsmod

Passing parameters to a loadable module

 

 Module Mechanics

Identifying important header files

Writing a simple module

Compiling modules

Loading/unloading modules

Exporting symbols from a loadable module

Creating stacked loadable modules

The /proc File System

  

Character Drivers

Typical Character Drivers

Creating device files with mknod

Registering character device file

Listing character device driver methods

Character Device Special File and Device Numbers

file_operations structure

struct file, struct inode

Character Device Methods open(), release(), read(), write()

Data Transfers between User Process and Driver

copy_from_user(), copy_to_user()

Kernel Memory Character Driver Example

 

IOCTLs

          What is ioctl

          Using ioctl commands to interact with a device

          Implementing IOCTL in drivers

 

Tracing and Debugging

printk for debugging

Device information in /proc

strace to track system calls

ksyms

Debugger  gdb

 

Blocking and Wait Queues

        Blocking and Non Blocking Operations

          Wait Queues, sleep & wake up

          Schedule

 

Time Flow

Time intervals in the kernel

 Knowing current time

 Delaying execution

Utilizing Kernel Timers, Wait queues, and Task Queues

 

Memory Management

Accessing Memory

Get Some Space (kmalloc())

Get Some Pages (get_free_page())

Get Some Virtual Memory

Get Some Boot-time Space

 

Hardware Mangement  interrupts

I/O ports and I/O Memory

IRQs

Functions used for reading and writing I/O ports

 

Interrupt Management

Handling and Registration

Enabling and Disabling Interrupts

Splitting Interrupt Handling - Top Half & Bottom Half

Combating Race Conditions - Spinlocks

Restrictions of kernel code running in an interrupt context

 

Block Device Drivers

Block Device Driver Characteristics

Similarities to Character Drivers

Differences between Block and Character Drivers

Registering block drivers

The block_device_operations structure

 

Network Drivers

Network Driver Characteristics

netdevice structure fields

netdevice structure methods

Opening and Closing

Packet Transmission

Packet Reception

The Interrupt handler

Socket buffer

 

A.   Case Study: Parallel port Printer device driver

Understanding the parallel port

Preparing the parallel port

Implementing interrupt handler for parallel port

Tasklets and bottom half processing

Race conditions and spinlocks

Implementing read/write

 

 Fecilities :

·                                 State of the art Lab facilities

·                                 Special  session by professionals from the Industry

·                                 Employment oriented curriculum

·                                 Small size batch

·                                 Unlimited lab timings

·                                 PG Accomdations will be provided to outstation candidates

·                                 placement assisatance can be provided to Project trainees and H1B / B1 Visa Holders

·                                 Assured placement opportunities

·                                 Flexible timing

·                                 Realtime projects

 

Please contact Mr Prashanth for Registrations

 

Regards

Prashanth - overseas placement consultant

 

training4it

 

Ph : 98454 05119

E-mail : training4it@...


Do you Yahoo!?
Yahoo! Small Business - Try our new resources site!

Wed Apr 13, 2005 8:03 am

embedded4it
Offline Offline
Send Email Send Email

Forward
Message #36 of 464 |
Expand Messages Author Sort by Date

LINUX DEVICE DRIVERS - Training at Bangalore LINUX DEVICE DRIVERS - Training at Bangalore Prerequisites : · Knowledge in Linux...
training4it
embedded4it
Offline Send Email
Apr 13, 2005
8:03 am
Advanced

Copyright © 2009 Yahoo! Inc. All rights reserved.
Privacy Policy - Terms of Service - Guidelines - Help