Placement-oriented Embedded Systems Design Course - ARM, Embedded C, Embedded Networking and RTOS
Total duration - 150 hours of lectures and practicals/hands-on. This will be completed in approximately 3 months. Several mini-project will be undertaken by the trainee based on the learnings of this course. The trainee would be encouraged to design the projects before implementing.

This training will make you eligible for placement in Embedded System domain companies as Software/Firmware Developer. Placement opportunities will be provided for those who complete this course successfully.
Course Instructor - Rupam Das. Ex-IITian and having total professional experience of over 16 years in Software Development and Training. For more details on trainer, visit http://www.rupamdas.com and http://www.linkedin.com/in/rupamdas


Email: info@nxnvision.com, info@rupamdas.com

Mobile: +91 98407 84107, Landline: + 91-44-4204-5217

This training program has been designed to provide a thorough understanding of Embedded Systems basics and principles using 8051 based 8-bit microcontrollers and then teach advanced Embedded Systems using ARM Microcontrollers. This course also covers Embedded Networking protocols (like SPI, CAN, I2C and USB) and RTOS. It tackles all the basic components of Embedded Systems in isolation and also creates an understanding on how to integrate these components, to design, program and develop a complete system. The knowledge imparted in this training will help you in getting a job in Embedded Systems domain.

This training contains coverage of technical knowledge that would provide a definite edge in core sector job interviews. The level of C programming taught in this course is at par with what fresh engineers work on, after joining their first job.

All the modules have ample hands-on and lab sessions, with more tutorials provided for further study. Each topic in this course will be matched with real-time experiments on the hardware kits. The course will end with a project that would be conceptualized, designed, implemented and tested by the trainees, with full guidance and support from the faculty.
Target audience for the program

This program is targeted at BE/ME/MCA freshers who have finished in 2015 or earlier and interested in making a career in Embedded Systems domain, a very in-demand and well paying domain.
Prerequisites/Knowledge required to attend this program

- Exposure to programming, in any language
- C programming - basic level
- Basics of Digital Electronics
- Excellent analytical skils
Areas to be covered in this program

Stage I
- C Foundations - Refresher
- Introduction to Embedded Systems
- 8051 Architecture and C51 Assembly Language Programming
- NXP P89V51RD2 microcontroller and its advanced features w.r.t. normal 8051 microcontroller
- Embedded C for 8051
- Design of Embedded Systems using 8051

Stage 2
- C Programming - Advance level
- ARM Cortex M3 - Architecture and Assembly Language Introduction
- NXP LPC1768 microcontroller based on ARM Cortex M3
- Embedded C for NXP LPC1768  
- Design of Embedded Systems using NXP LPC1768 
- Embedded Communication and Networking protocols - I2C, SPI, CAN, USB
- Operating Systems & Real-Time Operating Systems - Linux, FreeRTOS
Stage 1 - Content
C Foundations - Refresher
Foundations of C programming - Header files, Libraries, Compilers
Types, declarations and expressions
Control Flow, Functions and program structure
Arrays, pointers, structures and unions
Input and output handling
Introduction to Embedded Systems
What is Embedded System?
Standard component of Embedded Systems - Processor, Memory, I/O, Peripherals, Software, Algorithms
Processor types - Microcontrollers, Microprocessors, DSP, FPGA
Peripherals - Parallel and Serial Ports, UART, Timers, Real time clocks, I2C bus, DMA controllers
Analogue Interfaces - A-D and D-A conversion, CODECs
Interrupts and Interrupt handling
Real-Time Operating Systems (RTOS) - Introduction and basics
8051 Architecture and C51 Assembly Language Programming
8051 Architecture - Oscillator, Clock, Internal memory and RAM, SFRs, Internal ROM, I/O pins and ports
External memory, Counters and Timers, Serial Data I/O, Interrupts
Assembly language instructions
Data operations, logical operations, arithemetic operations, Program control
Configuration and programming of 8051 Ports, Timers and Interrupts
Interfacing 8051 with LEDs and 7-Segment Display and programming
Interfacing with LCD and programming
Serial Data Communication programming
Embedded C
Embedded Software development using C
Porting 8051 Assembly code to C
Cross compilation, Downloading, Testing, Debugging
Design of Embedded Systems
Problem definition, requirements and specifications
Software planning - Hardware design and software design
Design of sensor-based robots, PWM control of motors, Digital Thermometer
Project ideas and discussion
Stage 2 - Content
Advanced C (GCC C Compiler on Windows)
Pointers refresher
Dynamic memory management
Pointers to structures and unions
Design of data structures
Function pointers and arrays
Look-up tables, Hash tables
Stack, queue, list
ARM Cortex M3/M4 microcontroller (Architecture, Assembly and Embedded C)
ARM Architecture - 16-bit (Thumb mode) and 32-bit (ARM mode), core registers
ARM Assembly Instructions
Keil MDK - IDE, features, 
NXP LPC1768   - System initialization, booting, internal peripherals
Developing device drivers for NXP LPC1768 peripherals and also external peripherals
Writing Embedded applications for NXP LPC1768  
JTAG and debugging applications using JTAG
Embedded Communication & Networking Protocols/Standards
Requirement of communication and communication protocols
Serial and parallel communication
Introduction to RS-232, SPI, I2C and USB protocols, including packet/frame formats & message protocols
Design and Implementation of I2C and SPI driver and applications
Design and Implementation of USB Device. Ex. Mouse, Keyboard, Mass storage
Operating Systems and Real-Time Operating Systems
Operating Systems - Basics and concepts
Linux Systems Programming - An introduction
Introduction to Real-Time Operating Systems
FreeRTOS - Basics, features, writing Real-Time applications using FreeRTOS
Porting FreeRTOS to  NXP LPC1768