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).
No 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.A RT-JAVA TOOL CHAIN FOR RESOURCE CONSTRAINED PLATFORMS 2409 avoid programmer defined native functions. This architecture was proposed in [7]. hardware objects and interrupt handlers are adopted from that proposal. These core concepts are here supplemented with the following:A Process concept as defined in Modula 2 [8]. On top of this single concept a variety of scheduling mechanisms can be built to support, for example, the standard Java Thread class or SCJ handlers. A Monitor concept that can be attached to an object for synchronization coordinated with process scheduling. A Memory Area concept that allows the Java application to control the allocation and reclamation of runtime data. On top of this concept, memory management features can be built to support, for example, the SCJ memory model. A Clock concept that specifies methods to get the granularity and the absolute time. This concept supports scheduling of tasks as defined by the SCJ profile.To support real-time capabilities, a standalone version of the SCJ profile Levels 0 and 1 has been implemented. The SCJ infrastructure is built exclusively in Java on top of the HAL.Using features of the underlying VM, most notably (1) program specialization and (2) aheadof-time compilation combined with interpretation, the solution supports efficient execution of high dependability applications on resource constrained platforms. In summary, the contribution of this paper is an integrated tool chain for the execution of real-time Java software components on resource constrained embedded platforms with a few kB of RAM and flash. This is achieved by combining the following:A Java HAL supporting hardware objects, interrupt ...
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.
hi@scite.ai
10624 S. Eastern Ave., Ste. A-614
Henderson, NV 89052, USA
Copyright © 2024 scite LLC. All rights reserved.
Made with 💙 for researchers
Part of the Research Solutions Family.