Full Parallella Setup Guide

cd ~/Downloads

wget ftp://ftp.parallella.org/esdk/old/esdk.5.13.07.10_linux_x86_64_armv7l.tgz

sudo mkdir -p /opt/adapteva

sudo mv esdk.5.13.07.10_linux_x86_64_armv7l.tgz /opt/adapteva

cd /opt/adapteva

sudo tar xvf esdk.5.13.07.10_linux_x86_64_armv7l.tgz

sudo ln -sTf esdk.5.13.07.10 /opt/adapteva/esdk

sudo apt-get install libmpfr-dev libgmp3-dev libmpc-dev openjdk-6-jre tcsh csh g++ -y

sudo nano /etc/environment

  • PATH=”/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/opt/adapteva/esdk/tools/e-gnu/bin”
  • EPIPHANY_HOME=”/opt/adapteva/esdk”
  • LD_LIBRARY_PATH=”/usr/lib:/usr/lib/x86_64-linux-gnu”

cd /usr/lib/x86_64-linux-gnu

sudo cp libmpc.so libmpc.so.2

sudo ldconfig

sudo cp libmpfr.so libmpfr.so.1

sudo cp libgmp.so libgmp.so.3

sudo nano /opt/adapteva/esdk/tools/host/bin/echo-process

Save empty file

sudo chmod 777 /opt/adapteva/esdk/tools/host/bin/echo-process

e-eclipse

Once the workspace has been setup, create a new project by selecting File → New → C Project

Screenshot from 2015-06-29 13:24:33

Give the project a name, in this example I have called it “hello_world_proj” then select Epiphany Executable (Multi Core) → Hello World C Project and then click Next

Screenshot from 2015-06-29 13:26:12

Working with the 16 core, please make sure the settings are as follows:

Screenshot from 2015-06-29 13:27:07

Click Next, then Finish.

This will create your set of projects.

The master project is what will build all of your projects at once.
The commonlib project is used for creating code that will be shared/run by all cores.
Each individual .core.X_Y project (there should be 16 in total) are the individual cores, for the hello world project they all run the same code from the commonlib project, but they may be programmed individually.

Right click the master project Debug As → Debug Configurations

Screenshot from 2015-06-29 13:29:38

Right click Epiphany Multicore Applications (gdb) → New

Screenshot from 2015-06-29 13:30:37

Change the Host name to the IP address or hostname of the Epiphany board that is running on your network.
Untick: Stop at main
Tick: Resume
Tick: E-gdb verbose mode

Screenshot from 2015-06-29 13:34:27

Click Apply then click Close (we’re not quite ready yet).

Right click on your first .core.X_Y project. In my example this is hello_world_proj.core.32_10
Select Properties (should be right down the bottom).
C/C++ Build → Settings → Epiphany Linker → Linker Description File
Change Select LDF to:  ${EPIPHANY_HOME}/bsps/current/legacy.ldf

Screenshot from 2015-06-29 13:39:33

Then under Epiphany Linker → Libraries
Add e-lib
Click Ok to close the Properties Window

Screenshot from 2015-06-29 13:41:17

Right click on the core project you just modified the properties of and select
Apply C/C++ setting for other core projects
A project selection window will appear, Click Select All → OK

Screenshot from 2015-06-29 13:44:55

If successful, a window like this will pop up once it is completed:

Screenshot from 2015-06-29 13:45:43

Now we will need to run the e-server software on the Epiphany itself, mine has been set-up with SSH access but you may have direct physical access in which case just bring up a Terminal and make sure the Network is available or ping-able from your host machine.

Screenshot from 2015-06-29 13:48:04

Now all you need to do is type:
e-server
And the Epiphany will start listening starting from port 51000 by default.

Screenshot from 2015-06-29 13:49:22

Back on the host machine, we can now run our hello_world_proj and execute it on the remote Epiphany. This is done by first right clicking the master project again, Debug As → Debug Configurations… then Click the Debug button.

All going well it should have created 16 individual debug projects and run your hello world program eg:

Screenshot from 2015-06-29 14:02:29
Screenshot from 2015-06-29 14:03:07

You can now make changes to the program, in order to rebuild and rerun the program again make sure to run the master debug and not the 16 generated single core debug options.

Leave a comment