a Cross Development Platform for Java

User Tools

Site Tools


This is an old revision of the document!


deep is a Cross Development Platform for Java developed at the NTB. It consists of the following modules:

  • Crosscompiler (to translate Java bytecode into machine code, “Java on the metal”)
  • Eclipse plugin (for the integration into Eclipse)
  • Runtime System (operating system, device drivers and system libraries for the target)


deep has a modular design and can be integrated into different development frameworks. Currently deep can be run standalone or can be used in eclipse as a plugin. deep produces code for PowerPC processors. We support hardware plattforms with the mpc555 and mpc5200 processors.

Translation of bytecode into machine code

We use eclipse and the Java Sun compiler to translate the original source into an intermediate form, which is called bytecode and is stored in class files. Starting with one or several root classes we translate this classes together with any imported library classes into a single executable target file. The instruction in this target file are native machine instructions.
From the bytecode we start by constructing the control flow graph (CFG). Subsequently a still machine independent intermediate form is built: the SSA (single static assignment). The CFG and SSA allow for various optimizations and are the base for the register allocation algorithm and finally the code generation.


Various components add functionality to deep.

  • class file browser
  • target configuration parser
  • debugger

Different Microarchitectures

Deep supports the PowerPC and the ARMv7 microarchitectures. The integration of the ARM microarchitecture is still in progress. To distinguish the different architectures in this document, ARM specific information is marked blue and information for the PowerPC architecture is marked orange.


2017.11.06: New Task View in Eclipse

A new view allows for displaying information about running tasks.

2017.10.20: First Version of Codegenerator for ARM

deep can emit ARM instructions (with reduced scope).

2015.12.17: Version 1.3.2 released

Version 1.3.2 of deep is now available with an improved RN131 driver for the MPC555.

2015.11.05: Version 1.3.1 released

Version 1.3.1 of deep is now released. It comes with an improved runtime-library and supports now libusbx to download to the MPC555 over USB3.0 ports.

2015.05.20: Version 1.2.4 released

Version 1.2.4 of deep is now available with improved Javadoc in our runtime-library and bugfixes in some drivers.

Frequently Asked Questions


Please check in the FAQ's if a certain problem is listed and how the problem can be solved.
start.1534768208.txt.gz · Last modified: 2018/08/20 14:30 by mgehrig2