DEVICE DRIVERS TRAINING

To make your drive of learning Linux device drivers easy, a well-organized syllabus from Basics to advance Linux Programming is here. Get to know user space, kernel space, Driver architecture, and much much more

Who Should Attend :

Good C Programmers seeking carrer in world of Embedde Linux.
Working Professionals from Microcontroller background, middleware C/C++.
Students seeking career in Embedded Systems & Linux domain.

What will Be Outcome Of Training :

 The participant will be ready to do small embedded projects based on
  Embedded Linux.
 Know the Linux device drivers framework.
 Able to write his own custom driver for ARM Platform on Linux.
 Interrupt Programming of various methods to make Linux device drivers more standard.

Syllabus

To make your drive of learning Linux device drivers easy, a well-organized syllabus from Basics to advance Linux Programming is here. Get to know user space, kernel space, Driver architecture, and much much more

Class Notes:

Device Drivers Class Notes 

Hardware

This course enables the students to work on RuggedBoard-i.MX 6UL. Other single-board computers are available by special request. Each participant is also encouraged to bring their own hardware, to use with lab exercises as time permits.

RuggedBoard-i.MX 6UL

imx6ul
imx6ul

Training Highlights

  • Learn through Practical’s

  • Work on Latest ARM Core like Cortex A5/A8/A9

  • Real World Examples and Projects

  • Assured Post Training Support

  • Unlimited Access to the Hardware Boards for Practical’s

  • Training Tutorials & data available online

1.Introduction and Arch of Linux Device Drivers

  • Introduction to Kernel Space and User Space

  • Memory Management in Kernel

  • How to develop Kernel Device Driver

  • Layers of LDD

  • Processor Memory Layout  Device Register Access from Code

3. Character Device Drivers

  • Linux Kernel Device Driver Framework

  • Virtual File System as bridge between Driver and Application

  • Implementing basic character driver

2. Linux Introduction & Installation

  •  Basic Commands

  •  Dir & File Command

2. Kernel Module Programming

  • Kernel Module Programming

  • Module Parameters

  • Exporting Symbols between modules

4. Character Device Drivers

  • Writing Makefile to compile Device driver

  • Compiling and running on X86

  • Cross Compiling and running on ARM Hardware

Device Driver Development

5.Advance options in Character Device Drivers

  • Implementing advance api like ioct in character device driver

  • Standards to follow while implementing ioctl

  • Writing and testing LED driver with IOCTL on ARM Hardware

6. Interrupts in Device Driver

  • Interrupts in ARM Processor

  • Interrupts Mechanism in Linux Kernel

  • How to implement Interrupts in device driver

7. Interrupt Handling & Bottom Half

  • Writing and testing Interrupt for Button press on ARM Target

  • Writing and testing multiple Interrupts in single driver

  • How to implement Shared Interrupts

  • How to handle lengthy ISR using Bottom Half ( Soft IRQ, Tasklet & Workquees )

8. Special File Systems ProcFS & SysFS

  • Ram based files systems in Linux

  • Using procfs for special purpose and accessing kernel data structure How to implement procfs

  • Sysfs implementation in device drivers for easy application access.

9. Introduction to Block Device and Network Device Drivers

  • Introduction to block and network device drivers

  • Case study of Network Device Drivers

10. Advance Device Drivers and debugging

  • MTD Subsystem for Flash Memory Devices

  • Nand and Nor Device Drivers

  • USB Subsystem Introduction

  • How usb gadget drivers are used in Embedded Applications

  • Debugging Techniques like debugs / target debugging

Optional​​

  • If you are having any technical queries related to syllabus covered (LAB & Theory), we provide an additional weekend session for the same.