Developing for Embedded Linux
Length: 5 days
view dates and locationsThis course is delivered in co-operation with Doulos' training partner Feabhas, who specialise in training courses for real-time embedded developers.
Course Description
Linux is often used as an embedded operating system, and yet it is still regarded as something of a black art by many. This course aims to remove the mystique by showing exactly how to deploy Linux on a typical embedded target board through a combination of theory and practice.
Starting a board with no operating system, delegates will go through a simulated product cycle during which they will build and boot a Linux kernel, build a root file system, write a device driver and a multi-threaded application. Finally, they will review the performance of the resulting system and consider what changes could be made to improve it's real-time performance.
Overview
A 5-day course showing how to implement Linux on a typical development board (ARM core).
Course Objectives
- Describe the four essential components of an embedded project: toolchain, kernel, bootloader and root file system
- Show how to control hardware from a device driver (in outline, see EL-504 for a more in-depth treatment)
- Give an overview of application development, profiling and debugging
- Show how to configure NOR and NAND flash memory for robust code and data storage
- Look at the issues of real-time and Linux
Delegates will learn
- How to configure and build a customised Linux 2.6 kernel
- How to construct a compact root file system from scratch
- How to develop and debug code for the target board, using the Eclipse IDE
- How to write single and multi-threaded programs using POSIX functions
- Which aspects of the system affect real-time performance and how to reduce scheduling latencies
Who Should Attend
Software engineers who are developing applications for embedded or real-time Linux. Engineers wishing to assess the suitability of Linux for their next application.
Pre-Requisites
- Good 'C' programming skills
- General knowledge of an RTOS or embedded operating systems
- Experience of using Linux or a version of Unix will be useful, but not essential
Course Materials
- Student workbook.
Related courses
Developing Linux Device Drivers.
Course Workshop
The course presents embedded and real-time concepts applied to Linux using an ARM9 development board as the target (a Digi ConnectCore Wi-9C). The host development system is a standard PC running Linux. We use the target as an example of a simple embedded system which can control hardware via a simple digital I/O interface. Lab sessions follow a logical sequence, and result in 'the world 's first Linux-powered web-controlled washing machine'
Course Outline
Introduction
Linux in an embedded context •
The 4 basic elements: toolchain, bootloader, kernel, root file system
The Linux Kernel
Virtual memory •
configuration and cross-compiling
Booting Linux
The Linux boot sequence •
boot-loaders: U-boot •
loading images using TFTP
The root file-system
Creating a minimal root file-system using Busybox •
The C library: glibc vs uClibc. •
Creating a RAM disk image
Network configuration
Static and dynamic IP addresses •
mounting the root file system over NFS
Device drivers
How to write a simple driver to access GPIO pins •
kernel modules
Debugging
Logging using , syslogd •
remote debugging using Eclipse and gdbserver.
POSIX programming
Processes: fork and exit, scheduling •
signals and signal handlers •
time and timers •
pipes, message queues, semaphores, shared memory
POSIX Threads
Threads vs processes •
synchronising threads using mutexes and condition variables.
Flash memory
the Linux Memory Technology Devices Layer
File systems
File-system suitable for embedded applications •
Study of cramfs, tmpfs, jffs2 and yaffs
Real time Linux
Typical Interrupt latency. kernel pre-emption modes •
the real-time patch •
practical considerations
Profiling
Profiling using using gprof and Oprofile
Real time sub-kernels
Introduction to writing hard real-time tasks using RTAI
| Course Dates: | ||
|---|---|---|
| March 5th, 2012 | Munich, DE | Enquire |
| March 12th, 2012 | Swindon, UK | Enquire |
| June 18th, 2012 | Swindon, UK | Enquire |
Please contact Doulos to schedule a public course to suit you, or to discuss onsite training.
Back to top



