Upload
rajani-bhandari
View
367
Download
8
Embed Size (px)
DESCRIPTION
Describes about embedded systems and breif on good coding practices.
Citation preview
Embedded system and Development
Rajani Bhandari
Senior Project Manager
HCL Technologies
2
Topics
Introduction to Embedded systemsHow embedded is different from PCDesign constraints in embedded softwareExamples of Embedded applicationsSoftware development cycle in embedded
applicationsArchitecture 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)
6
Examples In Your Daily Life
…wake up …
…have breakfast …
…set home safety system …
…get into your car …
…on your way to your office…
7
Examples In Your Daily Life(cont’)
…in Your office…
8
Examples In Your Daily Life(cont’)
…Back Home …
99
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
12
Difference - Embedded and PC App- Coding
Embedded
Closer to the Hardware Use native data types
Fewer System ResourcesNo Operating SystemMore efficient algorithms
Higher frequency = higher power
PC Application
Abstracted Hardware
Plenty of ResourcesHas an Operating System
Embedded vs PC App - Testing
EmbeddedDebugging is very difficultEmulators or simulators are
required at the time of development
Usually a simple interfaceOften involves extra hardware
PC ApplicationUsually simple to get a basic
debug outputCan be very sophisticated
testing
14
Design challenges
15
Design Challenges
Cost Unit Cost- Cost of manufacturing each unitNON 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 parallelMissing 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 technologyDigital 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 coprocessorA2D
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
Re
ven
ue
s ($
)
Time (months)
Market window:Period during which the product would have highest salesAverage 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
29
Key rules for best coding
Maintainability Reliability Efficiency
30
Maintenance problems
Unstructured code
Insufficient domain knowledge
Insufficient documentation
31
Efficiency
Optimal Utilization of ResourcesDesign and architecture of softwareMemory management
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
// 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; }
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
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 >>>
37
Questions ??
38
Thanks!!