Compiling Bela projects in Eclipse » History » Version 24
Giulio Moro, 2015-12-23 01:11 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 | 24 | Giulio Moro | rsync -avz --remove-source-files 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 | 22 | Giulio Moro | * Make sure that the following line is in your Eclipse project's includes |
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. |