Advanced C For Embedded Systems Training


Introduction To Embedded Systems

  • Basics of Embedded System Design
  • Design methodology and various modules in the system
  • Real-Time Embedded Systems
  • Embedded System design challenges,embedded controllers etc.
  • Development environment
  • Current market trends & Applications,job opportunities.

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 io – formatted and unformatted. File io – txt files and binary files.
  • Miscellaneous topics – function pointes, difference between #define and Typedef, function returning pointers.

Advanced C Programming

  • Stacks – Concepts, issues like over flow and under flow and uses.
  • Queues – Concepts, types – ordinary, circular, double ended, priority. Issues and uses.
  • Linked list – Concepts, types – linear, circular, doubly, circular doubly and uses.
  • Trees – Concepts, types – trees, binary trees, binary search tree and uses.
  • Searching – binary, linear , linear search for ordered table,
  • Sorting – bubble, selection, insertion, simple merge, modified simple merge, merge sort, quick sort, and tree sort.

Embedded System Design and Programming using 8051 MCS-51 family: – 6 days

  • Introduction to Embedded system (Microcontroller/ Microprocessors)
  • Working with 8051 clones (AT89s8252, AT89s52etc) and their special features.
  • The MCS-51 architecture and PIN detail
  • Tools and techniques for Required embedded system designing.
  • Basics of C language & Programming in embedded c language.
  • Software programming and Hardware interfacing of following External and on chip devices:
  • LED(using PORTS as Output)
  • Matrix keyboard
  • Relay (To control Switching of AC devices e. g. Bulb, Fan, Heater etc.)
  • Stepper Motor (Speed and Direction Control)
  • DC motor (Speed and Direction Control)
  • LCD Display System
  • Single Chanel Analog to Digital Convertor(ADC0804)
  • Multichannel Analog to Digital Convertor (ADC809)
  • Digital to Analog converters
  • I2C based Serial RTC (DS1307)
  • I2C based Serial EEPROM
  • Serial communication b/ w micro-controller and PC & b/ w Two micro-controller

Embedded System Design and Programming using ARM (32 bit) Microcontroller-10 days.

  • Introduction to ARM
  • ARM7-TDMI Architecture & Programmer’s model
  • ARM & THUMB Instruction Set Architecture’s
  • ARM7 Assembly programming using Keil MDK tool-chain
  • LPC2128/2129 – ARM7 based MCU Architecture & Programming using Embedded C
  • Interfacing and Programming with LPC2378(GPIO – L.E.D., Switches, Matrix Keypad & LCD, Timer, RTC, ADC, UART)
  • In-Circuit debugging using Keil Ulink2 JTAG debugger
  • Boot sequence & System initialization
  • Exception handling
  • Advanced simulation , Code profiling & Optimization techniques
  • Protocols (Serial,SPI, I2C and CAN) .
  • Overview of ARM Cortex Cores
  • Projects on ARM controllers,case studies.

RTOS-Course Outline: 2 days.

Part 1: Real-Time Operating

Systems – an Introduction.
– Basic features of real-time operating systems
– Tasks and tasking
– Scheduling – concepts and implementation
– Control of shared resources – mutual exclusion
– Resource contention and deadlocks
– Intertask communication
– Memory management

Part 2: Practical aspects of realtime

Operating Systems.
– OS structures from Nanokernels through Microkernels to full RTOSs
– Process, Memory, Filesystem, Device and Memory management aspects
– Performance and safety features
– Real-Time Posix issues
– Development support
– Real-Time benchmarking
Vx-works or Ucos-C

Embedded Linux on ARM9/Raspberry pi 12 days.

  • Operating System Fundamentals: Objective, Functionality, Services, Components, H/W interaction, CPU Scheduling, Multitasking, Context Switching
  • Linux Kernel Architecture: Kernel Subsystem, System Call Interface, Scheduler, Virtual Memory Management, File-System Management
  • Linux System Programming: File I/O, Signals, Timer and Sleeping, Memory Allocation
  • Process Management: Process, Process Descriptor, Process States, Threads, Process Creation, Execution, Termination
  • Inter-Process Communication: Kernel IPC Facilities, Pipes, POSIX Message Queue, POSIX Semaphore, Shared Memory, File Locking
  • Building Linux Kernel: Getting Kernel Sources, Kernel Configuration, Kernel Compilation, Booting Kernel
  • Linux RootFS Creation: Storage Devices and File-system, System V RootFS Structure, BusyBox Configuration, RootFS Creation, InitRamFS Creation


We at CITL-tech varsity training institute in Bangalore India offers training on ARM Cortex-M3/M4 software development and it is designed for engineers who are developing software for platforms based on ARM M3 ,ARM 4 processors.
We at CITL-tech varsity training institute in Bangalore India offers training on RTOS on ARM Cortex-M3/M4 and it is designed for engineers who are developing software for platforms based on ARM M3 ,ARM 4 processors.