Sie sind auf Seite 1von 41

http://dev.emcelettronica.

com/print/book/export/html/51676

Your Electronics Open Source


(http://dev.emcelettronica.com)
Home > Resources > Embedded OS > Embedded OS

By allankliu
Created 05/03/2008 - 04:10

RESOURCES Electronics

Embedded OS [Linux & Co.]


Overview

[Wikipedia] [1], an embedded system is a special-purpose


computer system designed to perform one or a few
dedicated functions, sometimes with real-time computing
constraints. It is usually embedded as part of a complete
device including hardware and mechanical parts. In
contrast, a general-purpose computer, such as a personal
computer, can do many different tasks depending on programming. Embedded systems have
become very important today as they control many of the common devices we use.

Today, the boundaries between the general purpose PCs, the servers and the embedded
systems are more blurred. These computers are sharing same platforms, same peripherals.
For example, an x86/Mac PC can be used as a server, an x86/PowerPC CPU can be used in
an embedded system like portable navigation device (PND). On the other way, the popular
embedded processor StrongARM was a powerful desktop PC processor for the DEC
workstation, and the embedded systems often also act servers, like NAS (Network Attached
Storage). As same as the hardware suppliers, the OS suppliers port their products into the
desktop PCs, servers and embedded systems.

Nothing cuts to the heart of a development project like the choice of OS. Whether it's a tiny
scheduler or kernel, an open-source distribution, a tightly wound real-time operating system,
a fully featured commercial RTOS, or no OS at all, it drives all downstream software
decisions and many hardware decisions as well.

A survey shows us what's important to those who get a say in the choice of OS. The criteria
are:

1. Real-time performance
2. Processor compatibility
3. Software tools
4. No royalties
5. Price
6. Memory footprint
7. Simplicity
8. Middelware
9. Compatibility
10. Services & Features

1 din 41 16.05.2008 21:40


http://dev.emcelettronica.com/print/book/export/html/51676

11. Open-source
12. Familiarity
13. Hardware suppport
14. Customization
15. Supplier's reputation
16. Support
17. Popularity
18. Other products

Reference

[2]

The resource of OS for embedded systems.

[3]

A market research report for embedded OSes

Wikipedia resources of OS for embedded systems

[1]

01 Non RTOS
According to a survey in Embedded System Design, more than a quarter of embedded
systems now in development won't have an OS at all. None. a little over 28% of all our
survey-takers said the system they're designing now won't have so much as a tiny scheduler
or task switcher.

2 din 41 16.05.2008 21:40


http://dev.emcelettronica.com/print/book/export/html/51676

Main Software Loop

In this design, the software simply has a loop. The loop calls subroutines, each of which
manages a part of the hardware or software. This method is called round-robin. The
round-robin method is very popular in small microcontrollers.

Interrupt Controlled System

Some embedded systems are predominantly interrupt controlled. This means that tasks
performed by the system are triggered by different kinds of events. An interrupt could be
generated for example by a timer in a predefined frequency, or by a serial port controller
receiving a byte.

These kinds of systems are used if event handlers need low latency and the event handlers
are short and simple. Usually these kinds of systems run a simple task in a main loop also,
but this task is not very sensitive to unexpected delays.

Sometimes the interrupt handler will add longer tasks to a queue structure. Later, after the
interrupt handler has finished, these tasks are executed by the main loop. This method brings
the system close to a multitasking kernel with discrete processes.

Most of above shedulers or kernels are developed in house. They are simple and
easy-to-use. They are not RTOS because they are only sheduler part of an OS. A complete
OS includes scheduler, task switching and resource allocation, memory management.

Non Real Time Embedded OS

Not every embedded operation systems are designed for real-time, for example, Windows
CE is not a real-time OS, but it is a multi-tasking OS. But you know, as time goes by, things
change a lot. These OSes are improved by using real-time kernels or patches.

A lot of similiar OSes have already faded out. Such as PPSM from Motorola (for its 68K/ARM
DragonBall CPU), Zaurus from Sharp. The propertiary OS for TX MIPS micro from Toshiba
(Sorry I forgot name of OS, but it was popular in Toshiba's Taiwanese customers)...

Palm OS, running on Motorola/Freescale 68K based


Dragonball CPU and ARM9 CPU, Development tools available
freely from official web site and 3rd parties.

[4]

[5]

EPOC/Symbian, supports ARM CPU. leader in mobile phone


market.

3 din 41 16.05.2008 21:40


http://dev.emcelettronica.com/print/book/export/html/51676

02 RTOS
Commercial

RTX, CMX Real-Time Multi-Tasking Operating System


products support most embedded Microcontrollers,
Microprocessors and DSPs. We also support more than 30
compiler vendors. Please contact us for further information on
any of our RTOS products such as CMX-RTX(tm),
CMX-TINY+(tm), CMX-TCP/IP(tm), CMXBug(tm), and
CMXTracker(tm).CMX supports most of the 8/16/32/64 bit
microcontrollers, microprocessors and DSPs. CMX also has
[6] configuration an studio for development.

RTXC, by Embedded Power Corportation. Now its name is


Quadros. RTXC is RTOS and integrated middleware in
TCP/IP, CAN, USB, IrDA, FS, GUI. The development tools are
RTXC Bridge and VisualRTXC, ported to ARM, ColdFire,
Blackfin.

[7]

Integrity Green Hills Software is a well-known OS supplier for


embedded system. Its offerings are
INTEGRITY/velOSity/u-velOSity OSes, and IDEs of MULTI,
AdaMULTI, DoubeCheck, TimeMachine, as well as many
compilers, communication software and off-the-shelf product
designs. It supports development platform on Linux and
Windows PC and SPARC workstation. The supporting
microprocessor list is too long. You'd better to check it out by
[8] yourself. But most of the supporting processors are 32bit
architectures.

4 din 41 16.05.2008 21:40


http://dev.emcelettronica.com/print/book/export/html/51676

Keil offers a OS/Kernels for 8051/C166/ARM processors.


They are:RTX51 tiny, free available in its kit, limited
features.RTX51 full, enhanced features with CAN bus.RTX166
Tiny, similiar to RTX51 but for C16x platform.ARTX-166
Advanced, C16x/ST10, full features includes Flash file system
and TCP/IP stack.RL-ARM Real-Time Library, complete RT
kernel for ARM7/9/Cortex-M3, with Flash file system and
TCP/IP suites.
[9]

AMX, Since its introduction by KADAK in 1980, AMXTM has


been recognized as a superior RTOS which meets the most
critical needs of the most challenging real time applications,
and yet remains easy to use and simple to understand. It
supports x86,68K,ColdFire,PPC32 PowerPC, ARM7,
ARM9,StrongARM,Xscale,and MIPS32.

[10]

embOS, developed by SEGGER Microcontroller, it is a


real-time operating system for embedded applications
designed to offer the benefits of a fully fledged multitasking
system at minimum cost. The kernel is fully interruptible and
so efficient that it can be used in very time critical situations.
The memory footprint in both RAM and ROM is so small that
it can be used in single-chip applications, leaving maximum
room for the user-program.
[11]

iRMX, by tenAsys. The gold standard in real-time software for


the x86 architecture, the iRMX III operating system, has been
proven in thousands of demanding real-time applications
worldwide. Designed specifically to support Intel x86
architecture 32-bit CPUs and associated chipsets, the iRMX
III operating system is highly configurable from a
small-footprint, kernel-only solution to a full-service, hard
real-time operating system. iRMX configurations support PC
[12] and non-PC architectures, such as Multibus and Multibus II.

5 din 41 16.05.2008 21:40


http://dev.emcelettronica.com/print/book/export/html/51676

Nucleus, by Mentor Graphics, The Nucleus OS can


significantly improve the performance, response times and
memory system utilization in many complex systems, where
other bulkier OS choices add significant overhead and do not
provide real-time response.

[13]

OS-9, by RadiSys. Top-ranked in recent RTOS surveys, OS-9


is proven world-wide in thousands of products representing
hundreds of embedded applications, including industrial
automation & control, automotive, and medical
instrumentation.

[14]

OSE, a powerful platform for the design of real-time


embedded systems. OSE's message based architecture
instantly and seamlessly achieves powerful simplicity in
complex and distributed systems.

[15]

6 din 41 16.05.2008 21:40


http://dev.emcelettronica.com/print/book/export/html/51676

pSOS, aqcuired by Wind River Inc, now. It used to be a major


embedded OS, but the current status is unknown.

[16]

Phoenix-RTOS is the realtime operating system intended for


embedded systems. The main goal of the Phoenix-RTOS
project is to develop free, portable, small and well-designed
realtime operating system for embedded hardware platforms
like SBC (Single Board Computers), SOM (System on
Module) and SoC (System On Chip). It supports IA32,
PowerPC and ARM.

[17]

QNX, Its ultra-reliable nature means QNX software is the


preferred choice for life-critical systems such as air traffic
control systems, surgical equipment, and nuclear power
plants. And its cool multimedia features have QNX software
turning up in everything from in-dash radios and infotainment
systems to the latest casino gaming terminals.

[18]

Salvo, Salvo has modest ROM and miniscule RAM


requirements. This mean that you can have event-driven,
priority-based, multitasking applications in nearly any
single-chip microcontroller, with plenty of room left for your
application. It is a product of Pumpkin, Inc. It supports

[19]
8051/ARM/AVR/M68HC11/MSP430/PIC12/PIC24/PIC32/TMS320 DSP.

7 din 41 16.05.2008 21:40


http://dev.emcelettronica.com/print/book/export/html/51676

ThreadX is an advanced Real-Time Operating System


(RTOS) designed specifically for deeply embedded
applications. ThreadX has many advanced features, including
its picokernel? architecture, preemption-threshold,? and a
rich set of system services. Combined with its superior
ease-of-use, ThreadX is the ideal choice for the most
demanding of embedded applications. It is developed by
Express Logic.
[20]

VRTX, by Mentor Graphics as well. Product strategy is


unclear

[21]

VxWorks, Wind River. The microsoft in embedded OS.


VxWorks could be the most widely used OS in embedded
world.

[16]

8 din 41 16.05.2008 21:40


http://dev.emcelettronica.com/print/book/export/html/51676

XMK, The eXtreme Minimal Kernel (XMK) is a real-time


operating system (RTOS) that is designed for minimal
RAM/ROM use. It supports AVR, H8 and many 8 bit
microcontrollers.

[22]

Open Source

OSEK/VDX, a OS standard used in automotive distributed


applications. OSEK is not a OS, but a standard interface and
design guideline for OS.

[23]

TRON, The Real-time Operating system Nucleus, ITRON is a


Japanese open standard for a real-time operating system
(RTOS) initiated under guidance of Ken Sakamura. This
project aims to standardize the RTOS and related
specifications for embedded systems, particularly small-scale
embedded systems. The ITRON RTOS is targeted for
consumer electronic devices, such as mobile phones and fax
machines. Various vendors (most Japanese) sell their own
[24] implementations of the RTOS.

9 din 41 16.05.2008 21:40


http://dev.emcelettronica.com/print/book/export/html/51676

FreeRTOS is a portable, open source, mini Real Time Kernel


- a free RTOS. This site shows how a complete embedded
real time system can be created from a Windows host using
quality open source development tools (where available). It
supports ARM7/MSP430/AMD/AVR/8051.

[25]

MicroC/OS-II. uC/OS-II is a highly portable, ROMable, very


scalable, preemptive real-time, multitasking kernel (RTOS) for
microprocessors and microcontrollers. It supports many
processor architectures including ARM7 and ARM9; and can
handle up to 255 tasks, providing services such as
semaphores, message mailboxes and task management.
uC/OS-II has been ported to many microcontrollers and
microprocessors. The OS is not free for commercial purpose
[26] with a lot of middleware from 3rd parties.

InfraBed is a portable RTOS that has been ported to the


ARM7 architecture using the Keil tools. It is developed by
Embedded Artists. Free for non-commercial purpose.

[27]

TinyOS. Crossbow Technology, Inc. announces the


availability of the TinyOS 2.0 Operating System for
Crossbow's advanced IRIS motes. This enables developers
to use the latest generation software on the latest generation
Sensor Network hardware. The sensor is using AVR
microcontroller with open source GNU compiler.

[28]

10 din 41 16.05.2008 21:40


http://dev.emcelettronica.com/print/book/export/html/51676

eCos is an open source, royalty-free, real-time operating


system intended for embedded applications. The highly
configurable nature of eCos allows the operating system to
be customised to precise application requirements, delivering
the best possible run-time performance and an optimised
hardware resource footprint. A thriving net community has
grown up around the operating system ensuring on-going
technical innovation and wide platform support. eCOS
[29] supports ARM, CalmRISC, FR-V, H8, IA32, M86K, AM3x,

MIPS, NEC v8xx, PowerPC, SPARC, SuperH. Detail list please check their web page for
hardware [30].

Nut/OS is an intentionally simple RTOS for the ATmega128,


which provides a minimum of services to run Nut/Net, the
TCP/IP stack. It supports
AVR-GCC/ICCAVR/CodeVisionAVR.

[31]

AvrX is a Real Time Multitasking Kernel written for the Atmel


AVR series of micro controllers. AvrX contains approximately
40 API in the Six categories. The Kernel is written in
assembly. Total kernel size varies from ~500 to 700 words
depending upon which version is being used. Since the
kernel is provided as a library of routines, practical
applications take up less space because not all functions are
used. It supports IAR assembler and GCC Ccompiler.
[32]

03 Embedded Linux and Unix platforms


Community

11 din 41 16.05.2008 21:40


http://dev.emcelettronica.com/print/book/export/html/51676

The Linux/Microcontroller project is a port of Linux to systems


without a Memory Management Unit (MMU). uClinux first
ported to the Motorola MC68328: DragonBall Integrated
Microprocessor. The first target system to successfully boot is
the PalmPilot using a TRG SuperPilot Board with a custom
boot-loader created specifically for our Linux/PalmPilot port.

[33]

ARM Linux is a port of the successful Linux Kernel to ARM


processor based machines, lead mainly by Russell King, with
contributions from many others. ARM Linux is under almost
constant development by various people and organisations
around the world.

[34]

Distributions

Most of the major players in Linux distribution have embedded versions. These distributions
are a bundle of software components, the specific distribution will bring a lof of application
specific software module with the Linux kernel.

[35]

Linux/RT, by TimeSys

Red Hat,For many years, embedded systems have been


developed and deployed with the help of Red Hat's open
source tools and runtime software. Because of the diverse
range of embedded devices and systems, Red Hat has
developed a process to customize tools and runtime software
for a wide range of architectures, boards, and systems.

[36]

12 din 41 16.05.2008 21:40


http://dev.emcelettronica.com/print/book/export/html/51676

BlueCat embedded Linux from LynuxWorks, based on the 2.6


kernel, is an implementation of the Linux model enhanced for
use in embedded systems ranging from small consumer-type
devices to large-scale, multi-CPU systems.

[37]

MontaVista? With over 2,000 customers developing on


MontaVista Linux across a wide range of industries,
MontaVista is the undisputed leading provider of
commercial-grade Linux development platforms for intelligent
devices and communications infrastructure.

[38]

Debian's multiarchitecture support, vendor independence,


social contract and huge software base make it an attractive
choice for all sorts of systems, but the main distribution is
very much aimed at systems with at least desktop resources
(big hard discs, plenty of memory). Embedded Debian tries to
strip Debian down to be a much smaller system whilst
keeping all the good things.

[39]

13 din 41 16.05.2008 21:40


http://dev.emcelettronica.com/print/book/export/html/51676

Embedix. With its 20-year experiences of embedded devices


development and solid accomplishments as an embedded
Linux pioneer, Lineo strongly boosts ubiquitous network era
by providing sophisticated-and-robust software products and
reliable services for the customers to attain faster
time-to-market.

[40]

emKnoppix is a distribution of Knoppix tailored for use in


embedded systems. Idea for such a distribution arose when I
was playing with Knoppix for remastering and building an
embedded Linux platform at the same time

[41]

Pico/Linux, The Open Source Handheld OS powered by


PicoGUI and Linux.

[42]

GeeXboX is a free embedded Linux distribution which aims at


turning your computer into a so called HTPC (Home Theater
PC) or Media Center. Being a standalone LiveCD-based
distribution, it's a ready to boot operating system than works
on any Pentium-class x86 computer or PowerPC Macintosh,
implying no software requirement. You can even use it on a
diskless computer, the whole system being loaded in RAM.

[43]

14 din 41 16.05.2008 21:40


http://dev.emcelettronica.com/print/book/export/html/51676

LynxOS, Lynixworks offers many RTOS and Linux distribution


for real-time and embedded systems.

[44]

RTAI, RealTime Application Interface for Linux - which lets


you write applications with strict timing constraints for your
favourite operating system. Like Linux itself this software is a
community effort. RTAI supports x86, x86_64, PowerPC and
ARM.

[45]

Android is a software stack for mobile devices that includes


an operating system, middleware and key applications. This
early look at the Android SDK provides the tools and APIs
necessary to begin developing applications on the Android
platform using the Java programming language. Android
relies on Linux version 2.6 for core system services such as
security, memory management, process management,
network stack, and driver model. The kernel also acts as an
[46] abstraction layer between the hardware and the rest of the
software stack.

UNIX

Because the relationship between UNIX and Linux, we put embedded UNIX in this section as
well.

15 din 41 16.05.2008 21:40


http://dev.emcelettronica.com/print/book/export/html/51676

Embedded FreeBSD. The Embedded FreeBSD project


provides tools and documentation for using FreeBSD in an
embedded environment. The goal is that FreeBSD can be
used to produce products and systems that are competitive in
the embedded world. FreeBSD has some unique advantages
for embedded developers.

[47]

NetBSD. The NetBSD Operating System is the most portable


OS in the world, and many of the supported hardware
platforms are suited for embedded applications. While
embedded development with NetBSD doesn't differ a lot from
regular Unix development, some special cases are in the
build processes.

[48]

polyBSD is a "multi"-purpose (hence "poly") framework for


building embedded systems that address certain aspects of
information assurance. Essentially, it is a minimalistic install
of NetBSD (i386) designed to run from a 256MB flash card or
USB memory stick.

[49]

[50]

Embedded OpenBSD

MAC

16 din 41 16.05.2008 21:40


http://dev.emcelettronica.com/print/book/export/html/51676

Mac OS X (Linux based, for desktop PC and Apple TV)

[51]

References

[52]

The Consumer Electronics Linux Forum (CELF), a California


Non-Profit Corporation, is focused on the advancement of Linux
as an open source platform for consumer electronics (CE)
devices.

04 Embedded Windows Platform


Windows

Windows, the major OS in the desktop PCs, it has many


derivates in the servers and embedded systems. Microsoft
offers embedded OSes in different names with different
configurations for different applications, sometimes the
names are really confusing the developers. But their cores
are almost identical.

[53]

Windows Embedded CE, a real embedded OS for x86, ARM,


MIPS and SH4 processors, it has a lot of names for different
applications and different time. The very first name is
Windows CE, then Pocket PC, Windows Mobile, Windows
CE.NET, Windows automotives, Microsoft Auto. But they are
leaves from same trunk. The first version of Windows CE is a
subset of Win32, more or less an embedded OS derivates
from Windows NT, which is not a real-time OS, not latest
[54] Windows CE 6.0 becomes a native real time multi-task OS.

Its run time price is USD3-16.In order to develop Windows Embedded CE, you must

17 din 41 16.05.2008 21:40


http://dev.emcelettronica.com/print/book/export/html/51676

download following software packages from Microsoft's website.Visual Studio 2005 Trial,
Team Suite SP1 for developing application software, Windows Embedded CE 6.0 Evaluation
Edition and update ReleasesWindows Embedded CE 6.0 Platform Builder for porting OS to
your hardware.

Windows XP Embedded is an embedded version of Windows


XP Professional. Windows XP Embedded incorporates the
latest embedded-enabling capabilities, such as support for
multiple boot, storage, deployment, and management
technologies. Windows XP Embedded SP2 Features 2007
support new features includes File Based Write Filter and
USB support. Its run time price is USD99.The Windows XP
Embedded SP2 Features 2007 has integrated necessary
[55] tools for Windows XPe

Windows Embedded for Point of Service is developed for


POS applications, which requries a lot of business periperal
devices. Its minimum requirement is x86 CPU running over
233MHz. The runtime cost is pretty high, about USD100 for
each POS PC. But WEPOS indeed brings some benefits to
POS applications.

[56]

Windows Vista for Embedded (x86). Unlike the other


Windows Embedded operating systems, Windows Vista for
Embedded Systems is not a componentized offering and the
image is not customizable by the developer. Windows Vista
for Embedded System was designed for the desktop but is
available for fixed-function or dedicated embedded systems.
The Windows Vista? for Embedded Systems product line
offers two choices: Ultimate and Business versions. Windows
[57] Vista Ultimate for Embedded Systems offer BitLocker Driver

Encrytion and SUA for running UNIX applications on the OS.

18 din 41 16.05.2008 21:40


http://dev.emcelettronica.com/print/book/export/html/51676

Windows Automotive. Windows Automotive 5.0 is built on the


Microsoft Windows CE 5.0 operating system, a hard,
real-time, 32-bit, memory-protected operating system kernel
with support for a variety of processor architectures. Windows
Automotive 5.0 also features the Automotive User Interface
Toolkit (AUITK), a sophisticated graphical user interface
framework design tool and compact runtime environment.

[58]

Microsoft Auto, another new name of Windows CE 6.0 in


automotives. A comprehensive hardware/software reference
platform, Microsoft Auto enables carmakers and suppliers to
more quickly and easily build a solution that provides
consumers with features such as mobile device integration,
speech recognition, and infotainment.

[59]

SYNC, powered by Microsoft Auto software, is Ford’s new


fully integrated, voice-activated in-car communications and
entertainment system for mobile phones and digital music
players.DOS clones for embedded systemBecause Microsoft
discontinued DOS support long time ago. A lot of OS
suppliers start to port this legacy OS in embedded system.
Most of these DOS-like OSes are free, even open source
solutions. Since DOS is not a real time OS, there are some
[60] RT extensions for these OSes.

DOS clones for embedded system

Because Microsoft discontinued DOS support long time ago. A lot of OS suppliers start to
port this legacy OS in embedded system. Most of these DOS-like OSes are free, even open
source solutions. Since DOS is not a real time OS, there are some RT extensions for these
OSes.

19 din 41 16.05.2008 21:40


http://dev.emcelettronica.com/print/book/export/html/51676

Dr-DOS (Digital Research/Caldera)

[61]

RTKernel, On Time RTOS-32 (Win32 subset in 16K


RAM/ROM), from On Time.

[62]

JK microsystems, Inc.

[63]

[64] eRTOS

[65]
2net

Development tools

20 din 41 16.05.2008 21:40


http://dev.emcelettronica.com/print/book/export/html/51676

Jungo WinDriver for Windows CE, Windows Mobile.

[66]

05 Java Approach
Usually developers consider Java as a programming language, but Java is a complete
operating enviornment including some parts belong to OS. If you have experience of porting
Java runtime to embedded system. You will find that RTOS is not a necessary requirement
for porting Java.

Java Platform, Micro Edition (Java ME) provides a robust,


flexible environment for applications running on mobile and
other embedded devices—mobile phones, personal digital
assistants (PDAs), TV set-top boxes, and printers.

[67]

Using Java SE for Embedded enables you to develop highly


functional, reliable, portable and secure applications for
today's more powerful embedded systems.

[68]

JavaOS. The project is aimed at creating an Operating


System using JAVA as the core language. Although this may
sounda bit absurd, in the long run this project will definitely be
successfully completed with the help of more members.

[69]

21 din 41 16.05.2008 21:40


http://dev.emcelettronica.com/print/book/export/html/51676

JX is a Java operating system that focuses on a flexible and


robust operating system architecture. The JX system
architecture consists of a set of Java components executing
on the JX core that is responsible for system initialization,
CPU context switching and low-level domain management.
The Java code is organized in components which are loaded
into domains, verified, and translated to native code.
Main-stream operating systems and traditional microkernels
[70] base their protection mechanisms on MMU-provided address

space separation. Protection in JX is solely based on the type safety of the intermediate
code, the Java bytecode.

Aplix Embedded Java. JBlend? meets these needs while


providing a fast, compact and robust embedded software
product that enables Java technology on resource
constrained consumer devices. These reasons are why
JBlend? has been so successful.

[71]

[72]

Embedded PERC 2.2 Java-compliant environment (Newmonics).


Aonix, a decades-long industry leader in real-time and safety
critical tools, and pioneer in Java platform technologies, has
brought together these two strengths to meet the needs of
today's mission critical developers. As a participant in the Java
Community Process and a key contributor to the development of
standardized RTSJ profiles for hard real-time and safety critical
applications, Aonix is uniquely positioned to make this technology a reality.

simpleRTJ. A virtual machine with a small memory footprint


aimed at embedded systems and real-time operating
systems. Only a subset of Java is supported (e.g. no double
type). The following processors are supported (according to
the site): MC68302, MC68376/332, 68HC11, 68HC16, 8051,
8051XA, various ARM derivatives, H8S/2241, STi5512 (RISC
set-top-box), DSP56300, and others. This is a commercial
product. However, use of the VM is free for evaluation,
[73] educational and private use.

22 din 41 16.05.2008 21:40


http://dev.emcelettronica.com/print/book/export/html/51676

The TINI (Tiny InterNet Interface) platform is aimed at


connecting devices from sensors to factory equipment to a
network. The TINI virtual machine (for the TINI OS operating
system) has a memory footprint of less than 40 KB. It offers
only part of the runtime library: java.lang, java.io, java.net and
java.util. The target chip is Dallas 8051 based iButton.

[74]

[75]

Jbed Micro Editon CLDC JVM (esmertec). The Jbed RTOS


Package is a real-time capable Java Virtual Machine for
embedded systems and Internet appliances. An entire
application, including the device drivers, can be written in Java.
Memory footprint starts at 10 KB. Runs on PowerPC 8xx,
Motorola 68k family processors, ARM7TDMI, StrongArm and
Coldfire. Intel and MIPS support are planned. Commercial. Demo
available for download.

Kaffe -- an open source Java implementation (Transvirtual


Technologies)The GPL'd Kaffe virtual machine and its
runtime library are a cleanroom implementation (no
dependencies on Sun). There is a very impressive list of
supported platforms: Embedded Linux, VxWorks, LynxOS,
SMX, ThreadX, Linux (all distributions), DOS, Windows NT
4.0, Windows 98, Windows 2000, Windows CE, Solaris,
SunOS, BSDI, FreeBSD, NetBSD, OSF/1, Unixware, HP-UX,
[76] NextStep, OpenStep. Supported processors include ix86,

Sparc, m68k, StrongARM, MIPS, Alpha, PowerPC and PARisc. Memory footprint is small, the
VM can be used for embedded systems. The exact Java version is not specified, for a
reference see the Kaffe Datasheet (PDF, 96 KB).
KaffePC is a virtual machine for DOS, based on Kaffe.
There is also a port of Kaffe to AtheOS (no AWT available).

23 din 41 16.05.2008 21:40


http://dev.emcelettronica.com/print/book/export/html/51676

VisualAge Micro Edition (IBM) These are runtime


environments for embedded systems for Windows CE, QNX,
Palm, Linux.

[77]

Waba -- an Open Source Java-like platform for small devices


(Wabasoft)
A subset of the Java programming language's syntax, class
file format and virtual machine, Waba is designed for
embedded systems. Waba programs can usually run on a
Java Virtual machine, but not vice versa. The VMs are
available for PalmPilot and Windows CE devices.

[78]

Wonka -- an open source embedded JVM & class library


(ACUNIA)
A clean-room implementation of a Java virtual machine for
embedded devices, with emphasis on portability and
efficiency. Available for Linux (x86 and ARM), distributed
under a license similar to the GPL. The Acunia went out of
the business. The link is talking about other sites for Wonka.

[79]

Google Android Mobile Phone Platform, most of the


applications are developed upon Java VM with wider APIs.

[80]

24 din 41 16.05.2008 21:40


http://dev.emcelettronica.com/print/book/export/html/51676

Java for Lego RCX. leJOS is replacement firmware for the


Lego Mindstorms RCX brick - a JVM that fits within the 32kb
on the RCX. Yes, you can program a Lego robot with Java!
Resources

[81]

The source for Java Technology Collabration from Java.net.

[82]

This page from java-virtual-machine.net is supposed to give


an overview of Java virtual machines (JVMs), Java
development kits (JDKs), Java runtime environments (JREs)
and related products.

[83]

06 Multi-Core OS
Most multiprocessing systems can be classified as either symmetric multiprocessing (SMP) or
asymmetric multiprocessing (AMP). AMP involves the use of interprocessor communication to
combine the efforts of multiple processors, each with its own local operating system and
hardware resources. Also, AMP involves less OS overhead for each individual processor and
a more traditional execution environment for applications. AMP seems like distributed system.
The number of peripherals that are supported in today's multicore processors is quickly
increasing. Symmetric-multiprocessing (SMP) software is expected to be quickly available to
support these peripherals. Basically any OS can be ported to a SMP platform, but the
developers must take care of following issues for SMP OS.

- Handling of task priority or implicit synchronization


- Spinlocks and synchronization
- Synchronization between tasks sharing memory
- Synchronization between tasks and ISRs sharing memory
- Synchronization between ISRs sharing memory

25 din 41 16.05.2008 21:40


http://dev.emcelettronica.com/print/book/export/html/51676

RTEMS (Real-Time Executive for Multiprocessor


Systems) is a commercial grade real-time operating system
designed for deeply embedded systems. It is a free open
source solution that supports multi-processor systems.
RTEMS is designed to support applications with the most
stringent real-time requirements while being compatible with
open standards.
[84]

Symbian Limited announced Symbian OS support for the


ARM Symmetric Multi-processor (SMP) architecture. SMP
support in future versions of Symbian OS will use multiple
CPU cores to provide ;performance on demand - battery life
will be improved by accessing cores only when running
demanding high-end multimedia applications and powering
them down when they are not in use. Symbian and ARM are
working together closely on supporting Cortex-A9 MPCore
[85] multicore processor-based CPUs in Symbian OS.

The eT-Kernel Multi-Core Edition is a realtime OS for


next-generation embedded systems with multicore. It is ideal
for high performance embedded systems such as digital
home appliances, automobile devices, and mobile devices.
This realtime OS is loaded with features specific to multicore
software development making the technology accessible
even for first-time users.

[86]

New Express Logic ThreadX/SMP RTOS Facilitates


Development on ADI's dual-core Symmetric Multi-Processing
(SMP) Blackfin family.

[87]

26 din 41 16.05.2008 21:40


http://dev.emcelettronica.com/print/book/export/html/51676

Altera Japan, Ltd. in conjunction with A.I. Corporation, an


embedded software distributor and the TOPPERS Project, a
nonprofit organization, announced today the immediate
availability of TOPPERS-Pro Multi/FDMP, a
function-distributed real-time operating system (RTOS) that
provides multiprocessor support for Altera’s Nios® II
embedded processor, the world’s most widely used
configurable soft-core processor. Targeted at a wide variety
[88] of applications in the digital consumer, office equipment and

automotive markets, this embedded solution addresses the performance, power consumption
and radio noise emission requirements of today’s advanced systems.

PolyCore Software touches every software aspect of a multi-


core system below the
application.

[89]

Resources

An article for multicore SMP OS development

[90]

Using an symmetric multiprocessor model to build hybrid


multicore designs.

[91]

27 din 41 16.05.2008 21:40


http://dev.emcelettronica.com/print/book/export/html/51676

Multicore Association.

[92]

07 DSP oriented OS
DSPOS, Motorola 56800E DSPs, StarCore, BlackFin DSPs,
ARM7/9, features VoIP reference design and Unicoi Fusion
Suite.

[93]

DSPnano, RoewBots' OS for PIC24, dsPIC30, dsPIC33. A


signal processing operating system intended for small signal
processors and small DSP networks. Offers an IDE,
Compilers, Debuggers, nano-kernel, I/O, and DSP.

[94]

EFOS, from Vinjey, an embedded software solution and


services company.

[95]

28 din 41 16.05.2008 21:40


http://dev.emcelettronica.com/print/book/export/html/51676

DSP/BIOS from TI provides a rich set of deterministic kernel


services that enable developers to create sophisticated
applications without compromising real-time deadlines.
DSP/BIOS is highly scalable with multithreading
configurations requiring as few as 1K words. The kernel
services may be invoked through either a C function or an
assembly language macro interface.
[96]

Blackfin Processor OS from ADI site. You can see a lot of


well-known RTOSes have already ported to Blackfin
DSP/RISC chip.

[97]

08 Middleware
What is middleware?

Middleware is the enabling technology of Enterprise application integration. It describes a


piece of software that connects two or more software applications, allowing them to exchange
data. Originally middleware is a word for large scale enterprise computing application.

In embedded system, middleware is the software components running on top of operation


system and offering services for applications. Embedded system is dedicated for a special
prupose, therefore different embedded systems have different middleware components.
Meanwhile, middleware has close relationship with the operation systems. Most of the
middleware is tailor-made for specific OS.

For example, uC/OS-II is popular in embedded applications. This OS has many middleware
for embedded systems, such as uC/TCP-IP, uC/FS, uC/GUI, uC/USB-device, uC/USB-host,
uC/FL, uC/Modbus, uC/CAN, uC/Probe and uC/BuildingBlocks, its OS components tool.

I don't want to duplicate all middleware suites for mentioned OSes individually. I only list
some important open source middleware for your reference.

GUI

29 din 41 16.05.2008 21:40


http://dev.emcelettronica.com/print/book/export/html/51676

Embedded Wizard (EmWi) is a PC tool for developing and


prototyping platform independent Graphical User Interfaces
(GUI) for embedded systems, consumer electronic devices,
automotive and industry appliances.
It's sophisticated and user-friendly authoring tool facilitates
the design of the GUI appearance as well as the coding of the
GUI behavior. It can solve almost any given 2D GUI task and
enables you to develop, customize and adapt your GUI
[98] across various product platforms with minimum effort.

Meanwhile Tara Systems also offers middleware like DBS/EPG/Service Manager/Subtitle


Decoder/Teletext Decoder/Close Caption/HTML 3.2 Browser for embedded visual systems.

MiniGUI is a cross-operating-system graphics user interface


support system for embedded devices, and is an embedded
graphics middleware. It aims to provide a compact, fast,
stable, lightweight, and cross-OS GUI support system, which
is especially fit for real-time embedded systems based-on
Linux/uClinux, eCos, uC/OS-II, and other traditional RTOSes,
such as VxWorks, ThreadX, and Nucleus.

[99]

PicoGUI is an Open Source project to create a new GUI


architecture designed to be usable on systems ranging from
embedded to desktops.

[100]

QT Embedded and QPE (Qt Palmtop Environment) for Palm


size handheld device from Trolltech.

[101]

30 din 41 16.05.2008 21:40


http://dev.emcelettronica.com/print/book/export/html/51676

Microwindows/Nano-X. The Nano-X Window System is an


Open Source project aimed at bringing the features of
modern graphical windowing environments to smaller
devices and platforms. Nano-X allows applications to be built
and tested on the Linux desktop, as well as cross-compiled
for the target device. The Nano-X Window System was
previously named Microwindows, but has been renamed due
to conflicts with Microsoft's Windows trademark.
[102]

File System

Most of the embedded File systems are ported from Linux distribution. Other file systems are
tailor-made for specific RTOS.

ScalingWeb is a software development team based in


Ukraine. Embedded File System (EFS) is a library that allows
you to create virtual file system in a single file. It can be
useful when you need to create really big number of small
files. It will still be blazing fast even when you have millions
of files. Encryption layer could be easily added if you want
security.

[103]

The Prex project is an open source initiative to provide a


portable real-time operating system for embedded systems.
Prex is designed specifically for small memory footprint
platforms. It is written mainly in C language based on
traditional microkernel architecture. File system is availale for
download as well.

[104]

USB

HCC embedded offers storage solution for embedded


systems. From flash file system to USB desive and host.

[105]

31 din 41 16.05.2008 21:40


http://dev.emcelettronica.com/print/book/export/html/51676

libusb-win32 is an open-source driver library that enables


Windows applications to access USB devices (under
development).

[106]

PORUS, Portable USB Periperal Stack, an open source USB


stack for TMS320VC5507 DSP.

[107]

TCP/IP

It is interesting to know there are two TCP/IP stacks for embedded systems available from
Swedish Institute of Computer Science.

The open-source uIP TCP/IP stack provides TCP/IP


connectivity to tiny embedded 8-bit microcontrollers, with
maintained interoperability and RFC standards compliance.
uIP was developed by Adam Dunkels of the Networked
Embedded Systems group at the Swedish Institute of
Computer Science but is further developed by a world-wide
team of developers.

[108]

32 din 41 16.05.2008 21:40


http://dev.emcelettronica.com/print/book/export/html/51676

lwIP is a light-weight implementation of the TCP/IP protocol


suite that was originally written by Adam Dunkels of the
Swedish Institute of Computer Science but now is being
actively developed by a team of developers distributed
world-wide headed by Leon Woestenberg.

[109]

uC/IP (pronounced mew-kip) is a project to develop a


TCP/IP protocol stack for microcontrollers. The code is
based on BSD code and therefore carries the BSD licence.
We do not require that you contribute changes back to us
but we would sure appreciate it.

[110]

A small implementation of TCP/IP, includes FTP client. It has


been ported to 68K, x86, 8051.

[111]

Database System

Metakit is an efficient embedded database library with a


small footprint. It fills the gap between flat-file, relational,
object-oriented, and tree-structured databases, supporting
relational joins, serialization, nested structures, and instant
schema evolution. There is a C++ API, a Python binding
called Mk4py, and a Tcl binding called Mk4tcl. You can
manipulate and exchange data between any of these.

[112]

Others

33 din 41 16.05.2008 21:40


http://dev.emcelettronica.com/print/book/export/html/51676

ezHomeTech SoC Software Platform

[113]

Rockbox is an open source firmware for MP3 players.

[114]

Mozilla Developer Center, developer can find source for


JavaScript and XUL for system scripting and UI design.
JavaScript is powerful in embedded systems as well.
Although most of the embedded systems have not used that
feature so far.

[115]

09 Resources
This open courseware from MIT provides an overview of
robot mechanisms, dynamics, and intelligent controls. Topics
include planar and spatial kinematics, and motion planning;
mechanism design for manipulators and mobile robots,
multi-rigid-body dynamics, 3D graphic simulation; control
design, actuators, and sensors; wireless networking, task
modeling, human-machine interface, and embedded
software. Weekly laboratories provide experience with servo
[116] drives, real-time control, and embedded software.

34 din 41 16.05.2008 21:40


http://dev.emcelettronica.com/print/book/export/html/51676

The Femto OS is a very concise portable preemptive


operating system (RTOS) for embedded devices with
minimal ram and flash, up to say 16K flash, 1K ram. The
main target is the AVR architecture, such as the
ATtiny861/461/261 series. But the system is written in C with
a separate port file.

[117]

SlideShare

[118] | View [119] | Upload your own [120]

35 din 41 16.05.2008 21:40


http://dev.emcelettronica.com/print/book/export/html/51676

[118] | View [122] | Upload your own [120]

Video Resources

This example shows the Femto OS without additional tasks (only idle process).

36 din 41 16.05.2008 21:40


http://dev.emcelettronica.com/print/book/export/html/51676

This is a simple GUI written in C without a RTOS ( WinCE, Linux, .. ). The entire GUI library is
less then 32K of code. Written for the FreeScale iMXS.

Video from the European research project RUNES http://www.ist-runes.org/ [123] showing a
road fire incident in 2012 where embedded wireless sensor network technology assists the
rescue mission. Really nice video, you can check out the video list of the uploader, you will
see some people who are really famous in open source embedded world. Such as the
founders of uIP/LwIP......

10 Copyright and Legal Issues


As the popularity of GPL and other open source licenses, legal issues are always making
noise along with the growing of embedded systems. To be frank, I am not familiar with this

37 din 41 16.05.2008 21:40


http://dev.emcelettronica.com/print/book/export/html/51676

topic. I collection some resources for your references. In case you have any questions about
it, you'd better to consult a lawyer for intelligent properties.

A Legal Issues Primer for Open Source and Free Software


Projects, from Software Freedom Law Center.

[124]

What License to Use? from O'Reilly book of Open Sources:


Voices from the Open Source Revolution.

[125]

Why you should use a BSD-style license.

[126]

GNU GPL

[127]

38 din 41 16.05.2008 21:40


http://dev.emcelettronica.com/print/book/export/html/51676

Mozilla Code Licensing

[128]

[129]

BSD licese

Micrium uC/OS-II License, free for educational purpose. Not


free for commercial purpose.

[130]

Trademarks

Source URL: http://dev.emcelettronica.com/embedded-os

Links:
[1] http://en.wikipedia.org/wiki/Category:Embedded_systems
[2] http://electronicdesign.com/HotSpot/Index.cfm?AD=1&HotSpotUrl=embedded"target="_blank
[3] http://www.embedded.com/1999/9903/9903sr.htm"target="_blank
[4] http://pdn.palm.com/regac/pdn/index.jsp
[5] http://www.symbian.com/developer/index.html
[6] http://www.cmx.com/
[7] http://www.quadros.com/
[8] http://www.ghs.com/products.html
[9] http://www.keil.com/rtos/
[10] http://www.kadak.com/html/indexamx.htm

39 din 41 16.05.2008 21:40


http://dev.emcelettronica.com/print/book/export/html/51676

[11] http://www.segger.com/embos.html
[12] http://www.tenasys.com/products/irmx.php
[13] http://www.mentor.com/products/embedded_software/nucleus_rtos/
[14] http://www.microware.com/
[15] http://www.enea.com/templates/Extension____12767.aspx
[16] http://www.windriver.com/
[17] http://www.phoenix-rtos.org/
[18] http://www.qnx.com/
[19] http://www.pumpkininc.com/
[20] http://www.rtos.com/txtech.asp
[21] http://www.mentor.com/products/
[22] http://www.shift-right.com/xmk/xmk/overview.htm
[23] http://www.osek-vdx.org/
[24] http://www.sakamura-lab.org/TRON/
[25] http://www.freertos.org/
[26] http://www.micrium.com/
[27] http://www.embeddedartists.com/
[28] http://www.tinyos.net/
[29] http://ecos.sourceware.org/
[30] http://ecos.sourceware.org/hardware.html
[31] http://www.ethernut.de/en/software/index.html
[32] http://www.barello.net/avrx/
[33] http://www.uclinux.org/
[34] http://www.arm.linux.org.uk/developer/
[35] http://www.timesys.com/"target="_blank
[36] http://www.redhat.com/services/focus/embedded/
[37] http://www.lynuxworks.com/embedded-linux/embedded-linux.php
[38] http://www.mvista.com/
[39] http://www.emdebian.org/
[40] http://www.lineo.co.jp/eng/index.html
[41] http://emknoppix.sarovar.org/
[42] http://picolinux.sourceforge.net/
[43] http://www.geexbox.org/en/index.html
[44] http://www.lynuxworks.com/
[45] https://www.rtai.org/
[46] http://code.google.com/android/what-is-android.html
[47] http://www.embeddedfreebsd.org/
[48] http://www.netbsd.org/Misc/embed.html
[49] http://freshmeat.net/projects/polybsd/
[50] http://www.kernel-panic.it/openbsd/embedded/"target="_blank
[51] http://developer.apple.com/macosx/
[52] http://www.celinuxforum.org/
[53] http://www.microsoft.com/windows/embedded/
[54] http://www.microsoft.com/windows/embedded/eval/wince/default.mspx
[55] http://www.microsoft.com/windows/embedded/eval/xpe/default.mspx
[56] http://www.microsoft.com/windows/embedded/wepos/default.mspx
[57] http://www.microsoft.com/windows/embedded/eval/vista/default.mspx
[58] http://www.microsoft.com/windowsautomotive/wa5/default.mspx
[59] http://www.microsoft.com/windowsautomotive/ma/default.mspx
[60] http://media.ford.com/article_display.cfm?article_id=25169
[61] http://www.drdos.com/
[62] http://www.on-time.com/
[63] http://www.jkmicro.com/downloads/downloads.html
[64] http://www.ertos.com/"target="_blank
[65] http://www.2net.co.uk/dos.html"target="_blank
[66] http://www.jungo.com/st/win_ce.html
[67] http://java.sun.com/javame/index.jsp
[68] http://java.sun.com/javase/embedded/
[69] https://javaos.dev.java.net/
[70] http://www4.informatik.uni-erlangen.de/Projects/JX/
[71] http://www.aplixcorp.com/en/products/jb_series/overview.html
[72] http://www.aonix.com/perc.html"target="_blank

40 din 41 16.05.2008 21:40


http://dev.emcelettronica.com/print/book/export/html/51676

[73] http://www.rtjcom.com
[74] http://www.ibutton.com/TINI/
[75] http://www.jbed.com/"target="_blank
[76] http://www.kaffe.org
[77] http://www-4.ibm.com/software/ad/embedded/
[78] http://www.wabasoft.com/
[79] http://www.javalobby.org/forums/thread.jspa?threadID=15960
[80] http://code.google.com/android/intro/index.html
[81] http://lejos.sourceforge.net/
[82] https://embeddedjava.dev.java.net/
[83] http://java-virtual-machine.net/other.html
[84] http://www.rtems.com/wiki/index.php/RTEMSFeatures
[85] http://www.symbian-freak.com/news/007/10/symbian_and_arm_cooperate.htm
[86] http://www.esol.co.jp/english/embedded/et-kernel_multicore-edition.html
[87] http://www.rtos.com/news/detail/?prid=79
[88] http://www.toppers.jp/en/index.html
[89] http://www.polycoresoftware.com/
[90] http://www.embeddedintel.com/special_features.php?feature=240
[91] http://www.embedded.com/columns/technicalinsights/173402824?_requestid=278602
[92] http://www.multicore-association.org/
[93] http://www.dspos.com/
[94] http://www.rowebots.com/
[95] http://www.vinjey.com/index.html
[96] http://focus.ti.com/docs/toolsw/folders/print/dspbios.html
[97] http://www.analog.com/processors/blackfin/gettingStarted/operatingSystems/index.html
[98] http://www.tara-systems.de/emwi/index.html
[99] http://www.minigui.org/
[100] http://picogui.org/
[101] http://www.trolltech.com/
[102] http://microwindows.org/
[103] http://www.scalingweb.com/embedded_file_system.php
[104] http://prex.sourceforge.net/index.html
[105] http://www.hcc-embedded.com/site.php?mid=120
[106] http://libusb-win32.sourceforge.net/
[107] http://porus.berlios.de/
[108] http://www.sics.se/~adam/uip/index.php/Main_Page
[109] http://www.sics.se/~adam/lwip/
[110] http://ucip.sourceforge.net/
[111] http://www.unusualresearch.com/tinytcp/tinytcp.htm
[112] http://www.equi4.com/metakit/
[113] http://www.ezhometech.com/software_ssp.htm
[114] http://www.rockbox.org/
[115] http://developer.mozilla.org/en/docs/Main_Page
[116] http://ocw.mit.edu/OcwWeb/Mechanical-Engineering/2-12Fall-2005/CourseHome/index.htm
[117] http://www.femtoos.org/index.html
[118] http://www.slideshare.net/?src=embed
[119] http://www.slideshare.net/allankliu/lecture24-multiprocessor?src=embed
[120] http://www.slideshare.net/upload?src=embed
[121] http://www.slideshare.net/allankliu/mp-os-survey?src=embed
[122] http://www.slideshare.net/allankliu/embedded-systems-design-embedded?src=embed
[123] http://www.ist-runes.org/
[124] http://www.softwarefreedom.org/resources/2008/foss-primer.html
[125] http://www.oreilly.com/catalog/opensources/book/brian.html
[126] http://alumni.cse.ucsc.edu/~brucem/open_source_license.htm
[127] http://www.gnu.org/licenses/gpl.html
[128] http://www.mozilla.org/MPL/
[129] http://www.freebsd.org/copyright/license.html
[130] http://www.micrium.com/products/rtos/kernel/licensing.html

41 din 41 16.05.2008 21:40

Das könnte Ihnen auch gefallen