SlideShare a Scribd company logo
1 of 38
Embedded system and
Development
Rajani Bhandari
Senior Project Manager
HCL Technologies
2
Topics
Introduction to Embedded systems
How embedded is different from PC
Design constraints in embedded software
Examples of Embedded applications
Software development cycle in embedded
applications
Architecture of embedded applications.
Development Guidelines
3
Introduction to Embedded systems
4
Introduction of Embedded system
 An embedded system is a combination of computer hardware and
software accomplished with additional mechanical or other parts designed
to perform a
 Embedded software is used in real life like
cell phone, pager, digital camera, portable video games, Calculators,
oven, washing machine etc.
 : :Embedded systems often must cost just a few
dollars, must be sized to fit on a single chip, must perform fast enough to
process data in real-time, and must consume minimum power to extend
battery life. High user expectations in terms of performance
Specific Function
In every electronic device
Limited Resources
5
Connect via peripherals
 Embedded Systems talk with the outside world via peripherals,
such as:
 Serial Communication Interfaces (SCI): RS-232, RS-422, RS-485
etc.
 Universal Serial Bus (USB)
 Multi Media Cards (SD Cards, Compact Flash etc.)
 Networks: Ethernet, Lon Works, etc.
 Analog to Digital/Digital to Analog (ADC/DAC)
Examples In Your Daily Life
 …wake up …
 …have breakfast …
 …set home safety system …
 …get into your car …
 …on your way to your office…
6
Examples In Your Daily Life
(cont’)
 …in Your office…
7
Examples In Your Daily Life
(cont’)
 …Back Home …
8
9
9
A “short list” of embedded systems
And the list goes on and on
Anti-lock brakes
Auto-focus cameras
Automatic teller machines
Automatic toll systems
Automatic transmission
Avionic systems
Battery chargers
Camcorders
Cell phones
Cell-phone base stations
Cordless phones
Cruise control
Curbside check-in systems
Digital cameras
Disk drives
Electronic card readers
Electronic instruments
Electronic toys/games
Factory control
Fax machines
Fingerprint identifiers
Home security systems
Life-support systems
Medical testing systems
Modems
MPEG decoders
Network cards
Network switches/routers
On-board navigation
Pagers
Photocopiers
Point-of-sale systems
Portable video games
Printers
Satellite phones
Scanners
Smart ovens/dishwashers
Speech recognizers
Stereo systems
Teleconferencing systems
Televisions
Temperature controllers
Theft tracking systems
TV set-top boxes
VCR’s, DVD players
Video game consoles
Video phones
Washers and dryers
10
Embedded Vs PC
11
Difference - Embedded and PC
 An embedded system have defined process and function whereas PC
is generic
 Computer system can be manufactured with general requirement and the
manufacturer does not know what the customer will do, while embedded
system is Application Specific .
 Numerous embedded system make up the computer
 Tightly constrained: Embedded system design is tightly constraint.
Important factors to be considered are as cost, size, performance, and
power.
 Reactive and real-time:
 Continually reacts to changes in the system’s environment.
 Must compute certain results in real-time without delay
Difference - Embedded and PC App- Coding
12
 Embedded
 Closer to the Hardware
 Use native data types
 Fewer System Resources
 No Operating System
 More efficient algorithms
 Higher frequency = higher
power
 PC Application
 Abstracted Hardware
 Plenty of Resources
 Has an Operating System
Embedded vs PC App - Testing
Embedded
 Debugging is very difficult
 Emulators or simulators are
required at the time of
development
 Usually a simple interface
 Often involves extra hardware
PC Application
 Usually simple to get a basic
debug output
 Can be very sophisticated
testing
14
Design challenges
Design Challenges
15
Cost Unit Cost- Cost of manufacturing each unit
NON recurring Engg Cost: Monetary cost of designing the system
The physical space required by the system and measured in bytes for
software and gates for hardware.
Execution cost
The amount of power consumed which determines life time of battery.
Maximum Source of power : Antennas – Bluetooth, Wi-Fi, RF .
Digital displays
Time-to market constraint. Hardware and software development goes in
parallel
Missing this window – significant loss
Size
Performance
Power
Time Line
Flexiblity Change functionality without heavy NRE cost. Code should be
maintainable
Design Metrics
16
SizePerformance
Power
NRE
cost
Improving one often leads to a degradation in another
Examples of embedded system
17
Car cruise
controllers reacts
to brake sensor
and speed
It Compute acceleration
and deceleration System
Failure
Delayed
computation
Mobile evolution – impact on design matrices
18
1980 analog cellular technology
Digital Mobile
Communication 1990
Wide Band Mobile
Communication 2000
Broadband Mobile
Communication 2010
Factors Affected
Cost
Design Complexity
Size
Performance
Power Consumption
Digital camera- An embedded system example
19
Microcontroller
CCD preprocessor Pixel coprocessor
A2D
D2A
JPEG codec
DMA controller
Memory controller ISA bus interface UART LCD ctrl
Display ctrl
Multiplier/Accum
Digital camera chip
lens
CCD
Time to Market- Design challenge
20
Revenues($)
Time (months)
Market window:
Period during which the product would have highest sales
Average time-to-market constraint is about 8 months. Delays can be costly.
Design Challenge
21
After decision of mass production of embedded system and a small
bug found at that time may be very expensive. Even a 1 day delay can
cost equivalent ……… Any Guesses??
22
Software Development Life cycle
Embedded system Life Cycle
23
Development of Hardware and software goes in parallel which is a major
challenge.
24
Architecture of embedded application
25
Architecture of embedded system
Application Software
Operating System
Hardware
Hardware architecture
26
27
Development Guidelines
Guidelines for embedded application
development
Power:
 Optimal Power usage
 Transferring data on Air
Reset Device
 Design for the restoration of configuration
28
Memory Guidelines
Data Type
Life time of variable
Memory allocation on heap or stack. Memory should be freed
if not required
Stateless components
Logging and Instrumentation
User Interface
Simple UI
Hour glass as visual indicator for blocking operation
Resolution and LCD size
Design for usability by supporting for touch, stylus driven, 5-
way
Do not update ui frequently
Key rules for best coding
29
Maintainability Reliability Efficiency
Maintenance problems
 Unstructured code
 Insufficient domain knowledge
 Insufficient documentation
30
Efficiency
 Optimal Utilization of Resources
 Design and architecture of software
 Memory management
31
32
Coding standards
Readability of code
 Size of Function
 Variable naming
 Code Commenting
 Long methods
 Private, public or local variable naming rule
 Formatting and indentation
Complexity of code
 Multiple return statement
 Nested loop or conditions
Uninitialized variables
Duplicate code prone to errors
Avoid Hard Coding
Use of enum to indicate discrete values
Multilingual support
Reusable code or shared libraries
Sample code
33
// This class provides the functionality
// of adding numbers
#include <iostream>
using namespace std;
class Adder{
public:
// constructor
Adder(int i = 0)
{
total = i;
}
// interface to outside world
// Adds a number and calculates
total
void addNum(int number)
{
total += number;
}
// interface to outside world
//get sum total result
int getTotal()
{
return total;
};
private:
// hidden data from outside world
int total;
};
int main( )
{
Adder a;
a.addNum(10);
a.addNum(20);
a.addNum(30);
cout << "Total " << a.getTotal()
<<endl;
return 0;
}
Which one is better
bool MyApplication::ReportGenerator::
GenerateReport()
{
bool returnValue = false;
if (isAdmin() &&
isConditionOne() &&
isConditionTwo() &&
isConditionThree())
{ returnValue = generateReport(); }
return returnValue;
}
34
bool
MyApplication::ReportGenerator::GenerateReport(
)
{ if ( ! isAdmin () ) return false ;
if ( ! isConditionOne () ) return false ;
if ( ! isConditionTwo () ) return false ;
if ( ! isConditionThree() ) return false ;
return generateReport() ;
}
Sample Code
35
function do_stuff() {
// …
if (is_writable($folder)) {
if ($fp =
fopen($file_path,'w')) {
if ($stuff =
get_some_stuff()) {
if
(fwrite($fp,$stuff)) {
// ...
} else {
return false;
}
} else {
return false;
}
} else {
return
false;
}
} else {
return false;
}
}
function do_stuff() {
// ...
if (!is_writable($folder)) {
return false;
}
if (!$fp = fopen($file_path,'w')) {
return false;
}
if (!$stuff = get_some_stuff()) {
return false;
}
if (fwrite($fp,$stuff)) {
// ...
} else {
return false;
}
}
36
Quality software On-time to bring customer
Delight



Good Coding and Design brings >>>
Questions ??
37
Thanks!!
38

More Related Content

What's hot

Embedded Systems Implementation and Applications
Embedded Systems Implementation and ApplicationsEmbedded Systems Implementation and Applications
Embedded Systems Implementation and Applications
Kaushik Padmanabhan
 
Hardware Software Codesign
Hardware Software CodesignHardware Software Codesign
Hardware Software Codesign
destruck
 
Atmel and pic microcontroller
Atmel and pic microcontrollerAtmel and pic microcontroller
Atmel and pic microcontroller
Tearsome Llantada
 

What's hot (20)

Embedded development life cycle
Embedded development life cycleEmbedded development life cycle
Embedded development life cycle
 
Embedded C - Lecture 1
Embedded C - Lecture 1Embedded C - Lecture 1
Embedded C - Lecture 1
 
Embedded
EmbeddedEmbedded
Embedded
 
Program control
Program controlProgram control
Program control
 
Embedded System Presentation
Embedded System PresentationEmbedded System Presentation
Embedded System Presentation
 
Embedded systems basics
Embedded systems basicsEmbedded systems basics
Embedded systems basics
 
Processors used in System on chip
Processors used in System on chip Processors used in System on chip
Processors used in System on chip
 
Embedded Systems Implementation and Applications
Embedded Systems Implementation and ApplicationsEmbedded Systems Implementation and Applications
Embedded Systems Implementation and Applications
 
Embedded systems class notes
Embedded systems  class notes Embedded systems  class notes
Embedded systems class notes
 
Embedded _c_
Embedded  _c_Embedded  _c_
Embedded _c_
 
Introduction to Embedded Systems I : Chapter 1
Introduction to Embedded Systems I : Chapter 1Introduction to Embedded Systems I : Chapter 1
Introduction to Embedded Systems I : Chapter 1
 
Hardware Software Codesign
Hardware Software CodesignHardware Software Codesign
Hardware Software Codesign
 
Microcontoller and Embedded System
Microcontoller and Embedded SystemMicrocontoller and Embedded System
Microcontoller and Embedded System
 
Chapter 8 Embedded Hardware Design and Development (second portion)
Chapter 8 Embedded Hardware Design and Development (second portion)Chapter 8 Embedded Hardware Design and Development (second portion)
Chapter 8 Embedded Hardware Design and Development (second portion)
 
Atmel and pic microcontroller
Atmel and pic microcontrollerAtmel and pic microcontroller
Atmel and pic microcontroller
 
Ppt on embedded systems
Ppt on embedded systemsPpt on embedded systems
Ppt on embedded systems
 
Introduction to Embedded Systems I: Chapter 2 (1st portion)
Introduction to Embedded Systems I: Chapter 2 (1st portion)Introduction to Embedded Systems I: Chapter 2 (1st portion)
Introduction to Embedded Systems I: Chapter 2 (1st portion)
 
Hardware-Software Codesign
Hardware-Software CodesignHardware-Software Codesign
Hardware-Software Codesign
 
Embedded system introduction
Embedded system introductionEmbedded system introduction
Embedded system introduction
 
Design challenges in embedded systems
Design challenges in embedded systemsDesign challenges in embedded systems
Design challenges in embedded systems
 

Viewers also liked

ppt on embedded system
ppt on embedded systemppt on embedded system
ppt on embedded system
manish katara
 
Design of embedded systems
Design of embedded systemsDesign of embedded systems
Design of embedded systems
Pradeep Kumar TS
 
Use of mems based motion sensors in embedded
Use of mems  based motion sensors in embeddedUse of mems  based motion sensors in embedded
Use of mems based motion sensors in embedded
Pallav Jha
 
Product development life cycle by blaze automation
Product development life cycle  by blaze automationProduct development life cycle  by blaze automation
Product development life cycle by blaze automation
Blaze_Hyd
 
Embedded system custom single purpose processors
Embedded system custom single  purpose processorsEmbedded system custom single  purpose processors
Embedded system custom single purpose processors
Aiswaryadevi Jaganmohan
 

Viewers also liked (20)

Embedded System Basics
Embedded System BasicsEmbedded System Basics
Embedded System Basics
 
ppt on embedded system
ppt on embedded systemppt on embedded system
ppt on embedded system
 
Introduction to embedded systems
Introduction to embedded systemsIntroduction to embedded systems
Introduction to embedded systems
 
Design of embedded systems
Design of embedded systemsDesign of embedded systems
Design of embedded systems
 
Introduction to embedded system design
Introduction to embedded system designIntroduction to embedded system design
Introduction to embedded system design
 
Embedded system-Introduction to development cycle and development tool
Embedded system-Introduction to development cycle and development  toolEmbedded system-Introduction to development cycle and development  tool
Embedded system-Introduction to development cycle and development tool
 
EDLC-EMBEDDED PRODUCT DEVELOPMENT LIFE CYCLE
EDLC-EMBEDDED PRODUCT DEVELOPMENT LIFE CYCLEEDLC-EMBEDDED PRODUCT DEVELOPMENT LIFE CYCLE
EDLC-EMBEDDED PRODUCT DEVELOPMENT LIFE CYCLE
 
Introduction to embedded systems
Introduction to embedded systemsIntroduction to embedded systems
Introduction to embedded systems
 
Embedded systems and programming (including my work at Eyantra (IIT Bombay))
Embedded systems and programming (including my work at Eyantra (IIT Bombay))Embedded systems and programming (including my work at Eyantra (IIT Bombay))
Embedded systems and programming (including my work at Eyantra (IIT Bombay))
 
Use of mems based motion sensors in embedded
Use of mems  based motion sensors in embeddedUse of mems  based motion sensors in embedded
Use of mems based motion sensors in embedded
 
Design of embedded systems
Design of embedded systemsDesign of embedded systems
Design of embedded systems
 
User Input in a multi-touch, accelerometer, location aware world.
User Input in a multi-touch, accelerometer, location aware world.User Input in a multi-touch, accelerometer, location aware world.
User Input in a multi-touch, accelerometer, location aware world.
 
Basics Of Embedded Systems
Basics Of Embedded SystemsBasics Of Embedded Systems
Basics Of Embedded Systems
 
Product development life cycle by blaze automation
Product development life cycle  by blaze automationProduct development life cycle  by blaze automation
Product development life cycle by blaze automation
 
Ajal mod 1
Ajal mod 1Ajal mod 1
Ajal mod 1
 
Embedded Design
Embedded Design Embedded Design
Embedded Design
 
Handheld device motion tracking using MEMS gyros and accelerometer
Handheld device motion tracking using MEMS gyros and accelerometerHandheld device motion tracking using MEMS gyros and accelerometer
Handheld device motion tracking using MEMS gyros and accelerometer
 
EDLC-EMBEDDED PRODUCT DEVELOPMENT LIFE CYCLE
EDLC-EMBEDDED PRODUCT DEVELOPMENT LIFE CYCLEEDLC-EMBEDDED PRODUCT DEVELOPMENT LIFE CYCLE
EDLC-EMBEDDED PRODUCT DEVELOPMENT LIFE CYCLE
 
Embedded system custom single purpose processors
Embedded system custom single  purpose processorsEmbedded system custom single  purpose processors
Embedded system custom single purpose processors
 
Summer training embedded system and its scope
Summer training  embedded system and its scopeSummer training  embedded system and its scope
Summer training embedded system and its scope
 

Similar to Embedded system and development

It 443 lecture 1
It 443 lecture 1It 443 lecture 1
It 443 lecture 1
elisha25
 

Similar to Embedded system and development (20)

It 443 lecture 1
It 443 lecture 1It 443 lecture 1
It 443 lecture 1
 
Language for embedded system
Language for embedded systemLanguage for embedded system
Language for embedded system
 
Language for Embedded System
Language for Embedded System Language for Embedded System
Language for Embedded System
 
Chapter - One.ppt
Chapter - One.pptChapter - One.ppt
Chapter - One.ppt
 
137.gsm, fprs ,keypad_based_atm_security_(doc)
137.gsm, fprs ,keypad_based_atm_security_(doc)137.gsm, fprs ,keypad_based_atm_security_(doc)
137.gsm, fprs ,keypad_based_atm_security_(doc)
 
Report
ReportReport
Report
 
Vinod report es 1
Vinod report es   1Vinod report es   1
Vinod report es 1
 
Vinod report es 1
Vinod report es   1Vinod report es   1
Vinod report es 1
 
Resume_Pratik
Resume_PratikResume_Pratik
Resume_Pratik
 
Track 4 session 6 - st dev con 2016 - samsung artik
Track 4   session 6 - st dev con 2016 - samsung artikTrack 4   session 6 - st dev con 2016 - samsung artik
Track 4 session 6 - st dev con 2016 - samsung artik
 
Chapter_01.pptx
Chapter_01.pptxChapter_01.pptx
Chapter_01.pptx
 
Embedded systems- nanocdac
Embedded systems- nanocdacEmbedded systems- nanocdac
Embedded systems- nanocdac
 
Report file on Embedded systems
Report file on Embedded systemsReport file on Embedded systems
Report file on Embedded systems
 
Classification of embedded systems
Classification of embedded systemsClassification of embedded systems
Classification of embedded systems
 
1.1. SOC AND MULTICORE ARCHITECTURES FOR EMBEDDED SYSTEMS (2).pdf
1.1. SOC AND MULTICORE ARCHITECTURES FOR EMBEDDED SYSTEMS (2).pdf1.1. SOC AND MULTICORE ARCHITECTURES FOR EMBEDDED SYSTEMS (2).pdf
1.1. SOC AND MULTICORE ARCHITECTURES FOR EMBEDDED SYSTEMS (2).pdf
 
Embeddedsystem
EmbeddedsystemEmbeddedsystem
Embeddedsystem
 
CIS 2015 How to secure the Internet of Things? Hannes Tschofenig
CIS 2015 How to secure the Internet of Things? Hannes TschofenigCIS 2015 How to secure the Internet of Things? Hannes Tschofenig
CIS 2015 How to secure the Internet of Things? Hannes Tschofenig
 
Малоресурсная криптография - Сергей Мартыненко
Малоресурсная криптография - Сергей МартыненкоМалоресурсная криптография - Сергей Мартыненко
Малоресурсная криптография - Сергей Мартыненко
 
Electronic Nameplate System
Electronic Nameplate SystemElectronic Nameplate System
Electronic Nameplate System
 
How to Select Hardware for Internet of Things Systems?
How to Select Hardware for Internet of Things Systems?How to Select Hardware for Internet of Things Systems?
How to Select Hardware for Internet of Things Systems?
 

Recently uploaded

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Recently uploaded (20)

Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 

Embedded system and development

  • 1. Embedded system and Development Rajani Bhandari Senior Project Manager HCL Technologies
  • 2. 2 Topics Introduction to Embedded systems How embedded is different from PC Design constraints in embedded software Examples of Embedded applications Software development cycle in embedded applications Architecture of embedded applications. Development Guidelines
  • 4. 4 Introduction of Embedded system  An embedded system is a combination of computer hardware and software accomplished with additional mechanical or other parts designed to perform a  Embedded software is used in real life like cell phone, pager, digital camera, portable video games, Calculators, oven, washing machine etc.  : :Embedded systems often must cost just a few dollars, must be sized to fit on a single chip, must perform fast enough to process data in real-time, and must consume minimum power to extend battery life. High user expectations in terms of performance Specific Function In every electronic device Limited Resources
  • 5. 5 Connect via peripherals  Embedded Systems talk with the outside world via peripherals, such as:  Serial Communication Interfaces (SCI): RS-232, RS-422, RS-485 etc.  Universal Serial Bus (USB)  Multi Media Cards (SD Cards, Compact Flash etc.)  Networks: Ethernet, Lon Works, etc.  Analog to Digital/Digital to Analog (ADC/DAC)
  • 6. Examples In Your Daily Life  …wake up …  …have breakfast …  …set home safety system …  …get into your car …  …on your way to your office… 6
  • 7. Examples In Your Daily Life (cont’)  …in Your office… 7
  • 8. Examples In Your Daily Life (cont’)  …Back Home … 8
  • 9. 9 9 A “short list” of embedded systems And the list goes on and on Anti-lock brakes Auto-focus cameras Automatic teller machines Automatic toll systems Automatic transmission Avionic systems Battery chargers Camcorders Cell phones Cell-phone base stations Cordless phones Cruise control Curbside check-in systems Digital cameras Disk drives Electronic card readers Electronic instruments Electronic toys/games Factory control Fax machines Fingerprint identifiers Home security systems Life-support systems Medical testing systems Modems MPEG decoders Network cards Network switches/routers On-board navigation Pagers Photocopiers Point-of-sale systems Portable video games Printers Satellite phones Scanners Smart ovens/dishwashers Speech recognizers Stereo systems Teleconferencing systems Televisions Temperature controllers Theft tracking systems TV set-top boxes VCR’s, DVD players Video game consoles Video phones Washers and dryers
  • 11. 11 Difference - Embedded and PC  An embedded system have defined process and function whereas PC is generic  Computer system can be manufactured with general requirement and the manufacturer does not know what the customer will do, while embedded system is Application Specific .  Numerous embedded system make up the computer  Tightly constrained: Embedded system design is tightly constraint. Important factors to be considered are as cost, size, performance, and power.  Reactive and real-time:  Continually reacts to changes in the system’s environment.  Must compute certain results in real-time without delay
  • 12. Difference - Embedded and PC App- Coding 12  Embedded  Closer to the Hardware  Use native data types  Fewer System Resources  No Operating System  More efficient algorithms  Higher frequency = higher power  PC Application  Abstracted Hardware  Plenty of Resources  Has an Operating System
  • 13. Embedded vs PC App - Testing Embedded  Debugging is very difficult  Emulators or simulators are required at the time of development  Usually a simple interface  Often involves extra hardware PC Application  Usually simple to get a basic debug output  Can be very sophisticated testing
  • 15. Design Challenges 15 Cost Unit Cost- Cost of manufacturing each unit NON recurring Engg Cost: Monetary cost of designing the system The physical space required by the system and measured in bytes for software and gates for hardware. Execution cost The amount of power consumed which determines life time of battery. Maximum Source of power : Antennas – Bluetooth, Wi-Fi, RF . Digital displays Time-to market constraint. Hardware and software development goes in parallel Missing this window – significant loss Size Performance Power Time Line Flexiblity Change functionality without heavy NRE cost. Code should be maintainable
  • 16. Design Metrics 16 SizePerformance Power NRE cost Improving one often leads to a degradation in another
  • 17. Examples of embedded system 17 Car cruise controllers reacts to brake sensor and speed It Compute acceleration and deceleration System Failure Delayed computation
  • 18. Mobile evolution – impact on design matrices 18 1980 analog cellular technology Digital Mobile Communication 1990 Wide Band Mobile Communication 2000 Broadband Mobile Communication 2010 Factors Affected Cost Design Complexity Size Performance Power Consumption
  • 19. Digital camera- An embedded system example 19 Microcontroller CCD preprocessor Pixel coprocessor A2D D2A JPEG codec DMA controller Memory controller ISA bus interface UART LCD ctrl Display ctrl Multiplier/Accum Digital camera chip lens CCD
  • 20. Time to Market- Design challenge 20 Revenues($) Time (months) Market window: Period during which the product would have highest sales Average time-to-market constraint is about 8 months. Delays can be costly.
  • 21. Design Challenge 21 After decision of mass production of embedded system and a small bug found at that time may be very expensive. Even a 1 day delay can cost equivalent ……… Any Guesses??
  • 23. Embedded system Life Cycle 23 Development of Hardware and software goes in parallel which is a major challenge.
  • 25. 25 Architecture of embedded system Application Software Operating System Hardware
  • 28. Guidelines for embedded application development Power:  Optimal Power usage  Transferring data on Air Reset Device  Design for the restoration of configuration 28 Memory Guidelines Data Type Life time of variable Memory allocation on heap or stack. Memory should be freed if not required Stateless components Logging and Instrumentation User Interface Simple UI Hour glass as visual indicator for blocking operation Resolution and LCD size Design for usability by supporting for touch, stylus driven, 5- way Do not update ui frequently
  • 29. Key rules for best coding 29 Maintainability Reliability Efficiency
  • 30. Maintenance problems  Unstructured code  Insufficient domain knowledge  Insufficient documentation 30
  • 31. Efficiency  Optimal Utilization of Resources  Design and architecture of software  Memory management 31
  • 32. 32 Coding standards Readability of code  Size of Function  Variable naming  Code Commenting  Long methods  Private, public or local variable naming rule  Formatting and indentation Complexity of code  Multiple return statement  Nested loop or conditions Uninitialized variables Duplicate code prone to errors Avoid Hard Coding Use of enum to indicate discrete values Multilingual support Reusable code or shared libraries
  • 33. Sample code 33 // This class provides the functionality // of adding numbers #include <iostream> using namespace std; class Adder{ public: // constructor Adder(int i = 0) { total = i; } // interface to outside world // Adds a number and calculates total void addNum(int number) { total += number; } // interface to outside world //get sum total result int getTotal() { return total; }; private: // hidden data from outside world int total; }; int main( ) { Adder a; a.addNum(10); a.addNum(20); a.addNum(30); cout << "Total " << a.getTotal() <<endl; return 0; }
  • 34. Which one is better bool MyApplication::ReportGenerator:: GenerateReport() { bool returnValue = false; if (isAdmin() && isConditionOne() && isConditionTwo() && isConditionThree()) { returnValue = generateReport(); } return returnValue; } 34 bool MyApplication::ReportGenerator::GenerateReport( ) { if ( ! isAdmin () ) return false ; if ( ! isConditionOne () ) return false ; if ( ! isConditionTwo () ) return false ; if ( ! isConditionThree() ) return false ; return generateReport() ; }
  • 35. Sample Code 35 function do_stuff() { // … if (is_writable($folder)) { if ($fp = fopen($file_path,'w')) { if ($stuff = get_some_stuff()) { if (fwrite($fp,$stuff)) { // ... } else { return false; } } else { return false; } } else { return false; } } else { return false; } } function do_stuff() { // ... if (!is_writable($folder)) { return false; } if (!$fp = fopen($file_path,'w')) { return false; } if (!$stuff = get_some_stuff()) { return false; } if (fwrite($fp,$stuff)) { // ... } else { return false; } }
  • 36. 36 Quality software On-time to bring customer Delight    Good Coding and Design brings >>>

Editor's Notes

  1. Cruise controler stereo et
  2. The time-to market constraint has become especially demanding. Introducing an embedded system to the marketplace early can make a big difference in the system’s profitability, since market time-windows for products are becoming quite short, often measured in months. Hardware and software development goes in parallelMissing this window (meaning the product begins being sold further to the right on the time scale) can mean significantloss in sales.
  3. The design measures typically compete with one another: improving one often leads to a degradation in another. For example, if we reduce an implementation’s size, its performance may suffer. Designer should comfortable with a variety of hardware and software implementation technologies, and must be able to migrate from one technology to another, in order to find the best implementation for a given application and constraints. Also he must be software and hardware expert .
  4. A car&apos;s cruise controller continually monitors and reacts to speed and brake sensors. It must compute acceleration or decelerations amounts repeatedly within a limited time; a delayed computation result could result in a failure to maintain control of the car. In contrast, a desktop system typically focuses on computations, with relatively infrequent (from the computer’s perspective) reactions to input devices. In addition, a delay in those computations, while perhaps inconvenient to the computer user, typically does not result in a system failure.
  5. Single-functioned -- always a digital cameraTightly-constrained -- Low cost, low power, small, fastReactive and real-time -- only to a small extentCCD:complete mixed-signal processing IC for digital cameras,A2D- analog to digital conversionCCD imager output signal in a video camera, a digital still camera, security camera, or similar applicationsPixel Processor: The pixel processor receives raw data from the pixel chips and formats it for useCodec: A codec is a device or computer program capable of encoding or decoding a digital data stream or signal.A microcontroller (sometimes abbreviated µC, uC or MCU) is a small computer on a single integrated circuit containing a processor core, memory, and programmable input/output peripheralsAn accumulator is a register for short-term, intermediate storage of arithmetic and ... and manipulation of imagery, GPS, satellite photography and historical data, ...
  6. Product specifications are driven by market mainly and also change very frequently like camera or mobile. Development of Hardware and software goes in parallel which is a major challenge.
  7. Stateless components are preferred when scalability or performance are important. Design the components to accept all the needed values as input parameters instead of relying upon object properties when calling methods. Doing so eliminates the need to preserve object state between method calls. When it is necessary to maintain state, consider using alternative methods, such as maintaining state in a database.limited memory available on small device- logging and instrumentation should be limited Take into account the various screen sizes and resolutions of your target devices when designing your application UIDesign devices so that parts can be powered off when not in use.Transferring data on Airuse batch burst and shut down communication when not needed
  8. Reliability measures the level of risk and the likelihood of potential application failures. It also measures the defects injected due to modifications made to the softwareMaintainability- how muchadaptle to change and readable and easy to understandEffecience is linked with performance