Linux Device Drivers

Introduction

This Course has been designed with the vision of creating world class Embedded Device Software programmers that use high level languages and should provide Linux based solutions in embedded system and real-time technologies.

Our goal is to provide competitive knowledge and embedded solutions, powered by intelligence and innovation. The Embedded Solutions Division offers a wide range of value-added solutions in the Device Design, Device Drivers, Telecoms, Automotive, Consumer, Manufacturing and Convergence market segments.

Objective

This short course is designed to ensure that students of Engineering College with academic capabilities will have the skill set needed to deal with the challenges involved in real-world embedded technologies to meet the needs of industries both today and in the future. 

The course considers programming techniques which can help to ensure that single-processor embedded systems are reliable.

The course is taught mainly using the C programming language, with a PC emulated as an embedded device. 

Pre-requisites

A prior knowledge of a basic Linux commands, general understanding about    operating system concepts is assumed.

Agenda
  • The duration of the course will be:
    • 19 Classroom Sessions.
    • Total Access to lab from 8 am to 8 pm for 100 days.
  • After the course is over, you should be:
    • Able to understand Loadable Kernel Modules and its Interfaces.
    • Understanding architecture for any kind of Device Drivers.
    • Able to Add or remove LKMs into the Kernel.
    • Implement LKMs or Device Drivers from scratch.
    • Implementing few Basic Device Drivers during the training from scratch.
    • Understanding and implementing Some Advanced Device Drivers during the training from scratch.
    • Able to interpret the data-sheets and implement Device Drivers accordingly.
    • Able to Debug and optimize Device Drivers for any devices

Modules:

  • Linux Device Interface
  • Understanding the access method of Device in Linux
  • Kernel Symbol Table and Parameters
  • SCULL
  • Pseudo Driver Development
  • Kernel Data Structures
  • Device Operations
  • Memory Allocation and debugging
  • Concurrency, Race condition and Synchronization
  • Device Control
  • Advanced Device Operations
  • Timers and Delays
  • Memory Management
  • Interrupt handling and synchronization Techniques
  • Device Driver development for Serial Controllers
  • PCI drivers
  • Memory Mapping and DMA
  • Block Drivers
  • Network Drivers
  • We May Support you for developing some more device drivers, if you are interested and you have time.
  • The drivers for which we can support you are as follows:
    • Input Drivers
    • PCMCIA and Compact Flash
    • USB Driver.
    • Audio Drivers
    • Video Drivers
    • Infrared drivers
    • WiFi Drivers
    • RFID Drivers
    • Bluetooth Driver
    • Cellular Networking
    • MAP Drivers
    • NAND Chip drivers
    • NOR Chip Drivers
    • FireWire Driver