Embedded C Programming, Basics of Program Writing & Coding Practices, Overview of C Programming language, Embedding Assembly code in C program, Debugging and Optimization of C programs, Handling portability issues in C, Hardware, Time, Space and Power aware Programming.
Introduction to Data Structures, Algorithms and Abstract Data Types, Complexity of Algorithms, Linked Lists, Stacks, Queues, Searching and Sorting Algorithms, Trees.
Object Oriented Programming: Programming Concepts, Fundamentals of Object Oriented, Programming, Java Evolution, Overview of Java Language, Constants, Variables and Data Types, Operators and Expressions, Decision making, Branching and Looping, Classes, Objects and Methods, Arrays, String and Collections, Interfaces, Packages.
Introduction to 8-bit Microcontrollers, RISC / CISC and Harvard / Princeton, Architectures, Embedded Memory, Timers / Counters, UART, SPI, PWM, WDT, Input Capture, Output Compare Modes, I2C, CAN, LED, Switches, ADC, DAC, LCD, RTC, Emerging Bus Standards (USB, PCI), Programming in Assembly and Embedded C
Introduction to 16 / 32-bit Processors, ARM Architecture and Organization, Introduction to Cortex- M3 Architecture, Programming Model and Instruction Set, Memory Model, Exception Handling, Peripheral Programming, Introduction to Multi-Core Embedded Systems, Introduction to FPGA.
Introduction to Embedded Operating Systems, Introduction to Boot loaders and Board Support Packages, Process Management and Inter Process Communication, Memory Management, I/O sub- system & Embedded File Systems, POSIX Thread Programming, POSIX Semaphores, Mutexes, Conditional Variables, Barriers, Message Queues, Debugging and Testing of Multi-Threaded Applications.
Linux Device Drivers
Embedded Linux Kernel Internals, Embedded Linux Device Drivers, Linux Kernel Modules, Char Device Drivers, I/O Memory and Ports, Handling Delays, Timings, Synchronization, Locking and Interrupts, Driver Debugging Techniques.
Introduction to Real-Time Concepts, RTOS Internals & Real Time Scheduling, Performance Metrics of RTOS, Task Specifications, Schedulability Analysis, Application Programming on RTOS, Porting of RTOS, Configuring RTOS, Building RTOS Image for Target platforms.
IoT Trends, IoT Architecture and IoT Applications, IoT Standards and Protocols (Wireless LAN: IEEE 802.11, Wireless PAN: IEEE 802.15.1 & 802.15.4, Zigbee, Bluetooth, BTLE, 6LowPAN, REST, DDS, CoAP, MQTT, PL, SSLP). Mobile Development Platforms (Android, Symbian, JavaME), Mobile Programming Languages, Design & Development of Mobile User Interfaces, Mobile Application Development & Debugging, Customizing of Android Platform, Hardware Abstraction Layers, Android Framework
Board Design Fundamentals, Circuit Design and Simulation, Schematic Entry, Component Library Development, PCB Placement and Routing, Gerber Generation, Introduction to Manufacturing Process
The students are assigned a project work for the duration of 5 weeks. Also, as a part of the curriculum, they are required to give a seminar on a topic relevant to the Embedded Systems Design. Special credit is given for the project work and seminar.