JEVM Release Notes
Installation and Release Notes
Java on DSP™
You have downloaded the first (and only as of this writing) runtime environment (the Java Embedded Virtual machine - JEVM) that turns the (un)familiar Digital Signal Processor (DSP) into a machine capable of executing Java™ programs on a target board with a TMS320C6xxx or TMS320C55xx processor. There are numerous benefits from having a Java capability in the DSP world:see the link below:
- (135KB)EmbeddedJava.pdf
- Java is unique and valuable as a hardware-independent platform for development of embedded devices with network and Internet access.
- Consumer electronics, office and industrial automation, set-top boxes, mobile phones, automotive multimedia and home networking are but sample of the possible markets.
- Java is both a programming language and a run-time environment, supported by a dedicated virtual machine (JVM).
- Java is a modern object-oriented language with easy to learn C-like syntax that increases programmer’s productivity and software reusability.
- Java supports networking and security.
- Java provides multitasking and synchronization as part of the language.
- Java programs are written once and run anywhere, large developer community is readily available.
Whether you are in an university or a commercial organization, you would appreciate an environment that offers the familiar Java programming model combined with the DSP specifics and signal processing capabilities, thus (generally) avoiding the need for C/C++/Assembly programming on DSP targets. If the future is Java (and it looks like it is), then JEVM is the tool to cross the bridge between the present and the future.
Copyright Note
This software product (Java Embedded Virtual Machine - JEVM - for TMS320C6xxx and TMS320C55xx TI DSP families) has been developed by and is a property of Fadata Ltd. (http://www.fadata.bg). This is not an open source nor a shareware, but a commercial product. The right to use the product for evaluation and educational purposes is hereby granted to any person or organization that has downloaded this package, on the condition that the copyright and ownership of the product is duly acknowledged by any software developed and demonstrated using the JEVM package.
JEVM is an implementation of the Java Virtual Machine specification by Sun Microsystems for TMS320C6xxx and TMS320C55xx DSP families of Texas Instruments. As this product is not (yet) certified by Sun we do not claim the product can in the strictest sense execute programs written in the Java language. However, for all practical purposes the product can be used for developing and running Java programs on target hardware with these DSP families.
Java™ is a trademark of Sun Microsystems, Inc.
Windows™ is a trademark of Microsoft Corp.
DSP/BIOS™ is a trademark of Texas Instruments, Inc.
All other mentioned copyrighted names are trademarks of their respective owners.
JEVM Requirements
Target Boards
The JEVM package offers ready-for usage Java environment for the following TI DSP Starter Kits (DSK):
- DSK5510
- DSK6416
- DSK6711
- DSK6713
Host PC Platform
Windows XP is the intended host platform.
Code Composer Studio
JEVM assumes Code Composer Studio is installed (mostly for accessing code generation tools). The version of Code Composer Studio should be 3.1 or later.
Code Generation Tools
JEVM requires the following versions of TI code generation tools for C55xx and C6xxx DSPs:
- Version 3.2.2 for C55xx DSP family.
- Version 5.1.0 for C6xxx DSP family.
JTAG Emulator
Your target DSK should be connected to an installed JTAG emulator, preferably one from Blackhawk (http://www.blackhawk-dsp.com). JEVM Loader tool uses the JTAG interface to load JEVM executable into the target and provide I/O capabilities to it. Note that the host I/O is significantly faster if a XDS560 class emulator is used.
Sun Java SDK
You will need the Sun Java 1.4.2 SDK to compile the Java sources and execute host-side Java applications. If you do not have it installed, download and install it from the following URL: http://java.sun.com/j2se/1.4.2/download.html.
Eclipse
You will certainly want to be able to debug Java programs running on the target DSK. To do so it is best to download and install the Ecliplse platform from the following URL: http://www.eclipse.org/downloads
Distribution Package
The JEVM distribution package consists of the following directory and file structure. It is assumed that the distribution package has a top level directory named fadata (located advisably in the disk root dirctory). The JEVM product installation directory within it is named jevm.
The fadata directory contains the following:
| fadata\jevm | Distribution package root directory |
| fadata\jevm\bin | JEVM loader tool, make tool, .bat files for running JEVM on different DSP platforms, example .dat files for configuring the JTAG interface. |
| fadata\jevm\dsk | Subdirectories for DSK targets |
| fadata\jevm\dsk\dsk5510 | Makefile for DSK5510 and Leds.c JNI program |
| fadata\jevm\dsk\dsk6416 | Makefile for DSK6416 and Leds.c JNI program |
| fadata\jevm\dsk\dsk6711 | Makefile for DSK6711 and Leds.c JNI program |
| fadata\jevm\dsk\dsk6713 | Makefile for DSK6713 and Leds.c JNI program |
| fadata\jevm\include | JNI header files |
| fadata\jevm\java | Various Java tests |
| fadata\jevm\lib | JEVM class library jevm.jar, libraries for linking native code, a linker command file for all targets |
| fadata\jevm\out | JEVM target executable for all targets |
The fadata\jevm\bin directory contains the following:
| jevmload.exe | JEVM loader tool for Windows XP |
| make.exe | GNU make utility |
| nano-x.exe | Nano-X windows server |
| nanowm.exe | Nano-X windows manager |
| nanox.bat | For running Nano-X under Cygwin |
| dsk5510.dat | Sample JTAG config file for DSK5510 |
| dsk6416.dat | Sample JTAG config file for DSK6416 |
| dsk6711.dat | Sample JTAG config file for DSK6711 |
| dsk6713.dat | Sample JTAG config file for DSK6713 |
| jevm5510.bat | For running JEVM for DSK5510 |
| jevm5510di.bat | For running JEVM for DSK5510 with debugger connection |
| jevm6416.bat | For running JEVM for DSK6416 |
| jevm6416di.bat | For running JEVM for DSK6416 with debugger connection |
| jevm6711.bat | For running JEVM for DSK6711 |
| jevm6711di.bat | For running JEVM for DSK6711 with debugger connection |
| jevm6713.bat | For running JEVM for DSK671 |
| jevm6713di.bat | For running JEVM for DSK6713 with debugger connection |
The fadata\jevm\dsk directory contains the following:
| dsk5510\Leds.c | JNI program for DSK5510 |
| dsk5510\Makefile | Makefile for DSK5510 |
| dsk6416\Leds.c | JNI program for DSK6416 |
| dsk6416\Makefile | Makefile for DSK6416 |
| dsk6711\Leds.c | JNI program for DSK6711 |
| dsk6711\Makefile | Makefile for DSK6711 |
| dsk6713\Leds.c | JNI program for DSK6713 |
| dsk6713\Makefile | Makefile for DSK6713 |
The fadata\jevm\include directory contains the following:
| jni.h | Main JNI header |
| jvmtypes.h | Target-specific header |
| native.h | Header for JNI methods |
The fadata\jevm\lib directory contains the following:
| lib\security | JEVM security policy files |
| jevm.jar | JEVM compiled class library |
| nano.jar | Kaffe AWT compiled class library |
| jevm5510.lib | DSK5510 library for JNI methods |
| jevm5510di.lib | DSK5510 library with debugger connection for JNI methods |
| jevm6416.lib | DSK6416 library for JNI methods |
| jevm6416di.lib | DSK6416 library with debugger connection for JNI methods |
| jevm6711.lib | DSK6711 library for JNI methods |
| jevm6711di.lib | DSK6711 library with debugger connection for JNI methods |
| jevm6713.lib | DSK6713 library for JNI methods |
| jevm6713di.lib | DSK6713 library with debugger connection for JNI methods |
| native.cmd | Linker command file for JNI methods for all targets |
The fadata\jevm\out directory contains the following:
| jevm5510.out | JEVM executable for DSK5510 |
| jevm5510di.out | JEVM executable with debugger connection for DSK5510 |
| jevm6416.out | JEVM executable for DSK6416 |
| jevm6416di.out | JEVM executable with debugger connection for DSK6416 |
| jevm6711.out | JEVM executable for DSK6711 |
| jevm6711di.out | JEVM executable with debugger connection for DSK6711 |
| jevm6713.out | JEVM executable for DSK6713 |
| jevm6713di.out | JEVM executable with debugger connection for DSK6713 |
The fadata\jevm\java directory contains the following subdirectories:
| AWT | Various AWT demos |
| babylon | Shareware Java chat application |
| Bytecodes | Various Java tests |
| dhrystone | Dhrystone test for Java |
| fadata\locale\iso | JEVM localization files |
| JNI | Various Java JNI tests |
| Misc | Various Java tests |
| Reflection | Various Java reflection tests |
| Threads | Various Java threads tests |
| whetstone | Whetstone test for Java |
| ZMachine | Game machine for Java |
The fadata\jevm\src directory contains the following:
| src\native\awt-jni | AWT package JNI methods source code |
| src\native\microwindows-0.90 | Nano-X server source code |
| src\native\nano-x-client | Nano-X client source code |
| src\java\gnu\java\awt | GNU Classpath AWT utility classes source |
| src\java\gnu\java\lang | GNU Classpath java/lang utility classes source |
| src\java\gnu\java\text | GNU Classpath java/text utility classes source |
| src\java\java\applet | Kaffe java/applet package source |
| src\java\java\awt | Kaffe java/AWT package source |
| src\java\java\math | Kaffe java/math package source |
| src\java\java\security | GNU Classpath java/security package source |
| src\java\java\security\cert | GNU Classpath java/security/cert package source |
| src\java\kaffe\applet | Kaffe java/applet utility classes source |
| src\java\kaffe\awt | Kaffe java/AWT utility classes source |
| src\java\kaffe\io | Kaffe java/io utility classes source |
| src\java\kaffe\util | Kaffe java/util utility classes source |
Environment
The PATH variable should contain the path of the c:\fadata\jevm\bin directory where host tools, .bat command files and .dat files are located. The PATH should also contain the path to Sun Java SDK executables, e.g. c:\j2sdk1.4.2_04\bin. The following environment variables are assumed to be set in the Windows XP host. Use '/' instead of '\'.
| JEVM_DIR | Root directory of the JEVM installation (e.g. c:/fadata/jevm) |
| TI_DIR | Directory of Code Composer Installation, e.g. c:/CCStudio_v3.1 |
| CLASSPATH | When compiling Java programs should contain the path to jevm.jar, e.g. c:/fadata/jevm/lib/jevm.jar. When running JEVM should contain the path(s) to the Java class files using semicolon as a delimiter, e.g. c:/fadata/jevm/java/Bytecodes;c:/fadata/jevm/java/Misc. |
Make Procedure
Each of the DSKxxxx subdirectories contains a Makefile. When building the JEVM for a specific DSK, at CommandPrompt window change directory to the corresponding DSK directory and execute make.exe:
cd c:\fadata\jevm\dsk\jevm6713
make
This will build the whole set of Java tests and the JNI tests for the selected DSK.
When you want to cleanup execute make with target clean:
cd c:\fadata\jevm\dsk\jevm6713
make clean
Contact
We would be glad to receive questions, bug reports, as well as any applications and demos you have developed using JEVM. Please contact us at: Email


