Difference between revisions of "Eclipse"
m (→Forewords) |
(→Debug helloworld on the target) |
||
(12 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
− | How- | + | How-to install Eclipse IDE and GDB debugger |
==Forewords== | ==Forewords== | ||
− | Eclipse IDE | + | Eclipse IDE can be used as standard IDE for the Armadeus software development process. |
− | Specific | + | |
+ | Specific plugins will (might) be added (some day ;-)) to ease writing kernel drivers and user applications. | ||
+ | |||
Despite one or two drawbacks (Java slowliness and memory usage for example), Eclipse provides several advantages like the support of different languages, the good integration of GDB ... | Despite one or two drawbacks (Java slowliness and memory usage for example), Eclipse provides several advantages like the support of different languages, the good integration of GDB ... | ||
==Eclipse installation== | ==Eclipse installation== | ||
− | * | + | * If you don't need latest versions, you can get the one packaged with your distribution, for example on Debian/Ubuntu: |
− | * Install Eclipse to your | + | <pre class="host"> |
+ | $ sudo apt-get install eclipse eclipse-cdt eclipse-egit eclipse-subclipse eclipse-cdt-launch-remote | ||
+ | </pre> | ||
+ | |||
+ | * Otherwise, go to the [http://www.eclipse.org/downloads/ Eclipse download page] and select '''Eclipse IDE for C/C++ Developers''' (Linux version) or '''Eclipse IDE for Java Developers''' (if you intend to do Android development). | ||
+ | * Install Eclipse to your HOME directory: | ||
+ | <pre class="host"> | ||
$ cd $HOME | $ cd $HOME | ||
+ | </pre> | ||
Assuming that the downloaded package is located on your desktop: | Assuming that the downloaded package is located on your desktop: | ||
+ | <pre class="host"> | ||
$ tar -xvzf Desktop/eclipse-cpp-europa-winter-linux-gtk.tar.gz | $ tar -xvzf Desktop/eclipse-cpp-europa-winter-linux-gtk.tar.gz | ||
+ | </pre> | ||
− | ==Eclipse starting and configuration for the target== | + | ==Eclipse starting and configuration for the target (C/C++ developpers)== |
+ | <pre class="host"> | ||
$ eclipse/eclipse & | $ eclipse/eclipse & | ||
+ | </pre> | ||
1. Select your workspace (where your projects will be saved) <br> | 1. Select your workspace (where your projects will be saved) <br> | ||
Line 20: | Line 33: | ||
3. Create a new C Project with the name "helloworld" ->File ->New -> C project <br> | 3. Create a new C Project with the name "helloworld" ->File ->New -> C project <br> | ||
4. Enter the project name here "helloworld" and click '''finish''' <br> | 4. Enter the project name here "helloworld" and click '''finish''' <br> | ||
− | 5. Now the | + | 5. Now the ARM© cross-compiler has to be choosen to build the code for the target. Right click on the project "helloworld" in the project explorer and select '''properties''' <br> |
6. In the '''C/C++ Build''' entry, select '''Settings''' then '''GCC C Compiler''' then insert the path of the ARM compiler in the field '''Command'''; for example: | 6. In the '''C/C++ Build''' entry, select '''Settings''' then '''GCC C Compiler''' then insert the path of the ARM compiler in the field '''Command'''; for example: | ||
− | /home/nicolas/armadeus/buildroot/ | + | /home/nicolas/armadeus/buildroot/output/host/usr/bin/arm-linux-gnueabihf-gcc |
7. GCC options can be modified in the '''All options''' field <br> | 7. GCC options can be modified in the '''All options''' field <br> | ||
− | 8. Now the | + | 8. Now the ARM© cross-linker has to be chosen as well. '''GCC C Linker''' then insert the path of the ARM linker in the field '''Command'''; for example: |
− | /home/nicolas/armadeus/buildroot/ | + | /home/nicolas/armadeus/buildroot/output/host/usr/bin/arm-linux-gnueabihf-gcc |
− | 9. And finally the | + | 9. And finally the ARM© cross-assembler. '''GCC Assembler''' then insert the path of the ARM assembler in the field '''Command'''; for example: |
− | /home/nicolas/armadeus/buildroot/ | + | /home/nicolas/armadeus/buildroot/output/host/usr/bin/arm-linux-gnueabihf-as |
10. The path for the include files has to be specified as well. Eclipse has, by default, the include path of the host. In the '''C/C++ General''', select '''Paths and Symbols''' then '''GNU C''' in languages and add (for example): | 10. The path for the include files has to be specified as well. Eclipse has, by default, the include path of the host. In the '''C/C++ General''', select '''Paths and Symbols''' then '''GNU C''' in languages and add (for example): | ||
− | /home/nicolas/armadeus/buildroot/ | + | /home/nicolas/armadeus/buildroot/output/staging/usr/include/ |
This will add the standard include files for the small helloworld example below. Depending on the application additional paths can be specified. | This will add the standard include files for the small helloworld example below. Depending on the application additional paths can be specified. | ||
Line 43: | Line 56: | ||
Once the project has successfully compiled and linked: | Once the project has successfully compiled and linked: | ||
# In the Eclipse IDE, right click on "helloworld" in the Project Navigator, then Debug As -> Open Debug Dialog | # In the Eclipse IDE, right click on "helloworld" in the Project Navigator, then Debug As -> Open Debug Dialog | ||
− | # Select '''C/C++ Local Application''' and create a '''new launch configuration''' (first icon in the top menu) | + | # Select '''C/C++ Local Application''' and create a '''new launch configuration''' (first icon in the top left menu) |
# This new configuration will be automatically named "helloworld Debug". Select the '''Debugger''' tab | # This new configuration will be automatically named "helloworld Debug". Select the '''Debugger''' tab | ||
# Select '''gdbserver Debugger''' in the "debugger" drop down list | # Select '''gdbserver Debugger''' in the "debugger" drop down list | ||
− | # Now indicates where GDB is located ( | + | # Now indicates where GDB is located (Debugger option -> Main -> GDB Debugger); for example: <pre>/home/nicolas/armadeus/buildroot/output/host/usr/bin/arm-linux-gnueabihf-gdb</pre> |
# Once done, the link between the GDB server (on the target) and the GDB client (on the host) has to be configured. In "Debugger Options", select the "Connection" tab then "TCP" for the type if you want to use the ethernet link | # Once done, the link between the GDB server (on the target) and the GDB client (on the host) has to be configured. In "Debugger Options", select the "Connection" tab then "TCP" for the type if you want to use the ethernet link | ||
# Indicates the target IP address for the gdb host server and then the port number: here 2345<br> | # Indicates the target IP address for the gdb host server and then the port number: here 2345<br> | ||
# Close and save the Debug configuration | # Close and save the Debug configuration | ||
# Transfer the "helloworld binary" on the target by means of TFTP, SCP or whatever you want ( ''tftp -g -r [PATH]/helloworld HOST_IP_ADDRESS'' ) | # Transfer the "helloworld binary" on the target by means of TFTP, SCP or whatever you want ( ''tftp -g -r [PATH]/helloworld HOST_IP_ADDRESS'' ) | ||
− | # On your APF, start the program with GDB: <pre># gdbserver | + | # On your APF, start the program with GDB: <pre class="apf"># gdbserver HOST_IP_ADDRESS:2345 helloworld </pre> |
# GDB will launch your program and starts listen on port 2345 for a GDB client. | # GDB will launch your program and starts listen on port 2345 for a GDB client. | ||
# in Eclipse start the debug session Run-> Debug | # in Eclipse start the debug session Run-> Debug | ||
Line 60: | Line 73: | ||
[[Category:Toolchain]] | [[Category:Toolchain]] | ||
+ | [[Category:IDE]] |
Latest revision as of 17:29, 12 July 2017
How-to install Eclipse IDE and GDB debugger
Contents
Forewords
Eclipse IDE can be used as standard IDE for the Armadeus software development process.
Specific plugins will (might) be added (some day ;-)) to ease writing kernel drivers and user applications.
Despite one or two drawbacks (Java slowliness and memory usage for example), Eclipse provides several advantages like the support of different languages, the good integration of GDB ...
Eclipse installation
- If you don't need latest versions, you can get the one packaged with your distribution, for example on Debian/Ubuntu:
$ sudo apt-get install eclipse eclipse-cdt eclipse-egit eclipse-subclipse eclipse-cdt-launch-remote
- Otherwise, go to the Eclipse download page and select Eclipse IDE for C/C++ Developers (Linux version) or Eclipse IDE for Java Developers (if you intend to do Android development).
- Install Eclipse to your HOME directory:
$ cd $HOME
Assuming that the downloaded package is located on your desktop:
$ tar -xvzf Desktop/eclipse-cpp-europa-winter-linux-gtk.tar.gz
Eclipse starting and configuration for the target (C/C++ developpers)
$ eclipse/eclipse &
1. Select your workspace (where your projects will be saved)
2. Go to the workbench by clicking on "Workbench"
3. Create a new C Project with the name "helloworld" ->File ->New -> C project
4. Enter the project name here "helloworld" and click finish
5. Now the ARM© cross-compiler has to be choosen to build the code for the target. Right click on the project "helloworld" in the project explorer and select properties
6. In the C/C++ Build entry, select Settings then GCC C Compiler then insert the path of the ARM compiler in the field Command; for example:
/home/nicolas/armadeus/buildroot/output/host/usr/bin/arm-linux-gnueabihf-gcc
7. GCC options can be modified in the All options field
8. Now the ARM© cross-linker has to be chosen as well. GCC C Linker then insert the path of the ARM linker in the field Command; for example:
/home/nicolas/armadeus/buildroot/output/host/usr/bin/arm-linux-gnueabihf-gcc
9. And finally the ARM© cross-assembler. GCC Assembler then insert the path of the ARM assembler in the field Command; for example:
/home/nicolas/armadeus/buildroot/output/host/usr/bin/arm-linux-gnueabihf-as
10. The path for the include files has to be specified as well. Eclipse has, by default, the include path of the host. In the C/C++ General, select Paths and Symbols then GNU C in languages and add (for example):
/home/nicolas/armadeus/buildroot/output/staging/usr/include/
This will add the standard include files for the small helloworld example below. Depending on the application additional paths can be specified.
helloworld build
Once the project is correctly configured, we will add a new C File to it.
- Add a source file to the project by right clicking on the "helloworld" project and selecting New -> Source File
- Enter the name main.c and click finish
- Write the code. See the hello world example page
- Then build it by selecting "helloworld" in the Project Explorer and then Project-> Build Project
- Take a look at the problems tab on the bottom of the Eclipse window to verify that the build was successfully done.
Debug helloworld on the target
Once the project has successfully compiled and linked:
- In the Eclipse IDE, right click on "helloworld" in the Project Navigator, then Debug As -> Open Debug Dialog
- Select C/C++ Local Application and create a new launch configuration (first icon in the top left menu)
- This new configuration will be automatically named "helloworld Debug". Select the Debugger tab
- Select gdbserver Debugger in the "debugger" drop down list
- Now indicates where GDB is located (Debugger option -> Main -> GDB Debugger); for example:
/home/nicolas/armadeus/buildroot/output/host/usr/bin/arm-linux-gnueabihf-gdb
- Once done, the link between the GDB server (on the target) and the GDB client (on the host) has to be configured. In "Debugger Options", select the "Connection" tab then "TCP" for the type if you want to use the ethernet link
- Indicates the target IP address for the gdb host server and then the port number: here 2345
- Close and save the Debug configuration
- Transfer the "helloworld binary" on the target by means of TFTP, SCP or whatever you want ( tftp -g -r [PATH]/helloworld HOST_IP_ADDRESS )
- On your APF, start the program with GDB:
# gdbserver HOST_IP_ADDRESS:2345 helloworld
- GDB will launch your program and starts listen on port 2345 for a GDB client.
- in Eclipse start the debug session Run-> Debug