Advanced C Programming Training

C is a general-purpose, procedural computer programming language supporting structured programming, lexical variable scope, and recursion, while a static type system prevents unintended operations. Below are the course objectives for…

Created by

Stalwart Learning

Date & Time

Price

Duration

4 Days

Location

https://stalwartlearning.com

ENQUIRE NOW


Course Description

Overview of Advanced C Programming Training

C is a general-purpose, procedural computer programming language supporting structured programming, lexical variable scope, and recursion, while a static type system prevents unintended operations. Below are the course objectives for Advanced C Programming Training:

  • Participants will become comfortable with the advanced aspects of the C programming language.
  • Participants will gain an in-depth knowledge on what is happening at compile, link and runtime on a target processor.
  • Participants are introduce good quality and style for real-time embedded programming.
  • Participants will gain hands-on experience of programming up interrupts and real-time operating systems (RTOS).

Duration

4 Days

Prerequisite for Advanced C Programming Training

A good hold of the fundamentals of C

Course Outline for Advanced C Programming Training

Day 1

Program objects

  • Declarations and definitions
  • Expressions
  • Scope and lifetime

The build process

  • compilation, linking, memory sections, libraries

System startup & runtime

  • What happens before main
  • What is happening at runtime

Pointers

Function calling

  • Parameter passing mechanism
  • Pass-by-value vs Pass-by-reference
  • Returning data objects
Day 2

Hardware manipulation

  • Register access
  • The volatile keyword

Arrays

  • Initialisation
  • Relationship to pointers

State machine basics

  • Mealy & Moore machines

Function Pointers

  • Callbacks
  • State machine
Day 3

Dynamic Memory

  • Malloc, calloc and realloc
  • Variable sized structures
  • Dangers

Structures, Unions and Bitfields

  • Definition & use
  • Memory layout

Numerical issues

  • MISRA essential types
  • Floating point issues
  • Fixed point types
Day 4

Interrupts

  • Hardware interrupt models
  • Software interrupts

Multi-Tasking (Multi-threading)

  • Terminology
  • Advantages and disadvantages
  • Mutual exclusion
  • Intertask communication & synchronisation

ENQUIRE NOW