Embedded Java

Embedded Java at the Embedded World fair 2014 in Nuremberg
IS2T embedded Java solution at Embedded World exhibition 2014 in Nuremberg

Embedded Java refers to versions of the Java program language that are designed for embedded systems. Since 2010 convergence has occurred and embedded implementations are now virtually identical to PC based version.

History

Although in the past some differences existed between embedded Java and traditional PC based Java solutions, the only difference now is that embedded Java code in these embedded systems is mainly contained in constrained memory, such as flash memory. A complete convergence has taken place since 2010, and now Java software components running on large systems can run directly with no recompilation at all on design-to-cost mass-production devices (such as consumers, industrial, white goods, healthcare, metering, smart markets in general)

Recent

Recent developments in the field are

CORE embedded Java API for a unified Embedded Java ecosystem

The core Java API

In order for a software component to run on any Java system, it must target the core minimal API provided by the different providers of the embedded Java ecosystem. Companies such as Aplix, Google, IS2T, Myriad, Oracle, ... share the same eight packages of pre-written programs. The packages (java.lang, java.io, java.util, ... ) form the CORE Embedded Java API, which means that embedded programmers using the Java language can use them in order to make any worthwhile use of the Java language.

Java SE embedded API from ORACLE

Java SE embedded is based on desktop Java Platform, Standard Edition.[4] 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.

Java ME embedded API from ORACLE

Java ME embedded is based on the Connected Device Configuration subset of Java Platform, Micro Edition.[5] 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.

The offering of Java for embedded devices is growing fast with a large ecosystem of companies that provide Embedded Java virtual machines for ARM MCU based Cortex-M serie (such as ST, Freescale, Renesas, NXP), and MPU based solution (such as TI, Renesas, Freescale).

Embedded Java minimal requirements starts at only 30KB of (internal) flash and less than 2KB of (internal) RAM. In order to save Bill Of Material, most Embedded Java engines execute code in place, which avoids copying the code in RAM.

Embedded Device Configuration API from E-S-R consortium

The Embedded Device Configuration specification defines the minimal embedded standard runtime environment for embedded Java devices. It defines all the default CORE API packages (138 classes/interfaces):

See also

References

Wikimedia Commons has media related to Java Embedded.
This article is issued from Wikipedia - version of the 11/29/2016. The text is available under the Creative Commons Attribution/Share Alike but additional terms may apply for the media files.