Embedded Systems


In today’s increasing global market place, successful companies are finding that

investments in hardware and software are no longer enough to maintain a competitive

edge. Human elements with specialized engineering and design skills have become the

essential part of the equation.


Embedded systems monitor and control everything from spacecraft to robots, microwave

ovens, automobiles, consumer electronics and much more. They control virtually

everything that is electronic in our lives.


Embedded systems are normally built around Microcontrollers, Digital Signal

Processors (DSPs) and FPGAs or SOCs. This Embedded System Design course focuses

on the architecture and programming of embedded devices such as Microcontrollers,

DSPs and FPGAs and also on embedded and Real-Time Operating Systems.


Objective of the Course:

To mould fresh electronics engineers and to retrain working engineers into High Caliber

Embedded System Designers by enhancing their knowledge and skills in various

hardware and software design aspects of Embedded Systems. This course offers a range

of topics of immediate relevance to industry and makes the students exactly suitable for

industries engaged in Embedded System development. This course is also an excellent

preparation for those wishing to engage in application research in this rapidly

developing area.


Outcome of the Course:

On completion of the Course, the Participants shall get

  • Exposure with different families and architectures of Embedded System tools such as

Microcontrollers, DSPs, FPGAs etc.

  • Expertise required to design any embedded system (H/w or S/w or both) based on any

of the above devices.

  • Expertise in Embedded Software particularly in real-time programming with industry

standard RTOS such as VxWorks and RTLinux.


Course Structure:

The Embedded Systems course contains eight modules. After completing the first seven modules, the students have to do a six weeks project using any of the topics studied during the course period.


Embedded C and 8-bit Microcontrollers 4 WEEKS
System Design using ARM Microcontrollers 3 WEEKS
System Design using Digital Signal Processors 3 WEEKS
Embedded Linux 2 WEEKS
Embedded RTOS (RTLinux & VxWorks) 2 WEEKS
System Design Using FPGAs 2 WEEKS
Embedded Product Design 2 WEEKS
Project Work 6 WEEKS




  1. Course Contents :

Embedded C and 8-bit Microcontrollers

Module Duration: 20 days


This module is framed to set the required background in ‘C’ Language for the rest of the

modules on embedded software. It aims at familiarizing the students in programming in

‘C’. This module covers the advanced topics in ‘C’ such as Memory management,

Pointers, Data structures which are of high relevance in embedded software are

considered in depth. This module makes use of KEIL C Compiler along with 8051


This module also covers the architecture of the popular 8-bit Microcontrollers such as

8051, and PIC for lower end applications. Microcontrollers with built-in peripheral

functions (such as PWMs for Motor Control or UPS, interface for Quadrature Encoders,

Frequency measurement, Serial ports, 10-bit 8-channel ADCs, Digital I/Os, EPROM,

RAM etc.), and lower power consumption are very popular and have drastically altered

the economics of Digital System Design. The low cost, small size and programmability

make them suitable for an enormous number of applications in products and systems like

fuzzy logic controllers, industrial automation, home appliances etc. 8-bit and 16-bit

Microcontrollers are widely used in industrial applications.

This module covers hardware and software design aspects in detail. The embedded

system design aspects using 8-bit Microcontrollers are also covered in detail.

Course Description

  1. a) Embedded C

All relevant aspects of ‘C’ programming under embedded environment are dealt with. It

starts with the basics of ‘C’ language and covers the advanced topics in detail.

Course contents

‘C’ programming

Storage Classes, Data Types, Controlling program flow, arrays, functions

Memory Management

Pointers, Arrays and pointers

Pointer to functions and advanced topics on pointers

Structures and unions

Data structures

Linked List, Stacks, Queues


Conditional Compilation, Preprocessor directives, File operations, Variable arguments in

Functions, Command line arguments, bitwise operations, Typecasting

  1. b) 8051 Microcontrollers
  • Architecture of 8051 Family of Microcontrollers
  • Assembly Language Programming of 8051
  • Peripherals of 8051 Family of Microcontrollers
  • System Design using 8051 Family of Microcontrollers
  • Programming includes Keyboard Interfacing, LCD Interfacing, ADC and DAC,

On chip Timers and Serial port

  • Mini Project using 8051 Family of Microcontrollers

Device Platform: SBC-51 Development Board, Keil ‘C’ Compiler & Windows based

Wise-51 Software.

Programming Language: ‘C’ and Assembly Language

  1. c) PIC Microcontrollers
  • Architecture of PIC Family of Microcontrollers (18F series)
  • Programming of PIC Family of Microcontrollers
  • Peripherals of PIC Family of Microcontrollers

Device Platform: MPLAB Simulator & 18F452 Dev Board

Learning Outcomes

After successful completion of the module students should be able to:

_ Develop advanced programs in Embedded ‘C’

_ Understand the architecture of the various types of 8-bit Microcontrollers

_ Understand the programming of the various types of 8-bit Microcontrollers

_ Understand the hardware interfacing of the peripherals to Microcontrollers

_ Select a proper Microcontroller for a particular application

_ Design new embedded systems using 8-bit Microcontrollers

Reading List

  1. Let us C by Yashwant Kanetkar
  2. Embedded C, Pont, Michael J
  3. C Programming by Worthington, Steve
  4. C Programming language, Kernighan, Brian W, Ritchie, Dennis M
  5. Art of C Programming, JONES, ROBIN,STEWART, IAN
  6. C Programming for Embedded systems, Zurell, Kirk
  7. C and the 8051 Programming for Multitasking – Schultz, Thomas W
  8. 8051 Microcontroller and Embedded Systems – Mazidi, Muhammad Ali, Mazidi,

Janice Gillispie

  1. Embedded Microcontrollers – Intel Hand Book

10.Programming and Customizing the 8051 microcontroller – Predko, Myke

  1. 8051 Microcontroller: Hardware, Software and Interfacing – Stewart, James W,

Miao, Kai X

  1. C and the 8051: Hardware, Modular Programming and Multitasking Vol i –

Schultz, Thomas W

  1. 8051 microcontroller: Architecture, Programming & Applications – Ayala,

Kenneth J

  1. Programming and Customizing PIC Microcontroller – Predko, Myke
  2. Design with PIC Microcontrollers – John B Peatman
  3. PIC Microcontroller Project Book – Lovine, John

System Design using ARM Microcontrollers

Module Duration: 15 days


The 32-bit Micro-controllers with ‘C’ language support and multifunction peripherals are

being used in most of the medium and high end Embedded applications such as Mobile

computing, Motion control, Wireless communication and even in Signal processing etc.

The processors provide high end computing power as well as an extensive array of

peripherals such as USB, LAN support, UART, Modem support, LCD/Graphics

interface, General purpose I/O, I2C, CAN etc.

The 32-bit ARM processors are used in high end computation requirements such as

Multimedia, Digital Camera and other high end applications. ARM processors are very

popular in Industries. This module focuses on the architecture of the 32-bit ARM9

Microcontroller. The assembly language programming as well as ‘C’ language

programming of the controller is also dealt in detail. The ARM Developer Suite with

Multi ICE and ARM9 kit from Cirrus Logic is used.

Course Description

  • Introduction to ARM Family of Microcontrollers
  • Architecture of ARM9 Microcontrollers
  • Architecture of Cirrus Logic EDB9302/Atmel AT91RM9200 Family of


  • ‘C’ & Assembly Language Programming of ARM Microcontrollers
  • ARM and Thumb Inter-working
  • Peripherals of EDB9302/AT91RM9200 ARM9 Microcontrollers
  • Mini Project

Device Platform: Arm Developer Suite 1.2, Multi ICE and ARM9TDMI boards

(EDB9302 & EDB9315 from Cirrus Logic, AT91RM9200 from ATMEL)

Programming Language: Assembly Language & ‘C’

Learning Outcomes

After successful completion of the module students should be able to:

  • Understand the H/w and S/w issues related to the design of a Microcontroller

based system catering to the needs of medium and higher end applications.

  • Understand the architecture and programming of the 32-bit ARM Processors

Reading List

  1. ARM System Developer’s Guide – Designing and Optimizing System Software

by: Andrew N Sloss, Dominic Symes, Chris Wright; 2004, Elseiver

  1. ARM Architecture Reference Manual by: David Seal, 2001 Addison Wesley,


  1. ARM System – On – Chip Architecture, Furber, Steve

System Design using Digital Signal Processors

Module Duration: 15 days


Digital signal processing techniques are so powerful that sometimes it is extremely

difficult for analogue signal processing to achieve the same or closer performance. This

module introduces the digital signal processing fundamentals like convolution, DFT,

FFT, Spectrum analysis etc. ‘C’ language will be used as the language for code

development. The fundamentals of ‘C’ programming will also be covered in this module.

MATLAB is a powerful tool for design and analysis of digital signal processing

algorithms. The capabilities of MATLAB tool will also be explored during the course.

The participants of this module will learn the architecture and programming of

TMS320C5510 DSPs and Analog Devices SHARC DSPs. The hardware and complete

implementation of selectable algorithms are dealt in detail with C5510 DSP.

Programming with peripherals of this DSP is also covered in the module. Code Composer

Studio IDE from Texas Instruments and Visual Studio from Analog Devices shall be

used as the programming and debugging tools. A mini-project is also part of this course.

Course Description

  • Introduction to DSP Fundamentals
  • FFT, Filter Design
  • Introduction to MATLAB
  • DSP Programming using MATLAB
  • Introduction to DSP processors
  • Introduction to Code Composer Studio (CCS)
  • Architecture and Programming of ‘C5510 DSP
  • Peripherals of ‘C5510 DSP
  • Architecture of SHARC DSP
  • Introduction to Visual DSP++
  • Programming of SHARC DSP

Learning Outcomes

After successful completion of this module, students should be able to:

  • Understand the Fundamental algorithms in Digital Signal Processing.
  • Understand the MATLAB programming Language
  • Understand the use of MATLAB for DSP applications
  • Implement the Fundamental DSP algorithms using the ‘C’ programming


  • Understand the architecture and programming of the ‘C5510 DSP.
  • Understand the Fundamental algorithms in Digital Signal Processing and their

implementation on the above DSPs.

  • Will get familiarized with the Code Composer studio and Visual DSP

Development Environment for DSP programming and debugging.

Reading List

  • Digital Signal Processing Design- Andrew Bateman, Warren Yates
  • Introduction to Digital Signal Processing – John G Proakis, Dimitris G Manolakis
  • Introduction to Digital Signal Processing – Johnny R Johnson
  • Digital Signal Processing: A System Design Approach – David J Defatta
  • Digital Signal Processing Laboratory Using MATLAB – Sanjit K. Mitra
  • Digital Signal Processing – P Ramesh Babu
  • Real – Time Digital Signal Processing: Implementations, Applications, and

Experiments with the TMS320C55X, Kou, Sen M, Lee, Bob H

Embedded Linux

Module Duration: 10 days


The objective of the course is to provide understanding of the techniques essential to the

design and implementation of embedded systems with embedded operating systems.

Course Description

  • Introduction

Linux as Embedded Operating System

Comparison of Embedded OS

Embedded OS Tools and development

Discussion on Embedded OS Applications and products

  • System architecture of a Basic OS

Internals of Linux OS

System Calls, Linux Compiler options, Make

Process, Multithreading and Synchronization

Serial port and Network programming with embedded Linux

Kernel module programming and Device drivers

  • Inter Process Communication

Pipe and FIFOs, Shared memory, Sockets

  • Getting Linux on a device

Linux boot sequence, Building Kernel, Building Boot image

  • Linux porting on ARM

Building root file system, Kernel Compilation for ARM, Porting of Embedded

Linux to ATMEL ARM9 kit.

  • Practical Sessions

Embedded Linux Applications

Learning Outcomes

After successful completion of the module, the students shall be able to:

  • Understand the Embedded operating systems that is needed to run embedded systems
  • Understand Embedded Linux and its internals
  • Build embedded systems using Embedded Linux operating systems

Reading List

  1. GNU/LINUX Application Programming, Jones, M Tims
  2. Embedded Linux: Hardware, Software, and Interfacing, Hollabaugh, Craig,
  3. Building Embedded Linux Systems: Yaghmour, Karim
  4. Embedded Software Primer: Simon, David E.
  5. Linux Kernel Internals: Beck, Michael At Al
  6. UNIX Network Programming : Steven, Richard
  7. Linux: The Complete Reference: Petersen, Richard
  8. Linux Device Drivers: Rubini, Alessandro, Corbet, Jonathan
  9. Linux Kernel Programming: Algorithms and Structures of version 2.4: Beck,

Michael At Al

  1. Linux Kernel Development: Love, Robert

Embedded RTOS (RTLinux & VxWorks)

Module Duration: 10 days


The objectives of the course is to provide the students with an understanding of the

aspects of the Real-time systems and Real-time Operating Systems and to provide an

understanding of the techniques essential to the design and implementation of real-time

embedded systems.

Course Description

  • Introduction

Embedded Software – Real-time Vs Non Real-time

Introduction to Real-time systems and Embedded Real-time Systems

Discussion of popular RTOS like RTLinux and VxWorks

Comparison of Embedded RTOSs (RTLinux and VxWorks)

Design Goals for Real-time software

Discussion on Embedded Real-time applications

Considerations for real-time programming

  • System architecture of RTLinux

Introduction RTLinux

Thread Creation and Management

Thread Synchronization Mechanisms

IPC – RTFIFO, Shared Memory

Interrupt Handling

  • System architecture of VxWorks

Introduction to VxWorks

Task Creation and management

Inter Task Communication Mechanisms

Semaphores, Message Queues, Pipes

Interrupts, Tornado tools

  • Practical Sessions

Application Development under RTLinux and VxWorks

Learning Outcomes

After successful completion of the module, the students shall be able to:

  • Understand the Embedded Real Time software that is needed to run embedded


  • Understand the RTLinux RTOS and their commands
  • Understand the VxWorks RTOS and realtime application programming with it.
  • Build real-time embedded systems using RTLinux and VxWorks real-time operating


Reading List

  1. Embedded Systems Architecture Programming and Design: Raj Kamal, Tata

McGraw Hill

  1. Embedded/Real Time Systems Concepts, Design and Programming Black Book,

Prasad, KVK

  1. Software Design for Real-Time Systems: Cooling, J E Proceedings of 17the

IEEE Real-Time Systems Symposium December 4-6, 1996 Washington, DC:

IEEE Computer Society

  1. Real-time Systems – Jane Liu, PH 2000
  2. Real-Time Systems Design and Analysis : An Engineer’s Handbook: Laplante,

Phillip A

  1. Structured Development for Real – Time Systems V1 : Introduction and Tools:

Ward, Paul T & Mellor, Stephen J

  1. Structured Development for Real – Time Systems V2 : Essential Modeling

Techniques: Ward, Paul T & Mellor, Stephen J

  1. Structured Development for Real – Time Systems V3 : Implementation Modeling

Techniques: Ward, Paul T & Mellor, Stephen J

  1. Monitoring and Debugging of Distributed Real-Time Systems: TSAI, Jeffrey J P

& Yang, J H

  1. Embedded Software Primer: Simon, David E.

System Design Using FPGAs

Module Duration

  • 10 days


FPGAs are the present day tool for implementing many embedded applications. A basic

understanding of digital electronics is very useful for the proper understanding of this

topic. Basics of communication is also covered for further applications.

The course is structured to include the learning of VHDL syntax and the architecture of

most prominent vendor in the FPGA market, Xilinx FPGAs. Hands own experiments and

a mini-project are included in the module.

Course Description

System Design Using FPGAs

  • Review of Basic Electronics (Digital Electronics + Communication)
  • Introduction to VHDL
  • VHDL Concepts, Types & Operators
  • Sequential & Concurrent Statements
  • VHDL Simulation
  • XILINX FPGA Architecture
  • Synthesis & Implementation on FPGAs
  • Mini Project using FPGAs

Learning Outcomes

On completion, the participants will learn about:

  • Writing the VHDL Programs
  • Architecture of Xilinx FPGAs
  • Programming of Xilinx FPGAs using VHDL

Reading List:

  1. VHDL Analysis and Modeling of Digital Systems – Navabi, Zainalabedin, MGH,

New York

  1. VHDL Primer – Bhasker, J, PHI Learning, New Delhi
  2. Guide to VHDL Syntax – Bhasker, J, PH, New Jersey
  3. VHDL – Perry, Douglas L, MGH, New York
  4. Digital Systems Design with VHDL and Synthesis : An Integrated Approach –

Chang, K C, IEEE Computer Society Press, California

  1. Designer’s guide to VHDL – Ashenden, Peter J, Harcourt India, New Delhi
  2. Introductory VHDL: From Simulation to Synthesis – Yalamanchili, Sudhakar,

Pearson Education (Singapore) PTE. Ltd., Delhi

  1. VHDL for Digital Design – Vahid, Frank,Lysecky, Roman, John Wiley & Sons,

Inc., New Jersey

  1. VHDL for Engineers, Short, Kenneth L, Dorling Kindersley (India), Delhi
  2. Design Warrior’s Guide To FPGAs: Devices, Tools And Flows – Maxfield, Clive

Max – Elsevier, New Delhi

  1. FPGA Based System Design – Wolf, Wayne, Pearson Education (Singapore)

PTE. Ltd., Delhi

  1. Programmable Logic Databook – Xilinx Inc.

Embedded Product Design

Module Duration

  • 10 days


The objective of this module is to help fresh graduates and practicing engineers to

enhance their knowledge and skills of embedded product design covering various

dimensions of product development, Quality principles and tools, Project Management

etc and discussion with suitable case study.

Course Description

  • Quality principles and tools
  • Product Development Process

o System level design using hardware and software

o Hardware and software integration issues and testing

o Hardware and software coverification

o Component cost and costing in product design

o Case studies of real life designs

  • Industrial Design
  • Project Management (PERT/CPM) MS Project
  • Interconnection design & EDA tools
  • Thermal Design
  • Documentation
  • Team work and communication
  • Embedded Product design Syndicate
  • Case study of Microcontroller based Design

o Project Design phase

o Hardware design and construction

o Software design and development

o Integration and debugging of hardware and software

o Final testing

o ORCAD Schematic and PCB Layout

  • Mini Project

Learning Outcomes

After successful completion of the module, the students shall be able to understand and

practice quality principles and tools in product development process, right from

identifying customer requirements and translating them into product specifications and

realization of the product specifications through electronics, mechanical and industrial

design, product engineering and meeting the cost and development time constraints

through better project management.

Students shall Design and Develop a standalone Data Acquisition System using

Microcontroller. Conceptual design, PCB Design, PCB Assembly, Testing, Integration

etc. are covered in the mini project


Reading List

  1. Product Design & Development – Karl T Ulrich & Steven D. Eppinger; Mc Graw Hill
  2. Total quality management Besterfield, Dale H
  3. Relevant Data sheets and application notes

Project Work

Module Duration

  • 6 Weeks

Course Description

The students can select hardware, software or system level projects. The project can be

implemented using Microcontroller or DSP or FPGA or RTOS tools which students

have studied and used during the course. A total product or project can be selected.