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).
Keyword: Device driver,Embedded system,Java virtual machine,Java