Subscribe to Newsletter

Print

C Programming Deep Dive Training Course


(This course is offered only on-demand to a private batch and can be customized as per the business requirements)

Overview

C Programming Deep Dive course aims to progress individuals and give them a fuller appreciation of the more advanced aspects of the language.

Due to the requirements for programming real-time embedded systems, this course goes beyond just addressing the language issues and explores compile, link and run-time issues. In addition it covers interrupts and multi-tasking areas specific to C.

Objectives

At the end of Advanced C programming training course, participants will be able:

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

Suggested Audience - This course is designed for engineers who want to improve their grounding and understanding of the C programming language. It is specifically aimed at issues relevant to real-time embedded software engineers.

Duration - 4 Days

Prerequisites - A good grasp of the fundamentals of C.

Syllabus

1. Introduction Program Structure
  • Importance of good structure
  • Quality and style
2. Pointers, Arrays & Dynamic Allocation:
  • Arrays & pointers; compatibility and incompatibility
3. Function Pointers
  • Basics
  • Callbacks
  • State machine
4. Unscrambling Declarations
  • Rules
  • Using typedef
5. Enumerations, Structures and Unions
  • Enum vs. #define
  • Struct layout
  • Uses of union
6. Interrupts
  • Hardware interrupt models
  • Software interrupts
7. Multi-Tasking (Multi-Threading)
  • Terminology
  • Advantages and disadvantages
  • Intertask Communication & Synchronisation
8. The Linker
  • Memory sections
9. Start-up, Runtime and the Stack
  • What happens before main
  • What is happening at runtime
  • Estimation of stack requirements
10. Dynamic Memory
  • Malloc, calloc and realloc
  • Variable sized structures
  • Dangers
11. Memory Management and Protection
  • Memory protection
  • MMU
  • Segmentation and paging
12. Writing Safer C
  • MISRA-C Guidelines
13. OOP with C
  • Object-based and objectoriented
  • Classes, inheritance and polymorphism
  • Associations and aggregation
14. Number Crunching
  • Floating-point and fixed-point number systems
  • IEEE Standard 754
15. The Standard Library
  • Major issues