deep

a Cross Development Platform for Java

User Tools

Site Tools


first_example

First Example

This example will demonstrate how to use the deep compiler to translate a simple Java program and run it on a mpc555 target platform.

  1. Start eclipse, choose a new workspace and open the deep perspective with Window → Open Perspective → 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. Browse to the location where you've installed the library.
    If you're working on a NTB-PC, you can simply leave the box Use default library path checked and click Next.
  4. Target Configuration:
    1. Select a board: NTB MPC555 Headerboard
    2. Select a programmer: NTB MPC555 USB-BDI
    3. Select a operating System: NTB Simple tasking system
    4. 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.
  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.
  9. By right-clicking on the newly created package choose NewClass and enter class name HelloWorld.
  10. Open class and enter source code:
    import java.io.PrintStream;
    import ch.ntb.inf.deep.runtime.mpc555.driver.SCI;
     
    public class HelloWorld {
    	static {
    		// 1) Initialize SCI1 (9600 8N1)
    		SCI sci1 = SCI.getInstance(SCI.pSCI1);
    		sci1.start(9600, SCI.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");
    	}
    }
  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:
    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 = "test.HelloWorld";
    
    	#	imgfile = "M:\Workspace\HelloWorld\HelloWorld.bin";
    	#	imgformat = BIN;
    	}
    }
  13. Connect the hardware to your host PC by an USB cable and apply power to the target.
  14. 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.
  15. Create a new run configuration by marking the project file HelloWorld.deep. Then, right-click on it and choose Run As → Deep Application or select from the pulldown menu of the run-button.
  16. Run will compile, link and download the program.
  17. The terminal window will show Hello, World.
  18. With run.jpg you can recompile and rerun the programm.
  19. See Flashing your Program for how to write your program to permanent flash memory.

Example on mpc5200

If you use a mpc5200 platform the following steps have to be altered:

4. Target Configuration

  1. Select a board, e.g.: Phytec PhiCORE-MPC5200io
  2. Select a programmer: none
  3. Select a operating System: NTB Simple tasking system
  4. 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 :

import java.io.PrintStream;
import ch.ntb.inf.deep.runtime.mpc5200.driver.UART3;
 
public class HelloWorld {
	static {
		// Initialize UART (9600 8N1)
		UART3.start(9600, UART3.NO_PARITY, (short)8);
 
		// Use the UART3 for stdout
		System.out = new PrintStream(UART3.out);
 
		// Print a string to the stdout
		System.out.println("Hello, World");
	}
}

12. The project file will look like

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 = phyCoreMpc5200io;
		ostype = ntbSTS;
	#	programmertype = ;

	#	enter names of rootclasses, e.g.
	#	rootclasses = "test.MyFirstTestClass","other.MySecondTestClass";
		rootclasses = "test.HelloWorld";

		imgfile = "M:\Workspace\HelloWorld\HelloWorld.bin";
		imgformat = BIN;
	}
}

16. Run will compile, link and create the image file. Use an external debugging device such as an Abatron BDI to download the program.

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. This configuration is valid for the tiny and the io board. 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:

tftp 0x400000 myDir/test.bin bin

Please make sure that your image file resides in the right directory on your TFTP server. Finally start your program with

go 0x400100
first_example.txt · Last modified: 2016/02/25 13:33 (external edit)