Sunteți pe pagina 1din 20

Embedded Software Engineer

(Course Code: LTr201)


An Embedded System is an integration of software and hardware, either
programmable or fixed in capability, specifically designed for a particular function or
particular kind of application device.
The most possible hosts of an Embedded System are

Industrial machines

Automobiles

Medical Equipment

Cameras

Household Appliances

Airplanes

Vending Machines and Toys (as well as the more obvious cellular phone and
Smart Phones)

Embedded Systems programming is a specialized occupation. Programmable


Embedded Systems are provided with programming interfaces.
Current Trends in India
Embedded system development in India started around early 2000. The market
reached approximately $15 billion by 20015 and now has the potential to triple in size by
2025.
According to recently released NASSCOM report, the total addressable
embedded system R&D global opportunity is expected to reach approx. $89 billion by
2016 where India alone could contribute approx. $15 billion in size.
Opportunities
Two core parts of any embedded systems are its hardware and firmware or
software inside the core processing unit. This means software or firmware is now a key
differentiator; since any new feature or specification can be easily tackled or added
using software changes. Clearly, now the software has to play critical role of

differentiation, innovation and future enhancements in embedded systems. The ratio of


contribution by firmware and hardware, which was 30-70 (30% firmware & 70%
hardware) earlier has now become almost 50-50 and is expected to grow further as
hardware reaches its saturation in due course.
What Should You Do?
While there are so many alluring opportunities in this field, question is how can
we benefit from this?
If you are an individual from engineering background there is clear cut
opportunity for becoming an embedded systems engineer; whether it is in the field of
firmware, system integration, hardware designs or anything such. However, it must be
understood that on this fast track field; industry is expecting work-ready candidates. This
means, candidates should have prior knowledge of this field or should have a very steep
learning curve to cope up with current trends.
With this fact in mind, we, the Neo Green Labs has designed the Embedded
Software Engineer course with a systematic syllabus and right contents in order to
groom our aspiring trainees to grab an excellent opportunity in Embedded System.

Course Rationale
Our Training methodology allows the Trainees to dive in to embedded system
with basic knowledge and become a productive Industry ready candidate by the end of
the training. More than 80% of the course is hands on and hence the practical exposures
for the candidates are high enough to develop the key skills required for the industry.
Throughout the course, the Trainees has to complete many assignments, and do projects.
Moreover, at the end of the training, the trainees would get an opportunity to work with
our Embedded Product development team who are actually developing products and
solutions for other companies. Besides the Technical training, we provide regular soft
skill development training for our trainees. Weekly assessments and one on one
counselling would be understand strength and weakness of the trainees.
Technical Training Flow
Every Embedded software engineers must have basic knowledge in circuits and
hardware designs. Hence at the beginning of the course, we provide training in circuits,
simulations ad PCB Designing.
Embedded C is essential for anyone to begin a career in embedded firmware. So,
we train with the fundamentals of embedded C with hands-on assignments. Later, the
training in 8-bit microcontroller begins. We teach all the features of Microchip
PIC16f886/7 including sleep modes in order to get strong basics in microcontrollers and
programming. There would be hands on assignments after each topics and mini project
at the end of PIC training. Later, the trainees can learn interfacing of various Sensors and
Wireless Technologies. There would be a project after this and the candidate has to do
this project under the guidance of the trainers.
Later, the trainees would learn ARM7, 32- bit processor. And do various
assignments and Projects.
Real Tim Operating System (RTOS) is an essential knowledge required for the
Embedded Software Engineer. So, the trainees would learn the basic concepts of RTOS in
deep and after that, they would learn a very famous RTOS called FreeRTOS. We teach
those

freeRTOS

and

developing

applications

using

FreeRTOS

with

various

microcontrollers / processors. We use PIC24J series of microcontrollers for the testing


purpose. Moreover, the trainees would get the understanding of Porting RTOS in to
various micro controllers.
Linux has great importance in todays Embedded System. With this in mind, we
train the students to work with Linux, understanding the internals of Linux and
developing applications with it. The Trainees has to work with ARM11 based System on

Board, Raspberry Pi to learn the Embedded Linux. During this period the trainees learn
the Python programming Language as well.
During the Last two months, the trainees would get and On Job Training.

Duration: 6 Months/ 600 Hrs


Pre-Requisites
Basic Understanding in C
Basic Knowledge in Electronics
Eagerness to learn new Technologies.

Who can attend?


Person with B.E/B.Tech/M.Tech/Diploma can join this training
Anyone who have interest in this field and have pre-requisite knowledge

Recommendations
It is strongly recommended to bring your own LAPTOP during the training so that
you can easily practice the exercises at home.

Certification
Those who successfully complete 4 month training will get Training Certificate.
Those who successfully complete 4 month training and 2 month on-job Training
will get six monthexperience certificate.

Placement Assistance
We provide 100% Placement assistance to the trainees. We have good relations
with a number of embedded companies.

Course Fee: INR 40,000/-

Detailed Training Plan

Week

Details
MONTH-1
Concepts of Embedded System

Embedded System Basics

Need for Embedded System

Applications

Current Industrial Scenario

Circuit Simulation & Analysis

EDA Tools

Circuit Simulation Tools

Schematics
Windows
Tools Bar
Component Placement
Component Wiring
Power &Ground
Short cuts
Annotation
Saving

Week 1

Virtual System Modelling


Graph Based Simulation
Interactive simulation

PCB Designing

Basic Concepts

Schematic Drawing
Capture CIS
Basics-Libraries-Component placingConnecting with wires
Power & Ground
Annotation
Design Rule Check
Bill of materials
Net Alias
Net list Creation

Layout Design
Layout Basics
Foot print Selection
Layer Selection
System Settings
Global Spacing
Net settings
Component Placement & Considerations
Auto Route& Unroute
Manual Routing
Obstacle Tool
Dimension Tool
Drill Chart
Completion of PCB

Jumpers
Layer Adjustment
Routing jumpers
Editing Vias & Pads

Assignments
Soft Skill Development Session 1
Resume Building
One on One Performance Analysis & Test

PCB Fabrication

PCB Fabrication Process

Materials Required

Post Processor Settings

Printing the Design to Copper Clad


Printing the design into paper
Copying design to copper clad
Permanent Marker Method
Etching

Ferric Chloride Solution


Cleaning
Polishing
Drill Holes
Drilling Process-Using Hand Drill

Soldering & Testing

Component familiarisation

Good Soldering Practices


Final Touch

Week 2

De-soldering

Mini Project
Embedded C

Basic
Header files
Macros
Constants
Main Function

Data Types
Char
Int
Long
Double
Memory Considerations of Processor / Controller

Loops
Importance of loops in embedded System
For loop
While loop
Do While loop
Break & Continue statements

Conditional Constructs
Simple if
if else
Nested if
Switch case

Functions
Declaration
Arguments / Parameters
Definition
Function call
Return type functions
Call by value
Call by reference

Arrays
Basics
One Dimensional Array
Array Manipulations
Two Dimensional Array

Pointers
Basics
Manipulations using Pointers
Function with pointer
Array with pointer

Structure
Basics
Structure using array
Pointers

Classes
Basics
Member Variables and Functions
Access modifiers

Linked list
Single linked list

Type Casting

Assignments
Soft Skill Development Session 2
Group Discussion Session 1
One on One Performance Analysis & Test

8 Bit Microcontrollers (Microchip PIC 16F886)

Basics
Microprocessor & Controller
Need of Microcontroller / Processor
Types
Vendors

Microchip PIC16 Series


PIC Family
Architecture Mid-Range
Pin-out
Memory Organization
Special features

Familiarizing MPLAB & Hitech C


Windows
Creating a new project
Save Close and Open projects
Concepts of Assembler & Compiler

I/O Port Programming


Understanding I/O PORT
Registers and configurations
Initialization

Week 3

Writing Code and Building it


Simulations

Burning Program hex file to Microcontroller (Programmer


Pickit3 Programmer
Testing in Kit

Interrupt Programming
Concept of Interrupts
Registers and configurations
External Interrupts
External Interrupt Pin
Interrupt Service Routine

LCD Interfacing
Basics
LCD Pin out
Function Set & Modes
LCD Command set familiarisation
LCD header files familiarization

Keypad Interfacing

Keypad concept familiarisation


Keypad scanning

Interfacing DC Motors
DC Motor Working& familiarisation
Motor Drivers
DC Motor Speed Control

Universal Synchronous Asynchronous Receiver Transmitter


Serial Communication Basics
Pins & Register configurations
Familiarizing UART header files

Assignments
Soft Skill Development Session
Group Discussion Session 2
One on One Performance Analysis & Test
Microcontrollers (PIC 16F886cont...)

Analog to Digital Converter


ADC Basics
Overview of ADC channels
ADC Register configurations
Familiarizing ADC header file

Timer/Counter programming in PIC microcontroller


Timer Basics
Timer Register configurations
Timer 0
Timer 1
Timer 2

CCP module in PIC microcontroller


CCP Basics
Overview of different modules in CCP
CCP Register configurations

Week 4

Capture Mode
Compare Mode
PWM

Watch dog timer in PIC


Watch dog Timer Basics
Overview of Registers
Configuration of Registers

Assignments
Soft Skill Development Session
Group Discussion Session 3
One on One Performance Analysis & Test
MONTH-2
Microcontrollers (PIC 16F886)(cont...)

Interrupts
Peripheral Interrupts
Timer0 Interrupt
PORTB Change Interrupt

Sleep Mode
Power Down Mode
Wake Up
Watch Dog Timer Wake Up

Master Synchronous Serial Port


Basics
Registers

SPI
SPI Basics-Overview of SPI communication
SPI Register configurations
Familiarizing SPI header files

Week 1

Micro controller to Microcontroller Communication


Interfacing EEPROM & RTC

I2C
I2C
Basics
Overview of I2C communication
I2C Register configurations
Familiarizing I2C header files
Micro controller to Microcontroller Communication
Interfacing EEPROM

Assignments
Soft Skill Development Session
Personal Interview Session 1
One on One Performance Analysis & Test
Mini Project

Interfacing Sensors

Interfacing Digital Sensors

Interfacing Analog Sensors

Wireless Interfacing
Week 2

GSM

GPS

ZIGBEE

RFID

WiFi

Project
32 Bit Microcontrollers (ARM7 TDMI LPC2138)

Basics
A brief history of ARM
ARM Family
Introduction to ARM microcontrollers

ARM7 TDMI
Architectural Features
Pin-out
Memory Organization
Pipelining
Operating modes
Special features

Introduction to Kiel uVision 4


Windows
Creating a new project
Save Close and Open projects
Concepts of Assembler & Compiler

I/O Port Programming


Understanding I/O PORT
Registers and configurations
Initialization
Writing Code and Building it
Simulations

Interrupt Programming
Concept of interrupts

Week 3

Registers and configurations


External interrupts

Interrupt Pins
Interrupt Service RoutineExternal interrupt
Vectored and Non-Vectored IRQ Interrupts
FIQ Interrupt

LCD Interfacing
Basics
LCD Pin out
Function Set & Modes
LCD Command set familiarisation
LCD header files familiarization

Keypad Interfacing
Keypad concept familiarisation
Keypad scanning

Interfacing DC Motors
DC Motor Working& familiarisation
Motor Drivers
DC Motor Speed Control

Universal Synchronous Asynchronous Receiver Transmitter(UART 0,UART 1)


Serial Communication Basics
Pins & Register configurations
Familiarizing UART header files

Assignments
Soft Skill Development Session
Mock Interviews
One on One Performance Analysis & Test
Microcontrollers (LPC2138cont...)

Analog to Digital Converter (ADC0 & ADC1 Channels)


ADC Basics
Overview of ADC channels
ADC Register configurations
Familiarizing ADC header file

Digital to Analog Converter


DAC Basics
Overview of DAC Operation
DAC Register configurations

Timer/Counter programming in ARM microcontroller

Timer Basics
Timer Register configurations
Timer 0
Week 4

Timer 1

Capture Module in ARM Microcontroller


Timer CaptureBasics
Timer Capture Register configurations
Timer 0 Capture
Timer 1 Capture

Timer Match Module in ARM Microcontroller


Timer Match Basics
Timer Match Register configurations
Timer 0 Match
Timer 1 Match

PWM Module
PWM Basics
Overview of two types of PWM in ARM controller
Single Edge PWM
Double Edge PWM
PWM -Pins
Register configurations

Watch dog timer in ARM


Watch dog Timer Basics
Overview of Registers
Configuration of Registers

Assignments
Soft Skill Development Session
Mock Interviews Session 2
One on One Performance Analysis & Test

MONTH-3
Microcontrollers (LPC2138 cont...)

Master Synchronous Serial Port


Basics
Registers

SPI (SPI0 & SSP)


SPI Basics-Overview of SPI communication

SPI Register configurations


Familiarizing SPI header files
Micro controller to Microcontroller Communication
Week 1

Interfacing EEPROM & RTC

I2C (I2C0 &I2C1)


I2C
Basics
Overview of I2C communication
I2C Register configurations
Familiarizing I2C header files
Micro controller to Microcontroller Communication
Interfacing EEPROM

Assignments
Soft Skill Development Session
Public Speaking Session 1
One on One Performance Analysis & Test
Project
Real Time Operating System (RTOS)

Introduction to RTOS
Evolution of RTOS
Memory Management
Processor Management
Device Management
Types of Operating System

Operating System services


Program Execution
I/O Operation
File System Manipulation
Communication
Error Detection
Resource Allocation
Features and Advantages of RTOS

Week 2

Process scheduling and Algorithm

Multitasking

Multi Programming

Spoofing

Context Switch

Scheduler

Kernel
Non-primitive Kernel and Primitive Kernel

Task Synchronization

Priority Inversion

Mutual exclusion

Interrupt latency

Semaphores

Dead locks

Assignments
Soft Skill Development Session
Public Speaking Session 2
One on One Performance Analysis & Test

Real Time Operating System (RTOS) (cont...)


RTOS Concepts
Week 3

Assignments
Soft Skill Development Session
Public Speaking Session 3
One on One Performance Analysis & Test
Real Time Operating System (RTOS) (cont...)

FreeRTOS Overview

Task Management

Queue Management

Interrupt Management

Resource Management

Memory Management

Troubleshooting FreeRTOS

Familiarising basic programming in PIC24FJ128GA010

GPIO operation in controller


Basics-familiarising concept-register configuration

Week 4

UART operation in controller


Basics-familiarising concept of UART- UART register configuration

ADC operation in controller


Basics-familiarising concept of ADC-ADC register configuration

Timer operation in controller

Basics-familiarising concept of Timer- Timer register configuration

FreeRTOS programming using Microcontroller (PIC24FJ128GA010)

Assignments
Soft Skill Development Session
Motivation
One on One Performance Analysis & Test

MONTH-4
Real Time Operating System (RTOS) (cont...)

FreeRTOS programming using Microcontroller (PIC24FJ128GA010)

Project
Week 1

Soft Skill Development Session


Mock Interviews
One on One Performance Analysis & Test
Embedded Linux

Introduction
Linux Foundation
Linux History
Linux Philosophy
Linux Community
Linux Terminology
Linux Distributions

Linux Structure and Installation


Linux file system basics
The boot process
Linux Distribution Installation

Command-line Operations
Command Line Mode Options
Basic Operations
Searching for Files
Working with Files
Installing Software & Packages
Finding Linux Documentation
Documentation Sources
The man pages

GNU info
Week 2

Help Command
Other Documentation Sources

File Operations
File systems
File system Architecture
Comparing Files and File Types
Backing Up and Compressing Data

User Environment
Accounts
Environmental Variables
Recalling Commands
Command Aliases
File Permissions

Text Editors
Basic Editor: nano
Creating text files with nano

Local Security Principles


Understanding Linux Security
Understand the Uses of root
Using the sudo Command
Working with Passwords
Bypassing User Authentication

Network Operations
Introduction to Networking
Browsers
Transferring Files

Manipulating Text
Modifying Files
sed and awk Commands
File Manipulation Utilities
grep Command
Misc Text utilities
Dealing with Large Files and Text-related Commands

Bash Shell Scripting


Features and Capabilities
Syntax
Constructs

Assignments

Soft Skill Development Session


GD Evaluation
One on One Performance Analysis & Test

Advanced Bash Shell Scripting


String Manipulation
Boolean Expressions
File Tests
Case Structure
Debugging
Tips and Tricks

Processes
Introduction to Processes and Process Attributes
Listing Processes
Process Metrics and Process Control
Starting Processes in the Future

Common Applications
Internet Applications

Week 3

Multimedia Applications
Graphics Editors
Using Secure Shell

Raspberry pi (ARM11 Based SoB)

Overview for Raspberry pi

Development environment and tools

Concepts of python

Application Development using Python & Linux

Assignments
Soft Skill Development Session
Mock Sessions
One on One Performance Analysis & Test
Project
Week 4

Soft Skill Development Session


Analysis and Evaluvation
One on One Performance Analysis & Test

MONTH 5 & 6

On-Job Training
R&D wing of Neo Green Labs has engaged in the Product Development activities for the past three
years. After the four month rigorous training, the trainees can involve in commercial product
development (on Job training). The trainees have to work in a team of Engineers to develop products
as per the client requirement. This is the best part of our training because trainees can utilize the
knowledge they gained through the training for implementing products. Moreover, no other training
centres have such a facility.

S-ar putea să vă placă și