This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionLast revisionBoth sides next revision | ||
first_example [2020/09/06 14:27] – ursgraf | first_example [2020/12/01 14:24] – [Running Demo Programs] ursgraf | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== First Example ====== | ====== First Example ====== | ||
- | ===== Using System.out | + | ===== 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]] | ||
- | This example will demonstrate how to use the deep compiler to translate a simple Java program and run it on a target platform. | + | ===== Developing |
- | - Start eclipse, choose | + | As this board contains |
- | - Create | + | * [[first_example_microzed_sysdev| System Developer]] |
- | - 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: | + | * [[first_example_microzed_appdev| Application Developer]] |
- | - Target Configuration: | + | * [[first_example_microzed_deploy| Deploying]] |
- | - Select a board: //NTB MPC555 header board// | + | ===== Running Demo Programs ===== |
- | - Select | + | The deep runtime library offers |
- | - Select a operating System: //NTB Simple Tasking System for PPC// | + | {{: |
- | - 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? | + | |
- | - Project name: | + | |
- | - Choose | + | |
- | - Use default location or choose a location \\ {{{{projectname.png? | + | |
- | - //Finish// creates the project | + | |
- | - The empty project will show on the left side in the package explorer.\\ {{emptyproject.png? | + | |
- | - By right-clicking on the source folder (src) in the package explorer choose | + | |
- | - By right-clicking on the newly created package choose //New// -> //Class// and enter class name // | + | |
- | - Open class and enter source code:< | + | |
- | import java.io.PrintStream; | + | |
- | import | + | |
- | + | ||
- | public class HelloWorld | + | |
- | static | + | |
- | // 1) Initialize SCI1 (9600 8N1) | + | |
- | SCI sci1 = SCI.getInstance(SCI.pSCI1); | + | |
- | sci1.start(9600, | + | |
- | + | ||
- | // 2) Use SCI1 for stdout | + | |
- | System.out = new PrintStream(sci1.out); | + | |
- | + | ||
- | // 3) Say hello to the world | + | |
- | System.out.println(" | + | |
- | } | + | |
- | } | + | |
- | </ | + | |
- | - Open deep project file // | + | |
- | - Add the newly created class to // | + | |
- | #deep-1 | + | |
- | + | ||
- | meta { | + | |
- | version = "Mon Jan 05 12:40:12 CET 2015"; | + | |
- | description = "deep project file for HelloWorld"; | + | |
- | } | + | |
- | + | ||
- | project HelloWorld { | + | |
- | libpath = " | + | |
- | boardtype = ntbMpc555HB; | + | |
- | ostype = ntbSTS_ppc; | + | |
- | programmertype = ntbMpc555UsbBdi; | + | |
+ | Edit the // | ||
+ | < | ||
# enter names of rootclasses, | # enter names of rootclasses, | ||
# | # | ||
- | rootclasses = "test.HelloWorld"; | + | rootclasses = "org.deepjava.runtime.zynq7000.microzed.demo.Blinker"; |
- | + | ||
- | # imgfile = " | + | |
- | # imgformat = BIN; | + | |
- | } | + | |
</ | </ | ||
- | - Connect the hardware to your host PC by an USB cable and apply power to the target. | ||
- | - Open a terminal program such as '' | ||
- | - Create a new run configuration by marking the project file // | ||
- | - //Run// will compile, link and download the program. | ||
- | - The terminal window will show //Hello, World//. | ||
- | - With {{run.jpg}} you can recompile and rerun the programm. | ||
- | - See [[eclipse: | ||
- | |||
- | ===== Example on ZYBO board ===== | ||
- | If you use a zynq7000 platform such as the ZYBO board the following steps have to be altered: | ||
- | |||
- | 4. Target Configuration | ||
- | - Select a board, e.g.: // | ||
- | - Select a programmer: //OpenOCD// | ||
- | - Select a operating System: //NTB Simple Tasking System for ARM// | ||
- | - 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. | ||
- | |||
- | 10. The source code changes to : <code java> | ||
- | import java.io.PrintStream; | ||
- | import ch.ntb.inf.deep.runtime.zynq7000.driver.UART; | ||
- | |||
- | public class HelloWorld { | ||
- | static { | ||
- | // Initialize UART (115200 8N1) | ||
- | UART uart = UART.getInstance(UART.pUART1); | ||
- | uart.start(115200, | ||
- | |||
- | // Use the uart for stdout | ||
- | System.out = new PrintStream(uart.out); | ||
- | |||
- | // Print a string to the stdout | ||
- | System.out.println(" | ||
- | } | ||
- | } | ||
- | </ | ||
- | |||
- | 12. The project file will look like < | ||
- | #deep-1 | ||
- | |||
- | meta { | ||
- | version = "Mon Jan 05 12:40:12 CET 2015"; | ||
- | description = "deep project file for HelloWorld"; | ||
- | } | ||
- | |||
- | project HelloWorld { | ||
- | libpath = " | ||
- | boardtype = ZYBO7000; | ||
- | ostype = ntbSTS_arm; | ||
- | programmertype = openOCD; | ||
- | programmeropts = localhost_4444; | ||
- | |||
- | # enter names of rootclasses, | ||
- | # | ||
- | rootclasses = " | ||
- | |||
- | imgfile = " | ||
- | imgformat = BIN; | ||
- | } | ||
- | </ | ||
- | |||
- | 16. //Run// will compile, link and download the image file. For downloading and debugging [[openocd: | ||
- | ===== Example on mpc5200 ===== | ||
- | If you use a mpc5200 platform the following steps have to be altered: | ||
- | |||
- | 4. Target Configuration | ||
- | - Select a board, e.g.: //Phytec PhiCORE-MPC5200io// | ||
- | - Select a programmer: //none// | ||
- | - Select a operating System: //NTB Simple Tasking System for PPC// | ||
- | - 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. | ||
- | |||
- | 10. The source code changes to : <code java> | ||
- | import java.io.PrintStream; | ||
- | import ch.ntb.inf.deep.runtime.mpc5200.driver.UART3; | ||
- | |||
- | public class HelloWorld { | ||
- | static { | ||
- | // Initialize UART (9600 8N1) | ||
- | UART3.start(9600, | ||
- | |||
- | // Use the UART3 for stdout | ||
- | System.out = new PrintStream(UART3.out); | ||
- | |||
- | // Print a string to the stdout | ||
- | System.out.println(" | ||
- | } | ||
- | } | ||
- | </ | ||
- | |||
- | 12. The project file will look like < | ||
- | #deep-1 | ||
- | |||
- | meta { | ||
- | version = "Mon Jan 05 12:40:12 CET 2015"; | ||
- | description = "deep project file for HelloWorld"; | ||
- | } | ||
- | |||
- | project HelloWorld { | ||
- | libpath = " | ||
- | boardtype = phyCoreMpc5200io; | ||
- | ostype = ntbSTS_ppc; | ||
- | # | ||
- | |||
- | # enter names of rootclasses, | ||
- | # | ||
- | rootclasses = " | ||
- | |||
- | imgfile = " | ||
- | imgformat = BIN; | ||
- | } | ||
- | </ | ||
- | |||
- | 16. //Run// will compile, link and create the image file. Use an external debugging device such as an [[http:// | ||
- | |||
- | If the boot loader //uBoot// is present on the board, it will start up and configure the memory and clocks. Now, it's possible to download a program without using an Abatron device. For this, you have to choose in step 4 the target configuration //Phytec PhiCORE-MPC5200uBoot// | ||
- | Connect a terminal program on PSC3 with 115200, no parity, 8 bit. Also connect the Ethernet of the board to your local server, which must have a TFTP server running. Run the following command: < | ||
- | Please make sure that your image file resides in the right directory on your TFTP server. Finally start your program with < | ||
+ | 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. | ||