Ansi C for Embedded Systems Training Course

Course Code



14 hours (usually 2 days including breaks)




C programming with a focus on how to use it for Embedded System Developments.

Course Outline

C Basic data types

  • Integer types
  • Floating point types
  • Pointers (pointer arithmetic, pointer derefencing)
  • Arrays
  • The relationship between arrays and pointers
  • Enums

Programming constructs

  • if - else statements
  • switch statements
  • while loops and do - while loops
  • for loops
  • goto statements
  • Functions in C
  • Function prototypes
  • Understanding C's call by value mechanism for passing arguments
  • Implementing functions
  • Calling functions
  • Using pointers to pass values by reference
  • Passing arrays to functions
  • Understanding C's return value mechanism
  • Using pointers to return values by reference

Data Structures

  • Defining data structures
  • Accessing and manipulating the elements of a data structure
  • Pointers to data structures
  • The arrow (->) operator
  • Using a pointer to traverse an array of data structures

Advanced topics

  • Pointers to pointers
  • Function pointers
  • Const and static keywords - their meanings and uses
  • Casts and casting  Using void * pointers
  • Data structures containing pointers to data structures
  • Data structures containing function pointers
  • Function pointers and table driven programming
  • Bit fields in data structures
  • Unions
  • Using arrays to implement circular buffers and stacks
  • Modules as data structures and interfaces
  • Dynamic data structures and their uses
    • Singly linked lists
    • Doubly linked lists

Overview of the C standard library

  • putc, putchar, getc, getchar
  • printf, scanf
  • String manipulation functions (strcpy, strcat, ...) Embedded System Oriented Topics
  • Setting up port addresses
  • Defining bit oriented data structures
  • Compiler specific features
    • #pragmas
    • Non ANSII C extensions
    • Accessing and manipulating special function registers
    • Implementing interrupt handlers
    • Calling assembly code from C
    • Calling C from assembly code
  • Linkers and linker scripts
  • Understanding target peripheral device libraries and their uses
  • Implementing your own device libraries
  • Timers and their uses
    • Hardware timers
    • Software timers

Basics of event driven programming

  • Port I/O - flashing LEDs
  • Software delays
  • Keypad scanning
  • Basic RS232
  • Basic data acquisition and sensor interfacing
  • Working with EEPROM (on chip and SPI/I2C)



Related Categories

Related Courses

Course Discounts

Course Discounts Newsletter

We respect the privacy of your email address. We will not pass on or sell your address to others.
You can always change your preferences or unsubscribe completely.

Some of our clients

is growing fast!

We are looking to expand our presence in Vietnam!

As a Business Development Manager you will:

  • expand business in Vietnam
  • recruit local talent (sales, agents, trainers, consultants)
  • recruit local trainers and consultants

We offer:

  • Artificial Intelligence and Big Data systems to support your local operation
  • high-tech automation
  • continuously upgraded course catalogue and content
  • good fun in international team

If you are interested in running a high-tech, high-quality training and consulting business.

Apply now!

This site in other countries/regions