Embedded C Programming with Real Time Linux (i86) — A 5 day course

contact usEnquire about this course


This C course is extensive and contains many advanced concepts.

The range of modules covers a full introduction to C, real-time and embedded systems concepts through to the design and implementation of real time embedded or standalone systems based on real-time operating systems and their device drivers. Real time Linux (RTLinux) is used as an example of such a system. The modules include an introduction to the development of Linux device drivers.

Predominantly intended to be taught to development teams at customer sites it is not expected that any one course would cover the full range of modules in a typical five day period.

For teams without experience of C and high-end real time operating sytems it would typically require eight to ten days of intensive training to give full coverage to the topics included here. The course covers all of the important features of the C language as well as a good grounding in the principles and practices of real-time systems development including the POSIX threads (pthreads) specification.

The design of the modules is intended to provide an excellent working knowledge of the C language and its application to serious real time or embedded systems. Those wanting in-depth training specifically on RTLinux or Linux kernel internals should contact us to discuss their requirements; this set of modules is geared more towards providing the groundwork for approaching those domains rather than as in-depth training on a specific approach.

The course contains essential information for anyone developing embedded systems such as microcontrollers, real-time control systems, mobile device, PDAs and similar applications.

This C course is based on many years experience of teaching C, extensive industrial programming experience and also participation in the ANSI X3J11 and BSI standards bodies that produced the standard for C. We focus on the needs of day-to-day users of the language with the emphasis being on practical use and delivery of reliable software.

Each section of the material covered by the tutor is followed by hands-on practical exercises for which worked examples of the solutions are typically provided.


An Introduction to C

Introduction to Embedded C Programming

Variable Types and Constants


Flow Control



Evaluating Expressions

Bit Manipulation


Other Data Types: Structures, Unions, and Enums

The Preprocessor and Multiple-File Programs

String Handling

Real-Time - C Techniques for Dealing with Time

Tasks, Threads, POSIX Pthreads

Self-Referential and Dynamic Data Structures

Developing on Real Time Linux

Interprocess Communication in Real Time Linux

Linux Device Drivers

Further Pointers

Building Software with Make

Advanced Use of the Preprocessor

Efficient C Programming

MISRA C — Designing Safer C Programs

Suitable For

Programmers and engineers who already have some understanding of programming and who now wish to gain a solid understanding of the use of C for embedded and real-time systems software development.


Programming experience

A good understanding of real-time programming issues