deep

a Cross Development Platform for Java

User Tools

Site Tools


first_example

Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
first_example [2015/03/18 11:51] ursgraffirst_example [2020/12/01 14:24] – [Running Demo Programs] ursgraf
Line 1: Line 1:
 ====== First Example ====== ====== First Example ======
-This example will demonstrate how to use the deep compiler to translate a simple Java program and run it on mpc555 target platform.+===== Hello World with System.out ===== 
 +  * [[first_example_mpc555| Hello World on the NTB mpc555 Board]] 
 +  * [[first_example_mpc5200| Hello World on the Phytec phyCore mpc5200 board]] 
 +  * [[first_example_microzed| Hello World on the Avnet MicroZed board]]   
 +  * [[first_example_zybo| Hello World on the Digilent Zybo board]]
  
-==== Creating a deep project and choosing the target configuration ==== +===== Developing on the Avnet MicroZed Board ===== 
-  - Start eclipse, choose new workspace and open the deep perspective with //Window -> Open Perspective -> Deep//. +As this board contains FPGA which must be loaded with a suitable configurationyou have to carefully select one of the following methods. 
-  - Create new deep project with //File// -> //New// -> select //Project...Deep -> //select// Deep Project//\\ {{:newdeepproject.png?300|}} +  * [[first_example_microzed_sysdevSystem Developer]]  
-  - On the Target Library wizard page you have to choose where the deep target runtime library is locatedBrowse to the location where you've installed the library\\ If you're working on NTB-PC, you can simply leave the box //Use default library path// checked and click //Next//. \\ {{targetlibrary.png?300|}}  +  * [[first_example_microzed_appdev| Application Developer]]  
-   - Target Configuration: +  * [[first_example_microzed_deploy| Deploying]]  
-    - Select a board: //NTB MPC555 Headerboard// +===== Running Demo Programs ===== 
-    - Select a programmer: //NTB MPC555 USB-BDI// +The deep runtime library offers a couple of demo programs, e.gusing serial output or flashing led. Create a new project as given above and open the //deep// project fileNavigate to //Referenced Libraries// entry in the //Package Explorer// and find suitable demo programe.gch.ntb.inf.runtime.zynq7000.microzed.demo.Blinker 
-    - Select operating System: //NTB Simple tasking system// +{{:demoprograms.png?250|}}
-    - If you like to have an image fileyou can select the corresponding checkboxThis option is not necessary if you use the //NTB MPC555 USB-BDI// to download to the target\\ {{targetconfiguration555.png?300|}} +
-  - Project name: +
-    - Choose a project name (no spaces, no special characters such as "umlauts"+
-    - Use default location or choose a location \\ {{{{projectname.png?300|}} +
-  - //Finish// creates the project+
  
-===== Adding the source code ===== +Edit the //rootclasses// entry in the //deep// project file as follows 
-  - The empty project will show on the left side in the package explorer.\\ {{emptyproject.png?200|}} +<code> 
-  - By right-clicking on the source folder (src) in the package explorer choose //New// -> //Package// and add package name //ch.ntb.stud.yourName.helloworld//.\\ {{software:eclipse:newjavapackage.png?400&direct}} +# enter names of rootclasses, e.g
-  - By right-clicking on the newly created package choose //New// -> //Class// and enter class name //HelloWorld//. +# rootclasses = "test.MyFirstTestClass","other.MySecondTestClass"
-  - Open class and enter source code:<code java+ rootclasses = "org.deepjava.runtime.zynq7000.microzed.demo.Blinker";
-package ch.ntb.stud.yourName.helloworld; +
- +
-import java.io.PrintStream+
-import ch.ntb.inf.deep.runtime.mpc555.driver.SCI1; +
- +
-public class HelloWorld { +
- static { +
- // 1) Initialize SCI1 (9600 8N1) +
- SCI1.start(9600, SCI1.NO_PARITY, (short)8); +
-  +
- // 2) Use SCI1 for stdout +
- System.out = new PrintStream(SCI1.out); +
-  +
- // 3) Say hello to the world +
- System.out.println("Hello, world"); +
-+
-}+
 </code> </code>
-  - Open project file: HelloWorld.deep 
-  - Add the newly created class to rootclasses. It should then look like this:<code>project { 
- #deep-1 
- 
- meta { 
- version = "Mon Jan 05 12:40:12 CET 2015"; 
- description = "deep project file for HelloWorld"; 
- } 
- 
- project HelloWorld { 
- libpath = "I:\deep\lib"; 
- boardtype = ntbMpc555HB; 
- ostype = ntbSTS; 
- programmertype = ntbMpc555UsbBdi; 
- 
- # enter names of rootclasses, e.g. 
- # rootclasses = "test.MyFirstTestClass","other.MySecondTestClass"; 
- rootclasses = "ch.ntb.stud.yourName.helloworld.HelloWorld"; 
  
- # imgfile = "M:\Workspace\HelloWorld\HelloWorld.bin"; +Create a run configuration and run the program as given in [[first_example|Hello World with System.out]]Be aware of the fact that all the examples using //flink// devices (which are implemented in the FPGA) need a suitable configuration loaded into the FPGA at startup.
- # imgformat = BIN; +
-+
-}</code> +
-  - Connect hardware to PC and power on. +
-  - Open View Dialog under //Window -> Show View -> Other...//. \\ {{software:eclipse:showview.png?400&direct}} +
-  - In the category //Terminal// mark //Terminal// and  confirm with //OK//\\ {{software:eclipse:viewchooser.png?200&direct}} +
-  - Under //Connection Type// select //Serial// and choose settings according to the settings of the SCI on the target from paragraph 9 above. Check the port number with your operating system. \\ {{software:eclipse:connectiontype.png?200&direct}} +
-  - Mark project file "HelloWorld.deep", either by right-clicking //Run As -> Deep Application// \\ {{software:eclipse:runas_context.png?direct}} \\ or with pulldown menu of the run-button //Run As -> Deep Application// \\ {{:software:eclipse:runas_pulldown.png?400&direct}} \\ will the programm be compiled, linked and downloaded. +
-  - The //USB Log// shows //Hello, World//. +
-  - With {{software:eclipse:run.jpg}} you can recompile and rerun the programm.+