Applications Open now for May 2025 Batch | Applications Close: May 20, 2025 | Exam: July 13, 2025

Applications Open now for May 2025 Batch | Applications Close: May 20, 2025 | Exam: July 13, 2025

Foundation Level

Embedded C Programming

by Prof. Nitin Chandrachoodan

Course ID: CS2101

Course Credits: 4

Course Type: Foundation

Pre-requisites: CS1101 -  Introduction to C Programming

What you’ll learn

This course addresses the use of microcontrollers (uCs) to implement embedded systems. At the end of this course, a student should be able to: identify and distinguish types of uCs, their uses, and make design selection decisions
write, compile, execute, and debug programs on generic uCs
understand interfacing of peripherals and construction of basic embedded systems involving uCs and external peripheral circuits

Course structure & Assessments

6 credit course, weekly online assignments, 2 in-person invigilated quizzes, 1 in-person invigilated end term exam. For details of standard course structure and assessments, visit Academics page.

WEEK 1 Types of microcontrollers; programmability, memory, compute capacity, functionality, interfacing
WEEK 2 Memory maps; peripheral interfacing; register mapping
WEEK 3 Typical data structures and programming styles for embedded systems
WEEK 4 General purpose IO, low speed interfaces
WEEK 5 Bus interfaces: UART, SPI, I2C; introduction Modbus, CANbus
WEEK 6 Human-Computer Interaction; keyboard, mouse, touchscreen
WEEK 7 High performance IO; buffering, DMA; USB, ethernet, networking
WEEK 8 Real-time operating systems; latency constraints; scheduling; FreeRTOS, Linux concepts
WEEK 9 Video interfaces
WEEK 10 System-level design, integration; SoC concepts
+ Show all weeks

Prescribed Books

The following are the suggested books for the course:

Class Notes

The C Programming Language, Kernighan and Ritchie

Curated online reference material

About the Instructors

Prof. Nitin Chandrachoodan
Professor, Department of Electrical Engineering, IIT Madras

Nitin Chandrachoodan received his BTech (electronics and communication engineering) from IIT Madras in 1996, and PhD from the University of Maryland at College Park in 2002, in the area of high-level synthesis techniques for mapping DSP algorithms to architectures. He has been with the department of electrical engineering at IIT Madras since 2004, where he is currently an professor.

...  more

His research interests include digital systems design and design automation tools and techniques, as well as design of embedded systems with a special focus on assistive technologies. He has taught graduate courses on digital integrated circuit design and on mapping algorithms to architectures, and a UG course on data structures and algorithms, as well as a laboratory course on digital design using FPGAs. He is an associate editor of the Springer Journal of Signal Processing Systems.

  less

Other courses by the same instructor: EE2103 - Digital System Design , EE3102 - Control Engineering , - Humanities Elective , - Humanities Elective , - Humanities Elective , - Humanities Elective , - Humanities Elective , - Humanities Elective and - Humanities Elective