Introduction to C Programming for Embedded Systems Programmers — A 5 day course

contact usEnquire about this course


The course discusses C programming in the context of implementing C applications for 8 bit, 16 bit and 32 bit micro-controller architectures.

A distinction is made between pure ANSI C programming and use of pragmas and extensions as found with various embedded C compilers targeted at specific microcontrollers. General ANSI C programming is taught using a PC oriented IDE such as Microsoft's Visual Studio or the GCC compiler under Eclipse.

Embedded target specific aspects are illustrated using the EWARM workbench targetted at ARM 7 and/or AVR targets. You will also learn basic techniques for mixed C and Assembler programming.

The hands on exercises also cover the use of simulation, debugging and In Circuit Debugging techniques, as well as techniques for In System Programming.

Note: This course can also be tailored for other target processors supported by IAR's embedded workbench if required.


Students successfully completing this course will have a sound understanding of C programming.

You will understand the basic C data types, arrays and pointers.

You will have a good appreciation of data structures and their uses, and the use of pointers to data structures and arrays of data structures.

You'll learn how to use arrays to implement circular buffers and how to use them, and how to use arrays to implement stacks, and the uses of software stacks. You will also be introduced to basic techniques of programming on chip peripherals and implementing basic drivers and interrupt handlers.


An Introduction to C

C Basic data types

Programming constructs

Functions in C

Data Structures

Advanced topics

Overview of the C standard library

Embedded System Oriented Topics

Basics of event driven programming

Suitable For

Programmers and engineers who already have a basic understanding of programming.


Attendees should have a basic knowledge of programming and computers. No previous knowledge of the C language is assumed.