Embedded Systems Training

Embedded Real Time OS with Micro-Controller

Part 1

Part – 1:  Programming Languages

Module  1     Introduction to Embedded Systems

What are and Why Embedded Systems?, Types of Embedded System, Classifications of Embedded Systems, Characteristics of an Embedded System, Applications of an Embedded Systems, Overview of Embedded Industry, Comparing Layers of GPC & Embedded System

Module 2      C Programming

What are Micro Processors?, What are Micro Controllers?, Difference between Micro controller  and Microprocessor, System Design using Microcontroller and Microprocessor, Difference between Von Newman and Harvard Architectures, Difference between CISC & RISC Architectures, Overview of  8 bit,16bit,32bit & 64bit microcontrollers

Module  3     Advanced C Programming

Function, Storage Classes, Scope and Lifetime of a variable, Volatile , Recursive Functions, Stack Frame Analysis, Drawbacks of Functions, GDB, Basic Debugging Commands , Debugging a sample C Program, Arrays, Arrays and Functions, Pointer, Pointer Arithmetic, Pointers and Arrays, Pointers and Functions, String Handling Function like strcpy, strcat, strcmp, strlen, Pointers and Strings, Function Pointers, Variable Augmented Function,

Module  4      Data Structure Programming

Dynamic Memory Allocation, Memory Leaks and Dangling Pointers, Structure, Structures and Array, Structures and Functions, Structure Padding and Alignment, Union, Bit fields, Using Typedefs, Enumerations, Macros

Module  5     Embedded C  Programming

Introduction to Data Structures, Types of Arrays, Coding Standard, Linked Lists, Singly Linked List, Doubly Linked Lists, Stacks and Queues.

 

Part 2

Part – 2:  Micro-Controllers

Module  6     Basics of Micro controllers

System Programming Vs Application Programming, Why C for embedded programming, Review of C language with embedded perspective, Bitwise operators programming, Bit field programming, Number System conversion program, Pointer Arithmatic programming, Register manipulation, Mixing  Assembly and C.

Module  7     8051 Microcontroller MCS-51  Programming

8051 Architecture, AT89C51 specifications, Register architecture, Special function registers, KEIL IDE, ProgISP, Flash Magic,  LED programs, switch, 7 segment, LCD and scrolling LCD , Keypad , DC and Steeper motor , UART Programming, Timer and Counters, Interrupt programming, Relay, PWM, MOSFET, Opt couplers, Parallel ADC ADC0804, ADC0809 , Serial ADC, I2C RTC DS1307.

Module  8     Sensor Programming with 8051 Microcontroller

Temperature Sensor LM35, LDR Light detection Sensor, Ultrasonic distance sensor, PIR Motion detection sensor, humidity sensor, Level Sensor, MEMS Sensor, Gas Sensor,

Module  9     ARM 7  Microcontroller LPC2148 Programming

ARM Architecture, LPC2148 specifications, Register architecture, Special function registers, KEIL IDE, Flash Magic,GPIO Programming,  LED programs, switch, 7 segment, LCD and scrolling LCD , Keypad , DC and Steeper motor , UART Programming, Timer and Counters, Interrupt programming, Relay, PWM, MOSFET, Opt couplers, Parallel ADC ADC0804, ADC0809 , Serial ADC, Temperature Sensor LM35, LDR Sensor, Ultrasonic sensor, I2C RTC DS1307, SPI, USB.

Module 10   ARM 9 Board Bring up & Porting Embedded Linux

Understanding ARM  development Board, Porting of Bootloader, Porting of Kernel , Porting of File System on Development Boards, Accessing Development board using UART cable, SSH and Ethernet cable.

Module 11   ARM 9 Architecture

ARM 9 Architecture, ARM 9 Instruction Set ( ISA-v5TEJ ), DNW tool, USB Push, Arm-linux-gcc, setting Qt library, Setting Opencv library ,Understanding GPIO pins and ADC pins.GUI Programming using QT, Image and video processing using Opencv.

Module 12   Peripherals Programming on ARM 9 Board

Programming I/O Ports, Interfacing and Programming LEDs, Interfacing and Programming LCD, Interfacing and Programming KEYPAD, Interfacing and Programming ADC, Interfacing and Programming STEPPER  MOTOR, Interfacing and Programming DC  MOTOR.

Module 13   QT framework GUI Application Development on ARM 9

Qt creator installation, Qt creator configuration, Setting cross compiler environment in Qt, qmake role in programming, writing GUI application programming for RFID reader, GPS module.

Module 14   ARM Cortex Microcontroller LPC1768  Programming

Cortex Architecture, LPC1768 specifications, Register architecture, Special function registers, KEIL IDE, Flash Magic,GPIO Programming,  LED programs, switch, 7 segment, LCD and scrolling LCD , Keypad , DC and Steeper motor , UART Programming, Timer and Counters, Interrupt programming, Relay, PWM, MOSFET, Opt couplers, Parallel ADC ADC0804, ADC0809 , Serial ADC, Temperature Sensor LM35, LDR Sensor, Ultrasonic sensor, I2C RTC DS1307, SPI, USB,CAN.

Part 3

Part – 3: Real –Time OS

Module 15   RTOS Concepts

Introduction to Real Time Operating System, Classifications of RTOs, Misconception of RTOS, Features of RTOS, RTOS Architecture, Kernel, Task Management, Task Synchronization & Inter task Communication, Memory Management, Timer Management, Interrupt & Event handling, Device i/o Management, Selection of RTOS, Technical Consideration, Commercial Considerations.

Module 16   FreeRTOs

Board support package of FreeRTOs for LPC2148, Compiling FreeRTOS projects in Keil IDE, Understanding the functions related to FreeRTOs,  Led programming with Free RTOS, Serial port programming with FreeRTOs, Priority and preemptive programming with Free RTOs, Message queue, semaphore and timedelay programming with Free RTOs.

Module 17    UCOS-II RTOs

Understanding Board support packages of ucos RTOs for LPC2148 board, Compiling and Configuring ucos environment in keil IDE, Understanding the functions defined in ucos RTOs for priority, task handling and preemptive programming, led and UART programming with ucos RTOS. Message queue, semaphore and timedelay programming with ucos RTOs.

Module 18  RT Linux

Installation of RT Patches on Linux Kernel, Configuration and compilation of RTLinux Kernel, Booting of RTKernel.

Led programming in RTLinux, Understanding the API of RTLinux.

Part 4

Part – 4:  Linux System Programming

Module 19   Linux Basic and Utilities

Unix  / Linux / Windows History, Free Software Foundation, GNU Project, Booting Process of OS ,Advantages and disadvantages of Linux, Features of Linux, Linux root File System, Virtual File system, Linux Kernel version,  Shell and Shell Commands , system calls, file handling in Linux, Environmental variables, inodes and file permissions, error handling in linux, data types in linux.

Module 20   Programming Langauge Libraries in Linux

Shell Programming, Glibc, gcc compiler, gdb debugger, Makefile Utility, Compilation steps, Memory allocation in programming, C++ Library and manpages, Java Library support in Linux, Python and perl Langaguge programming in Linux.

Module 21   Linux Kernel Programming

 Linux Kernel Architecture, User & System Mode, Process Management, pid, fork , vfork, exec, orphan process, zombie process, wait, exit, POSIX standards, pthreads, pthread attributes.

Module 22  POSIX Thread Programming

POSIX standards, POSIX Threads, pthreads,  pthread attributes, POSIX Message Queues, POSIX Semaphores, POSIX Shared memory , Asynchronous input and output, Threads in real-time, Multithread Vs Multiprocessing.

Module 23   Linux Synchronization Programming

Need of Synchronization, Deadlock problem ,race condition, critical section problem, Atomic operators, Deadlock, conditional variables, Mutex, Semaphores, System v API, POSIX API.

Module 24   Linux IPC (Inter Process Communication)  Programming

Need of IPCs, pipe, FIFO, Shared Memory, message queue, Signals

Module 25   Project Development with 8051 /ARM7

Module 26   Project Development with ARM9 / ARM Cortex

Enquiry Form