deep

a Cross Development Platform for Java

User Tools

Site Tools


first_example_zybo

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
Last revisionBoth sides next revision
first_example_zybo [2020/09/06 16:25] – created ursgraffirst_example_zybo [2020/09/23 10:01] ursgraf
Line 1: Line 1:
-====== Using System.out on Digilent Zybo Board ======+====== Hello World on the Digilent Zybo Board ======
  
 This example will demonstrate how to use the deep compiler to translate a simple Java program and run it on a [[https://wiki.ntb.ch/infoportal/embedded_systems/zynq7000/zybo|Zybo board]]. This example will demonstrate how to use the deep compiler to translate a simple Java program and run it on a [[https://wiki.ntb.ch/infoportal/embedded_systems/zynq7000/zybo|Zybo board]].
Line 7: Line 7:
   - 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 [[eclipse:perspective#Setting_Deep_Preferences|deep Perspective and deep Preferences]]. Click //Next//. \\ {{targetlibrary.png?300|}}    - 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 [[eclipse:perspective#Setting_Deep_Preferences|deep Perspective and deep Preferences]]. Click //Next//. \\ {{targetlibrary.png?300|}} 
    - Target Configuration:    - Target Configuration:
-    - Select a board: //NTB MPC555 header board// +    - Select a board: //Zybo Zynq-7000 digilent evm// 
-    - Select a programmer: //NTB MPC555 USB-BDI// +    - Select a operating System: //Simple Tasking System for ARM// 
-    - Select a operating System: //NTB Simple Tasking System for PPC// +    - Select a programmer: //OpenOCD// 
-    - If you like to have an image file, you can select the corresponding checkbox. This option is not necessary if you use the //NTB MPC555 USB-BDI// to download to the target. \\ {{targetconfiguration555.png?300|}}+    - Select programmer options: //localhost_4444// 
 +    - 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. \\  {{targetconfigurationzybo.png?300|}}
   - Project name:   - Project name:
     - Choose a project name (no spaces, no special characters such as "umlauts")     - Choose a project name (no spaces, no special characters such as "umlauts")
Line 20: Line 21:
   - Open class and enter source code:<code java>   - Open class and enter source code:<code java>
 import java.io.PrintStream; import java.io.PrintStream;
-import ch.ntb.inf.deep.runtime.mpc555.driver.SCI;+import ch.ntb.inf.deep.runtime.zynq7000.driver.UART;
  
 public class HelloWorld { public class HelloWorld {
  static {  static {
- // 1) Initialize SCI1 (9600 8N1) + // Initialize UART (115200 8N1) 
- SCI sci1 SCI.getInstance(SCI.pSCI1); + UART uart UART.getInstance(UART.pUART1); 
- sci1.start(9600SCI.NO_PARITY, (short)8);+ uart.start(115200UART.NO_PARITY, (short)8);
   
- // 2) Use SCI1 for stdout + // Use the uart for stdout 
- System.out = new PrintStream(sci1.out);+ System.out = new PrintStream(uart.out);
   
- // 3) Say hello to the world+ // Print a string to the stdout
  System.out.println("Hello world");  System.out.println("Hello world");
  }  }
Line 47: Line 48:
 project HelloWorld { project HelloWorld {
  libpath = "I:\deep\lib";  libpath = "I:\deep\lib";
- boardtype = ntbMpc555HB+ boardtype = Zybo
- ostype = ntbSTS_ppc+ ostype = sts_arm
- programmertype = ntbMpc555UsbBdi;+ programmertype = openOCD; 
 + programmeropts = localhost_4444; 
 + imgfile = "D:\work\HelloWorld.bin"; 
 + imgformat = BIN; 
 +# pl_file = none;
  
 # enter names of rootclasses, e.g. # enter names of rootclasses, e.g.
 # rootclasses = "test.MyFirstTestClass","other.MySecondTestClass"; # rootclasses = "test.MyFirstTestClass","other.MySecondTestClass";
  rootclasses = "test.HelloWorld";  rootclasses = "test.HelloWorld";
- 
-# imgfile = "M:\Workspace\HelloWorld\HelloWorld.bin"; 
-# imgformat = BIN; 
 } }
 </code> </code>
-  - Connect the hardware to your host PC by an USB cable and apply power to the target.+  - Connect the hardware to your host machine by an USB cable (J11). This applies power to the target
 +  - Make sure that you select the proper driver for your adapter [[https://wiki.ntb.ch/infoportal/embedded_systems/jtaghs3/start]]. 
 +  - Start [[https://deepjava.org/openocd/starting_openocd|OpenOCD]].
   - Open a terminal program such as ''putty'' or ''realterm''. Alternatively open a terminal program as an eclipse view. Select the appropriate serial port number. Check your host operating settings for this number.   - Open a terminal program such as ''putty'' or ''realterm''. Alternatively open a terminal program as an eclipse view. Select the appropriate serial port number. Check your host operating settings for this number.
   - 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 from the pulldown menu of the run-button. \\ {{runas_context.png?280|}} {{ runas_pulldown.png?280|}}    - 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 from the pulldown menu of the run-button. \\ {{runas_context.png?280|}} {{ runas_pulldown.png?280|}} 
-  - //Run// will compile, link and download the program.+  - //Run// will compile, link and download the image file. For downloading and debugging [[openocd:start|OpenOCD]] will be used. Make sure to have it installed.
   - The terminal window will show //Hello, World//.   - The terminal window will show //Hello, World//.
-  - With {{run.jpg}} you can recompile and rerun the programm. +  - With {{run.jpg}} you can recompile and rerun the program.
-  - See [[eclipse:flashing|Flashing your Program]] for how to write your program to permanent flash memory. +
- +