EIEIOTECHNOVATION
← Training programmes

EIEIO / AUTOMATION & EMERGING TECHNOLOGY

Ansi C for Embedded Systems Training

Course outline

2 days

Duration

2 days

Requirements

None

Overview

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)

Programme scope, delivery arrangements and suitability are confirmed during enquiry.