Embedded Java
Encyclopedia
[This section needs to be updated, as Embedded Java covers much more than Java ME and Sun SPOT alone -- it also covers embedded use of Java on top of Java platforms such as JavaCard and Java SE ]
In discussions of Java ME
specifications, such as the CDC
/CLDC
device capability sets and the MIDP profile definition, attention needs to be given to Embedded Java, which additionally requires very specialized, optimized JVM
s, and the means to update the installed software and services such as OSGi
.
Recent developments in the field are
The principal difference between Embedded Java and the several Java ME configurations is that the former is envisioned for use only in closed systems. That is, Embedded Java is for use in products that cannot be upgraded in the field. All of the Java code in these embedded systems is contained in flash memory
. Thus the only class libraries that need to be present are the very methods and fields actually used by the Java application code; all the rest can be prestripped from the statically linked executable.
. It is designed to be used on systems with at least 32 MB of RAM
, and can work on Linux
ARM
, x86, or Power Architecture
, and Windows XP
and Windows XP Embedded architectures.
subset of Java Platform, Micro Edition
. It is designed to be used on systems with at least 8 MB of RAM
, and can work on Linux
ARM
, PowerPC
, or MIPS architecture
.
In discussions of Java ME
Java Platform, Micro Edition
Java Platform, Micro Edition, or Java ME, is a Java platform designed for embedded systems . Target devices range from industrial controls to mobile phones and set-top boxes...
specifications, such as the CDC
Connected Device Configuration
The Connected Device Configuration is a specification of a framework for Java ME applications describing the basic set of libraries and virtual-machine features that must be present in an implementation. The CDC is combined with one or more profiles to give developers a platform for building...
/CLDC
Connected Limited Device Configuration
The Connected Limited Device Configuration is a specification of a framework for Java ME applications describing the basic set of libraries and virtual-machine features that must be present in an implementation...
device capability sets and the MIDP profile definition, attention needs to be given to Embedded Java, which additionally requires very specialized, optimized JVM
Java Virtual Machine
A Java virtual machine is a virtual machine capable of executing Java bytecode. It is the code execution component of the Java software platform. Sun Microsystems stated that there are over 4.5 billion JVM-enabled devices.-Overview:...
s, and the means to update the installed software and services such as OSGi
OSGi
The Open Services Gateway initiative framework is a module system and service platform for the Java programming language that implements a complete and dynamic component model, something that does not exist in standalone Java/VM environments...
.
Recent developments in the field are
- the Squawk Virtual MachineSquawk virtual machineSquawk is a Java micro edition virtual machine for embedded system and small devices. Most virtual machines for the Java platform are written in low level native languages such as C/C++ and assembler; what makes Squawk different is that Squawk's core is mostly written in Java...
, a JVM developed by Sun Microsystems and deployed as part of Project Sun SPOTSun SPOTSun SPOT is a wireless sensor network mote developed by Sun Microsystems. The device is built upon the IEEE 802.15.4 standard...
. - the JPF line of products, based on JVMs developed by IS2T and deployed in collaboration with microcontrollers makers on several starter kits (AVR32, ARM7, ...)
The principal difference between Embedded Java and the several Java ME configurations is that the former is envisioned for use only in closed systems. That is, Embedded Java is for use in products that cannot be upgraded in the field. All of the Java code in these embedded systems is contained in flash memory
Flash memory
Flash memory is a non-volatile computer storage chip that can be electrically erased and reprogrammed. It was developed from EEPROM and must be erased in fairly large blocks before these can be rewritten with new data...
. Thus the only class libraries that need to be present are the very methods and fields actually used by the Java application code; all the rest can be prestripped from the statically linked executable.
Java SE embedded
Java SE embedded is based on desktop Java Platform, Standard EditionJava Platform, Standard Edition
Java Platform, Standard Edition or Java SE is a widely used platform for programming in the Java language. It is the Java Platform used to deploy portable applications for general use...
. It is designed to be used on systems with at least 32 MB of RAM
Random-access memory
Random access memory is a form of computer data storage. Today, it takes the form of integrated circuits that allow stored data to be accessed in any order with a worst case performance of constant time. Strictly speaking, modern types of DRAM are therefore not random access, as data is read in...
, and can work on Linux
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...
ARM
ARM architecture
ARM is a 32-bit reduced instruction set computer instruction set architecture developed by ARM Holdings. It was named the Advanced RISC Machine, and before that, the Acorn RISC Machine. The ARM architecture is the most widely used 32-bit ISA in numbers produced...
, x86, or Power Architecture
Power Architecture
Power Architecture is a broad term to describe similar RISC instruction sets for microprocessors developed and manufactured by such companies as IBM, Freescale, AMCC, Tundra and P.A. Semi...
, and Windows XP
Windows XP
Windows XP is an operating system produced by Microsoft for use on personal computers, including home and business desktops, laptops and media centers. First released to computer manufacturers on August 24, 2001, it is the second most popular version of Windows, based on installed user base...
and Windows XP Embedded architectures.
Java ME embedded
Java ME embedded is based on the Connected Device ConfigurationConnected Device Configuration
The Connected Device Configuration is a specification of a framework for Java ME applications describing the basic set of libraries and virtual-machine features that must be present in an implementation. The CDC is combined with one or more profiles to give developers a platform for building...
subset of Java Platform, Micro Edition
Java Platform, Micro Edition
Java Platform, Micro Edition, or Java ME, is a Java platform designed for embedded systems . Target devices range from industrial controls to mobile phones and set-top boxes...
. It is designed to be used on systems with at least 8 MB of RAM
Random-access memory
Random access memory is a form of computer data storage. Today, it takes the form of integrated circuits that allow stored data to be accessed in any order with a worst case performance of constant time. Strictly speaking, modern types of DRAM are therefore not random access, as data is read in...
, and can work on Linux
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...
ARM
ARM architecture
ARM is a 32-bit reduced instruction set computer instruction set architecture developed by ARM Holdings. It was named the Advanced RISC Machine, and before that, the Acorn RISC Machine. The ARM architecture is the most widely used 32-bit ISA in numbers produced...
, PowerPC
PowerPC
PowerPC is a RISC architecture created by the 1991 Apple–IBM–Motorola alliance, known as AIM...
, or MIPS architecture
MIPS architecture
MIPS is a reduced instruction set computer instruction set architecture developed by MIPS Technologies . The early MIPS architectures were 32-bit, and later versions were 64-bit...
.
See also
- GNU Compiler for Java
- Excelsior JET, Embedded Edition
- Sun SPOTSun SPOTSun SPOT is a wireless sensor network mote developed by Sun Microsystems. The device is built upon the IEEE 802.15.4 standard...
Sun SPOT Project - IS2T EDU Program
- Real-Time Specification for Java
- JamaicaVMJamaicaVMThe JamaicaVM is a virtual machine and build environment for developing and running realtime Java programs. It includes a deterministic garbage collector and implements the RTSJ. It is designed for use in realtime and embedded systems.- See also :*Aicas...
External links
- Java SE for Embedded : Java SE for Embedded technology from Oracle Corporation
- Java SE for Embedded Development Made Easy : Webcast covering development, troubleshooting, deployment
- http://www.systronix.com/ - Systronix TStik, JStamp, JStik : Small embedded Java systems, some with deterministic/realtime capabilities
- Google Android project : Open source project to create software for mobile devices such as the T-Mobile G1 phone
- JControl : Very compact Java Virtual Machine for Embedded Systems
- Mysaifu Java2 Virtual Machine
- MicroJvm : Real-time Java virtual machines for embedded systems
- Excelsior JET Embedded : Java SE for embedded Linux and Windows XPe
- http://www.parallax.com/ - Parallax's Javelin STAMP, similar to the Basic StampBASIC StampThe BASIC Stamp is a microcontroller with a small, specialized BASIC interpreter built into ROM. It is made by Parallax, Inc. and has been popular with electronics hobbyists since the early 1990s because of its low threshold of learning and ease of use due to its simple to understand BASIC...
but utilizing object-oriented technology instead of Basic - JamaicaVM : a cleanroom implementation of a virtual machine and build environment for running realtime and embedded Java programs.