SlideShare a Scribd company logo
© 2010-15 SysPlay Workshops <workshop@sysplay.in>
All Rights Reserved.
Embedded Software Design
2© 2010-15 SysPlay Workshops <workshop@sysplay.in>
All Rights Reserved.
What to Expect?
Functionality Design & Programming
Design for Fault Tolerance
Hardware aware Design & Programming
Design & Programming for Performance
Design for Maintainability
3© 2010-15 SysPlay Workshops <workshop@sysplay.in>
All Rights Reserved.
Special about Embedded Software
Full Featured
with Smaller Binary Size
Seamless Hardware Interaction
with High Fault Tolerance
Time Tolerant (Running forever)
Good Performance
with Limited Processor Power
Capable of Remote Testing, Debugging, Fixing
In short, it is
Optimized, Robust, Continuously Performing, Maintainable
4© 2010-15 SysPlay Workshops <workshop@sysplay.in>
All Rights Reserved.
W's of Embedded Software Design
Do NOT start coding, Design First
Design means “Data Structures, Interfaces & Algorithms”
If comfortable, put down “C” structs and “C” function prototypes, And
Design “C” pseudo code using them
How to Proceed?
Understand the overall requirements
Break them into smaller manageable/thinkable chunks
Think & Propose designs for each one of them
To meet all the requirements
If some requirement(s) are not met
Tweak / Modify the designs to meet all of them
Because trying to meet them later may turn out to be costly
In terms of both time & effort
5© 2010-15 SysPlay Workshops <workshop@sysplay.in>
All Rights Reserved.
Functional Design & Programming
6© 2010-15 SysPlay Workshops <workshop@sysplay.in>
All Rights Reserved.
Functional Design Approach
Preferred Design Approach → Top-down
Design interfaces to meet the customer requirement
Implement interfaces compatible with the OS i/fs, Or
So-called system calls in Linux
If any interface changes, review the complete path
Advantages
Reduce trial and error coding
Reduce bugs & hence reduce debugging efforts
More productive time for better designs
7© 2010-15 SysPlay Workshops <workshop@sysplay.in>
All Rights Reserved.
Functional Programming Tidbits
Processes vs Threads
Limited Memory vs Synchronization Extras
Independent Units vs Event Driven Programs
Security vs Inherent Communication
Process Usages
Multi-processors and Multi-tasking
Minimal Process Inter-communication
Communication using IPCs
Native Implementation
8© 2010-15 SysPlay Workshops <workshop@sysplay.in>
All Rights Reserved.
Functional Programming Tidbits
Threads Usages
Multi-processors and Parallel Programming
Hand-in-hand Blocking & Execution
Code & Libraries need to be re-entrant & thread-safe
Implementation using pthreads library
Model Cases
Delegation or Manager-Worker (e.g. Web Server)
Pipeline (e.g. Events in a GUI)
Peer (e.g. Multiple I/O Processing)
Producer-Consumer (e.g. Manufacturing Unit)
9© 2010-15 SysPlay Workshops <workshop@sysplay.in>
All Rights Reserved.
Functional Programming Tidbits
Schedulers & Priorities
Normal vs Real Time
Nice vs Priority
Time Slicing vs Starvation
Synchronization in Priority based Scheduling
Deadlock Avoidance (Banker's Algorithm)
Deadlock Prevention (Conditional Variables))
Priority Inversion Resolution Techniques
Priority Inheritance, Priority Ceiling, Priority Protect
10© 2010-15 SysPlay Workshops <workshop@sysplay.in>
All Rights Reserved.
Functional Programming Tidbits
Signals vs Polling
Asynchronous vs Synchronous
Racing vs Blocking
Timers vs Loops
Interrupts vs Signals
Kernel Space vs User Space
Hardware vs Software
11© 2010-15 SysPlay Workshops <workshop@sysplay.in>
All Rights Reserved.
Functional Programming Tidbits
Sockets
Inter-system communication
Control, Data
Interface to Multiple Devices
Interface to Multiple Channels / Functionalities
On a Device
Model case
Client-Server (e.g. for debugging, logging, ...)
12© 2010-15 SysPlay Workshops <workshop@sysplay.in>
All Rights Reserved.
Extra Miles for Embedded Software
Even after a good functional design, including
the functional programming tidbits, there are
many other design & programming aspects,
which need to be taken care for Embedded
Software
Can be learnt in two ways
The hard way by experiencing yourself, Or
By applying from others learnings
So, here goes some from my learnings
13© 2010-15 SysPlay Workshops <workshop@sysplay.in>
All Rights Reserved.
Design for Fault Tolerance
14© 2010-15 SysPlay Workshops <workshop@sysplay.in>
All Rights Reserved.
Design for Fault Tolerance
Design for Uninterrupted Execution
Avoid race conditions w/ proper synchronization
Avoid memory leaks w/ memory usage balancing
Verify with memory profilers
Handle all error cases, extreme conditions
default for a switch, else for an if, ...
Avoid infinite loops. Rather put timeouts
Re-organize code to avoid / prevent deadlocks
15© 2010-15 SysPlay Workshops <workshop@sysplay.in>
All Rights Reserved.
Design for Fault Tolerance
Design for Crash Recovery
By restarting the crucial flows
Example: The Main Task
Design for Hang Recovery
With watchdogs
Design for Power Failures
With brown-out detections
With power-down saves
16© 2010-15 SysPlay Workshops <workshop@sysplay.in>
All Rights Reserved.
Hardware aware Design & Programming
17© 2010-15 SysPlay Workshops <workshop@sysplay.in>
All Rights Reserved.
Design for Hardware
Speed Mismatch Hardware (Faster / Slower)
Interact using interrupt-mechanism
Time-sensitive Hardware Interaction
Specific hardware protocols like I2S, SPI, ...
Use precise (busy-wait) delays
Non-responsive Hardware
Use timeouts rather than unconditional accesses
Hardware with Irregular/Incorrect Responses
Do proper error handling for the extreme / abnormal / invalid cases
Hardware Delays (like Debouncing, Rise Time, ...)
Use appropriate Timers &/or Delays to offset them
18© 2010-15 SysPlay Workshops <workshop@sysplay.in>
All Rights Reserved.
Programming for Hardware
Passive vs Active Devices (Memory vs Device)
Code Optimization vs Change outside Program
Use programming specific keywords, like volatile
Memory Caching at various levels
May need to bypass/disable/flush for addr-mapped devices
Using architecture specific instructions / APIs
CPU Optimizations (Re-ordering of CPU instructions)
May need to be locally disabled for correct device operations
Using architecture specific barriers
19© 2010-15 SysPlay Workshops <workshop@sysplay.in>
All Rights Reserved.
Programming for Hardware
Virtual Memory Accesses for DMA
May need to be translated to Physical Addresses
Cache consistency needs to be taken care of
Using OS specific lookup APIs
Register Specific Programming
May need specific programming sequences
As per the device datasheet
Examples
Clear-on-write, Multiple writes
Indirect Access, Protected Access
20© 2010-15 SysPlay Workshops <workshop@sysplay.in>
All Rights Reserved.
Design & Programming for Performance
21© 2010-15 SysPlay Workshops <workshop@sysplay.in>
All Rights Reserved.
Design for Performance
IPC vs Synchronization
Multi-process (Context Switching) vs Multi-threaded (Same Context)
Communication vs Synchronization Overheads
Schedulers & Priorities
Normal vs Real Time
Nice vs Priority
Yielding vs Busy Wait
Latency vs Precision
Interrupt / Signal Usage
Higher Priority and Asynchronous Attention
But too many / missing them may invalidate assumptions
22© 2010-15 SysPlay Workshops <workshop@sysplay.in>
All Rights Reserved.
Design for Performance
Swap Space
May reduce individual task performance
Though, may improve overall performance
By letting many more tasks run
Provided by swap partition or file
Usage could be controlled by adjusting swappiness
Physical Memory
Minimizing memory allocation / deallocation
(Secondary) Storage Usage & Accesses
Minimize / Eliminate for best consistent performance
Possibly by pre-loading into memory or using mmap
23© 2010-15 SysPlay Workshops <workshop@sysplay.in>
All Rights Reserved.
Design for Real Time Performance
Have very few Real Time Processes
Keep the RT Applications Short & Efficient
Do not do heavy duty operations
Like Memory Allocation, ...
If essential, move to Initialization Sections
Testability for the RT working of the other RT Apps
Testability of the performance of the needed OS service
If any RT App has priority higher than the OS Service
Testability for other needed non-RT Apps' performance
24© 2010-15 SysPlay Workshops <workshop@sysplay.in>
All Rights Reserved.
Programming for Performance
System Calls vs Library Functions
Direct vs Indirect w/ Internal Overheads
Single Buffered vs Multi-buffered
Example: File Operations (read / write / ... vs fread / fwrite / ...)
Buffer Caching vs Direct Access
Repeated Accesses vs One Time Access
Possible Thrashing vs Uniform Slow Performance
Controlled using O_DIRECT
Code Optimization Techniques
Compiler Optimizations for Performance, esp by removing redundant code
Reduce/Remove Code Bottlenecks detected using Profilers
Placing often used variables into registers, but may affect other computations
Making functions inline, but may increase code size
Using likely / unlikely constructs for code placement to minimize cache misses
25© 2010-15 SysPlay Workshops <workshop@sysplay.in>
All Rights Reserved.
Design for Maintainability
26© 2010-15 SysPlay Workshops <workshop@sysplay.in>
All Rights Reserved.
Design for Maintenance
Embedded Systems are
Highly Constrained
Critically Operating
In case of issues, need to be resolved urgently
And, most of the times remotely at customer site
Demands for an excellent debugging framework
For the overall embedded system
Be it Kernel Space or User Space
And, ways to fix problems remotely
27© 2010-15 SysPlay Workshops <workshop@sysplay.in>
All Rights Reserved.
Debugability & Fixability
Provide enough debugging support through logging hooks
May keep the minimal light weight support enabled, by default
(Remote) Support for further enabling / disabling the logs
Multiple log levels depending on the criticality of the situation
(Remote) Access to the Log from the Embedded System
Logs & Dumps should be from the various parts of the System
Kernel, Startup, Applications, …
Could be centralized &/or de-centralized depending on the ES
At the least, the following Activity Logs should be designed & coded
Login, Network, Reboots, Device Access, ...
And last but not least,
Automatic / Remote mechanisms for Update / Patch should be implemented
28© 2010-15 SysPlay Workshops <workshop@sysplay.in>
All Rights Reserved.
What all have we learnt?
Functionality Design & Programming
Design for Fault Tolerance
Hardware aware Design & Programming
Design & Programming for Performance
Design for Maintainability
29© 2010-15 SysPlay Workshops <workshop@sysplay.in>
All Rights Reserved.
Any Queries?

More Related Content

What's hot

Linux File System
Linux File SystemLinux File System
Linux File System
Anil Kumar Pugalia
 
Linux kernel
Linux kernelLinux kernel
Multi core-architecture
Multi core-architectureMulti core-architecture
Multi core-architecture
Piyush Mittal
 
Linux Internals - Kernel/Core
Linux Internals - Kernel/CoreLinux Internals - Kernel/Core
Linux Internals - Kernel/Core
Shay Cohen
 
Character Drivers
Character DriversCharacter Drivers
Character Drivers
Anil Kumar Pugalia
 
linux device driver
linux device driverlinux device driver
linux device driver
Rahul Batra
 
Introduction to System Calls
Introduction to System CallsIntroduction to System Calls
Introduction to System Calls
Vandana Salve
 
Ipc in linux
Ipc in linuxIpc in linux
Ipc in linux
Dr. C.V. Suresh Babu
 
Inter process communication using Linux System Calls
Inter process communication using Linux System CallsInter process communication using Linux System Calls
Inter process communication using Linux System Calls
jyoti9vssut
 
Real Time Systems
Real Time SystemsReal Time Systems
Real Time Systems
Anil Kumar Pugalia
 
Intro to Embedded OS, RTOS and Communication Protocols
Intro to Embedded OS, RTOS and Communication ProtocolsIntro to Embedded OS, RTOS and Communication Protocols
Intro to Embedded OS, RTOS and Communication Protocols
Emertxe Information Technologies Pvt Ltd
 
Embedded Linux Kernel - Build your custom kernel
Embedded Linux Kernel - Build your custom kernelEmbedded Linux Kernel - Build your custom kernel
Embedded Linux Kernel - Build your custom kernel
Emertxe Information Technologies Pvt Ltd
 
Rtos ss
Rtos ssRtos ss
First-Come-First-Serve (FCFS)
First-Come-First-Serve (FCFS)First-Come-First-Serve (FCFS)
First-Come-First-Serve (FCFS)
nikeAthena
 
Context switching
Context switchingContext switching
Context switching
DarakhshanNayyab
 
RTOS for Embedded System Design
RTOS for Embedded System DesignRTOS for Embedded System Design
RTOS for Embedded System Design
anand hd
 
Multiprocessor
MultiprocessorMultiprocessor
Multiprocessor
Neel Patel
 
Threads in Operating System | Multithreading | Interprocess Communication
Threads in Operating System | Multithreading | Interprocess CommunicationThreads in Operating System | Multithreading | Interprocess Communication
Threads in Operating System | Multithreading | Interprocess Communication
Shivam Mitra
 
Linux file system
Linux file systemLinux file system
Linux file system
Md. Tanvir Hossain
 
Linux-Internals-and-Networking
Linux-Internals-and-NetworkingLinux-Internals-and-Networking
Linux-Internals-and-Networking
Emertxe Information Technologies Pvt Ltd
 

What's hot (20)

Linux File System
Linux File SystemLinux File System
Linux File System
 
Linux kernel
Linux kernelLinux kernel
Linux kernel
 
Multi core-architecture
Multi core-architectureMulti core-architecture
Multi core-architecture
 
Linux Internals - Kernel/Core
Linux Internals - Kernel/CoreLinux Internals - Kernel/Core
Linux Internals - Kernel/Core
 
Character Drivers
Character DriversCharacter Drivers
Character Drivers
 
linux device driver
linux device driverlinux device driver
linux device driver
 
Introduction to System Calls
Introduction to System CallsIntroduction to System Calls
Introduction to System Calls
 
Ipc in linux
Ipc in linuxIpc in linux
Ipc in linux
 
Inter process communication using Linux System Calls
Inter process communication using Linux System CallsInter process communication using Linux System Calls
Inter process communication using Linux System Calls
 
Real Time Systems
Real Time SystemsReal Time Systems
Real Time Systems
 
Intro to Embedded OS, RTOS and Communication Protocols
Intro to Embedded OS, RTOS and Communication ProtocolsIntro to Embedded OS, RTOS and Communication Protocols
Intro to Embedded OS, RTOS and Communication Protocols
 
Embedded Linux Kernel - Build your custom kernel
Embedded Linux Kernel - Build your custom kernelEmbedded Linux Kernel - Build your custom kernel
Embedded Linux Kernel - Build your custom kernel
 
Rtos ss
Rtos ssRtos ss
Rtos ss
 
First-Come-First-Serve (FCFS)
First-Come-First-Serve (FCFS)First-Come-First-Serve (FCFS)
First-Come-First-Serve (FCFS)
 
Context switching
Context switchingContext switching
Context switching
 
RTOS for Embedded System Design
RTOS for Embedded System DesignRTOS for Embedded System Design
RTOS for Embedded System Design
 
Multiprocessor
MultiprocessorMultiprocessor
Multiprocessor
 
Threads in Operating System | Multithreading | Interprocess Communication
Threads in Operating System | Multithreading | Interprocess CommunicationThreads in Operating System | Multithreading | Interprocess Communication
Threads in Operating System | Multithreading | Interprocess Communication
 
Linux file system
Linux file systemLinux file system
Linux file system
 
Linux-Internals-and-Networking
Linux-Internals-and-NetworkingLinux-Internals-and-Networking
Linux-Internals-and-Networking
 

Viewers also liked

Board Bringup
Board BringupBoard Bringup
Board Bringup
Anil Kumar Pugalia
 
Functional Programming with LISP
Functional Programming with LISPFunctional Programming with LISP
Functional Programming with LISP
Anil Kumar Pugalia
 
Bootloaders
BootloadersBootloaders
Bootloaders
Anil Kumar Pugalia
 
Mobile Hacking using Linux Drivers
Mobile Hacking using Linux DriversMobile Hacking using Linux Drivers
Mobile Hacking using Linux Drivers
Anil Kumar Pugalia
 
Shell Scripting
Shell ScriptingShell Scripting
Shell Scripting
Anil Kumar Pugalia
 
Linux User Space Debugging & Profiling
Linux User Space Debugging & ProfilingLinux User Space Debugging & Profiling
Linux User Space Debugging & Profiling
Anil Kumar Pugalia
 
Timers
TimersTimers
Threads
ThreadsThreads
Linux Network Management
Linux Network ManagementLinux Network Management
Linux Network Management
Anil Kumar Pugalia
 
Embedded C
Embedded CEmbedded C
Embedded C
Anil Kumar Pugalia
 
System Calls
System CallsSystem Calls
System Calls
Anil Kumar Pugalia
 
Synchronization
SynchronizationSynchronization
Synchronization
Anil Kumar Pugalia
 
Signals
SignalsSignals
Inter Process Communication
Inter Process CommunicationInter Process Communication
Inter Process Communication
Anil Kumar Pugalia
 
Network Drivers
Network DriversNetwork Drivers
Network Drivers
Anil Kumar Pugalia
 
Kernel Debugging & Profiling
Kernel Debugging & ProfilingKernel Debugging & Profiling
Kernel Debugging & Profiling
Anil Kumar Pugalia
 
References
ReferencesReferences
References
Anil Kumar Pugalia
 
Introduction to Linux Drivers
Introduction to Linux DriversIntroduction to Linux Drivers
Introduction to Linux Drivers
Anil Kumar Pugalia
 

Viewers also liked (18)

Board Bringup
Board BringupBoard Bringup
Board Bringup
 
Functional Programming with LISP
Functional Programming with LISPFunctional Programming with LISP
Functional Programming with LISP
 
Bootloaders
BootloadersBootloaders
Bootloaders
 
Mobile Hacking using Linux Drivers
Mobile Hacking using Linux DriversMobile Hacking using Linux Drivers
Mobile Hacking using Linux Drivers
 
Shell Scripting
Shell ScriptingShell Scripting
Shell Scripting
 
Linux User Space Debugging & Profiling
Linux User Space Debugging & ProfilingLinux User Space Debugging & Profiling
Linux User Space Debugging & Profiling
 
Timers
TimersTimers
Timers
 
Threads
ThreadsThreads
Threads
 
Linux Network Management
Linux Network ManagementLinux Network Management
Linux Network Management
 
Embedded C
Embedded CEmbedded C
Embedded C
 
System Calls
System CallsSystem Calls
System Calls
 
Synchronization
SynchronizationSynchronization
Synchronization
 
Signals
SignalsSignals
Signals
 
Inter Process Communication
Inter Process CommunicationInter Process Communication
Inter Process Communication
 
Network Drivers
Network DriversNetwork Drivers
Network Drivers
 
Kernel Debugging & Profiling
Kernel Debugging & ProfilingKernel Debugging & Profiling
Kernel Debugging & Profiling
 
References
ReferencesReferences
References
 
Introduction to Linux Drivers
Introduction to Linux DriversIntroduction to Linux Drivers
Introduction to Linux Drivers
 

Similar to Embedded Software Design

Introduction to Embedded Systems
Introduction to Embedded SystemsIntroduction to Embedded Systems
Introduction to Embedded Systems
Anil Kumar Pugalia
 
Embedded Applications
Embedded ApplicationsEmbedded Applications
Embedded Applications
Anil Kumar Pugalia
 
Beyond PowerPlay: Choose the Right OLAP Tool for Your BI Environment (Cognos...
 Beyond PowerPlay: Choose the Right OLAP Tool for Your BI Environment (Cognos... Beyond PowerPlay: Choose the Right OLAP Tool for Your BI Environment (Cognos...
Beyond PowerPlay: Choose the Right OLAP Tool for Your BI Environment (Cognos...
Senturus
 
ITT 2015 - Kirk Pepperdine - The (not so) Dark Art of Performance Tuning, fro...
ITT 2015 - Kirk Pepperdine - The (not so) Dark Art of Performance Tuning, fro...ITT 2015 - Kirk Pepperdine - The (not so) Dark Art of Performance Tuning, fro...
ITT 2015 - Kirk Pepperdine - The (not so) Dark Art of Performance Tuning, fro...
Istanbul Tech Talks
 
9781337117562_ppt_ch01.pptxChapter 1An Overview of Compute.docx
9781337117562_ppt_ch01.pptxChapter 1An Overview of Compute.docx9781337117562_ppt_ch01.pptxChapter 1An Overview of Compute.docx
9781337117562_ppt_ch01.pptxChapter 1An Overview of Compute.docx
sleeperharwell
 
Virtualization and Cloud Computing
Virtualization and Cloud ComputingVirtualization and Cloud Computing
Virtualization and Cloud Computing
Josh Folgado
 
Linux Memory Management
Linux Memory ManagementLinux Memory Management
Linux Memory Management
Anil Kumar Pugalia
 
Vasiliy Litvinov - Python Profiling
Vasiliy Litvinov - Python ProfilingVasiliy Litvinov - Python Profiling
Vasiliy Litvinov - Python Profiling
Sergey Arkhipov
 
If your computer is cloud what its Operating System look like?
If your computer is cloud what its Operating System look like?If your computer is cloud what its Operating System look like?
If your computer is cloud what its Operating System look like?
Asher Sterkin
 
VMware View – Storage Considerations
VMware View – Storage ConsiderationsVMware View – Storage Considerations
VMware View – Storage Considerations
Calin Damian Tanase
 
PowerAI Deep Dive ( key points )
PowerAI Deep Dive ( key points )PowerAI Deep Dive ( key points )
PowerAI Deep Dive ( key points )
Paulo Sergio Lemes Queiroz
 
Processes
ProcessesProcesses
Get to know the browser better and write faster web apps
Get to know the browser better   and write faster web appsGet to know the browser better   and write faster web apps
Get to know the browser better and write faster web apps
Lior Bar-On
 
Embedded systems in brief
Embedded systems   in briefEmbedded systems   in brief
Embedded systems in brief
krnathan
 
Kairos aarohan
Kairos  aarohanKairos  aarohan
Kairos aarohan
berasrujana
 
Octobus technical university def
Octobus technical university   defOctobus technical university   def
Octobus technical university def
Daniela Zuppini
 
Andon Applications with InduSoft Web Studio
Andon Applications with InduSoft Web StudioAndon Applications with InduSoft Web Studio
Andon Applications with InduSoft Web Studio
AVEVA
 
Ppt on embedded system
Ppt on embedded systemPpt on embedded system
Ppt on embedded system
Pankaj joshi
 
Design of Software for Embedded Systems
Design of Software for Embedded SystemsDesign of Software for Embedded Systems
Design of Software for Embedded Systems
Peter Tröger
 
Kernel Timing Management
Kernel Timing ManagementKernel Timing Management
Kernel Timing Management
SysPlay eLearning Academy for You
 

Similar to Embedded Software Design (20)

Introduction to Embedded Systems
Introduction to Embedded SystemsIntroduction to Embedded Systems
Introduction to Embedded Systems
 
Embedded Applications
Embedded ApplicationsEmbedded Applications
Embedded Applications
 
Beyond PowerPlay: Choose the Right OLAP Tool for Your BI Environment (Cognos...
 Beyond PowerPlay: Choose the Right OLAP Tool for Your BI Environment (Cognos... Beyond PowerPlay: Choose the Right OLAP Tool for Your BI Environment (Cognos...
Beyond PowerPlay: Choose the Right OLAP Tool for Your BI Environment (Cognos...
 
ITT 2015 - Kirk Pepperdine - The (not so) Dark Art of Performance Tuning, fro...
ITT 2015 - Kirk Pepperdine - The (not so) Dark Art of Performance Tuning, fro...ITT 2015 - Kirk Pepperdine - The (not so) Dark Art of Performance Tuning, fro...
ITT 2015 - Kirk Pepperdine - The (not so) Dark Art of Performance Tuning, fro...
 
9781337117562_ppt_ch01.pptxChapter 1An Overview of Compute.docx
9781337117562_ppt_ch01.pptxChapter 1An Overview of Compute.docx9781337117562_ppt_ch01.pptxChapter 1An Overview of Compute.docx
9781337117562_ppt_ch01.pptxChapter 1An Overview of Compute.docx
 
Virtualization and Cloud Computing
Virtualization and Cloud ComputingVirtualization and Cloud Computing
Virtualization and Cloud Computing
 
Linux Memory Management
Linux Memory ManagementLinux Memory Management
Linux Memory Management
 
Vasiliy Litvinov - Python Profiling
Vasiliy Litvinov - Python ProfilingVasiliy Litvinov - Python Profiling
Vasiliy Litvinov - Python Profiling
 
If your computer is cloud what its Operating System look like?
If your computer is cloud what its Operating System look like?If your computer is cloud what its Operating System look like?
If your computer is cloud what its Operating System look like?
 
VMware View – Storage Considerations
VMware View – Storage ConsiderationsVMware View – Storage Considerations
VMware View – Storage Considerations
 
PowerAI Deep Dive ( key points )
PowerAI Deep Dive ( key points )PowerAI Deep Dive ( key points )
PowerAI Deep Dive ( key points )
 
Processes
ProcessesProcesses
Processes
 
Get to know the browser better and write faster web apps
Get to know the browser better   and write faster web appsGet to know the browser better   and write faster web apps
Get to know the browser better and write faster web apps
 
Embedded systems in brief
Embedded systems   in briefEmbedded systems   in brief
Embedded systems in brief
 
Kairos aarohan
Kairos  aarohanKairos  aarohan
Kairos aarohan
 
Octobus technical university def
Octobus technical university   defOctobus technical university   def
Octobus technical university def
 
Andon Applications with InduSoft Web Studio
Andon Applications with InduSoft Web StudioAndon Applications with InduSoft Web Studio
Andon Applications with InduSoft Web Studio
 
Ppt on embedded system
Ppt on embedded systemPpt on embedded system
Ppt on embedded system
 
Design of Software for Embedded Systems
Design of Software for Embedded SystemsDesign of Software for Embedded Systems
Design of Software for Embedded Systems
 
Kernel Timing Management
Kernel Timing ManagementKernel Timing Management
Kernel Timing Management
 

More from Anil Kumar Pugalia

File System Modules
File System ModulesFile System Modules
File System Modules
Anil Kumar Pugalia
 
Kernel Debugging & Profiling
Kernel Debugging & ProfilingKernel Debugging & Profiling
Kernel Debugging & Profiling
Anil Kumar Pugalia
 
System Calls
System CallsSystem Calls
System Calls
Anil Kumar Pugalia
 
Introduction to Linux
Introduction to LinuxIntroduction to Linux
Introduction to Linux
Anil Kumar Pugalia
 
Playing with R L C Circuits
Playing with R L C CircuitsPlaying with R L C Circuits
Playing with R L C Circuits
Anil Kumar Pugalia
 
Audio Drivers
Audio DriversAudio Drivers
Audio Drivers
Anil Kumar Pugalia
 
Video Drivers
Video DriversVideo Drivers
Video Drivers
Anil Kumar Pugalia
 
Power of vi
Power of viPower of vi
Power of vi
Anil Kumar Pugalia
 
gcc and friends
gcc and friendsgcc and friends
gcc and friends
Anil Kumar Pugalia
 
"make" system
"make" system"make" system
"make" system
Anil Kumar Pugalia
 
Hardware Design for Software Hackers
Hardware Design for Software HackersHardware Design for Software Hackers
Hardware Design for Software Hackers
Anil Kumar Pugalia
 
RPM Building
RPM BuildingRPM Building
RPM Building
Anil Kumar Pugalia
 
Processes
ProcessesProcesses

More from Anil Kumar Pugalia (13)

File System Modules
File System ModulesFile System Modules
File System Modules
 
Kernel Debugging & Profiling
Kernel Debugging & ProfilingKernel Debugging & Profiling
Kernel Debugging & Profiling
 
System Calls
System CallsSystem Calls
System Calls
 
Introduction to Linux
Introduction to LinuxIntroduction to Linux
Introduction to Linux
 
Playing with R L C Circuits
Playing with R L C CircuitsPlaying with R L C Circuits
Playing with R L C Circuits
 
Audio Drivers
Audio DriversAudio Drivers
Audio Drivers
 
Video Drivers
Video DriversVideo Drivers
Video Drivers
 
Power of vi
Power of viPower of vi
Power of vi
 
gcc and friends
gcc and friendsgcc and friends
gcc and friends
 
"make" system
"make" system"make" system
"make" system
 
Hardware Design for Software Hackers
Hardware Design for Software HackersHardware Design for Software Hackers
Hardware Design for Software Hackers
 
RPM Building
RPM BuildingRPM Building
RPM Building
 
Processes
ProcessesProcesses
Processes
 

Recently uploaded

Principle of conventional tomography-Bibash Shahi ppt..pptx
Principle of conventional tomography-Bibash Shahi ppt..pptxPrinciple of conventional tomography-Bibash Shahi ppt..pptx
Principle of conventional tomography-Bibash Shahi ppt..pptx
BibashShahi
 
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge GraphGraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
Neo4j
 
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor Ivaniuk
"Frontline Battles with DDoS: Best practices and Lessons Learned",  Igor Ivaniuk"Frontline Battles with DDoS: Best practices and Lessons Learned",  Igor Ivaniuk
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor Ivaniuk
Fwdays
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Tosin Akinosho
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
akankshawande
 
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectorsConnector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
DianaGray10
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
Ivanti
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
Chart Kalyan
 
Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
MichaelKnudsen27
 
AppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSFAppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSF
Ajin Abraham
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
Zilliz
 
“How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-eff...
“How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-eff...“How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-eff...
“How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-eff...
Edge AI and Vision Alliance
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
Zilliz
 
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
Alex Pruden
 
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
saastr
 
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
Jason Yip
 
5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides
DanBrown980551
 
Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |
AstuteBusiness
 
Mutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented ChatbotsMutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented Chatbots
Pablo Gómez Abajo
 

Recently uploaded (20)

Principle of conventional tomography-Bibash Shahi ppt..pptx
Principle of conventional tomography-Bibash Shahi ppt..pptxPrinciple of conventional tomography-Bibash Shahi ppt..pptx
Principle of conventional tomography-Bibash Shahi ppt..pptx
 
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge GraphGraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
 
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor Ivaniuk
"Frontline Battles with DDoS: Best practices and Lessons Learned",  Igor Ivaniuk"Frontline Battles with DDoS: Best practices and Lessons Learned",  Igor Ivaniuk
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor Ivaniuk
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
 
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectorsConnector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
 
Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
 
AppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSFAppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSF
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
 
“How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-eff...
“How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-eff...“How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-eff...
“How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-eff...
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
 
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
 
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
 
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
 
5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides
 
Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |
 
Mutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented ChatbotsMutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented Chatbots
 

Embedded Software Design

  • 1. © 2010-15 SysPlay Workshops <workshop@sysplay.in> All Rights Reserved. Embedded Software Design
  • 2. 2© 2010-15 SysPlay Workshops <workshop@sysplay.in> All Rights Reserved. What to Expect? Functionality Design & Programming Design for Fault Tolerance Hardware aware Design & Programming Design & Programming for Performance Design for Maintainability
  • 3. 3© 2010-15 SysPlay Workshops <workshop@sysplay.in> All Rights Reserved. Special about Embedded Software Full Featured with Smaller Binary Size Seamless Hardware Interaction with High Fault Tolerance Time Tolerant (Running forever) Good Performance with Limited Processor Power Capable of Remote Testing, Debugging, Fixing In short, it is Optimized, Robust, Continuously Performing, Maintainable
  • 4. 4© 2010-15 SysPlay Workshops <workshop@sysplay.in> All Rights Reserved. W's of Embedded Software Design Do NOT start coding, Design First Design means “Data Structures, Interfaces & Algorithms” If comfortable, put down “C” structs and “C” function prototypes, And Design “C” pseudo code using them How to Proceed? Understand the overall requirements Break them into smaller manageable/thinkable chunks Think & Propose designs for each one of them To meet all the requirements If some requirement(s) are not met Tweak / Modify the designs to meet all of them Because trying to meet them later may turn out to be costly In terms of both time & effort
  • 5. 5© 2010-15 SysPlay Workshops <workshop@sysplay.in> All Rights Reserved. Functional Design & Programming
  • 6. 6© 2010-15 SysPlay Workshops <workshop@sysplay.in> All Rights Reserved. Functional Design Approach Preferred Design Approach → Top-down Design interfaces to meet the customer requirement Implement interfaces compatible with the OS i/fs, Or So-called system calls in Linux If any interface changes, review the complete path Advantages Reduce trial and error coding Reduce bugs & hence reduce debugging efforts More productive time for better designs
  • 7. 7© 2010-15 SysPlay Workshops <workshop@sysplay.in> All Rights Reserved. Functional Programming Tidbits Processes vs Threads Limited Memory vs Synchronization Extras Independent Units vs Event Driven Programs Security vs Inherent Communication Process Usages Multi-processors and Multi-tasking Minimal Process Inter-communication Communication using IPCs Native Implementation
  • 8. 8© 2010-15 SysPlay Workshops <workshop@sysplay.in> All Rights Reserved. Functional Programming Tidbits Threads Usages Multi-processors and Parallel Programming Hand-in-hand Blocking & Execution Code & Libraries need to be re-entrant & thread-safe Implementation using pthreads library Model Cases Delegation or Manager-Worker (e.g. Web Server) Pipeline (e.g. Events in a GUI) Peer (e.g. Multiple I/O Processing) Producer-Consumer (e.g. Manufacturing Unit)
  • 9. 9© 2010-15 SysPlay Workshops <workshop@sysplay.in> All Rights Reserved. Functional Programming Tidbits Schedulers & Priorities Normal vs Real Time Nice vs Priority Time Slicing vs Starvation Synchronization in Priority based Scheduling Deadlock Avoidance (Banker's Algorithm) Deadlock Prevention (Conditional Variables)) Priority Inversion Resolution Techniques Priority Inheritance, Priority Ceiling, Priority Protect
  • 10. 10© 2010-15 SysPlay Workshops <workshop@sysplay.in> All Rights Reserved. Functional Programming Tidbits Signals vs Polling Asynchronous vs Synchronous Racing vs Blocking Timers vs Loops Interrupts vs Signals Kernel Space vs User Space Hardware vs Software
  • 11. 11© 2010-15 SysPlay Workshops <workshop@sysplay.in> All Rights Reserved. Functional Programming Tidbits Sockets Inter-system communication Control, Data Interface to Multiple Devices Interface to Multiple Channels / Functionalities On a Device Model case Client-Server (e.g. for debugging, logging, ...)
  • 12. 12© 2010-15 SysPlay Workshops <workshop@sysplay.in> All Rights Reserved. Extra Miles for Embedded Software Even after a good functional design, including the functional programming tidbits, there are many other design & programming aspects, which need to be taken care for Embedded Software Can be learnt in two ways The hard way by experiencing yourself, Or By applying from others learnings So, here goes some from my learnings
  • 13. 13© 2010-15 SysPlay Workshops <workshop@sysplay.in> All Rights Reserved. Design for Fault Tolerance
  • 14. 14© 2010-15 SysPlay Workshops <workshop@sysplay.in> All Rights Reserved. Design for Fault Tolerance Design for Uninterrupted Execution Avoid race conditions w/ proper synchronization Avoid memory leaks w/ memory usage balancing Verify with memory profilers Handle all error cases, extreme conditions default for a switch, else for an if, ... Avoid infinite loops. Rather put timeouts Re-organize code to avoid / prevent deadlocks
  • 15. 15© 2010-15 SysPlay Workshops <workshop@sysplay.in> All Rights Reserved. Design for Fault Tolerance Design for Crash Recovery By restarting the crucial flows Example: The Main Task Design for Hang Recovery With watchdogs Design for Power Failures With brown-out detections With power-down saves
  • 16. 16© 2010-15 SysPlay Workshops <workshop@sysplay.in> All Rights Reserved. Hardware aware Design & Programming
  • 17. 17© 2010-15 SysPlay Workshops <workshop@sysplay.in> All Rights Reserved. Design for Hardware Speed Mismatch Hardware (Faster / Slower) Interact using interrupt-mechanism Time-sensitive Hardware Interaction Specific hardware protocols like I2S, SPI, ... Use precise (busy-wait) delays Non-responsive Hardware Use timeouts rather than unconditional accesses Hardware with Irregular/Incorrect Responses Do proper error handling for the extreme / abnormal / invalid cases Hardware Delays (like Debouncing, Rise Time, ...) Use appropriate Timers &/or Delays to offset them
  • 18. 18© 2010-15 SysPlay Workshops <workshop@sysplay.in> All Rights Reserved. Programming for Hardware Passive vs Active Devices (Memory vs Device) Code Optimization vs Change outside Program Use programming specific keywords, like volatile Memory Caching at various levels May need to bypass/disable/flush for addr-mapped devices Using architecture specific instructions / APIs CPU Optimizations (Re-ordering of CPU instructions) May need to be locally disabled for correct device operations Using architecture specific barriers
  • 19. 19© 2010-15 SysPlay Workshops <workshop@sysplay.in> All Rights Reserved. Programming for Hardware Virtual Memory Accesses for DMA May need to be translated to Physical Addresses Cache consistency needs to be taken care of Using OS specific lookup APIs Register Specific Programming May need specific programming sequences As per the device datasheet Examples Clear-on-write, Multiple writes Indirect Access, Protected Access
  • 20. 20© 2010-15 SysPlay Workshops <workshop@sysplay.in> All Rights Reserved. Design & Programming for Performance
  • 21. 21© 2010-15 SysPlay Workshops <workshop@sysplay.in> All Rights Reserved. Design for Performance IPC vs Synchronization Multi-process (Context Switching) vs Multi-threaded (Same Context) Communication vs Synchronization Overheads Schedulers & Priorities Normal vs Real Time Nice vs Priority Yielding vs Busy Wait Latency vs Precision Interrupt / Signal Usage Higher Priority and Asynchronous Attention But too many / missing them may invalidate assumptions
  • 22. 22© 2010-15 SysPlay Workshops <workshop@sysplay.in> All Rights Reserved. Design for Performance Swap Space May reduce individual task performance Though, may improve overall performance By letting many more tasks run Provided by swap partition or file Usage could be controlled by adjusting swappiness Physical Memory Minimizing memory allocation / deallocation (Secondary) Storage Usage & Accesses Minimize / Eliminate for best consistent performance Possibly by pre-loading into memory or using mmap
  • 23. 23© 2010-15 SysPlay Workshops <workshop@sysplay.in> All Rights Reserved. Design for Real Time Performance Have very few Real Time Processes Keep the RT Applications Short & Efficient Do not do heavy duty operations Like Memory Allocation, ... If essential, move to Initialization Sections Testability for the RT working of the other RT Apps Testability of the performance of the needed OS service If any RT App has priority higher than the OS Service Testability for other needed non-RT Apps' performance
  • 24. 24© 2010-15 SysPlay Workshops <workshop@sysplay.in> All Rights Reserved. Programming for Performance System Calls vs Library Functions Direct vs Indirect w/ Internal Overheads Single Buffered vs Multi-buffered Example: File Operations (read / write / ... vs fread / fwrite / ...) Buffer Caching vs Direct Access Repeated Accesses vs One Time Access Possible Thrashing vs Uniform Slow Performance Controlled using O_DIRECT Code Optimization Techniques Compiler Optimizations for Performance, esp by removing redundant code Reduce/Remove Code Bottlenecks detected using Profilers Placing often used variables into registers, but may affect other computations Making functions inline, but may increase code size Using likely / unlikely constructs for code placement to minimize cache misses
  • 25. 25© 2010-15 SysPlay Workshops <workshop@sysplay.in> All Rights Reserved. Design for Maintainability
  • 26. 26© 2010-15 SysPlay Workshops <workshop@sysplay.in> All Rights Reserved. Design for Maintenance Embedded Systems are Highly Constrained Critically Operating In case of issues, need to be resolved urgently And, most of the times remotely at customer site Demands for an excellent debugging framework For the overall embedded system Be it Kernel Space or User Space And, ways to fix problems remotely
  • 27. 27© 2010-15 SysPlay Workshops <workshop@sysplay.in> All Rights Reserved. Debugability & Fixability Provide enough debugging support through logging hooks May keep the minimal light weight support enabled, by default (Remote) Support for further enabling / disabling the logs Multiple log levels depending on the criticality of the situation (Remote) Access to the Log from the Embedded System Logs & Dumps should be from the various parts of the System Kernel, Startup, Applications, … Could be centralized &/or de-centralized depending on the ES At the least, the following Activity Logs should be designed & coded Login, Network, Reboots, Device Access, ... And last but not least, Automatic / Remote mechanisms for Update / Patch should be implemented
  • 28. 28© 2010-15 SysPlay Workshops <workshop@sysplay.in> All Rights Reserved. What all have we learnt? Functionality Design & Programming Design for Fault Tolerance Hardware aware Design & Programming Design & Programming for Performance Design for Maintainability
  • 29. 29© 2010-15 SysPlay Workshops <workshop@sysplay.in> All Rights Reserved. Any Queries?