Embedded Linux &
Linux Device Driver Training
Duration – 150 hours
Classes – Flexible
Prerequisites
-
Good C programming skills
-
Good knowledge of Linux and Linux shell scripting
-
Good knowledge of computer/microprocessor/microcontroller
architecture
-
Operating Systems theory
-
Excellent analytical skills and problem solving skills
Modules to be covered
1.
Linux Basics and Shell scripting (Revision) – 10 hours
Command-line interface
Directory Structure & Contents
Basic Shell utilities /commands
Directory / File Operations
System/Process/Disk Status Indicators
Getting Help: man, info pages
On-Line Manuals
Shell scripting basics
Assignments
2.
C Refresher + Advanced C – 20 hours
Introduction to Linux GNU Compiler Collection (gcc)
Foundations of C programming - Revision
Types,
declarations and expressions
Control
Flow, Functions and program structure
Arrays,
pointers, structures, unions – nested structures, pointers to structures, arrays of pointers, double
pointers
Data
structure design
Input
and output handling, File handling
Dynamic Memory Management – malloc,
calloc, free
Linked Lists – singly linked list, queues, stacks
Command-line argument handling
Program Design
Assignments
3.
Linux systems programming using C – 30 hours
Files and streams
Process management
Signals, Timers
POSIX Threads
Socket programming
Advanced programming topics (function pointers, file
processing)
Makefile for multiple source file compilation
Assignments
4.
Linux Device Drivers Development (for x86 processors) – 40
hours
Intro to devices and drivers
Understanding and building Linux Kernel modules
Char drivers
Time constraints
Linux device model
Interrupt handling
Debugging techniques
Advanced char drivers
Introduction to block and network drivers
USB drivers
Bluetooth drivers
Assignments
5.
Embedded Linux (with ARM platform) – 50 hours
ARM processor family and architecture
Basics of ARM assembly and programming
Embedded Linux basics and development methods
Linux as an Embedded OS
Linux booting - Boot loader (U-Boot), Kernel, Ramdisk, File system
Linux console, storage media and other peripherals, MTD
tools
Compilers and Cross-compilers – GNU ARM compiler toolchain
Libraries – GNU, C, Shared
Introduction to embedded development process (target,
host, configure, build)
Building root file system, Shell and utilities (Busybox), Libraries, Kernel, flashing the target,
debugging).
Booting from Network, from SD card
Assignments
6.
Project Work - Flexible