A real-time Java tool chain for resource constrained platforms

Stephan E. Korsholm, Hans Søndergaard, Anders Peter Ravn

Research output: Contribution to journalJournal articleResearchpeer-review

4 Citations (Scopus)

Abstract

The Java programming language was originally developed for embedded systems, but the resource requirements of previous and current Java implementations – especially memory consumption – tend to exclude them from being used on a significant class of resource constrained embedded platforms. The contribution of this paper is an architecture and implementation of a Java execution stack for resource constrained embedded platforms with a few kB of RAM and flash memory. The resource requirements of the presented architecture has been reduced significantly through all the layers of the architecture by integrating the following: (1) a lean virtual machine without any external dependencies on POSIX-like libraries or other OS functionalities; (2) a hardware abstraction layer, implemented almost entirely in Java through the use of hardware objects, first level interrupt handlers, and native variables; and (3) an implementation of the Safety-Critical Java profile Level 0 and 1 for hard real-time applications. All Java components of a given application are minimized through program specialization, and because (2) and (3) are written in Java, the program specialization has a significant impact on the resulting program size. An evaluation of the presented solution shows that the miniCDj benchmark gets reduced to a size where it can run on resource constrained platforms.
Original languageEnglish
JournalConcurrency and Computation: Practice & Experience
Volume26
Issue number14
Pages (from-to)2407-2431
ISSN1532-0626
DOIs
Publication statusPublished - 2014

Cite this