School of Computing

A hardware abstraction layer in Java

Martin Schoeberl, Stephan Korsholm, Tomas Kalibera, and Anders P. Ravn

ACM Transactions on Embedded Computing Systems, 10(4):182-196, November 2011 [doi].


Embedded systems use specialized hardware devices to interact with their environment, and since they have to be dependable, it is attractive to use a modern, type-safe programming language like Java to develop programs for them. Standard Java, as a platform-independent language, delegates access to devices, direct memory access, and interrupt handling to some underlying operating system or kernel, but in the embedded systems domain resources are scarce and a Java Virtual Machine (JVM) without an underlying middleware is an attractive architecture. The contribution of this article is a proposal for Java packages with hardware objects and interrupt handlers that interface to such a JVM. We provide implementations of the proposal directly in hardware, as extensions of standard interpreters, and finally with an operating system middleware. The latter solution is mainly seen as a migration path allowing Java programs to coexist with legacy system components. An important aspect of the proposal is that it is compatible with the Real-Time Specification for Java (RTSJ).

Download publication 1904 kbytes (PDF)

Bibtex Record

author = {Martin Schoeberl and Stephan Korsholm and Tomas Kalibera and Anders P. Ravn},
title = {A Hardware Abstraction Layer in {Java}},
month = {November},
year = {2011},
pages = {182-196},
keywords = {determinacy analysis, Craig interpolants},
note = {},
doi = {10.1145/2043662.2043666},
url = {},
    publication_type = {article},
    submission_id = {6999_1323100550},
    journal = {ACM Transactions on Embedded Computing Systems},
    volume = {10},
    number = {4},

School of Computing, University of Kent, Canterbury, Kent, CT2 7NF

Enquiries: +44 (0)1227 824180 or contact us.

Last Updated: 21/03/2014