7/26/2019 Embedded Software Engineer -LTr201
1/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 by2025.
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
7/26/2019 Embedded Software Engineer -LTr201
2/20
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 ishow 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. Thismeans, 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.
7/26/2019 Embedded Software Engineer -LTr201
3/20
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
7/26/2019 Embedded Software Engineer -LTr201
4/20
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/-
7/26/2019 Embedded Software Engineer -LTr201
5/20
Detailed Training Plan
Week Details
MONTH-1
Week 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
Virtual System Modelling
Graph Based Simulation
Interactive simulation
PCB Designing
Basic Concepts
Schematic Drawing
Capture CIS
Basics-Libraries-Component placing-
Connecting with wires
Power & Ground
Annotation
Design Rule Check
Bill of materials
Net Alias
Net list Creation
7/26/2019 Embedded Software Engineer -LTr201
6/20
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
7/26/2019 Embedded Software Engineer -LTr201
7/20
Week 2
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
De-soldering
Mini Project
Embedded C
Basic
Header files
Macros
Constants
Main Function
Data Types
Char
IntLong
Double
Memory Considerations of Processor / Controller
Loops
Importance of loops in embedded System
For loop
While loop
Do While loop
Break & Continue statements
7/26/2019 Embedded Software Engineer -LTr201
8/20
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 FunctionsAccess modifiers
Linked list
Single linked list
Type Casting
Assignments
Soft Skill Development Session 2
Group Discussion Session 1
One on One Performance Analysis & Test
7/26/2019 Embedded Software Engineer -LTr201
9/20
Week 3
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 CWindows
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
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
7/26/2019 Embedded Software Engineer -LTr201
10/20
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
Week 4
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 BasicsOverview of different modules in CCP
CCP Register configurations
Capture Mode
Compare Mode
PWM
Watch dog timer in PIC
Watch dog Timer Basics
Overview of Registers
Configuration of Registers
7/26/2019 Embedded Software Engineer -LTr201
11/20
Assignments
Soft Skill Development Session
Group Discussion Session 3
One on One Performance Analysis & Test
MONTH-2
Week 1
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
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
7/26/2019 Embedded Software Engineer -LTr201
12/20
Week 2
Interfacing Sensors
Interfacing Digital Sensors
Interfacing Analog Sensors
Wireless Interfacing
GSM
GPS
ZIGBEE
RFID
WiFi
Project
Week 3
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
Registers and configurations
External interrupts
7/26/2019 Embedded Software Engineer -LTr201
13/20
Interrupt Pins
Interrupt Service Routine-
External 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
7/26/2019 Embedded Software Engineer -LTr201
14/20
Week 4
Timer Basics
Timer Register configurations
Timer 0
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
7/26/2019 Embedded Software Engineer -LTr201
15/20
Week 1
SPI Register configurations
Familiarizing SPI header files
Micro controller to Microcontroller Communication
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
Week 2
Real Time Operating System (RTOS)
Introduction to RTOS
Evolution of RTOSMemory 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
Process scheduling and Algorithm
Multitasking
Multi Programming
Spoofing
Context Switch
Scheduler
7/26/2019 Embedded Software Engineer -LTr201
16/20
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
Week 3
Real Time Operating System (RTOS) (cont...)
RTOS Concepts
Assignments
Soft Skill Development Session
Public Speaking Session 3
One on One Performance Analysis & Test
Week 4
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
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
7/26/2019 Embedded Software Engineer -LTr201
17/20
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
Week 1
Real Time Operating System (RTOS) (cont...)
FreeRTOS programming using Microcontroller (PIC24FJ128GA010)
Project
Soft Skill Development Session
Mock Interviews
One on One Performance Analysis & Test
Embedded Linux
Introduction
Linux FoundationLinux 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 SourcesThe man pages
7/26/2019 Embedded Software Engineer -LTr201
18/20
Week 2
GNU info
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 CommandsFile Manipulation Utilities
grep Command
Misc Text utilities
Dealing with Large Files and Text-related Commands
Bash Shell Scripting
Features and Capabilities
Syntax
Constructs
Assignments
7/26/2019 Embedded Software Engineer -LTr201
19/20
Soft Skill Development Session
GD Evaluation
One on One Performance Analysis & Test
Week 3
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
Multimedia Applications
Graphics Editors
Using Secure ShellRaspberry 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
Week 4
Project
Soft Skill Development Session
Analysis and Evaluvation
One on One Performance Analysis & Test
MONTH 5 & 6
7/26/2019 Embedded Software Engineer -LTr201
20/20
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.