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 ...