Course Overview
- Participants would be able to design, describe, validate and optimise embedded electronic systems in different industrial application areas.
- Capability to solve theoretical and practical problems with particular emphasis on electronic circuits, control programs and the software-hardware interface
Requirements
- Basics of programming language
Curriculum
-
C Language: 4 Days
- Why C in Embedded
- ANSI Standard
- Fundamentals of C
- Datatypes and Constants
- Simple & Formatted I/O
- Memory Usage
- Operators & Expressions
- Flow Control
- Loops
- Role of Functions
- Pass by value / reference
- Returning values from Functions
- Recursive Functions
- Call Back Functions
- Implications on Stack
- Library Vs User defined function
- Passing variable number of arguments Arrays
- Defining, initializing and using arrays
- Multi Dimensional
- Arrays of Characters and Strings
- Arrays and Pointers
- Passing arrays to functions
- String handling with and without library functions
- Storage Classes – Scope and Life
- Storage Classes – Automatic, Static, External, Register
- Storage Classes – Memory (CPU / RAM)
- What structures are for?
- Declaration, initialization
- Accessing like objects
- Nested Structures
- Array of Structures
- Passing structures through functions
- Allocation of memory and holes
- Structure Comparison
- Structure bit operation
- Typedef for portability
- Unions
- Overlapping members
- Enumerated data types – Enum, Indexing, enum Vs #define
- Bit Operations – AND (&), OR ( | ), XOR (^)
- Bit Operations – Compliment (~)
- Bit Operations – Left-Shift (<<), Right Shift (>>)
- Bit Operations – Masking, Setting, Clearing and Testing of Bit / Bits
- Pointers – The purpose of pointers
- Pointers – Pointer Assignment
- Pointers – Defining pointers
- Pointers – The & and * operators
- Pointers – Array of Pointers
- Pointers – Pointer Arithmetic
- Pointers – Multiple indirections
- Pointers – Advanced pointer types
- Pointers – Generic and Null Pointer
- Pointers – Function Pointers
- Pointers – Pointers to Arrays and Strings
- Pointers – Far, Near and Huge Pointers
- Pointers – Pointers to Structure and Union
- Pointers – Pointers to Dynamic memory
- Pointers – Pointer Type Casting
- Command line Arguments – Argc, argv
- Command line Arguments – Variable Inputs to the main
- Compiler in Practical – Preprocessor Directives
- Compiler in Practical – Compiler, Assembler, Linker
- Compiler in Practical – Conditional Compilation
- Compiler in Practical – Volatile, #pragma
- Compiler in Practical – Multiple File Compilation
- Compiler in Practical – Code Optimization techniques
- Data Structures – Stacks & Queues(Important topic to give more focus) Mini Project 1
-
Embedded Systems – Microcontrollers: 3 Days
-
C++ Language: 5 Days
- Requirements for C++ in an Embedded System – Embedded system characteristics
- Requirements for C++ in an Embedded System – Language choice
- Requirements for C++ in an Embedded System – Memory mapped peripherals
- Requirements for C++ in an Embedded System – Volatile variables
- Requirements for C++ in an Embedded System – Compilation
- Requirements for C++ in an Embedded System – System boot-up
- Requirements for C++ in an Embedded System – Best Practices
- Summary of C – A refresher on basic C syntax
- Summary of C – Control flow
- Summary of C – Functions
- Summary of C – Fundamental types
- Summary of C – Literals
- Summary of C – Derived types
- Summary of C – Operators
- Summary of C – Standard libraries
- From C to C++ and C++11 – const
- From C to C++ and C++11 – The features added to C by C++ and the ANSI C-1999 standard
- From C to C++ and C++11 – inline
- From C to C++ and C++11 – Enhanced enumerations
- From C to C++ and C++11 – constant expressions
- From C to C++ and C++11 – auto
- From C to C++ and C++11 – Function prototypes
- From C to C++ and C++11 – Overview of I/O streams
- From C to C++ and C++11 – Pass-by-reference
- From C to C++ and C++11 – Default arguments
- From C to C++ and C++11 – Function and operator overloading
- From C to C++ and C++11 – String class
-
Linkage and Storage
-
C++ Development Environments for Embedded Systems
-
Classes and Objects
-
Constructors
-
Members and Friends
-
Object-Oriented Mode ling and The UML
-
Inheritance
-
Virtual Functions
-
Further C++ Features
-
Templates
-
Standard Libraries
-
Defensive Programming
-
Principles of Real-time Operating Systems
-
Standard Library Algorithms