a Cross Development Platform for Java

User Tools

Site Tools


Hello World on the Avnet MicroZed Board

This example will demonstrate how to use the deep compiler to translate a simple Java program and run it on a MicroZed board. This is a simple “hello world” example. It does not allow to use the FPGA part of the zynq7000. See Application Development or System Developer for that purpose.

  1. Start eclipse, choose a new workspace and open the deep perspective with Window → Open Perspective → Other → Deep.
  2. Create a new deep project with FileNew → select Project…, Deep → select Deep Project.
  3. On the Target Library wizard page you have to choose where the deep target runtime library is located. You can use the default library path or uncheck the box and browse to the location where you've installed the library. You can always set the default library path in deep Perspective and deep Preferences. Click Next.
  4. Target Configuration:
    1. Select a board: MicroZed Zynq-7000 avnet board
    2. Select a operating System: Simple Tasking System for ARM
    3. Select a programmer: OpenOCD
    4. Select programmer options: localhost_4444
    5. Select the checkbox Create image file and choose the location to save the image file and the desired image file format, preferably BIN. Default save location is the project folder. Please make sure that the file path does not include spaces or hyphens.
  5. Project name:
    1. Choose a project name (no spaces, no special characters such as “umlauts”)
    2. Use default location or choose a location
  6. Finish creates the project
  7. The empty project will show on the left side in the package explorer.
  8. By right-clicking on the source folder (src) in the package explorer choose NewPackage and add package name, e.g. test.
  9. By right-clicking on the newly created package choose NewClass and enter class name HelloWorld.
  10. Open class and enter source code:
    import org.deepjava.runtime.zynq7000.driver.UART;
    public class HelloWorld {
    	static {
    		// Initialize UART (115200 8N1)
    		UART uart = UART.getInstance(UART.pUART1);
    		uart.start(115200, UART.NO_PARITY, (short)8);
    		// Use the uart for stdout
    		System.out = new PrintStream(uart.out);
    		// Print a string to the stdout
    		System.out.println("Hello world");
  11. Open deep project file HelloWorld.deep. This file can be found in the root of the project.
  12. Add the newly created class to rootclasses. It should then look like this:
    meta {
    	version = "Mon Jan 05 12:40:12 CET 2020";
    	description = "deep project file for HelloWorld";
    project HelloWorld {
    	libpath = "I:\deep\lib";
    	boardtype = MicroZed;
    	ostype = sts_arm;
    	programmertype = openOCD;
    	programmeropts = localhost_4444;
    	imgfile = "D:\work\HelloWorld.bin";
    	imgformat = BIN;
    #	pl_file = none;
    #	enter names of rootclasses, e.g.
    #	rootclasses = "test.MyFirstTestClass","other.MySecondTestClass";
    	rootclasses = "test.HelloWorld";
  13. Plug a JTAG-HS3 adapter into J3 of your board and connect it with your host machine by an USB cable. This will create a USB Serial Converter device on your machine.
  14. Make sure that you select the WinUSB driver for your JTAG-HS3 adapter
  15. Set the jumpers on your MicroZed board as follows
    This will boot the device from JTAG. The settings of the jumpers will be read only at powerup!
  16. Connect your host machine with another USB cable to the MicroZed board on connector J2. This applies power to the target and creates a USB to UART bridge device (COM port).
  17. Start OpenOCD, see Starting OpenOCD.
  18. Use a terminal program such as putty or realterm to open the COM-port on J2 (baudrate = 115200). Alternatively open a terminal program as an eclipse view. Select the appropriate COM port number. Check your host operating settings for this number. If there is no associated serial port yet - make sure, that you have the proper driver installed (Downloading CP210x drivers).
  19. Create a new run configuration by marking the project file HelloWorld.deep. Then, right-click on it and choose Run As → Deep Application.

    If you already created such a run configuration you can select it from the pulldown menu of the run-button.

  20. Run will compile, link and download the image file.
  21. The terminal window will show Hello, World.
  22. With run.jpg you can recompile and rerun the program.
firstexample/first_example_microzed.txt · Last modified: 2021/03/15 16:59 by ursgraf