Compiling Bela projects in Eclipse » History » Version 22

Giulio Moro, 2015-08-14 05:01 AM

1 11 Giulio Moro
h1.  Compiling BeagleRT projects in Eclipse
2 1 Andrew McPherson
3 1 Andrew McPherson
This document contains information on how to compile the BeagleRT software and upload it onto the BeagleBone Black.
4 1 Andrew McPherson
5 1 Andrew McPherson
h2. Required tools
6 1 Andrew McPherson
7 3 Andrew McPherson
This document assumes you have the following tools installed:
8 3 Andrew McPherson
9 12 Giulio Moro
h3. On Linux
10 1 Andrew McPherson
* Working Linux system, either running natively or on a virtual machine
11 3 Andrew McPherson
* Mercurial version control system (http://mercurial.selenic.com). Available as a package in most Linux distributions.
12 1 Andrew McPherson
* arm-gcc hardfp compiler toolchain (i.e. @arm-linux-gnueabihf-gcc@ and similar. On Ubuntu, these can be installed from packages:
13 1 Andrew McPherson
<pre>
14 1 Andrew McPherson
sudo apt-get install gcc-arm-linux-gnueabihf
15 1 Andrew McPherson
sudo apt-get install g++-arm-linux-gnueabihf
16 2 Andrew McPherson
</pre>
17 1 Andrew McPherson
* Eclipse IDE (http://www.eclipse.org), including the C/C++ development tools
18 22 Giulio Moro
* xenomai libraries and include files are already on the BBB's SD card. You can copy them over to your machine as follows:
19 22 Giulio Moro
<pre>
20 22 Giulio Moro
cd ~
21 22 Giulio Moro
ssh root@192.168.7.2 "cd /usr/; tar -zcvf ~/xenomai.tar.gz xenomai" 
22 22 Giulio Moro
rsync -avz --remove-source-files bbb:xenomai.tar.gz .
23 22 Giulio Moro
cd  /usr/arm-linux-gnueabihf/include/
24 22 Giulio Moro
sudo tar -xvf ~/xenomai.tar.gz
25 22 Giulio Moro
rm ~/xenomai.tar.gz
26 22 Giulio Moro
</pre>
27 22 Giulio Moro
28 22 Giulio Moro
* Make sure that the following line is in your Eclipse project's includes
29 22 Giulio Moro
<pre>/usr/arm-linux-gnueabihf/include/xenomai/include</pre>
30 22 Giulio Moro
and the following line is in your Eclipse project's libraries search path
31 22 Giulio Moro
<pre>/usr/arm-linux-gnueabihf/include/xenomai/lib</pre>
32 12 Giulio Moro
33 12 Giulio Moro
h3. On a 64bit MacOS X
34 12 Giulio Moro
35 18 Giulio Moro
* You can get the arm cross-compiler toolchain from here http://www.welzels.de/blog/projekte/arm-cross-toolchain/, which will place the binaries into your /usr/local/linaro/arm-linux-gnueabihf/bin/ folder
36 18 Giulio Moro
* xenomai libraries and include files are already on the BBB's SD card. You can copy them over to your machine as follows:
37 12 Giulio Moro
<pre>
38 12 Giulio Moro
cd ~
39 12 Giulio Moro
ssh root@192.168.7.2 "cd /usr/; tar -zcvf ~/xenomai.tar.gz xenomai"
40 12 Giulio Moro
rsync -avz --remove-source-files bbb:xenomai.tar.gz .
41 12 Giulio Moro
cd  /usr/local/linaro/arm-linux-gnueabihf/include/
42 12 Giulio Moro
sudo tar -xvf ~/xenomai.tar.gz
43 21 Giulio Moro
rm ~/xenomai.tar.gz
44 1 Andrew McPherson
</pre>
45 1 Andrew McPherson
46 18 Giulio Moro
* Make sure that the following line is in your Eclipse project's includes
47 13 Giulio Moro
<pre>/usr/arm-linux-gnueabihf/include/xenomai/include</pre>
48 14 Giulio Moro
and the following line is in your Eclipse project's libraries search path
49 1 Andrew McPherson
<pre>/usr/local/linaro/arm-linux-gnueabihf/include/xenomai/lib/</pre>
50 1 Andrew McPherson
51 13 Giulio Moro
h3. Other operating systems
52 13 Giulio Moro
53 18 Giulio Moro
You have several options:
54 18 Giulio Moro
# find your own way and share it here
55 18 Giulio Moro
# use the Ubuntu VirtualBox image provided [ask for link].
56 19 Giulio Moro
# compile on the board: [[ Compiling BeagleRT projects on the board]]
57 3 Andrew McPherson
58 3 Andrew McPherson
h2. Getting started
59 3 Andrew McPherson
60 17 Giulio Moro
# Make sure you own a copy of the BeagleRT files, if you do not already:
61 3 Andrew McPherson
<pre>
62 3 Andrew McPherson
hg clone https://code.soundsoftware.ac.uk/hg/beaglert
63 3 Andrew McPherson
</pre>
64 3 Andrew McPherson
# Launch Eclipse and select a workspace (creating one if necessary).
65 4 Andrew McPherson
# In the Eclipse menu bar, choose _File -> Import..._. Within the dialog box that appears, choose _General -> Existing Projects into Workspace_. Click _Next_.
66 4 Andrew McPherson
# Click the button _Select root directory_ and choose the path to the BeagleRT repository you just cloned.
67 1 Andrew McPherson
# Make sure the @BeagleRT@ project is selected, and under Options, untick _Copy projects into workspace_. Click _Finish_ to complete the project import.
68 6 Andrew McPherson
69 6 Andrew McPherson
h2. Compiling the BeagleRT project
70 6 Andrew McPherson
71 6 Andrew McPherson
# In Eclipse, right-click on the @BeagleRT@ project folder in the left-hand column, and choose _Build Project_. (If you don't see the list of projects, make sure the C/C++ Perspective is active in Eclipse, and choose _Window -> Show View -> Project Explorer_.)
72 6 Andrew McPherson
# The project should compile without errors, and the results should be visible in the Console tab (typically in the bottom pane of the window)
73 6 Andrew McPherson
# If any errors arise, check that you have all the dependencies installed, both header files and libraries.
74 6 Andrew McPherson
75 6 Andrew McPherson
h2. Copying BeagleRT projects to the BeagleBone Black
76 1 Andrew McPherson
77 17 Giulio Moro
Once the project has compiled, Eclipse should automatically copy it over to the Beaglebone in the ~/beaglert folder, prompting you twice for the password in case you did not set up the ssh keys.
78 17 Giulio Moro
If the project is not copied automatically:
79 17 Giulio Moro
# open a terminal window and @cd@ to the directory where the binary was compiled. For example, if you installed BeagleRT in your home directory: @cd ~/BeagleRT/Release@
80 7 Andrew McPherson
# Copy the BeagleRT executable to the BeagleBone Black using @scp@ (entering your BeagleBone Black password when prompted; you may need to create the @beaglert@ directory first):
81 7 Andrew McPherson
<pre>
82 7 Andrew McPherson
scp BeagleRT root@192.168.7.2:~/beaglert/
83 6 Andrew McPherson
</pre>
84 9 Andrew McPherson
85 9 Andrew McPherson
h2. Selecting different BeagleRT examples within the Eclipse project
86 9 Andrew McPherson
87 9 Andrew McPherson
The Eclipse project contains several examples within the @projects@ directory. Follow these steps to choose which one to compile:
88 9 Andrew McPherson
89 9 Andrew McPherson
# Only one of the folders within @projects@ should be enabled at a time. This one will be in solid black text; the remainder will be grey.
90 9 Andrew McPherson
# Right-click on the folder which is currently enabled (solid black). Choose _Resource Configurations -> Exclude from Build..._
91 9 Andrew McPherson
# Click _Select All_ to disable the code in this folder. Click _OK_.
92 9 Andrew McPherson
# Now right-click on the folder which you want to enable. Choose _Resource Configurations -> Exclude from Build..._
93 9 Andrew McPherson
# Click _Deselect All_ to enable the code in this folder. Click _OK_.
94 10 Andrew McPherson
95 10 Andrew McPherson
h2. Creating a new executable within the BeagleRT project
96 10 Andrew McPherson
97 10 Andrew McPherson
Duplicate one of the existing project folders using the following steps:
98 10 Andrew McPherson
99 10 Andrew McPherson
# Right-click the project folder you want to duplicate and select _Copy_.
100 10 Andrew McPherson
# Right-click on the @projects@ folder and select _Paste_. It will ask you to type in a new name.
101 10 Andrew McPherson
# Follow the steps above (_Resource Configurations_) to enable compiling this new project rather than any of the others.