Embedded Linux & Driver Developer

Course Highlights

  • The flagship training programme from Veda Solutions, successfully being conducted from the past 10 years.
  • A comprehensive expert level course on Embedded Linux , Linux Kernel and Drivers
  • Most attended and recommended by working professionals (from over 100 companies and 8 nations).
  • From the leaders in Embedded Linux and System Programming.
  • Available in regular, full-time, weekend workshops, audio-video and online training modes.

Who should attend?

  • Anyone with good C programming skills and a passion for Embedded Linux, kernel & Driver programming
  • Working professionals expecting projects/work assignments on Embedded Linux, Linux kernel programming, Device Drivers or other core system development requirements
  • Working professionals looking to upgrade their system development skills on Linux
  • Programmers from Windows OS platform interested to add/migrate to Linux and Embedded Systems
  • Microcontroller based embedded developers who are willing to upgrade their skills and enhance their career positions

Course pre-requisites

  • Proficiency in C programming
  • Knowledge of basic Linux commands

What you will learn?

  • Linux programming essentials, for understanding the key Linux; issues, concepts and finer nuances of programming to get a proper grounding before getting deeper into core system development
  • Linux Kernel Programming and Internals for getting a complete grip on core OS concepts and module programming
  • Linux Device Drivers and Embedded Drivers enabling you to start writing Driver programs for embedded and GPOS targets
  • Practical Embedded Linux enablement skills for any target hardware like ARM and so on.

Course duration

Regular mode 4 months


  • Most recommended training organization by working professionals
  • 10 years of training experience in Embedded Linux and Linux system programming
  • Delivered corporate training to over 20 technology majors including Sasken, NCR, UTC-FS, Xilinx and so on
  • First institute in Asia to start online courses on Linux Kernel, Device Drivers and Embedded Linux
  • Participants from over 8 nations and 100 companies

Courses Contents:

1. Linux Programming Essentials

Gnu compiler distribution

  • Understanding compile & build process
  • Tool chain
  • Object file analysis
  • Executable Images
  • Binary Portability

Exploring Linkers and Build process

  • Build process defined
  • Role of Build scripts in build process
  • Build script syntax
  • Need to modify Build scripts


  • Introduction to libraries
  • Creating Static Libraries
  • Creating Shared Libraries
  • Using Libraries
  • Managing dynamic libraries

Stack Analysis

  • Introduction to stack
  • Understanding stack growth
  • Mapping programs
  • Understanding stack frame

Application Programming Interface

  • Need for API
  • API and System calls
  • User mode, kernel mode transition
  • API and application portability

Process Address Space

  • Introduction to virtual address space
  • Stack allocation
  • Heap/Data segment management
  • Memory maps
  • Decoding dynamic memory allocation & de-allocation
  • Choosing right memory allocation mechanisms
  • Manipulating memory blocks
  • Swapping memory area
  • Memory locking

2. Linux Kernel Internals and Device Drivers

Linux kernel programming

  • Essentials of Linux kernel architecture
  • Understanding need for kernel programming
  • Kernel programming models
  • Kernel configuration and compilation
  • Introduction to kernel modules
  • Kernel modules vs. Applications
  • Exploring kernel module architecture

Modules programming basics

  • Building blocks of a kernel module
  • Building kernel module binary
  • Tools for module management
  • Tracking module dependency
  • Module parameters
  • Kernel symbol table
  • Exporting Module symbols

Memory allocations

  • Linux kernel memory subsystem
  • Memory representation data structures
  • Memory Allocators
  • Allocating Boot memory
  • Page Tables and Address Translation
  • Page Tables and Address Translation

DMA mappings

  • Need for DMA
  • Linux DMA mappings
  • Use cases

Hardware access

  • Device Addresses
  • Port mapped I/O
  • Interacting with port mapped devices
  • Memory Mapped I/O
  • Reserving address space MMIO
  • MMIO Access
  • Device access from u-space

Interrupt handling

  • Understanding Interrupts
  • Linux Interrupt handlers
  • Implementing Driver ISR
  • Need for deferred routines
  • Linux Deferred Routines
  • Interrupt event management

Linux driver architecture

  • Device Drivers defined
  • Linux Driver model
  • Types of Linux drivers
  • Driver stacks

Char drivers

  • Synchronous drivers defined
  • Driver registration and de-registration
  • Driver file interface
  • Device file operations
  • Driver data structures
  • Device Configuration ops
  • Wait Queues & polling
  • Memory mapping
  • Use cases

Kernel Synchronization

Bottom halves

3. Embedded Linux

Introduction to embedded Linux

  • Benefits of using Linux and open source tools for embedded systems
  • SOC overview
  • Embedded Linux system architecture
  • Software components for embedded development

Cross-compiler tool-chains

  • Need for cross tool-chain
  • Different tool-chains’ build procedures
  • Using pre-build cross tool-chain
  • Building our own cross tool-chain

Board BSP & Boot loaders

  • Introduction
  • Role of board BSP
  • Organization of BSP
  • Open source ecosystem for board BSP

Linux booting process

  • Linux booting sequence
  • Components of Linux booting
  • Tweaks and changes
  • Use cases


  • Introduction to u-boot
  • Overview of U-boot source
  • Building U-boot for target
  • Booting target with U-boot
  • Understanding U-boot environment
  • Transferring images to target using U-boot


  • Supported hardware architectures
  • Using predefined config files
  • Cross-compiling the kernel for target
  • Understanding kernel boot arguments
  • Understanding NAND/NOR flash
  • File system for flash

Kernel BSP

  • Introduction
  • Role of kernel BSP
  • Organization of kernel BSP
  • Deployment

Embedded Drivers

  • I2C
  • SPI
  • GPIO
  • PIN muxing

Understanding Device tree

File system

  • Understanding Unix File system hierarchy
  • Creating file system
  • Porting application
  • Mounting file system as initrd
  • Integrating file system and kernel image
  • Cross-compiling applications and libraries
  • Creating jffs2 file system

Flashing Images

  • Flashing kernel image
  • Flashing file system
  • >> Classroom
    • Course Name :
      Embedded Linux & Drivers Developer
    • Next batch starts :
      5th March 2018
    • Class Timing :
      7:30pm to 9pm
    • Course Duration :
      4 months
    • Course Fee :
      Rs.27,000/- plus GST@18%
  • >> Audio/Video
    • Course Name :
      Embedded Linux & Driver Developer
    • Next batch starts :
    • Class Timing :
      Access the videos anytime between 8am to 8:30pm
    • Course Duration :
      5 months validity
    • Course Fee :
    • <
  • >> Online

Course feedbacks

Success Stories