JamaicaVM -- User Documentation

The Virtual Machine for Real-time and Embedded Systems

Fridtjof Siebert

Andy Walter


Table of Contents
1. Introduction
Hard Realtime Execution Guarantees
Minimal footprint
ROMable code
Native code support
Dynamic Linking
Portability
Fast Execution
Tools for Realtime and Embedded System Development
Builder
Memory Analyser
Contact
2. Installation
On Linux Systems
Using rpm archive
Using gzipped tar archive
On Sun/Solaris Systems
3. Jamaica Builder
Function of the Builder tool
Builder Usage
General
Classes, files, and paths
Smart linking and compaction
Java standard API configurations
Compilation and optimization
Memory and threads settings
Profiling
Native code
Example
Cross Compiling Environments
Optimized for embedded systems
Smart linking for minimal memory requirements:
4. Configuration of the Memory Management
Usage of the Memory Analyser tool
Building using the Memory Analyser
Measuring an applications memory requirements
Fine-tuning the final executable application
Static Garbage Collection Work
Comparing dynamic and static modes
Determination of the Worst-Case-Execution-Time of an allocation
Determining the number of blocks needed for an allocation
NumBlocks Usage
General
Classes, files, and paths
Smart linking and compaction
Memory and threads settings
Examples
5. Profiling using the Builder
6. Jamaica and the Java Native Interface
Using JNI
JamaicaH Usage
General
Classes, files, and paths
7. Codesize Reduction Example
Normal compilation
Smart linking and compilation
Compilation using Profiling Information
Using only the Interpreter
A. Targets
VxWorks
Loading an application
Starting an application
B. The Java API
C. The Java Native Interface Include File
D. The Jamaica Binary Interface Include File
List of Tables
4-1. Typical number of blocks for objects
List of Figures
HelloWorld.java. A simple Java programme
JNITest.java. An example class for JNI
JNITest.h. The C header files for JNI methods are generated by jamaicah
JNITest.c. The C implementation of the native function JNITest.write_HW_Register