Compiling Bela projects in Eclipse » History » Version 27

Giulio Moro, 2015-12-23 01:13 PM

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 23 Giulio Moro
sudo apt-get install gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf
15 2 Andrew McPherson
</pre>
16 1 Andrew McPherson
* Eclipse IDE (http://www.eclipse.org), including the C/C++ development tools
17 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:
18 22 Giulio Moro
<pre>
19 22 Giulio Moro
cd ~
20 22 Giulio Moro
ssh root@192.168.7.2 "cd /usr/; tar -zcvf ~/xenomai.tar.gz xenomai" 
21 26 Giulio Moro
rsync -avz --remove-source-files root@192.168.7.2:xenomai.tar.gz .
22 22 Giulio Moro
cd  /usr/arm-linux-gnueabihf/include/
23 22 Giulio Moro
sudo tar -xvf ~/xenomai.tar.gz
24 22 Giulio Moro
rm ~/xenomai.tar.gz
25 22 Giulio Moro
</pre>
26 22 Giulio Moro
27 27 Giulio Moro
* Make sure that the following line is in your Eclipse project's includes ascascs
28 22 Giulio Moro
<pre>/usr/arm-linux-gnueabihf/include/xenomai/include</pre>
29 22 Giulio Moro
and the following line is in your Eclipse project's libraries search path
30 22 Giulio Moro
<pre>/usr/arm-linux-gnueabihf/include/xenomai/lib</pre>
31 12 Giulio Moro
32 12 Giulio Moro
h3. On a 64bit MacOS X
33 12 Giulio Moro
34 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
35 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:
36 12 Giulio Moro
<pre>
37 12 Giulio Moro
cd ~
38 12 Giulio Moro
ssh root@192.168.7.2 "cd /usr/; tar -zcvf ~/xenomai.tar.gz xenomai"
39 12 Giulio Moro
rsync -avz --remove-source-files bbb:xenomai.tar.gz .
40 12 Giulio Moro
cd  /usr/local/linaro/arm-linux-gnueabihf/include/
41 12 Giulio Moro
sudo tar -xvf ~/xenomai.tar.gz
42 21 Giulio Moro
rm ~/xenomai.tar.gz
43 1 Andrew McPherson
</pre>
44 1 Andrew McPherson
45 18 Giulio Moro
* Make sure that the following line is in your Eclipse project's includes
46 13 Giulio Moro
<pre>/usr/arm-linux-gnueabihf/include/xenomai/include</pre>
47 14 Giulio Moro
and the following line is in your Eclipse project's libraries search path
48 1 Andrew McPherson
<pre>/usr/local/linaro/arm-linux-gnueabihf/include/xenomai/lib/</pre>
49 1 Andrew McPherson
50 13 Giulio Moro
h3. Other operating systems
51 13 Giulio Moro
52 18 Giulio Moro
You have several options:
53 18 Giulio Moro
# find your own way and share it here
54 18 Giulio Moro
# use the Ubuntu VirtualBox image provided [ask for link].
55 19 Giulio Moro
# compile on the board: [[ Compiling BeagleRT projects on the board]]
56 3 Andrew McPherson
57 3 Andrew McPherson
h2. Getting started
58 3 Andrew McPherson
59 17 Giulio Moro
# Make sure you own a copy of the BeagleRT files, if you do not already:
60 3 Andrew McPherson
<pre>
61 3 Andrew McPherson
hg clone https://code.soundsoftware.ac.uk/hg/beaglert
62 3 Andrew McPherson
</pre>
63 3 Andrew McPherson
# Launch Eclipse and select a workspace (creating one if necessary).
64 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_.
65 4 Andrew McPherson
# Click the button _Select root directory_ and choose the path to the BeagleRT repository you just cloned.
66 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.
67 6 Andrew McPherson
68 6 Andrew McPherson
h2. Compiling the BeagleRT project
69 6 Andrew McPherson
70 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_.)
71 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)
72 6 Andrew McPherson
# If any errors arise, check that you have all the dependencies installed, both header files and libraries.
73 6 Andrew McPherson
74 6 Andrew McPherson
h2. Copying BeagleRT projects to the BeagleBone Black
75 1 Andrew McPherson
76 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.
77 17 Giulio Moro
If the project is not copied automatically:
78 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@
79 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):
80 7 Andrew McPherson
<pre>
81 7 Andrew McPherson
scp BeagleRT root@192.168.7.2:~/beaglert/
82 6 Andrew McPherson
</pre>
83 9 Andrew McPherson
84 9 Andrew McPherson
h2. Selecting different BeagleRT examples within the Eclipse project
85 9 Andrew McPherson
86 9 Andrew McPherson
The Eclipse project contains several examples within the @projects@ directory. Follow these steps to choose which one to compile:
87 9 Andrew McPherson
88 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.
89 9 Andrew McPherson
# Right-click on the folder which is currently enabled (solid black). Choose _Resource Configurations -> Exclude from Build..._
90 9 Andrew McPherson
# Click _Select All_ to disable the code in this folder. Click _OK_.
91 9 Andrew McPherson
# Now right-click on the folder which you want to enable. Choose _Resource Configurations -> Exclude from Build..._
92 9 Andrew McPherson
# Click _Deselect All_ to enable the code in this folder. Click _OK_.
93 10 Andrew McPherson
94 10 Andrew McPherson
h2. Creating a new executable within the BeagleRT project
95 10 Andrew McPherson
96 10 Andrew McPherson
Duplicate one of the existing project folders using the following steps:
97 10 Andrew McPherson
98 10 Andrew McPherson
# Right-click the project folder you want to duplicate and select _Copy_.
99 10 Andrew McPherson
# Right-click on the @projects@ folder and select _Paste_. It will ask you to type in a new name.
100 10 Andrew McPherson
# Follow the steps above (_Resource Configurations_) to enable compiling this new project rather than any of the others.