An industry aligned certificate course on

Advanced Embedded Systems Design

For ECE/EEE/EIE/CSE graduates

20+ yrs
Real Time Expertise
100%
Guaranteed Placement
Next cohort starts on
4th Sep 2025 Apply Now!
Embedded Systems

  • Features of C
  • History
  • Structure of C Program
  • Keywords, Identifiers, Variables and Constants

  • Primitive Data Types
  • Aggregated Data Types

  • Binary Operators
  • Unary Operators
  • Ternary Operators
  • Special Operators
  • Order of evaluation

  • The Control Flow Program Statements
  • Looping Statements
  • The Data-Checking Process
PREPROCESSOR FEATURES
  • Preprocessor Features

  • Role of Functions
  • Passing arguments to functions
  • Returning values from functions
  • Recursive Functions
  • Callback functions
  • Implications on Stack
  • Pass by value/reference

  • Defining, initializing and using arrays
  • Multi Dimensional arrays
  • Arrays of Characters and Strings
  • Arrays and pointers
  • Passing arrays to functions
  • String handling and its library functions

  • Scope and lifetime of a variable
  • Internal
  • External/Global
  • Automatic
  • Static
  • Register
  • Volatile

  • Usage of Structures
  • Declaration, initialization and accessing
  • Nested Structures
  • Array of structures
  • Allocation of memory and holes
  • Unions

  • AND (&), OR (|), XOR (^)
  • Compliment (~)
  • Left-shift (<<), Right-shift (>>)
  • Masking, Setting and Testing of Bit/Bits

  • The purpose of pointers
  • Defining pointers
  • The & and * operators
  • Pointer assignment
  • Pointer to Pointer
  • Pointers to Arrays
  • Arrays of Pointers
  • Void Pointers
  • Call By value and Call by reference
  • Advanced pointer types
  • Pointers to functions
  • Pointers and Strings
  • Pointers and Dynamic memory

COMMAND LINE ARGUMENTS & DYNAMIC MEMORY ALLOCATION
  • Allocation (Malloc, Calloc, Realloc)
  • De-Allocation(Free)
  • Implementation of printf()

  • Implementation of printf()
  • Implementation of scanf()

  • Introduction
  • Structured Representation
  • Statements and Control Structures
  • Static & Dynamic Data Types
  • Abstract Data Types
  • Arrays & Pointers
  • Linked List
  • Advanced Data Structures
  • Data Structure Representation
  • Analysis-Performance analysis of time and space
  • Design, Algorithm and Flowchart
  • Pseudo Code

  • Introduction
  • Types of Linked List
  • Implementation of Linked List
  • Operations on Linked List
  • Circular Double Linked Lists
  • Uses of Linked Lists
  • Difference between Arrays and Linked List
  • Insertion sort

  • Selection sort
  • Merge sort
  • Bubble sort
  • Quick sort
  • Heap sort
  • Linear search
  • Binary search

  • Sequential Files
  • File Input, Output operations
  • Random Access Files

  • Linux Commands
  • Vi editor
  • GCC compiler
  • Four Stages of GCC
  • Functionality of Preprocessor
  • Functionality of Compiler
  • Functionality of Assembler
  • Functionality of Linker
  • Interrupting the Compiler
  • Compiling a C Program
  • Preprocessor Features
  • Predefined Preprocessor Symbols
  • Warnings and Extensions
  • Optimization
  • GDB debugger
  • Archive Utility
  • Make Utility
  • Object File Format
  • Executable File Format

  • Introduction
  • Processes
  • Threads
  • CPU Scheduling
  • Process Synchronization
  • Deadlocks
  • Memory management
  • Virtual Memory
  • File management & Disk management
  • LINUX SYSTEM PROGRAMMING

  • Linux is used in almost all system domains (Networking/Telecom).
  • Most RTOS are very similar to Linux.
  • Learning Linux programming will help you understand and work easily in system domains as well as in embedded systems.

  • Library Goals
  • Library Standards
  • GNU C Library - glibc
  • Library Functions vs. System Calls
  • Using System Calls
  • Handling Errors with errno
  • Making Sense of errno
  • Using strace

  • Program Startup
  • Using argc/argv
  • Handling Options with getopt()
  • Handling Options with getopt_long()
  • Environment
  • Manipulating the Environment
  • Program Exit
  • Registering Exit Handlers

  • Why Use Libraries?
  • Static Versus Shared
  • Static Library Benefits
  • Shared Library Benefits
  • Creating a Static Library
  • Using Static Libraries
  • Creating a Shared Library
  • Using Shared Libraries
  • Shared Library Management
  • Library Locations
  • ldconfig

  • When Does Time Begin?
  • Time Data Types
  • Determining Real Time
  • Converting time_t
  • Converting tm Structure
  • Process Time
  • Time arithmetic
  • Second Resolution Timers
  • Fine-Grained Timers
  • Real Time Clock (RTC)

  • What a Process Is
  • Process Relationships
  • Create a Child Process
  • Doing Something Else
  • Related execve() Functions
  • Wait For a Child
  • More Precise Waiting
  • Changing Priority/Nice
  • Real Time Priority

  • Allocating/Freeing Memory
  • Memory Alignment
  • Locked Memory
  • Memory Copy/Initialization
  • Memory Comparison/Search

  • What Is My Program Doing?
  • Source Level Debugging
  • Invoking gdb
  • Getting Started with gdb
  • Examining and Changing Memory
  • Debug info Libraries
  • Using gdb with a Running Process
  • Using gdb to Autopsy a Crash
  • Debugging Libraries ElectricFence
  • Debugging with valgrind
  • Profiling for Performance

  • Stream vs. System Calls
  • Opening/Closing Streams
  • Stream Input/Output Functions
  • Stream Status/Errors
  • Stream File Positioning
  • Stream Buffering
  • Temporary/Scratch Files
  • Opening/Closing File Descriptors
  • File Descriptor I/O
  • Repositioning File Descriptors
  • Stream/File Descriptor Conversions
  • cat using ANSI I/O
  • cat using POSIX I/O

  • Introduction to Pipes
  • Standard I/O: popen()/pclose()
  • Using popen()/pclose()
  • System Call: pipe()
  • Using pipe()
  • Named Pipes
  • Using Named Pipes
  • For Further Reading

  • What Signals Are
  • Blocking/Checking Signals
  • Working with Signal Sets
  • Example of Blocking Signals
  • Handling Signals with sigaction()
  • sigaction() Example
  • Handling Signals with signal()
  • Sending Signals

  • Introducing Threaded Programming
  • Applications Suited to Threads
  • Building Threaded Programs
  • Creating Threads
  • Thread Identity
  • Synchronizing by Joining
  • Detaching Threads
  • Stopping Threads
  • Synchronizing with Mutexes
  • Using Mutexes
  • Read/Write Locks
  • Conditional Variables
  • Using Conditional Variables

  • Directory Operations
  • File System Operations
  • Multiplexed I/O with select()
  • Miscellaneous I/O Functions
  • Memory Mapped I/O
  • Using Memory Mapped I/O
  • File Locking

  • Interprocess Communication (IPC)
  • POSIX IPC Overview
  • POSIX Shared Memory
  • POSIX Semaphores
  • POSIX Message Queues
  • System V IPC Overview
  • System V IPC Shared Memory
  • System V IPC Semaphore Arrays
  • System V IPC Message Queues

  • Programmer's view of hardware
  • CPU
  • Types of CPUs
  • CPU Characteristics
  • CPU Bus/Machine Cycles
  • Memory
  • Memory types
  • CPU Memory interface
  • I/O
  • I/O controllers
  • CPU I/O interface
  • I/O methods/techniques
  • Polled I/O or Programmed I/O
  • Interrupt Support
  • DMA Support
  • DE's view of hardware
    • Host-Target Environment
    • Cross compilers
    • Downloading methods
    • Serial, Ethernet, Floppy, ROM
    • Emulators
    • Target based debugging
    • Debug Monitors
    • Host based source level debugging

    • The ARM is a 32-bit reduced instruction set computer (RISC) instruction set architecture (ISA) developed by ARM Holdings . It was known as the Advanced RISC Machine. The ARM architecture is the most widely used 32-bit ISA in terms of numbers produced. The relative simplicity of ARM processors made them suitable for low power applications. This has made them dominant in the mobile and embedded electronics market, as relatively low cost, and small microprocessors and microcontrollers.
    • As of 2005, about 98 percent of the more than one billion mobile phones sold each year use at least one ARM processor. As of 2009, ARM processors account for approximately 90% of all embedded 32-bit RISC processors. ARM processors are used extensively in consumer electronics, including PDAs , mobile phones, digital media and music players, hand-held game consoles, calculators and computer peripherals such as hard drives and routers .
    • Introduction to ARM (ARM7/ARM9)
    • ARM processor architecture & Features
    • ARM programming model (Instruction set and assembly language programming)
    • RISC vs. CISC
    • Pipelining concept
    • Fundamentals of ARM
    • Processor modes
    • Exception Handling
    • INTERPROCESS COMMUNICATION
    • ARM versions
    • Instruction Set & Addressing Modes
    • ARM(32-bit) Instruction Set
    • Thumb(16-bit) Instruction Set
    • Pre & Post Indexed Addressing modes
    • Stack Orgranization
    • Memory Organization
    • Mixed C and assembly programs
    • System Design & Development Tools
    • Case studies on ARM Controllers

    • Pages
    • MEMORY MANAGEMENT
    • USB Gadget Driver
    • Linux Programming
    • Zones
    • NETWORK DRIVERS
    • Getting Pages
    • Understanding the network device
    • Slab Layer
    • Initializing net device, sk_buff
    • Slab Allocator Interface
    • LAN(DM9000) driver

    • Monolithic Kernels
    • Micro Kernels

    • OS STACK EMBEDDED LINUX
    • Benefits of using Linux and open source tools for embedded systems
    • Components of Linux booting
    • Embedded Linux system architecture
    • GNU toolchain
    • Qemu
    • Linux booting sequence in x86 & ARM
    • Creation of Static & Dynamic Libraries
    • Proc & Sys File Systems
    • CROSS COMPILER TOOL CHAIN
    • Portability support in the kernel
    • HZ & Jiffies, Delays

    • Kernel Timers
    • Soft irgs
    • Tosklets
    • Work Queues
    • Kernel Data Types
    • INTERRUPTS
    • Handling I/O
    • 1/0 Architecture
    • I/O Mapped I/O
    • Memory Mapped I/O
    • Interrupts & Registering Interrupt Handlers
    • Interrupt Context vs Process Context
    • BLOCK 1/0 LAYER
    • Block Device Structure
    • Request queues
    • Block Driver
    • V/O Scheduling

    • Device Numbers
    • Major and Minor Numbers
    • Registering and Unregistering
    • Static and Dynamic allocations
    • UART DEVICE DRIVER
    • Important Structures
    • UART Driver
    • UART Protocol
    • UART Driver Layered Architecture
    • Character Devices
    • UART subsystems
    • Creating File System Images
    • User Space Applications and Device Driver mapping

    • I2C Architecture & Protocol
    • I2C subsystems
    • I2C Driver Layered Architecture
    • Porting, Development & Validation of I2C client Driver
    • Porting, Development & Validation of I2C platform Driver

    • PCI Architecture & Protocol
    • Busindependent device access
    • Understanding the PCI configuration space
    • PCI Regions & Direct Memory Access
    • PCI subsystems
    • PCI Driver Layered Architecture
    • Porting, Development & Validation of PCI client Driver

    • Module Programming
    • Kernel Configuration and Compilation
    • Character Drivers
    • Kernel Features
    • Interrupts and Exceptions
    • More on Modules
    • Debugging
    • Timers
    • Synchronization techniques
    • ioctl's
    • The proc filesystem
    • Unified Device Model and sysfs
    • Memory Management and Allocation
    • User and Kernel Space
    • Communication
    • Sleep and Wait Queues
    • Interrupt Handling
    • Block Drivers
    • PCI
    • Direct Memory Access
    • Network Drivers
    • USB Drivers
    • MTD
    • Asynchronous I/O
    • I/O Scheduling

    • Need/Uses of Networking
    • Use of Layered architecture
    • OSI Protocol layers
    • Physical layer functionalities
    • Data link layer functionalities
    • Network Layer functionalities
    • Transport layer functionalities
    • Presentation layer functionalities
    • Session layer functionalities
    • Application layer functionalities

    • Line configurations
    • Network topologies
    • Networking and internetworking devices
    • LAN, MAN, WAN
    • Typical media and Protocols used in each
    • LAN Standards
    • Ethernet, Token Ring, Token Bus, FDDI
    • Ethernet Media (Thick, Thin, Twisted pair)
    • Ethernet frame formats
    • WAN Standards
    • Dial-up, Leased Line
    • ISDN, DSL, PPP
    • ATM

    • Internet Addresses concepts
    • IP Address vs H/W address
    • (unicast/broadcast/multicast)
    • Subnetting/Supernetting
    • Switching
    • ARP/RARP

    • IP Concepts
    • ICMP
    • Routing concepts
    • Autonomous systems
    • Routing Algorithms
    • Routing protocols
    • Interior/Exterior routing protocols.
    • Unicast/Multicast Routing protocols
    • IGMP
    • User datagram Protocol (UDP)
    • Transmission Control Protocol (TCP)

    • Socket concepts
    • Socket API Interface
    • Client VS Server
    • Connectionless and connection oriented
    • client-server communication.
    • Socket calls for UDP/TCP server/client
    • Iterative vs concurrent servers
    • Iterative Connection-less servers (UDP)
    • Iterative Connection-Oriented servers (TCP)
    • Concurrent server implementation
    • Using multiple processes,
    • Using Multi Threading
    • Using select( ) call (both UDP/TCP).

    • TFTP
    • SMTP
    • HTTP
    • BOOTP
    • DHCP

    • Ethereal
    • WireShark

    • What is RTOS?
    • Desktop OS vs. RTOS
    • RTOS Key Characteristics
    • RTOS Services
    • Task Management
    • Inter task Communication Methods
    • Synchronization Techniques
    • Interrupt handling
    • Timers
    • Signals and Events
    • Priority Inversion/Inheritance
    • Training by Industrial Experts with 20+ years of experience at various MNCs.
    • Training on High-end Arm Development Boards, providing cutting-edge knowledge.
    • Full Lifecycle Training on Hardware & Firmware, which includes Design, Development, Testing, Verification & Validation.
    • Live Exercises relevant to current industry standards.
    • Course Content Designed by Leading Embedded Experts to ensure relevance and depth.
    • Multiple Live Projects in a well-equipped, state-of-the-art laboratory.
    • Hands-on Experience for students on live, industrial real-time projects.
    Raspberry Pi
    Beagle Bone

    Last Date of Application Submission

    19.08.2025

    Online Screening Test

    20.08.2025

    In-person Interview at Sri City

    28.08.2025

    First Cohort starts

    04.09.2025

    Apply for the Course