Advanced Embedded Training with ARM Cortex M3

Advanced Embedded System (32-bit ARM Cortex) with RTOS & Embedded Communication and Networking
Total duration - 100 hours of lectures and practicals/hands-on. After this a mini-project will be undertaken by the trainee based on the learnings of this course. The trainee would be encouraged to design the project before implementing.

This training will turn you into an advanced Embedded Software/Firmware developer on ARM Cortex based hardware. The RTOS knowledge will give you an extra edge required in the Embedded job market

Hardware platform - NXP LPC1768. For more information visit -

This training program has been designed to provide thorough training on Advanced C programming, ARM Cortex based microcontrollers and Real-Time, Embedded Networking & Communication protocols and Operating Systems. This training focuses on building software/firmware development skills of higher end Embedded Systems and Products.

As the focus is only on 32-bit microcontrollers, this training will give you the extra edge over most other job seekers. The reason being that most organizations are looking for 32-bit programming skills in their future employees. Having knowledge on only 8-bit platform is no longer sufficient to ensure a job in most companies.

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 course is designed for those who already have good knowledge of C/Embedded C but limited to 8-bit or 16-bit platforms and want to learn ARM microcontroller, Embedded Networking  and Real-Time operating systems. Only for those who are serious about a career in Embedded Systems domain.
Prerequisites/Knowledge required to attend this program

- C programming - Good knowledge of C is must
- Basics of Embedded Systems - Practical knowledge of any 8- or 16-bit MCU/MPU
- Operating Systems basics
Areas to be covered in this program

- 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, Ethernet, USB
- Operating Systems & Real-Time Operating Systems - Linux, FreeRTOS
Advanced C (GCC on Linux and Keil C Compiler on Windows)
Dynamic memory management
Structures and Unions, 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, Ethernet and USB protocols, including packet/frame formats and 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
Introduction to Real-Time Operating Systems
FreeRTOS - Basics, features, writing Real-Time applications using FreeRTOS
Porting FreeRTOS to  NXP LPC1768