Course duration: (8 days)
Course structure and out line
Module title
What you learn

(8 days)

Programming in C
Introduction to C Programming - Evolution of language, Structure of a C program, The C compilation process, difference between compiler and cross-compiler.
Data types and Operators - C built in data types and Modifiers, Precedence & Associativity – Arithmetic, logical, relational, bitwise, and ternary operator, Promotion & Typecasting, Qualifiers – const and volatile, Storage classes – auto, register, static, extern.
Control Flow - Logical expressions and operations, Decision Making, nesting, branching statements, iterators.
Functions and pointers - declaration, definition, call by value and call by reference, static, extern, inline, recursive functions. Command line arguments. Pointers – Null, wild, dangling, generic.

Library functions - malloc, calloc, realloc, free, issues.
Array(integer) - declaration, initialization(sized and unsized), passing array to function using call by reference, 1D, 2D, 3D pointer to 1D, 2D, 3D array, array of pointers.

Array(char) - declaration, initialization, passing array to function using call by reference, 1D, 2D array of pointers to 2D chars. Stings – standard library functions – strlen, strcpy, strcmp, strrev etc.
Preprocessor - preprocessor directives – file inclusion, macros, conditional compilation, and miscellaneous directives. Compilation steps – preprocessor, compiler, assembler, linker and loader.
Structure, union, enum – structure variable, pointers to structures, nesting of structures using structure variable and structure pointers, self- referential structure, applications. Unions - memory map, uses. Enum - uses. Typedef – for data type, arrays, structs, union, enum, function pointers.
Input and Output - console i\o - formatted and unformatted. File i\o - txt files and binary files.
Miscellaneous topics - function pointes, difference between #define and Typedef, function returning pointers.


Embedded C is a set of language extensions for the C Programming language by the C Standards committee to address commonality issues that exist between C extensions for different embedded systems. Historically, embedded C programming requires nonstandard extensions to the C language in order to support exotic features such as fixed-point arithmetic, multiple distinct memory banks, and basic I/O operations.