You are on page 1of 62

Linux For Embedded Systems

For Arabs

New Trends in Embedded Systems


Ahmed ElArabawy

Myths on Embedded Systems


More Hardware than Software
Applications are Trivial

Interfacing with sensors


Measuring temperature, pressure, light,
Controlling a motor
Controlling some light switches
etc.

No need for Operating System support


Why do we needs an OS this is Just an Embedded System

Code in low level languages


Some even consider all in Assembly

Code fully customized on Hardware


The center piece is the hardware, and SW will be tailored to it

Code is very close to the Hardware

Is this True ??
This impression is TRUE in some embedded systems
But not true for a great portion of the market
The reason for this impression
Education (No advanced embedded system courses)
Toy projects and hobbyists (most focus on microcontrollers)
Cost of Hardware
Background
Application

Limited exposure to industry

Reality is ..
Most embedded systems are much more sophisticated,
Use of multicore is becoming very common
Multi-core can be homogeneous or heterogeneous
Big.Little Architecture
Dedicated cores to manage operation of the other cores

Special H/W Accelerators for low level functionality


Use of Operating Systems is unavoidable most of the time
Asymmetric Multi-Processing (AMP)
Each core is running its own OS

Symmetric Multi-Processing (SMP)


One OS is running on multiple cores

Hybrid

S/W is the most sophisticated element and key differentiator


Sometimes, portability of the SW takes priority over efficiency

This Lecture
I want to break this myth, and try to show the other side of
Embedded Systems
I will address some of the Industries using Embedded Systems
I Will try to show some new trends, and the motivation for
them

What is an Embedded System ?


An embedded system is a computer system embedded in a
device with a dedicated function
This is different from the traditional, general purpose
computer systems

What is an Embedded System?


It is a computing system that performs a specific task (not a
general purpose computer)
A lot of times (but not always), It runs in a restricted resources
environment,
Power limited (battery operated devices)
Processing/Memory limited
Cost limited (inside the device, and not just a computer for
multiple tasks)
Size limited (no space for large heat-sink and a cooling fan)
Display size limited

Most of the time it targets real time objectives, this means,


It needs to be fast and efficient
It needs to be predictable (execution time known ahead, and
almost constant)

APPLICATIONS OF EMBEDDED
SYSTEMS

Hand Held Devices

Smart Phones
Tablets
e-Readers

Robotics

Automotive

Military

Networking Devices

And Other Gadgets

CASE STUDY
THE SMART PHONE

Under the Hood.

Simplified Smart Phone


Architecture
Responsible for:
- Applications
- TCP/IP networking
- Audio/Video Processing
- 2D/3D Graphics

Responsible for ( Communication Stacks)


- Cellular (2G/3G/4G)
- 802.11
- Bluetooth
- NFC
- GPS

Android (Linux Based)


Windows
iOS

Real RTOS:
ThreadX
Nucleus

TI-OMAP5000 Family

QC-SnapDragon

nvidia- Tegra-4

nvidia-Tegra K1

Conclusions
Smart phones Contain two sets of cores
Communication Processer(s)
Run Communication Stacks (LTE, 802.11,BT,)
Run using RTOS (ThreadX, Nucleus, )

Application Processor(s)

Run the functionality of the phone and any apps on it


Run TCP/IP stack
May contain special cores for Video Processing or 2D/3D Graphics
Use more capable OSs

Most SoCs today have CP and AP on separate chips


The new trend is to combine them in the same chip
Still they run on separate cores/OSs
Different needs
Priority of tasks

CASE STUDY 2
AUTOMOTIVE

Cars Are Getting Smarter


Electronics represents 40% of total cost of a car
90% of new car features require software

Embedded Systems in the Powertrain

Electronic Control Units (ECUs)


ECUs are used in different functions of the car

Engine Control
Transmission Control
Fuel Efficiency Control
Electric Power Steering
Speed Control
Brake Control
Suspension System Control
Battery Management
Seat Control
Door Control
Electric Windows Control
Lighting Control
Airbag Control
Telemetric Control
Mirror Control
Security System Control
Windshield Blades Control
Entertainment
Human-machine interface (HMI)
And a lot more ..

Proliferation of ECUs Problem


Number of ECUs is going out of control (more than a 100 ECU
in todays car)

Cost
Maintenance and diagnostics
Complexity of management
Need of communication among them
Power efficiency
Heat
Portability
Interaction between features
Some software was written for legacy OS
Need to re-test with the addition of every new feature
Time to market

Solution ???
Why not aggregate these functionality into less number of
ECUs
A single Embedded Platform with all of the controllers as
applications running on top of it
This has some obstacles:

Security concerns
Fault isolation concerns
Some controllers require legacy OSs
Some controllers can not run as an application, requires full
attention of the hardware
Different needs some need real time support while others
dont
etc.

Embedded System
Virtualization

Virtualization
What ??
Virtual Machines
(VMs)

Virtual Machines Monitor (VMM)


Hypervisor

Host Machine

Virtualization
Why??
Virtualization is used for:
Running Multiple Operating Systems simultaneously
on the host machine
Easier Software Installations for software packages
Testing and Disaster Recovery
Infrastructure Consolidation
Separation between different environment
Fault isolation
Security

Virtualization
How ?
We can achieve virtualization via the use of a Hyper-visor
Hyper-Visor is a software that can accommodate multiple
virtual machines. Each VM can have its own OS
There are two types of Hyper-visors,
Type One (Bare-Metal Hyper-Visor)
Native Virtualization

Type Two (Use of host OS)


Hosted Virtualization

Virtualization
How ?

Hyper-Visor Acts as a light host OS

Hyper-Visor Acts as an Application

Native (Bare Metal)


Virtualization

Hosted Virtualization

Virtualizing HW Resources

Virtualization in Embedded Systems

Use Cases

RTOS & GPOS Consolidation

RTOS & GPOS Consolidation

Legacy OS Consolidation

Legacy OS Consolidation

Performance-Critical
Application Separation

Performance-Critical
Application Separation

Trusted/Open Application Integration

Applications of Virtualized
Embedded Systems

Applications

Virtualization in Smartphones

Virtualization in Automotive

Virtualization in Automotive

Virtualization in Military Applications

Virtualization in Industrial Automation

Virtualization in Embedded Gaming

Limits of Virtualization
Processing
Extra layer from the hardware
Two level task scheduling

Limits of Virtualization
Processing

Extra layer from the hardware


Two level task scheduling
Limited hardware support
Preemption, L2 Cache
Sometimes we dedicate some resources to a certain VM (CPU
Affinity)

Memory
VMM foot print
Possibly multiple Oss

Resources
Resource sharing is tricky

Still a risk of extra bugs due to the VMM layer

Conclusions

Embedded System is becoming more and more sophisticated


Multicore is becoming more common in Embedded systems
Multicore can be using Homogeneous or Heterogeneous cores
The different functions within an embedded system require
different needs, such as security, real time, fault isolation
One solution to meet these different needs without the use of
multiple embedded systems within the same platform is
virtualization
There are still issues to be resolved with virtualized embedded
systems

http://Linux4EmbeddedSystems.com

You might also like