SlideShare a Scribd company logo
Embedded Systems Overview
- Sameer Rapate
AGENDA OF DISCUSSION
• What is an Embedded System
• Embedded Systems Market (Current/Futuristic &
Career wise)
• Types of Embedded Systems
• Embedded Hardware
• Embedded Software
• Embedded OS and Related Topic
• RTOS Brief
• Embedded Software Development Brief
• If possible a demo with actual Hardware
WHAT IS AN EMBEDDED SYSTEM?
What is an Embedded System
Embedded System Market
Embedded
Market
Consumer
Electronics
Automotiv
e
Industrial
Automatio
n
Medical
AerospaceDefense
Communic
ations (IoT)
Robotics
Office
Automatio
n
98
2 Embedded
Systems
Desktop/Laptop
based System
Embedded Systems rule the market
% Presence of Embedded System Domain wise presence
What is an Embedded System
• Original Definition
– System which is supposed to be doing a dedicated or a
fixed functionality
– Part of bigger electrical or mechanical system (ex:
refrigerator display control, car dashboard)
– May or may not have direct user interface
• Updated Definition (My understanding)
• System which can do single to multiple functions based on
the availability of resources
• Can be part of bigger system or may independently exist
(mobile phones, WiFi Routers)
• May or may not have user interface
Perceived Constraints of Embedded
System
• Memory Footprint
• Real time behavior
– Hard requirement
• Example: Car Breaking System
– Soft requirement
• Example: Audio System
• Power
• Cost
– Reducing the bill of materials on System design
• Time to Market
– For the success of the product
TYPES OF EMBEDDED SYSTEM
Types of Embedded Systems
• Simple Systems
Ex: Simple digital watch, AC
remote control unit, Washing
machine motor control unit
• Medium Complexity
Systems
Ex: Home WiFi Router, Set-top
boxes, PoS, Music players
• Medium ~High
Complexity Systems
Ex: Smart Phones, Video gaming
gadgets, High-End Digital Cameras
etc.
Classification done on the
basis of
• Functionality (or multi-
functionality) expected
out of these systems
• Performance requirement
from these systems
• How many and how much
powerful hardware
resources do they employ
• Complexity of Software
running on it
Simple Embedded Systems
• Simple Systems
– Mostly performing dedicated functionality or a single
functionality
– Low on Hardware resources (not only in terms of
number but also in terms of capacity of resource)
– Running simple software mostly without an OS
– Microcontroller based systems
– Generally cheaper in terms of cost
Medium Complex Embedded Systems
• Medium Complexity Systems
– Performing more than one functionality
– Computing hardware resources employed are medium
– Running software with minimal OS or no OS. May
employ an RTOS
– Microcontroller/Microprocessor based system
– May employ an SoC based architecture
Medium-to-High Complex Embedded
Systems
• Medium-to-High Complexity Systems
– Performing a large number of functionalities
– Employs high number of computing hardware
resources. Also the resource configuration is on the
higher side
– Running complex software by employing GPOS or
RTOS, Software Stacks (ex: TCP/IP) and library
framework
– Usually Microprocessor based system or may employ
SoC based architecture
EMBEDDED SYSTEM HARDWARE
Embedded Systems Hardware
What does Embedded System Hardware consist of
• CPU (Or Microprocessor, Microcontroller, Core etc)
• Peripherals
– Chip Based Peripherals
– External Peripherals
• Memory (Must peripheral)
– Internal Memory
– External Memory
• Bus
– Internal BUS
– External BUS
Embedded Systems Hardware
• Architecture (ex: ARM v7)
– Family of processor designs in
architecture reference manual
• Micro Architecture (ex: ARM Cortex A9)
– Visible behavior of the architecture
– Example: Number of pipeline stages
• Processor (TI, Toshiba, Freescale)
– Individual implementation of Micro
Architecture
• Core (Single to Many)
– Logical unit in multi core processor
• SoC (TI Sitara, Toshiba Applite TZ2100)
– One or more processors with memory and
peripherals
• Board (Arduino, Beaglebone,
RBTZ2100)
– Complete hardware of the system with SoC,
memory and external bus bus based
peripherals
Board
SoC
Core
Processor
Micro
Arch
Arch
itect
ure
Schematic of ARM based
Popular HW Board for Prototyping
Arduino Board
Beaglebone
Black Board
Actual Product Board -Hardware
Toshiba ApP-Lite TZ2100 - https://toshiba.semicon-storage.com/ap-en/product/assp/applite/tz2100.html
Medium Complexity Embedded
Systems Hardware
Embedded Systems Hardware
EMBEDDED SYSTEM SOFTWARE
Embedded Systems Software
• What is a Embedded System Software
– Software which interacts with the hardware
– Perform the user expected functionality within the
performance requirement
– Based on functional complexity and performance expectation,
embedded software may be layered
Hardware
Embedded Software
User
Hardware
User
LaLayer -1 Embedded Software
aLayer -2 Embedded Software
aLayer -n Embedded Software
Embedded System Software Example -1
• Software Needed
1. Software to interact with
ADC chip and SENSOR
2. Software to interact with
DISPLAY/DISPLAY
CONTROLLER
3. Software to store read
sensor data into memory
(SRAM)
4. Software to compute the
count of temp/pressure
reached particular
5. Software to convert temp
from Celsius to
Fahrenheit
• Simple Use Case:
– Read the Data from Temperature/Pressure Sensor by button press on display and show the measured
data on a simple display
– Compute how many times temperature/pressure particular value in a day.
– Convert temperature from Celsius to Fahrenheit
CPU
ADC
SRAM
DISP
CONTROLLER
CLOCK
SENSOR
DISPLAY &
USER
INPUT
PHYSICAL INPUT
(EX: TEMP,
PRESSURE ETC
Embedded Systems Software Example -1
• Software Layering for this
example
Hardware
User
LaLayer -1 (Application Software)
aLayer -2 ( Device Driver Software)
• Hardware Interaction
software (or Device Driver)
1. Software to interact with
ADC chip and SENSOR
2. Software to interact with
DISPLAY/DISPLAY
CONTROLLER
3. Software to store read
sensor data into memory
(SRAM)
• Software Functionality
expected from User (or
Application Software)
1. Software to compute the
count of temp/pressure
reached particular value
2. Software to convert temp
from Celsius to
Fahrenheit
Embedded System Software Example -2
• Complex Use Case:
– All the functionalities done by Simple use case done earlier
– Update the temperature and pressure data above to a network server based on regular interval
– Store regular interval measured data to local storage device
– Have a USB connection to this device which can read the stored data from storage device
CPU
ADC
SRAM
DISP & BTN
CONTROLLER
SENSOR
Display &
User Input
PHYSICAL INPUT
(EX: TEMP,
PRESSURE ETC
USB
Controller
Network
Controller
Flash
Controller
USB Port
PHY CHIP/ETH
Port
Flash
Memory
CLOCK
Timer
RAM
Controller
RAM
Memory
INT
controller
Internal
Bus
External
Bus
PARALLEL BUS
SERIAL BUS (USB)
PARALLEL BUS
SERIAL BUS (SPI)
SERIAL BUS (SPI)
SoC
BOARD
NETWORK
SERVER
USB HOST
Embedded System Software Example -2
• Hardware Needed
1. Support for network based data
transfer - Network Card/Phy
Chip/ETH Port & Network
controller
2. Support for USB based data
transfer and storage - USB
Controller/USB Port
3. Support for external RAM to
perform memory based operations
- RAM controller
4. Support for storing data as well as
OS image - Flash Device/Flash
controller
5. Support for time counting
operations - Timer Chip/ETH
6. Support for handling event based
requests - Interrupt controller
7. Software to interact with ADC chip
and SENSOR
• Software Needed
1. Software to interact with hardware
• DISPLAY/BTN CONTROLLER
• Network Card/Phy Chip/ETH Port & Network controller
• USB Controller/USB Port
• RAM controller
• Flash Device/Flash controller
2. Software to manage multi-tasking, memory mgmt, file &
device mgmt, network mgmt etc.
3. Software libraries to manage repeated
functionalities/system call interface, network stack
(TCP/IP) etc.
4. Software to do the actual user required application
handling
• Task to take input from the user and show on the display
• Task for computing the count of temp/pressure after it
crossed particular value. Convert temp from Celsius to
Fahrenheit
• Task to intermittently read sensor data and store into flash
on regular interval
• Task to intermittently read sensor data and send it to
Network server
• Task to reading the sensor data from flash and transfer to
USB device
As the usecase starts becoming complex, hardware and software
requirement in terms of numbers as well as capacity increase
Embedded Systems Software Example -2
Software Layering for this example
Hardware
User
LaLayer -1 (Application Software)
LaLayer -2 (Libraries & System Call Interface)
aLayer -3 ( OS Layer)
aLayer -4 ( Device Driver Layer (Part of OS))
Software libraries to manage repeated
functionalities/system call interface, network
stack (TCP/IP) etc.
Software for actual user required application handling
• Task to take input from the user and show on the display
• Task for computing the count of temp/pressure after it crossed
particular value. Convert temp from Celsius to Fahrenheit
• Task to intermittently read sensor data and store into flash on
regular interval
• Task to intermittently read sensor data and send it to Network
server
• Task to reading the sensor data from flash and transfer to USB
device
Software to manage multi-tasking, memory
mgmt, file & device mgmt, network mgmt etc.
Software to interact with hardware
• DISPLAY/BTN CONTROLLER
• Network Card/Phy Chip/ETH Port & Network
controller
• USB Controller/USB Port
• RAM controller
• Flash Device/Flash controller
OS (OPERATING SYSTEM) AND
RELATED TOPICS
OS / Device Driver Layer
aLayer -3 ( OS Layer)
aLayer -4 ( Device Driver
Layer (Part of OS))
At a broad level you can classify OS into two categories
GPOS General Purpose Operating System
- Generally used in Medium-High Complex System
- Predictability of response time is not very critical
- Deployed in Systems where underlying HW
configuration is on high
Ex: Windows, Linux (or Embedded Linux), MacOS
RTOS Real Time Operating System
- Generally used in Simple-Medium Complex Systems
- Predictability of response time is very critical
- Deployed in Systems where underlying HW
configuration is on low/medium
Ex: FreeRTOS, uITRON based OS (uC3, TOPPERS),
VxWorks
Typical Linux
Software Stack
OS Jargon
OS
Process
es
Threads
IPC
Task
States
Device
Drivers
Any
Many
More…
Latency
Semaph
ores/M
utexes
Signal
IO
Handlin
g
Devices
/Files
Interrup
ts/ISR
OS Jargon
OS
Process
es
Threads
IPC
Task
States
Device
Drivers
Any
Many
More…
Latency
Semaph
ores/M
utexes
Signal
IO
Handlin
g
Devices
/Files
Interrup
ts/ISR
Process
• Process – a program in execution; process execution must progress in
sequential fashion
• Textbook uses the terms process, tasks and jobs almost interchangeably
• Multiple parts
– The program code, also called text section
– Current activity including program counter, processor registers
– Stack containing temporary data
• Function parameters, return addresses, local variables
– Data section containing global variables
– Heap containing memory dynamically allocated during run time
• Program is passive entity stored on disk (executable file), process is active
– Program becomes process when executable file loaded into memory
• Execution of program started via GUI mouse clicks, command line entry of its
name, etc
• One program can be several processes
– Consider multiple users executing the same program
Process States
• As a process executes, it changes state
– new: The process is being created
– running: Instructions are being executed
– waiting: The process is waiting for some event
to occur
– ready: The process is waiting to be assigned to
a processor
– terminated: The process has finished execution
IPC
• Processes within a system may be independent or
cooperating
• Cooperating process can affect or be affected by other
processes, including sharing data
• Reasons for cooperating processes:
– Information sharing
– Computation speedup
– Modularity
– Convenience
• Cooperating processes need interprocess communication
(IPC)
• Two models of IPC
– Shared memory
– Message passing
IPC
(a) Message passing. (b) shared memory.
RTOS BRIEF
RTOS and Types of RTOS
• RTOS is a pre-emptive
multitasking operating
system intended for real-
time applications
• Predictable OS timing
behavior
• Able to determine task’s
completion time
• A system of priority
inheritance has to exist
• Guarantees task
completion at a set
deadline.
• Hard Real-Time system
– A hard real-time system guarantees that
real-time tasks be completed within
their required deadlines
– Failure to meet a single deadline may
lead to a critical system failure
– Examples: air traffic control , vehicle
subsystems control, medical systems
• Soft Real-Time system
– The soft real-time definition allows for
frequently missed deadlines
– If the system fails to meet the deadline,
possibly more than once ,the system is
not considered to have failed
– Example : Multimedia streaming , Video
games
Task Management in RTOS
• Tasks are implemented
as threads in RTOS
• Have timing constraints
for tasks
• Each task a triplet:
(execution time, period,
deadline)
• Can be initiated any
time during the period
What are interrupts?
• In systems programming, an interrupt is a signal to the processor.
• It can be emitted either by hardware or software indicating an event that needs
immediate attention.
Hardware
Software
(Exception/
Trap)
Software
(Instruction
set)
Interrupt
Request(IRQ)
sent from
device to
processor.
Exception/Tr
ap sent from
processor to
processor,
caused by an
exceptional
condition in
the
processor
itself.
A special
instruction in
the instruction
set which
causes an
interrupt when
it is executed.
Ex: Keyboard
and many
other
peripheral
device
Ex: Division
by zero
Ex: Usually as a
system call
from
Application to
Kernel
Interrupt Latency and Why it is
Important for RTOS
• Interrupt latency refers primarily to the software interrupt
handling latencies.
• In other words, the amount of time that elapses from the
time that an external interrupt arrives at the processor until
the time that the interrupt processing begins.
• One of the most important aspects of kernel real-time
performance is the ability to service an interrupt request
(IRQ) within a specified amount of time.
EMBEDDED SOFTWARE
DEVELOPMENT
Embedded Systems Software
Development Approach
• Target System:
Actual
Embedded
System. System
on which you
will run software
• Host System:
System on which
you will design,
develop and
compile the
source code.
Host Embedded System Software Development
Environment
Beaglebone Board Demo (if possible)
Useful Resources
• Embedded Linux
https://bootlin.com/docs/
• Online Training Courses
– Udemy (https://www.udemy.com)
– Coursera (https://www.coursera.org)

More Related Content

What's hot

Split lock
Split lockSplit lock
Split lock
yang peng
 
LCU14 500 ARM Trusted Firmware
LCU14 500 ARM Trusted FirmwareLCU14 500 ARM Trusted Firmware
LCU14 500 ARM Trusted Firmware
Linaro
 
SoC based smartphone processors
SoC based smartphone processorsSoC based smartphone processors
SoC based smartphone processors
Ankush Kumar
 
Nvidia cuda tutorial_no_nda_apr08
Nvidia cuda tutorial_no_nda_apr08Nvidia cuda tutorial_no_nda_apr08
Nvidia cuda tutorial_no_nda_apr08Angela Mendoza M.
 
Embedded system custom single purpose processors
Embedded system custom single  purpose processorsEmbedded system custom single  purpose processors
Embedded system custom single purpose processorsAiswaryadevi Jaganmohan
 
Nand flash memory
Nand flash memoryNand flash memory
Nand flash memory
Mohamed Fadel Buffon
 
Understanding DPDK
Understanding DPDKUnderstanding DPDK
Understanding DPDK
Denys Haryachyy
 
I2C Protocol
I2C ProtocolI2C Protocol
I2C Protocol
Sudhanshu Janwadkar
 
Dynamic Voltage and Frequency Scaling
Dynamic Voltage and Frequency ScalingDynamic Voltage and Frequency Scaling
Dynamic Voltage and Frequency Scaling
shubham ghimire
 
RTOS Basic Concepts
RTOS Basic ConceptsRTOS Basic Concepts
RTOS Basic Concepts
Pantech ProLabs India Pvt Ltd
 
SoC: System On Chip
SoC: System On ChipSoC: System On Chip
SoC: System On Chip
Santosh Verma
 
System-on-Chip
System-on-ChipSystem-on-Chip
System-on-Chip
Lars Jacobs
 
Real time operating systems (rtos) concepts 9
Real time operating systems (rtos) concepts 9Real time operating systems (rtos) concepts 9
Real time operating systems (rtos) concepts 9
Abu Bakr Ramadan
 
EMBEDDED SYSTEM DESIGN ARM architecture support for operating system by sanj...
 EMBEDDED SYSTEM DESIGN ARM architecture support for operating system by sanj... EMBEDDED SYSTEM DESIGN ARM architecture support for operating system by sanj...
EMBEDDED SYSTEM DESIGN ARM architecture support for operating system by sanj...
D Y PATIL COLLEGE OF ENGINEERING PUNE
 

What's hot (20)

Split lock
Split lockSplit lock
Split lock
 
Introduction to embedded systems
Introduction to embedded systemsIntroduction to embedded systems
Introduction to embedded systems
 
LCU14 500 ARM Trusted Firmware
LCU14 500 ARM Trusted FirmwareLCU14 500 ARM Trusted Firmware
LCU14 500 ARM Trusted Firmware
 
SoC based smartphone processors
SoC based smartphone processorsSoC based smartphone processors
SoC based smartphone processors
 
Nvidia cuda tutorial_no_nda_apr08
Nvidia cuda tutorial_no_nda_apr08Nvidia cuda tutorial_no_nda_apr08
Nvidia cuda tutorial_no_nda_apr08
 
Embedded system custom single purpose processors
Embedded system custom single  purpose processorsEmbedded system custom single  purpose processors
Embedded system custom single purpose processors
 
Nand flash memory
Nand flash memoryNand flash memory
Nand flash memory
 
Understanding DPDK
Understanding DPDKUnderstanding DPDK
Understanding DPDK
 
I2C Protocol
I2C ProtocolI2C Protocol
I2C Protocol
 
Dynamic Voltage and Frequency Scaling
Dynamic Voltage and Frequency ScalingDynamic Voltage and Frequency Scaling
Dynamic Voltage and Frequency Scaling
 
Introduction to stm32-part1
Introduction to stm32-part1Introduction to stm32-part1
Introduction to stm32-part1
 
Introduction to stm32-part2
Introduction to stm32-part2Introduction to stm32-part2
Introduction to stm32-part2
 
RTOS Basic Concepts
RTOS Basic ConceptsRTOS Basic Concepts
RTOS Basic Concepts
 
SoC: System On Chip
SoC: System On ChipSoC: System On Chip
SoC: System On Chip
 
Risc
RiscRisc
Risc
 
System-on-Chip
System-on-ChipSystem-on-Chip
System-on-Chip
 
Real time operating systems (rtos) concepts 9
Real time operating systems (rtos) concepts 9Real time operating systems (rtos) concepts 9
Real time operating systems (rtos) concepts 9
 
SOC design
SOC design SOC design
SOC design
 
EMBEDDED SYSTEM DESIGN ARM architecture support for operating system by sanj...
 EMBEDDED SYSTEM DESIGN ARM architecture support for operating system by sanj... EMBEDDED SYSTEM DESIGN ARM architecture support for operating system by sanj...
EMBEDDED SYSTEM DESIGN ARM architecture support for operating system by sanj...
 
Cuda Architecture
Cuda ArchitectureCuda Architecture
Cuda Architecture
 

Similar to Embedded Systems Overview

Introduction to embedded systems
Introduction to embedded systemsIntroduction to embedded systems
Introduction to embedded systems
Apurva Zope
 
Introduction to embedded System.pptx
Introduction to embedded System.pptxIntroduction to embedded System.pptx
Introduction to embedded System.pptx
Pratik Gohel
 
EE8691 – EMBEDDED SYSTEMS.pptx
EE8691 – EMBEDDED SYSTEMS.pptxEE8691 – EMBEDDED SYSTEMS.pptx
EE8691 – EMBEDDED SYSTEMS.pptx
RockFellerSinghRusse
 
Embedded system and its platforms
Embedded system and its platformsEmbedded system and its platforms
Embedded system and its platforms
Mrunal Deshkar
 
EMBEDDED SYSTEMS
EMBEDDED SYSTEMSEMBEDDED SYSTEMS
EMBEDDED SYSTEMS
karthikas82
 
What is operating system
What is operating systemWhat is operating system
What is operating system
Suvithak
 
Introduction to computer systems. Architecture of computer systems.
Introduction to computer systems. Architecture of computer systems.Introduction to computer systems. Architecture of computer systems.
Introduction to computer systems. Architecture of computer systems.
TazhikDukenov
 
Computer Basics
Computer BasicsComputer Basics
Computer Basics
Aditya Singh
 
Mces MOD 1.pptx
Mces MOD 1.pptxMces MOD 1.pptx
Mces MOD 1.pptx
RadhaC10
 
Introduction to embedded system
Introduction to embedded systemIntroduction to embedded system
Introduction to embedded system
ajitsaraf123
 
13086000.ppt
13086000.ppt13086000.ppt
13086000.ppt
yibe5
 
Embedded systems_upded1.ppt
Embedded systems_upded1.pptEmbedded systems_upded1.ppt
Embedded systems_upded1.ppt
AnilKumarAssttProffE
 
Introduction to embedded system
Introduction to embedded systemIntroduction to embedded system
Introduction to embedded system
Revathi Subramaniam
 
Lecture 02 hardwares
Lecture 02 hardwaresLecture 02 hardwares
IGCSE_ICT_Chapter 1.pptx
IGCSE_ICT_Chapter 1.pptxIGCSE_ICT_Chapter 1.pptx
IGCSE_ICT_Chapter 1.pptx
FatimaWaheed30
 
CSS L04 - Integral Parts of the Computer System
CSS L04 - Integral Parts of the Computer SystemCSS L04 - Integral Parts of the Computer System
CSS L04 - Integral Parts of the Computer System
Marvin Bronoso
 
Embedded systems ppt
Embedded systems pptEmbedded systems ppt
Embedded systems ppt
Ashok Mutyala
 
PC hardware components ppt slide_week2.ppt
PC hardware components ppt slide_week2.pptPC hardware components ppt slide_week2.ppt
PC hardware components ppt slide_week2.ppt
vimala elumalai
 
Ch1 introduction
Ch1   introductionCh1   introduction
Ch1 introduction
Welly Dian Astika
 

Similar to Embedded Systems Overview (20)

Introduction to embedded systems
Introduction to embedded systemsIntroduction to embedded systems
Introduction to embedded systems
 
Introduction to embedded System.pptx
Introduction to embedded System.pptxIntroduction to embedded System.pptx
Introduction to embedded System.pptx
 
EE8691 – EMBEDDED SYSTEMS.pptx
EE8691 – EMBEDDED SYSTEMS.pptxEE8691 – EMBEDDED SYSTEMS.pptx
EE8691 – EMBEDDED SYSTEMS.pptx
 
Embedded system and its platforms
Embedded system and its platformsEmbedded system and its platforms
Embedded system and its platforms
 
EMBEDDED SYSTEMS
EMBEDDED SYSTEMSEMBEDDED SYSTEMS
EMBEDDED SYSTEMS
 
What is operating system
What is operating systemWhat is operating system
What is operating system
 
Introduction to computer systems. Architecture of computer systems.
Introduction to computer systems. Architecture of computer systems.Introduction to computer systems. Architecture of computer systems.
Introduction to computer systems. Architecture of computer systems.
 
Computer Basics
Computer BasicsComputer Basics
Computer Basics
 
Mces MOD 1.pptx
Mces MOD 1.pptxMces MOD 1.pptx
Mces MOD 1.pptx
 
Introduction to embedded system
Introduction to embedded systemIntroduction to embedded system
Introduction to embedded system
 
13086000.ppt
13086000.ppt13086000.ppt
13086000.ppt
 
Embedded systems_upded1.ppt
Embedded systems_upded1.pptEmbedded systems_upded1.ppt
Embedded systems_upded1.ppt
 
Introduction to embedded system
Introduction to embedded systemIntroduction to embedded system
Introduction to embedded system
 
Lecture 02 hardwares
Lecture 02 hardwaresLecture 02 hardwares
Lecture 02 hardwares
 
IGCSE_ICT_Chapter 1.pptx
IGCSE_ICT_Chapter 1.pptxIGCSE_ICT_Chapter 1.pptx
IGCSE_ICT_Chapter 1.pptx
 
Ch 2
Ch 2Ch 2
Ch 2
 
CSS L04 - Integral Parts of the Computer System
CSS L04 - Integral Parts of the Computer SystemCSS L04 - Integral Parts of the Computer System
CSS L04 - Integral Parts of the Computer System
 
Embedded systems ppt
Embedded systems pptEmbedded systems ppt
Embedded systems ppt
 
PC hardware components ppt slide_week2.ppt
PC hardware components ppt slide_week2.pptPC hardware components ppt slide_week2.ppt
PC hardware components ppt slide_week2.ppt
 
Ch1 introduction
Ch1   introductionCh1   introduction
Ch1 introduction
 

Recently uploaded

Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Nexer Digital
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
Ralf Eggert
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
Peter Spielvogel
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
Pierluigi Pugliese
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems S.M.S.A.
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 

Recently uploaded (20)

Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 

Embedded Systems Overview

  • 2. AGENDA OF DISCUSSION • What is an Embedded System • Embedded Systems Market (Current/Futuristic & Career wise) • Types of Embedded Systems • Embedded Hardware • Embedded Software • Embedded OS and Related Topic • RTOS Brief • Embedded Software Development Brief • If possible a demo with actual Hardware
  • 3. WHAT IS AN EMBEDDED SYSTEM?
  • 4. What is an Embedded System
  • 5. Embedded System Market Embedded Market Consumer Electronics Automotiv e Industrial Automatio n Medical AerospaceDefense Communic ations (IoT) Robotics Office Automatio n 98 2 Embedded Systems Desktop/Laptop based System Embedded Systems rule the market % Presence of Embedded System Domain wise presence
  • 6. What is an Embedded System • Original Definition – System which is supposed to be doing a dedicated or a fixed functionality – Part of bigger electrical or mechanical system (ex: refrigerator display control, car dashboard) – May or may not have direct user interface • Updated Definition (My understanding) • System which can do single to multiple functions based on the availability of resources • Can be part of bigger system or may independently exist (mobile phones, WiFi Routers) • May or may not have user interface
  • 7. Perceived Constraints of Embedded System • Memory Footprint • Real time behavior – Hard requirement • Example: Car Breaking System – Soft requirement • Example: Audio System • Power • Cost – Reducing the bill of materials on System design • Time to Market – For the success of the product
  • 9. Types of Embedded Systems • Simple Systems Ex: Simple digital watch, AC remote control unit, Washing machine motor control unit • Medium Complexity Systems Ex: Home WiFi Router, Set-top boxes, PoS, Music players • Medium ~High Complexity Systems Ex: Smart Phones, Video gaming gadgets, High-End Digital Cameras etc. Classification done on the basis of • Functionality (or multi- functionality) expected out of these systems • Performance requirement from these systems • How many and how much powerful hardware resources do they employ • Complexity of Software running on it
  • 10. Simple Embedded Systems • Simple Systems – Mostly performing dedicated functionality or a single functionality – Low on Hardware resources (not only in terms of number but also in terms of capacity of resource) – Running simple software mostly without an OS – Microcontroller based systems – Generally cheaper in terms of cost
  • 11. Medium Complex Embedded Systems • Medium Complexity Systems – Performing more than one functionality – Computing hardware resources employed are medium – Running software with minimal OS or no OS. May employ an RTOS – Microcontroller/Microprocessor based system – May employ an SoC based architecture
  • 12. Medium-to-High Complex Embedded Systems • Medium-to-High Complexity Systems – Performing a large number of functionalities – Employs high number of computing hardware resources. Also the resource configuration is on the higher side – Running complex software by employing GPOS or RTOS, Software Stacks (ex: TCP/IP) and library framework – Usually Microprocessor based system or may employ SoC based architecture
  • 14. Embedded Systems Hardware What does Embedded System Hardware consist of • CPU (Or Microprocessor, Microcontroller, Core etc) • Peripherals – Chip Based Peripherals – External Peripherals • Memory (Must peripheral) – Internal Memory – External Memory • Bus – Internal BUS – External BUS
  • 15. Embedded Systems Hardware • Architecture (ex: ARM v7) – Family of processor designs in architecture reference manual • Micro Architecture (ex: ARM Cortex A9) – Visible behavior of the architecture – Example: Number of pipeline stages • Processor (TI, Toshiba, Freescale) – Individual implementation of Micro Architecture • Core (Single to Many) – Logical unit in multi core processor • SoC (TI Sitara, Toshiba Applite TZ2100) – One or more processors with memory and peripherals • Board (Arduino, Beaglebone, RBTZ2100) – Complete hardware of the system with SoC, memory and external bus bus based peripherals Board SoC Core Processor Micro Arch Arch itect ure
  • 17. Popular HW Board for Prototyping Arduino Board Beaglebone Black Board
  • 18. Actual Product Board -Hardware Toshiba ApP-Lite TZ2100 - https://toshiba.semicon-storage.com/ap-en/product/assp/applite/tz2100.html
  • 22. Embedded Systems Software • What is a Embedded System Software – Software which interacts with the hardware – Perform the user expected functionality within the performance requirement – Based on functional complexity and performance expectation, embedded software may be layered Hardware Embedded Software User Hardware User LaLayer -1 Embedded Software aLayer -2 Embedded Software aLayer -n Embedded Software
  • 23. Embedded System Software Example -1 • Software Needed 1. Software to interact with ADC chip and SENSOR 2. Software to interact with DISPLAY/DISPLAY CONTROLLER 3. Software to store read sensor data into memory (SRAM) 4. Software to compute the count of temp/pressure reached particular 5. Software to convert temp from Celsius to Fahrenheit • Simple Use Case: – Read the Data from Temperature/Pressure Sensor by button press on display and show the measured data on a simple display – Compute how many times temperature/pressure particular value in a day. – Convert temperature from Celsius to Fahrenheit CPU ADC SRAM DISP CONTROLLER CLOCK SENSOR DISPLAY & USER INPUT PHYSICAL INPUT (EX: TEMP, PRESSURE ETC
  • 24. Embedded Systems Software Example -1 • Software Layering for this example Hardware User LaLayer -1 (Application Software) aLayer -2 ( Device Driver Software) • Hardware Interaction software (or Device Driver) 1. Software to interact with ADC chip and SENSOR 2. Software to interact with DISPLAY/DISPLAY CONTROLLER 3. Software to store read sensor data into memory (SRAM) • Software Functionality expected from User (or Application Software) 1. Software to compute the count of temp/pressure reached particular value 2. Software to convert temp from Celsius to Fahrenheit
  • 25. Embedded System Software Example -2 • Complex Use Case: – All the functionalities done by Simple use case done earlier – Update the temperature and pressure data above to a network server based on regular interval – Store regular interval measured data to local storage device – Have a USB connection to this device which can read the stored data from storage device CPU ADC SRAM DISP & BTN CONTROLLER SENSOR Display & User Input PHYSICAL INPUT (EX: TEMP, PRESSURE ETC USB Controller Network Controller Flash Controller USB Port PHY CHIP/ETH Port Flash Memory CLOCK Timer RAM Controller RAM Memory INT controller Internal Bus External Bus PARALLEL BUS SERIAL BUS (USB) PARALLEL BUS SERIAL BUS (SPI) SERIAL BUS (SPI) SoC BOARD NETWORK SERVER USB HOST
  • 26. Embedded System Software Example -2 • Hardware Needed 1. Support for network based data transfer - Network Card/Phy Chip/ETH Port & Network controller 2. Support for USB based data transfer and storage - USB Controller/USB Port 3. Support for external RAM to perform memory based operations - RAM controller 4. Support for storing data as well as OS image - Flash Device/Flash controller 5. Support for time counting operations - Timer Chip/ETH 6. Support for handling event based requests - Interrupt controller 7. Software to interact with ADC chip and SENSOR • Software Needed 1. Software to interact with hardware • DISPLAY/BTN CONTROLLER • Network Card/Phy Chip/ETH Port & Network controller • USB Controller/USB Port • RAM controller • Flash Device/Flash controller 2. Software to manage multi-tasking, memory mgmt, file & device mgmt, network mgmt etc. 3. Software libraries to manage repeated functionalities/system call interface, network stack (TCP/IP) etc. 4. Software to do the actual user required application handling • Task to take input from the user and show on the display • Task for computing the count of temp/pressure after it crossed particular value. Convert temp from Celsius to Fahrenheit • Task to intermittently read sensor data and store into flash on regular interval • Task to intermittently read sensor data and send it to Network server • Task to reading the sensor data from flash and transfer to USB device As the usecase starts becoming complex, hardware and software requirement in terms of numbers as well as capacity increase
  • 27. Embedded Systems Software Example -2 Software Layering for this example Hardware User LaLayer -1 (Application Software) LaLayer -2 (Libraries & System Call Interface) aLayer -3 ( OS Layer) aLayer -4 ( Device Driver Layer (Part of OS)) Software libraries to manage repeated functionalities/system call interface, network stack (TCP/IP) etc. Software for actual user required application handling • Task to take input from the user and show on the display • Task for computing the count of temp/pressure after it crossed particular value. Convert temp from Celsius to Fahrenheit • Task to intermittently read sensor data and store into flash on regular interval • Task to intermittently read sensor data and send it to Network server • Task to reading the sensor data from flash and transfer to USB device Software to manage multi-tasking, memory mgmt, file & device mgmt, network mgmt etc. Software to interact with hardware • DISPLAY/BTN CONTROLLER • Network Card/Phy Chip/ETH Port & Network controller • USB Controller/USB Port • RAM controller • Flash Device/Flash controller
  • 28. OS (OPERATING SYSTEM) AND RELATED TOPICS
  • 29. OS / Device Driver Layer aLayer -3 ( OS Layer) aLayer -4 ( Device Driver Layer (Part of OS)) At a broad level you can classify OS into two categories GPOS General Purpose Operating System - Generally used in Medium-High Complex System - Predictability of response time is not very critical - Deployed in Systems where underlying HW configuration is on high Ex: Windows, Linux (or Embedded Linux), MacOS RTOS Real Time Operating System - Generally used in Simple-Medium Complex Systems - Predictability of response time is very critical - Deployed in Systems where underlying HW configuration is on low/medium Ex: FreeRTOS, uITRON based OS (uC3, TOPPERS), VxWorks Typical Linux Software Stack
  • 32. Process • Process – a program in execution; process execution must progress in sequential fashion • Textbook uses the terms process, tasks and jobs almost interchangeably • Multiple parts – The program code, also called text section – Current activity including program counter, processor registers – Stack containing temporary data • Function parameters, return addresses, local variables – Data section containing global variables – Heap containing memory dynamically allocated during run time • Program is passive entity stored on disk (executable file), process is active – Program becomes process when executable file loaded into memory • Execution of program started via GUI mouse clicks, command line entry of its name, etc • One program can be several processes – Consider multiple users executing the same program
  • 33. Process States • As a process executes, it changes state – new: The process is being created – running: Instructions are being executed – waiting: The process is waiting for some event to occur – ready: The process is waiting to be assigned to a processor – terminated: The process has finished execution
  • 34. IPC • Processes within a system may be independent or cooperating • Cooperating process can affect or be affected by other processes, including sharing data • Reasons for cooperating processes: – Information sharing – Computation speedup – Modularity – Convenience • Cooperating processes need interprocess communication (IPC) • Two models of IPC – Shared memory – Message passing
  • 35. IPC (a) Message passing. (b) shared memory.
  • 37. RTOS and Types of RTOS • RTOS is a pre-emptive multitasking operating system intended for real- time applications • Predictable OS timing behavior • Able to determine task’s completion time • A system of priority inheritance has to exist • Guarantees task completion at a set deadline. • Hard Real-Time system – A hard real-time system guarantees that real-time tasks be completed within their required deadlines – Failure to meet a single deadline may lead to a critical system failure – Examples: air traffic control , vehicle subsystems control, medical systems • Soft Real-Time system – The soft real-time definition allows for frequently missed deadlines – If the system fails to meet the deadline, possibly more than once ,the system is not considered to have failed – Example : Multimedia streaming , Video games
  • 38. Task Management in RTOS • Tasks are implemented as threads in RTOS • Have timing constraints for tasks • Each task a triplet: (execution time, period, deadline) • Can be initiated any time during the period
  • 39. What are interrupts? • In systems programming, an interrupt is a signal to the processor. • It can be emitted either by hardware or software indicating an event that needs immediate attention. Hardware Software (Exception/ Trap) Software (Instruction set) Interrupt Request(IRQ) sent from device to processor. Exception/Tr ap sent from processor to processor, caused by an exceptional condition in the processor itself. A special instruction in the instruction set which causes an interrupt when it is executed. Ex: Keyboard and many other peripheral device Ex: Division by zero Ex: Usually as a system call from Application to Kernel
  • 40. Interrupt Latency and Why it is Important for RTOS • Interrupt latency refers primarily to the software interrupt handling latencies. • In other words, the amount of time that elapses from the time that an external interrupt arrives at the processor until the time that the interrupt processing begins. • One of the most important aspects of kernel real-time performance is the ability to service an interrupt request (IRQ) within a specified amount of time.
  • 42. Embedded Systems Software Development Approach • Target System: Actual Embedded System. System on which you will run software • Host System: System on which you will design, develop and compile the source code.
  • 43. Host Embedded System Software Development Environment
  • 44. Beaglebone Board Demo (if possible)
  • 45. Useful Resources • Embedded Linux https://bootlin.com/docs/ • Online Training Courses – Udemy (https://www.udemy.com) – Coursera (https://www.coursera.org)