embedded system

Download Report

Transcript embedded system

Embedded System Design And History
Outline
•
•
•
•
•
•
•
Introduction
History
Embedded System Design
Embedded Microprocessor
Embedded Operating System
Embedded Linux Distributions
Embedded Application
What is Embedded System?
• An embedded system is a
special-purpose system in which
the computer is completely
encapsulated by the device it
controls.
• An embedded system performs
pre-defined tasks, usually with
very specific requirements.
• Mobile phones, MP3 Players,
Digital Cameras are very common
embedded systems in our life.
What is Embedded System?
• Since the system is dedicated to a specific
task, design engineers can optimize it and
reduce the size and cost of the product.
• Power Constrain, Performance
requirements.
• Embedded systems are often massproduced, so the cost savings may be
multiplied by millions of items.
Outline
•
•
•
•
•
•
•
Introduction
History
Embedded System Design
Embedded Microprocessor
Embedded Operating System
Embedded Linux Distributions
Embedded Application
History
• Apollo Guidance Computer (AGC), 1963 [1]
– The first recognizably modern embedded system.
– Developed by Charles Stark Draper at the MIT
Instrumentation Laboratory .
– Used in real-time by astronaut pilots to collect and
provide flight information.
– Automatically control all of the navigational functions of
the Apollo spacecraft.
– The Apollo flight computer was the first to use integrated
circuits (ICs).
– The computer's RAM was magnetic core memory (4K
words) and ROM was implemented as core rope
memory (32K words).
Source: The Computer History Museum
History
• D-17 Guidance Computer, 1961 ~ 1966 [1]
– The first mass-produced embedded system developed
for Minuteman missile.
– Built from discrete transistor logic and had a hard disk
for main memory.
– When the Minuteman II went into production in 1966, the
D-17 was replaced with a new computer that was the
first high-volume use of integrated circuits.
– This program alone reduced prices on quad NAND gate
ICs from $1000/each to $3/each, permitting their use in
commercial products.
History
• Intel 4004, [1]
– The first microprocessor.
– Which found its way into calculators and other small
systems.
– Required external memory and support chips.
• 8-bit Microprocessor, 1971-1974
– 8008, 8080, 8085, 6800, 6502, Z-80, Ti, NS
– Hundred if not thousand vendors rushed into this market.
– The 6502 was used by Apple Co. to design Apple-II,
which sparked the Personal computer era.
History
• 16-bit CPU
– 8088, 8086, 80286 Z-800. 68000
– About 20 companies had released their products.
– Why did the 16-bit CPU not make any significant impact in
the market?
– IBM PC Era began from 1979
• 8088 was used in PC and PC/XT, 80286 was used in the PC/AT.
• This adoption of Intel CPU plus the OS supplied by Microsoft created
two biggest PC Giants (Monsters) rule the world up to this day.
• 80286 is used in IBM PS/2 personal computer system .
• M$ intentional persuaded the IBM to use assembly to implement the
OS/2 so that caused a long delay of the OS/2-286 release. During that
time, Bill Gate secretly develops the Windows to emulate the Mac’s OS.
• Single chip microcontroller (8051 MCU) series which was developed by
Intel in 1980 for use in embedded systems .
History
• 32-bit CPU
– 68020, 80386, NS32032, Z8000, Japan TRON CPU .
– Only a handful manufacturer would be able to reach the 32bit CPU market. Why ?
• The era of the RISC
– the era RISC Reduced Instruction Set Computer comes.
(RISC vs. CISC) But the battle turned out to be the
CISC(x86)'s big victory.
– The code density for RISC is poor compared to the CISC.
– The large installed X86 PC software base is a big hurdle to
the RISC machines to overcome.
History
• Simple history of RISC
– Even the RISC idea (around 1980) was rebutted by the
computer architects during its early development.
– For at that time, most computer architects tried to enhance
the performance of CPU by adding more complex
instructions .
– RISC is simply against the intuition. Why RISC prevails?
– X86 vs. RISC ... This is a big question!
History
• Notable RISC CPUs
– MIPS, PPC, M88000, PA-RISC, DEC-Alpha, Clipper, ARM
– Architecture Design
• Instruction, Register set, memory model, pipelined
architecture, Superscalar, simultaneous multithreading,
multi-core.
– Does RISC really reduce the instruction set?
– So what is the key to the 32-bit RISC? A Big
design Team is needed.
History
– Architecture is far too complex for a small
company to handle. Compiler tool chain
support, OS, middle ware, development kit...
– (FPAG + CPU==> NIOS-II, Microblaze, ARM
and PPC, from Altera, Xilinx...)
– Their costs range from USD$3-4 to 30-40 or
more. Power problem... The X86 CPU reached
4 GHz around 2001. But no fast CPU was
made to the market.
History
• RISC vs X86
– In the performance with application base
game, the RICS failed miserably to the Intel’s
X86 architecture.
– So the RISC company had to find the
alternative market and focused on the
embedded system.
– The tide has been changing now, the RISC
power player ARM strikes back. In low-power
application the X86 is no match to the ARM.
ARM history
ARM0: Acorn Computers Ltd used 6502 (which
powered Apple-II then) to design BBC Micro
computer.
• ARM1 ARM 2: (Inspired by Berkley RISC project)
• The official Acorn RISC Machine project started
in October 1983.
• VLSI Technology, Inc was chosen as silicon
partner.
• VLSI produced the first ARM silicon on 26 April
1985 – it worked the first time and came to be
termed ARM1 by April 1985.
• The first "real" production systems named ARM2
were available the following year.
ARM History
•
•
•
•
•
•
•
•
•
•
•
ARM Family
ARM Architecture
ARM Core Feature
Cache (I/D), MMU
Typical MIPS @ MHz
ARM1 ARMv1
ARM1
First implementation None
ARM2 ARMv2
ARM2
ARMv2 added the MUL (multiply) instruction
None
4 MIPS @ 8 MHz
0.33 DMIPS/MHz
ARMv2a
ARM250 Integrated MEMC (MMU), Graphics and IO
processor. ARMv2a added the SWP and SWPB (swap) instructions.
None,
MEMC1a
7 MIPS @ 12 MHz
ARM3 ARMv2a ARM3
First integrated memory cache. 4 KB unified
12 MIPS @ 25 MHz
0.50 DMIPS/MHz
ARM6 ARMv3
ARM60
ARMv3 first to support 32-bit memory address
space (previously 26-bit)
None
10 MIPS @ 12 MHz
ARM7TDMI
ARMv4T ARM7TDMI(-S)
none
15 MIPS @ 16.8 MHz
63 DMIPS @ 70 MHz
3-stage pipeline, Thumb
ARM9TDMI
none
5-stage pipeline, Thumb
ARMv4T
ARM9TDMI
ARM Key Architecture
The ARM architecture includes the following RISC
features:
• Load/store architecture.
• No support for misaligned memory accesses (now
supported in ARMv6 cores, with some exceptions
related to load/store multiple word instructions).
• Uniform 16 × 32-bit register file.
• Fixed instruction width of 32 bits to ease decoding
and pipelining, at the cost of decreased code
density. Later, the Thumb instruction set
increased code density. Now Thumb-2 ISA
• Mostly single-cycle execution.
ARM architecture
To compensate for the simpler design, compared with
contemporary processors like the Intel 80286 and Motorola
68020, some additional design features were used:
• Conditional execution of most instructions, reducing branch
overhead and compensating for the lack of a branch
predictor.
• Arithmetic instructions alter condition codes only when
desired.
• 32-bit barrel shifter which can be used without performance
penalty with most arithmetic instructions and address
calculations.
• Powerful indexed addressing modes.
• A link register for fast leaf function calls.
• Simple, but fast, 2-priority-level interrupt subsystem with
banked register banks.
•
•
•
•
ARM Cortex
Application Profile-A8, A9, A15, A7
Real-time Profile Cortex-R4
MCU profile M3, M4 (Low power of M :
NXP's Cortext-M3 0.05mW/MHz, M4
0.06mW/Mhz. NXP-LPC430 ==> M0 + M4
running at 150MHz consumes only 9mW)
A glance of Cortex A8
• Key features of the Cortex-A8 core are:
•
•
•
•
•
•
•
•
•
* Frequency from 600 MHz to 1 GHz and above
* Superscalar dual-issue microarchitecture 13-stage
superscalar pipeline
* NEON SIMD instruction set extension (optional)
* VFPv3 Floating Point Unit (optional)
* Thumb-2 instruction set encoding
* Jazelle RCT
* Advanced branch prediction unit with >95% accuracy
* Integrated level 2 Cache (0-4 MB)
* 2.0 DMIPS / MHz
• VFP and (for floating point)
• NEON (SIMD) Instruction Set. (For
Multimedia applications)
• Amazon Kindle: FreeScale i.MX508,
Cortex-A8
• Xilinx's Zynq : Dual core A9 MPcore(hard
core CPU) + FPGA (235K--30K Logic
cells), USB, Gbps ethernet, 10.315 Gbps
serial
ARM Entering the Server Market
• SAN JOSE, Calif. -- Startup Calxeda (Austin) has
released a few details about its unannounced
ARM-based processor aimed at low power
servers.
• Calxeda's initial reference design will be based on
a quad-core Cortex A9 SoC that consumes 5W
including associated DRAM. The chip includes a
fabric that acts as an interconnect to other
processors, enabling OEMs to pack as many as
120 SoCs in a 2U-sized chassis.
• (Rackmount 19 inches wide 1U 1.75 inches)
ARM Entering the Server Market
• SAN JOSE, Calif. – Marvell will try to thrust ARM
into servers and networking gear with a 1.6 GHz
quad-core Cortex A9 chip debuting at the ARM
Technology Conference. The Armada XP aims
at a broad range of systems from low power Web
servers for business to network-attached storage
and media servers for the digital home.
• The Armada XP delivers up to 16,600 Dhrystone
MIPS at 10W. It includes up to 2 Mbytes L2 cache
and supports a 64-bit interface to DDR2/3
memory running at up to 800 MHz.
Outline
•
•
•
•
•
•
•
Introduction
History
Embedded System Design
Embedded Microprocessor
Embedded Operating System
Embedded Linux Distributions
Embedded Application
Embedded System Design
• Components of embedded system:
– Hardware
• Processor, memory, ASIC, controllers, peripherals…
– Firmware/software
• Boot loader, embedded OS, device drivers, applications…
• Design and Development Skills:
–
–
–
–
–
–
–
–
HDL: Verilog, VHDL …
I/O, analog and digital interfacing, peripherals …
Development kits: Compiler, linker …
Firmware design: Assembly and Low-level C language
Device driver design
Embedded operating system design or porting
System programming: System calls, IPC, Socket …
Application software design: JAVA, C++ …
Embedded System Design
• Example: Digital camera hardware block diagram
Processor
Core
DSP
LCD
Controller
Image
De/Encoder
SPI
USB
Memory
PIO
Controller Interface Interface
RTC
SoC
SRAM SDRAM Flash
ADC
Embedded System Design
• Example: Digital camera firmware/software
Image Capturer
Image Processing
System Configure
File Manager
GUI
Embedded OS
Device drivers: LCD, Sensor, SD Card …
Low level initializing code (Boot loader)
Several
Tasks
Embedded System Design Issues
• Cost and Performance
– Lowering the cost affects the speed of embedded
system.
– Most often speed issue doesn’t matter and one achieves
the task at lower cost.
– Simplifying the hardware allows cost reduction.
• Specifications and User Constraints
– Specifications define that what task is to be achieved.
– The constraints help the designer to select appropriate
hardware and software setup to develop an embedded
system.
The selection of an embedded system depends
upon the requirement specifications.
Embedded System Design Issues
• Selection of hardware and software of an
embedded system
– CPU Architecture
• ARM or MIPS or … ?
– Storage Size and Speed
• SDRAM or DDR ?
• RAM, ROM, Flash
memory size ?
– Interfaces
• PIO or RS232 or …?
• Touch screen or keypad ?
– Development kits
• GNU tools or others ?
– Embedded OS
•
•
•
•
Real-time or not?
Kernel size ?
Multi-task supported ?
Easy to port ?
– Embedded Applications
• Implement with C, C++ or
JAVA … ?
• GUI: Microwindows or
MiniGUI or … ?
Embedded Hardware Design
• Hardware Design Technology
– System on a Chip (SoC)
• Integrating all components of a computer or other
electronic system into a single chip.
– System on a Programmable Chip (SoPC)
• SoPC is a family of mixed-signal arrays made by
Cypress Semiconductor, featuring a microcontroller
and integrated analog and digital peripherals.
Embedded Hardware Design
Figure: SoC Design Flow (Top-half)
Source: Wikipedia, the free encyclopedia [1]
Embedded Hardware Design
Figure: SoC Design Flow (Bottom-half)
Source: Wikipedia, the free encyclopedia [1]
Embedded Hardware Design
• Hardware Description Language (HDL)
– VHDL and Verilog
• The two most widely-used and well-supported HDL
varieties used in industry.
– Others include
•
•
•
•
•
•
•
ABEL (Advanced Boolean Expression Language)
AHDL (Altera HDL, a proprietary language from Altera)
JHDL (based on Java)
Lava (based on Haskell)
MyHDL (based on Python)
PALASM
RHDL (based on Ruby)
Embedded Hardware Design
• Design, Synthesis Tools
– Altera
• Max-plus II, Quartus II, SoPC Builder
– Xilinx
• ISE
– Synplicity
• Synplify
• Simulation Tools
– Model Technology
• ModelSim
Embedded Software Design
• Software Architecture Definition
– This is the first stage of embedded software design.
– Here the software team understands the system that is
being designed.
– The team also reviews at the proposed hardware
architecture and develops a very basic software
architecture.
– This architecture definition will be further refined in codesign.
• The complexity of embedded software depends
on the application of your system.
Embedded Software Design
• Common types of embedded software
– Single-tasking or multi-tasking
• Only one task needs to be performed at one period
of time  Single-tasking A finished
B finished
Task A
Task B
time
• Several tasks need to be performed at one period of
A finished
time  Multi-tasking
Task A
Task A
Task B
Task B
Task C
B finished
C finished
Task C
time
Embedded Software Design
– Single-tasking example
• ATM
Withdraw money
Transfer accounts
Show account info
time
– Multi-tasking example
• Multimedia phone
Play MP3
……
JAVA Game
time
Embedded Software Design
– Non-real-time system or real-time system
• Non-real-time system
– A non-real-time system is one for which there is no
deadline, even if fast response or high performance is
desired or even preferred.
• Real-time system
– Hardware and software systems which are subject to
a "real-time constraint" — i.e. operational deadlines
from event to system response.
– A real-time system may be one where its application
can be considered (within context) to be mission
critical.
Embedded Software Design
– Real-time system example
• Anti-lock Brakes System (ABS)
– A system on motor vehicles which prevents the
wheels from locking while braking.
– Real-time constraint
» The short time in which the brakes must be released to
prevent the wheel from locking.
– Real-time computations are not completed in
the time-period after the event before the
deadline relative to the event  have failed.
Embedded Software Design
– Hard and Soft real-time system
• Hard real-time system
– The correctness of an operation depends not only
upon the logical correctness of the operation but also
upon the time at which it is performed.
– Hard real-time systems are typically found interacting
at a low level with physical hardware, in embedded
systems.
– Example: Car Engine Control System
» A delayed signal may cause engine failure or damage.
– Other examples
» Nuclear power stations
» Car airbags
Embedded Software Design
• Soft real-time system
– Soft real-time systems are typically those used where
there is some issue of concurrent access and the
need to keep a number of connected systems up to
date with changing situations.
– Example1: The flight plans management system
» The software that maintains and updates the flight plans
for commercial airliners.
» These can operate to a latency of seconds.
– Example2: Live audio-video systems
» Violation of constraints results in degraded quality, but
the system can continue to operate.
Embedded Software Design
– It is important to note that
• Hard versus soft real-time does not necessarily
relate to the length of time available.
• A processor does not turn on cooling within 15
minutes
 machine may overheat (hard real-time).
• A network interface card is not read within a fraction
of a second
 may lose buffered data but the data can be resent
over the network if needed (soft real-time).
• Real-time ≠ high performance
– For Anti-lock Brakes System
» Has been designed to meet its required deadlines.
» No further performance gains are necessary.
Embedded Software Design
• Development Kits
– GNU Tools
• Free software, easy to get for developing.
(Free as in Freedom)
• Abundant in documents, manuals and lots of developing
societies, easy to learn.
• Fully support the GNU-based software such as Linux,
Linux-based software, simplify the porting process.
• Multiple platform supported, such as x86, ARM, MIPS,
NIOS, PowerPC …
• Operate in command line mode.
• Basic tools
–
–
–
–
–
C/C++ Compiler: gcc, g++
Assembler: as
Linker: ld
Debugger: gdb
Others: objcopy, objdump, nm, ar, strip, ranlib …
Embedded Software Design
– Integrated Development Environment (By ARM’s example)
• ARM Software Development Tools (ARM SDT)
– Provided by ARM company.
– Basic tools
»
»
»
»
C/C++/THUMB Compiler: armcc, tcc
Assembler: armasm
Linker: armlink
Debugger: armsd
– ADS is the newer version of SDT.
• ARM Developer Suite (ADS) [2]
– An Integrated Development Environment for Windows, Linux
and Solaris.
– GUI development environment and debugger.
– Support for families of processors including ARM7, ARM9,
ARM9E, ARM10, StrongARM and Intel XScale.
– Real-time Debug and Trace support.
– On-line documentation.
Embedded Software Design
• Software Porting
– Porting is often a necessary process of designing a
complex embedded system.
– What kind of software can we port from existing
software ?
• Boot loader  U-Boot, LILO …
• Embedded OS  uClinux, uCOS-II …
• Applications  mplayer, microwindows
– Software selection issues for porting
• Software complexity ?
• Software is well-ported ?
• What is the development tool that the software based on ?
Embedded Software Design
– Example: U-Boot (The Universal Boot Loader)
• A GPL'ed cross-platform boot loader shepherded
by project leader Wolfgang Denk.
• Supports for hundreds of embedded boards and a
wide variety of CPUs including PowerPC, ARM,
MIPS, NIOS, and x86 ...etc.
• Easily configure to strike the right balance between a
rich feature set and a small binary footprint.
• Allowing you to focus on the core of your embedded
application.
• Can easily add support for new hardware or add a
special feature in U-Boot.
Hardware/Software Co-Design [3]
• Current methods for designing embedded
systems require to specify and design hardware
and software separately.
• Designers often strive to make everything fit in
software, and off-load only some parts of the
design to hardware to meet timing constraints.
• The problems with these design methods are:
– Lack of a unified hardware-software representation
• Leads to difficulties in verifying the entire system.
– A priori definition of partitions
• Leads to sub-optimal designs.
– Lack of a well-defined design flow
• Makes specification revision difficult, and directly impacts
time-to-market.
Hardware/Software Co-Design
• Hardware/Software co-design can be
defined as the cooperative design of
hardware and software.
• Co-design research deals with the problem
of designing heterogeneous systems.
• One of the goals of co-design is to shorten
the time-to-market while reducing the
design effort and costs of the designed
products.
Hardware/Software Co-Design
Figure: The design flow of the
general co-design
Source: [4]
Outline
•
•
•
•
•
•
•
Introduction
History
Embedded System Design
Embedded Microprocessor
Embedded Operating System
Embedded Linux Distributions
Embedded Application
Embedded Microprocessor
• The evolution of microprocessors has
been known to follow Moore's Law when it
comes to steadily increasing performance
over the years.
Moore’s Law [1]
This law suggests that the complexity
of an integrated circuit, with respect to
minimum component cost, doubles
every 24 months.
Embedded Microprocessor
Figure: Moore’s Law
Source: [1]
Embedded Microprocessor
• There are many different CPU
architectures used in embedded designs
such as ARM, MIPS, Coldfire/68k,
PowerPC, X86, PIC, 8051, Atmel AVR etc.
• For more complex applications, 8/16-bit
microprocessors are no longer suitable for
the system because of the requirements of
performance and functionalities.
Embedded Microprocessor
• RISC (Reduced Instruction Set Computer)
– In the mid-1980s to early-1990s, a crop of new
high-performance RISC microprocessors
appeared.
– Some companies have attacked niches in the
market, notably ARM, originally intended for
home computer use but since focused at the
embedded processor market.
– Today RISC designs based on the MIPS, ARM
or PowerPC core power the vast majority of
computing devices.
Embedded Microprocessor
• ARM (Advanced RISC Machine)
– A 32-bit RISC processor architecture that is widely used
in a number of embedded designs.
– The ARM family accounts for over 75% of all 32-bit
embedded CPUs.
– Can be found in all corners of consumer electronics from
portable devices (PDAs, Mobile phones) to computer
peripherals (Hard drives, desktop routers).
Embedded Microprocessor
• ARM7 & Cortex Cores [1]
Embedded Microprocessor
• The ARM architecture includes the following RISC
features
– Load/store architecture.
– No support for misaligned memory accesses
(now supported in v6 Arm cores).
– Orthogonal instruction set.
– Large 16 × 32-bit register file.
– Fixed opcode width of 32 bits to ease decoding
and pipelining, at the cost of decreased code
density.
– Mostly single-cycle execution.
Embedded Microprocessor
• Power consumption:
CPU
Power W
–
–
–
–
–
–
–
–
ARM7TDMI:
< 0.25
ARM7TDMI-S:
< 0.4
ARM9TDMI:
0.3
ARM1020E:
~0.85
IXP (XScale):
1.2
Inter 486 cpu:
10
CortexA9Singlecore: 0.4
CortexA9Dualcore: 1.9~0.5
Clock /MHz
60 -110
>50
167 - 220
200 - 400
533
50
830
2000-800
Embedded Microprocessor
• MIPS (Microprocessor without Interlocked
Pipeline Stages)
– A RISC microprocessor architecture developed
by MIPS Technologies.
– MIPS designs are used in
•
•
•
•
SGI’s computer product line
Windows CE devices
Cisco routers
Video game consoles (Nintendo 64, Sony PS, PS2
and PS Portable)
• Many embedded systems
Embedded Microprocessor
• MIPS CPU Family [1]
Embedded Microprocessor
• PowerPC
– A RISC microprocessor architecture created by
the 1991 Apple–IBM–Motorola alliance, known
as AIM.
– Originally intended for personal computers,
PowerPC CPUs have since become popular
embedded and high-performance processors
as well.
IBM PowerPC 601
IBM PowerPC 604e 200 MHz
Embedded Microprocessor
• PowerPC design features
– The PowerPC is designed along RISC
principles, and allows for a superscalar
implementation.
– Versions of the design exist in both 32-bit and
64-bit implementations.
– Starting with the basic POWER specification,
the PowerPC added support for operations in
both big-endian and little-endian modes.
Embedded Microprocessor
• Embedded PowerPC [1]
– IBM
• 403: MMU added in most advanced version 403GCX
• 405: MMU, Ethernet, serial, PCI, SRAM, SDRAM
• 440xx: 440EP, 440GP, 440GX
– Motorola (now Freescale)
• MPC860/8xx (PowerQUICC):
networking & telecomm card controllers
• MPC5200/5200B (603e core):
automotive & industrial controllers
• MPC8260/82xx (PowerQUICC II, a 603 core):
networking & telecomm system controllers with highcapacity on-chip switched bus
Embedded Microprocessor
• Embedded processor preference trends [6]
Outline
•
•
•
•
•
•
•
Introduction
History
Embedded System Design
Embedded Microprocessor
Embedded Operating System
Embedded Linux Distributions
Embedded Application
Embedded Operating System
• Embedded operation systems
– Symbian OS
– Window CE
– uC/OS-II
– QNX
– eCos
– Android
– Embedded Linux
• Most of applications basing on Embedded Linux
except special applications .
Embedded Operating System
• Embedded Linux [1]
– Embedded Linux refers to the use of the Linux in
embedded systems such as cell phones, PDA, media
player handsets, and other consumer electronics
devices.
– Embedded Linux has these advantages compared to
other embedded OS:
•
•
•
•
Open source
Small footprint
No royalty costs
Mature and stable (over ten years of age and used in many
devices)
• Well supported
Embedded Operating System
– Embedded Linux also provides the following
supports besides multitasking, memory
protection, IPC …etc
• File systems
– Ext2, Ext3, JFFS, JFFS2, FAT, NTFS …
• Networking
– TCP/IP, Bridging, Routing, WLAN, QoS …
• Device drivers
– USB, IEEE1394, SCSI, PCI, Graphics …
• GUI
– Microwindows, MiniGUI, Qt Embedded …
• … etc
Embedded Operating System
– Linux is a real-time system ?
• The generic Linux 2.6 kernel is not yet a true real-time
operating system.
• Linux 2.6 is more responsive than 2.4
– Linux 2.6 uses a preemptible kernel
– The algorithm used for scheduling has been made more
efficient in Linux 2.6
• True real-time Linux
– RTLinux, Montavista real-time solution …
Comparison of real-time performance
[8]
Embedded Operating System
– Embedded Linux devices
• Mobile phones
– Motorola A728, A760, E680i …
– Panasonic P901iTV, P902i …
– Samsung SGH-i858, SCH-i519 …
• PDA, Handheld devices
– Sharp SL-6000, SL-A300 …
– Nokia 770 Internet Tablet …
– Compaq iPAQ …
• Audio/video entertainment devices
– D-Link DSM-320
– Haier/Freescale UWB media server
– Motorola DCT5000 set-top box
• … etc
Embedded Operating System
• Embedded systems survey: Operating systems
up for grabs. [9]
– Who influenced the choice of OS?
Embedded Operating System
– What type of OS?
Embedded Operating System
– Reasons for not choosing a commercial OS
Embedded Operating System
– Commercial OS factors
Embedded Operating System
– OS for next project
Embedded Operating System
– Interest in Linux
Embedded Operating System
– Reasons for considering Linux
Embedded Operating System
– Reasons for not considering Linux
Embedded Operating System
– Current commercial OS
Embedded Operating System
– Commercial OS respondents would consider
Outline
•
•
•
•
•
•
•
Introduction
History
Embedded System Design
Embedded Microprocessor
Embedded Operating System
Embedded Linux Distributions
Embedded Application
Embedded Linux Distributions
• Commercial Distributions [10]
– AMIRIX
• Derived from standard, open source Debian GNU/Linux
• Can be used in such things as Internet infrastructure,
consumer devices, retail business products, and
transportation systems.
• Benefits:
– Fully optimized, tailored support
– Truly embedded
» Flash based, diskless operation
» Headless support
» Small footprint
– Native and cross development host support
– Comprehensive, user-friendly manual to get you up and
running quickly
Embedded Linux Distributions
– Lineo Embedix
• Supports a wide range of CPUs with and without
MMUs, including X86, PowerPC, ARM, MIPS, and
more.
• Ease your complete product development and
release cycle, giving you the ability to spend your
time on your product, not worrying about the OS.
• Lineo Embedix provides
– Very high performance hard real-time
– Multi-processor (DSPs, 16 bit, 32 bit, and nonheterogeneous architectures) support
– Native support for Legacy RTOS APIs
– Smart Handheld Device solution stacks
– Digital TV solution stacks (coming soon!)
Embedded Linux Distributions
– LynuxWorks BlueCat
• BlueCat Linux from LynuxWorks is an enhanced
implementation of the Linux model, made viable for
use in a wide range of embedded systems.
• BlueCat Linux advantages
– Single, accountable source for embedded Linuxinherently stable and supportable Linux environment.
– Immediate productivity-includes powerful commercialgrade tools and support package for developing and
deploying embedded Linux.
– Unrivaled expertise-15+ years of expertise in UNIX
model-based embedded operating systems.
Embedded Linux Distributions
– MontaVista Hard Hat Linux
• MontaVista Linux is the leading embedded Linux
development platform.
• Designed for the scalability, dependability and
performance required of well-designed embedded
applications.
• Supported platform: x86/IA-32, PowerPC,
StrongARM, XScale, MIPS, SH, ARM, and other
microprocessor architectures.
• Includes scaling and configuration tools
– Let developers right size Linux kernel and filesystems
to suit their memory footprint.
• Includes support for various networking and routing
protocols.
Embedded Linux Distributions
– Red Hat Embedded Linux
• Red Hat Embedded Linux Developer Suite
– A collection of Tools and Runtime Technologies.
– Enables the creation, deployment and testing of target
software components for devices.
– Accelerate development cycles and improve product
quality.
– Fine-grain configuration of operating system
components  RPM technology.
– Stay flexible.
• Red Hat has multiple service packages to choose
from for the many stages of development.
Embedded Linux Distributions
• Open Source Distributions [10]
– Embedded Debian
• This project is to make Debian GNU/Linux a
mainstream choice for embedded projects.
• Embedded Debian tries to strip Debian down to be a
much smaller system whilst keeping all the good
things.
• The 'embedded' hardware can be anything from a
full-blown PC to a MMU-less thing with a few MB of
RAM and flash.
Embedded Linux Distributions
– PeeWeeLinux
• A small Linux distribution aimed at embedded
devices.
• Main features
–
–
–
–
–
–
–
–
Ease of use
Menu driven development environment
Sources are available
Package maintenance using rpm
Ideal for embedded applications
Suitable for building single floppy systems
XFree86 support
Kernel supports USB, PCMCIA, and M-Systems DiskOn-Chip
Embedded Linux Distributions
– uClinux
• A derivative of Linux specifically for microprocessors
which do NOT provide Memory Management Units
(MMUs).
• uClinux was first ported to the Motorola MC68328
DragonBall Integrated Microprocessor.
• Ported Microcontrollers and Microprocessors
– Motorola DragonBall (M68EZ328), M68328,
M68EN322, ColdFire, QUICC
– ARM7TDMI
– Atari 68k
– Axis ETRAX
– Altera NIOS/NIOS-II
– … and more all the time!
Embedded Linux Distributions
• uClinux Features
– Multitasking can be tricky
 non-MMU platform
– Most of the source code for the kernel have been
rewritten
 uClinux kernel is much smaller than the original
Linux 2.0 kernel.
– Retaining the main advantages of the Linux
 stability, superior network capability, and excellent
file system support.
– Key features
» Common Linux API
» uCkernel < 512 KB
» uCkernel + tools < 900 KB
Embedded Linux Distributions
– ARM Linux
• A port of the successful Linux Kernel to ARM
processor based machines, lead mainly by Russell
King.
• ARM Linux is under almost constant development by
various people and organizations around the world.
• The ARM Linux kernel is being ported, or has been
ported to more than 500 different machine variations.
Embedded Linux Distributions
• Real-time Distributions [10]
– RTLinux
•
•
•
•
A "hard real-time" mini operating system.
Runs Linux as its lowest priority execution thread.
The Linux thread is made completely preemptible.
Real-time threads and interrupt handlers are never
delayed by non-real-time operations.
• The latest version of RTLinux supports user-level
real-time programming.
Embedded Linux Distributions
– RTAI (Real Time Application Interface)
• A comprehensive Real Time Application Interface for
Linux  Not an operating system.
• Usable both for uniprocessors (UP) and for
symmetric multi processors (SMP).
• Several architectures are supported
–
–
–
–
x86 (with and without FPU and TSC)
x86_64 (beta)
PowerPC (recovering)
ARM (StrongARM; ARM7: clps711x-family, Cirrus
Logic EP7xxx, CS89712, PXA25x)
• RTAI is very much module oriented.
• To use RTAI, you have to load the modules that
implement whatever RTAI capabilities you need.
Outline
•
•
•
•
•
•
•
Introduction
History
Embedded System Design
Embedded Microprocessor
Embedded Operating System
Embedded Linux Distributions
Embedded Application
Embedded Application
• OBS System
– The Ocean Bottom Seismometer is a self contained
data-acquisition system which free falls to the ocean
floor and records seismic data generated by
earthquakes .
– Designed by Embedded System Lab.
•
•
•
•
Data acquisition and logging system
Time-base and GPS synchronization system
OBS release system
VHF and Flash light system
Embedded Application
• SoPC based Automatic Vision Detection and Location
– The system uses the FPGA board with SoPC as
development platform to develop automatic detection and
location system. The board can integrate video input and
output, detection and location functions in a single FPGA
chip.
References
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Wikipedia, the free encyclopedia
ARM Developer Suite
Hardware/Software Codesign Group
Hardware/Software Codesign
電子工程專輯,關注嵌入式系統的發展動力
LinuxDevices.com, Snapshot of the embedded Linux market -May, 2006
Micrium.com, uCOS-II
LinuxDevices.com, Linux 2.6: A Breakthrough for Embedded
Systems
Embedded.com, Embedded systems survey: Operating systems
up for grabs
LinuxDevices.com, Embedded Linux Distributions Quick
Reference Guide
Linux Journal, uClinux for Linux programmers
Linux Device Driver, 3rd Edition, O'Reilly
Embedded.com, Linux's Future in the Embedded Systems
Market
Thank You!