4. What is Embedded Systems (ES)?
An Embedded
System is a
special purpose
computer system
designed to
perform one or a
few dedicated
functions, often
with real time
computing.
14. Personal: PDA, mobile phones, wrist watches, game
environment, players, and more
Sonicare Plus
toothbrush(8bit Zilog Z8)
Motorola i1000plus
iDEN Multi-Service
Digital Phone (Motorola
32-bit MCORE)
15. Some more
IBM Research’s Linux
wrist watch prototype.
32-bit ARM RISC.
17. Beagle Board
Beagle Board
(ported for Linux,
Windows
Embedded,
Android and more)
OMAP3530 ARM
Cortex A8 series
Serial Port, USB,
DVID and
expansion slots.
21. Programming Language Used
90.0%
80.0%
70.0%
19981999
60.0%
19992000
50.0%
40.0%
30.0%
20.0%
10.0%
0.0%
Assembly C C++ Java Other
C is very common in embedded programming
22. Top Computer Languages Used
Usage of top
computer
languages
defined by
statistics on
open source
projects at
SourceForge
24. 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.
26. Embedded Development Cycle
Design Hardware
Manufacture hardware and test
Boot the system
Add peripherals and test
Complete boot loader process
Port Operation System
Create your own application
27. 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
dependent
28. What is Operating System ?
An operating
system is an
interface between
hardware and user;
it is responsible for
the management
and coordination of
activities and the
sharing of limited
resources of the
computer.
29. Why Operating System in
Embedded ?
To do more specialized operations such as
multiprocessing, interfacing complicated
devices
Utilizing processor efficiency
Making generic for different architectures (e.g.:
x86 (Intel), ARM (ARM Co.), PPC (AppleIBM
Motorola) and more)
30. RTOS
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
more.
31. Application of RTOS
Missile Launching
Flight Control
Medical devices (Surgery Machines)
Space vehicles
Robots
32. Very High Level Software
Architecture
Centralized control
is like one man army
which increases
performance time
Decentralized
control, adaptive
behavior, self
configuring and self
restoring
34. 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.
35. Which OS or RTOS to choose for
Embedded devices?
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
37. C & Assembly Compilation Flow
In C Language:
int var1, var2, var3;
var3 = var2 + var1;
In Assembly:
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)
42. 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.
43. As Students
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
too
44. Embedded Learning Cycle Flow
Understand and acquire knowledge about
− Hardware (that you learn in college about transistor, circuits and
more)
− Assembly language (that you learn in college 8085 or x86
architecture)
− 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
environments
45. 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
device
As an example try with Beagle Board.
50. Some trends in Embedded
Systems
Increasing code size
− average code size: 1664KB in 1992, 64K512KB in
1996.
− migration from hand (assembly) coding to highlevel
languages
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
51. Embedded system metrics
Some 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
52. 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
programming language)
If you can complete a sample core in FPGA it
may be good at college level
53. 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
suresh.kalidasan@ymail.com