deep

deep is a Cross Development Platform for Java developed at the INF Institut für Ingenieurinformatik of the Eastern Switzerland University of Applied Sciences. 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)

Overview

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 and ARM processors. We support hardware plattforms with the mpc555, mpc5200, iMX6, and Zynq7000 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.

Components

Various components add functionality to deep.

  • class file browser
  • target configuration parser
  • debugger

Supported Microarchitectures

Deep currently supports the PowerPC and the ARMv7 microarchitectures.

Open-Source

deep is open-source and hosted on http://github.com/deepjava


News

2022.12.21: New release 2.2.1

OpenOCD is now fully integrated.

2021.12.23: MicroZed boot from SD card

Booting from SD card is now supported.

2020.9.15: MicroZed board support

The ARM based Zybo and MicroZed boards are now fully supported.

2019.2.1: New debugging format

DWARF inserted in ELF-file allows debugging with gdb.

Frequently Asked Questions

FAQ's

Please check in the FAQ's if a certain problem is listed and how the problem can be solved.