Placement Partners

  • JoomlaWorks Simple Image Rotator
  • JoomlaWorks Simple Image Rotator
  • JoomlaWorks Simple Image Rotator
  • JoomlaWorks Simple Image Rotator
  • JoomlaWorks Simple Image Rotator
  • JoomlaWorks Simple Image Rotator
  • JoomlaWorks Simple Image Rotator
  • JoomlaWorks Simple Image Rotator

Latest Events

Sat, Mar 13th, @10:00am - 05:00PM
Embedded Linux workshop on ARM9
Sat, Mar 13th, @10:30am - 05:30PM
Linux Device Drivers for Professionals
Sun, Mar 14th, @10:00am - 05:00PM
Embedded Linux workshop on ARM9
Mon, Mar 15th, @10:00am - 05:00PM
Embedded Linux workshop on ARM9
Tue, Mar 16th, @10:00am - 05:00PM
Embedded Linux workshop on ARM9

 

 


| Print |  Tell-a-friend
Linux Device Drivers Programming
Overview This course provides a practical overview about the structure of device drivers, in-depth information about the interface between the device driver and the rest of the Linux kernel, and various practical exercises to develop and test device drivers for major devices in a Linux environment. Live hands-on will be given on Character driver, USB driver and Filesystem driver in the classes itself

It also covers the initiators and detailed insights of writing a Device Driver in Linux, focused and aligned towards the industry perspective. By the end of the module, students are expected to have made their concepts very clear and become comfortable interpreting data sheets, and writing any character device driver from software perspective. 

Description It is not possible to connect new device types to a Linux machine without the necessary precautions. Apart from the required hardware interfaces, additional code should be added to the Linux kernel to interface between the hardware and the generic kernel routines of the I/O-subsystem. In order to write a device driver detailed knowledge is required about the internal concepts of certain parts of the Linux kernel, about the way the Linux kernel communicates with the device driver (and vice versa) and about the way a device driver handles the physical device.

In addition, experience is needed with various types of device drivers and the way a new device driver can be added to the kernel. Upon completion of the course, candidates will understand the Linux architecture, hardware and memory management, modularization, and the layout of the kernel source, and will have practiced key concepts and skills for development of Character Drivers and good familiarity with USB and File-system drivers.

Objective
  • To provide an overview of Linux kernel internal mechanisms.
  • To become proficient Linux driver developer for character based devices
  • To recognize inefficient drivers, and tailor to minimize RT latency.
Pre-requisites Proficiency in C
Duration 1 Month class and Lab.
Platform Linux
Delivery method Workshop based Instructor led, Assignments, Project.
Course topics
  • Summarize kernel mechanisms.
  • General function of the device driver: Types of device drivers, physical I/O, major and minor numbers. Loadable versus static drivers.
  • Device driver types: Character drivers, block drivers and file system.
  • General mechanisms: Sleep and wakeup (wait queues). Buffer allocation. Timer handling. Interrupt handling.
  • Configuration and initialization: Error logging, debugging, the /proc and /dev file systems.
  • Character drivers: Data transport between user mode and kernel mode, error codes, the ioctl interface.
  • USB Drivers: Mini Project on live hardware
  • File System and Block Drivers: Concepts and Approach to develop these drivers(Live Practical sessions out of scope in this duration)


  • Links to other module details:
    Advanced C
    Linux basics and Linux internals programming
    Data structures and logic analysis
    Micro-controllers (8051 and PIC)
    Embedded OS programming on ARM9 and Real Time concepts (x86)