Automotive: Fuel injection control, passenger environment
control (AC, player, drive etc), security control (airbag, parking
assistant, collusion detection and more), GPS
Communication: Satellites, network routers, switches, hubs and
Computer peripherals: Printers, scanners, keyboards, displays,
modems, hard disk drives, DVD drives, USB drives and more
Thin Flash drives
(approx less than
General OS or
operation can do.
Instrumentation: Data collection, oscilloscopes, signal
generators, signal analyzers, power supplies.
Hand held oscilloscopes
Medical: Imaging system (XRay, MRI, Ultrasound), patient
monitoring, surgery machines, OP integrators.
Full body image results
Personal: PDA, mobile phones, wrist watches, game
environment, players, and more
toothbrush(8bit Zilog Z8)
Digital Phone (Motorola
IBM Research’s Linux
wrist watch prototype.
32-bit ARM RISC.
Programming Language Used
Assembly C C++ Java Other
C is very common in embedded programming
Top Computer Languages Used
Usage of top
What is real time system ?
System with operational deadlines from event to
Hard/Soft RealTime Systems
Soft RealTime System
− Compute output response as fast as possible, but
no specific deadlines that must be met.
Hard RealTime System
− Output response must be computed by specified
deadline or system fails.
Embedded Development Cycle
Manufacture hardware and test
Boot the system
Add peripherals and test
Complete boot loader process
Port Operation System
Create your own application
What is boot loader ?
A boot loader typically loads the main operating
system from the computer.
In a common PC it checks for RAM, VGA
device, if these devices are OK the control goes
to input devices and hard disk to load Operation
System (Linux or Windows). Boot Loaders are
generally you can see AMI Trends when your
power your computer
In Embedded System it is architecture
What is Operating System ?
system is an
hardware and user;
it is responsible for
and coordination of
activities and the
sharing of limited
resources of the
Why Operating System in
To do more specialized operations such as
multiprocessing, interfacing complicated
Utilizing processor efficiency
Making generic for different architectures (e.g.:
x86 (Intel), ARM (ARM Co.), PPC (AppleIBM
Motorola) and more)
Real Time Operating System; as the name
implies RTOS are generally with operational
deadline to do specific task.
e.g.: VxWorks, uC/OSII (small kernel), RT
Linux, uITRON based RTOS (NORTi), QNX and
Application of RTOS
Medical devices (Surgery Machines)
Very High Level Software
is like one man army
configuring and self
What to Choose OS/RTOS ?
If the product needs to work with time then
RTOS will be good to select.
If the product does not work with critical time
deadlines then OS will serve.
Which OS or RTOS to choose for
Continuous growth in Open Source software
triggers manufactures to focus towards Linux
and other OSS
Some products are now switched from VxWorks
to Linux with RT patch to avoid production cost
paid to RTOS manufactures
Still more free RTOS are in use
Example Programming Flow from
Top to Bottom (OS to Assembly)
C & Assembly Compilation Flow
In C Language:
int var1, var2, var3;
var3 = var2 + var1;
1. LOAD ACCUMULATOR WITH VAR2 FROM MEMORY POINTER (RAM)
eg: LDA #4002
2. LOAD PROCESSING REGISTER WITH VAR1 FROM MEMORY POINTER (RAM)
eg: LDB #4003
3. USE ADD INSTRUCTION IN ASSEMBLY LEVEL TO ADD VAR1 + VAR2
eg: ADD B
4. STORE THE CONTENT OF ACCUMULATOR TO MEMORY (RAM)
eg: STA #4004
Results will be available in accumulator with PSW (Program Status Word)
OS & C Compilation Flow
With Multiprocessing example in board
How Open Source Can Help You?
You will know more about forum and how to
communicate with people
You will get more contacts and understand
different technology and terminology from those.
Community web browsing and enhancing will be
increased which leads to structuring yourself.
Try using Open sources software and contribute
your ideas to World.
Using Linux based desktop OS can trigger you
a lot in your carrier growth
Apply all these concepts in embedded system
Embedded Learning Cycle Flow
Understand and acquire knowledge about
− Hardware (that you learn in college about transistor, circuits and
− Assembly language (that you learn in college 8085 or x86
− Learn Generic languages such as C and C++
− Use the same C in different embedded architectures
(such as 8051, PIC, ARM and more)
− Learn OS concept and try to apply it in embedded
Road Map for Learners
Buy and play with small hardware boards and components
(design timer circuits, LED flashers and more)
Use Simulator tools in PC for learning assembly language and
try with low cost boards in home or in college
Use CrossCompiler tools such as Keil C in Windows and other
tools in Linux machines and see different stages of compilation
and linking process, try the same with the same board that you
did for assembly language learning.
Enhance Open Source usage from your Desktop to embedded
As an example try with Beagle Board.
Some trends in Embedded
Increasing code size
− average code size: 1664KB in 1992, 64K512KB in
− migration from hand (assembly) coding to highlevel
Reuse of hardware and software components
− processors (microcontrollers, DSPs)
− software components (drivers)
Increasing integration and system complexity
− integration of RF, DSP, network interfaces
− 32bit processors, IO processors
Embedded system metrics
− performance: MIPS, reads/sec etc.
− power: Watts
− cost: Dollars
− Software and architecture:
Instruction set, code density, register organization,
caches, addressing, data types etc.
MIPS, Watts and cost are related
− technology driven
− to get more MIPS for fewer Watts
look at the sources of power consumption
use power management and voltage scaling
Contribute to Nation
All these technology starts from Magnetism and
reaches up to Robotics.
The Embedded Industries growth highly
depends on processor manufactures
So it is key for us to manufacture processor, but
at this stage it may be difficult. Instead we can
start FPGA programming (preferred VHDL
If you can complete a sample core in FPGA it
may be good at college level
If you need help
As always Google or some search engines will
fit all your needs.
Your friends the best
Make me also your friend, contact me at