Eclipse IDE

In dieser Seite wird beschrieben wie die Eclipse IDE installiert und für die Softwareentwicklung auf den TQ-Modulen konfiguriert wird.

Verwendete Versionen:

  • Ubuntu 10.04
  • Ubuntu 11.04
  • Eclipse Indigo
  • CDT 8.0
  • TQMa28 mit i.MX28 (ARM9)
  • TQMa35 mit i.MX35 (ARM11)
  • LTIB 9.1.1
  • ELDK 4.2

Ubuntu 10.04 liefert in den Repositories Eclipse Galileo mit. Die Version von CDT für Eclipse Galileo ist 6.0.2, diese unterstützt die Features für das Cross-Compilieren noch nicht. Für Ubuntu 10.04 holen wir uns die gepackte Version von Eclipse Indigo mit CDT 8.0. Diese und evtl. neuere sind auf folgender Downloadseite verfügbar:

http://www.eclipse.org/cdt/downloads.php

Wenn man auf dieser Seite dem Link zum gewünschten Eclipse package folgt (CDT 8.0 for Eclipse Indigo), hat man in der rechten Spalte einen Downloadlink für die verschiedenen Architekturen.

Alternativ kann man auch direkt auf http://www.eclipse.org/downloads/ gehen und findet dort dieselbe Übersicht an verfügbaren Packages. Nach Auswahl von “Linux” oben rechts, kann man sich das Package

Eclipse IDE for C/CLinux Developers (includes Incubating components)'' herunterladen. In dem entpackten Ordner ist das direkt ausführbare Eclipse. Es müssen keine Plugins mehr installiert werden. Mitunter kann es jedoch vorkommen, dass für die Ausführung von Eclipse noch eine Java Runtime Umgebung benötigt wird. Diese wird mit folgendem Befehl installiert. <code bash>user@ubuntu:~$ sudo apt-get install default-jre</code> ==== Installation per apt-get ==== Mit apt-get wird die eclipse Plattform installiert: <code bash>user@ubuntu:~$ sudo apt-get install eclipse-platform</code> <WRAP round alert> Ubuntu 10.04 liefert das sehr alte Eclipse Galileo mit. Es wird empfohlen ein neueres Paket direkt herunterzuladen. Siehe [[eclipse#download_komplettpaket]] </WRAP> <WRAP round tip> Das Paket eclipse-platform enthält nur die Platform und keine Sprachspezifischen plugins. Diese müssen noch mit dem Plugin Manager nachinstalliert werden. Es kann auch eine schon vorhandene Installation von eclipse genutzt werden. </WRAP> ===== Konfiguration ===== **Workspace**: Nach dem Start von eclipse muss ein Workspace angelegt werden. Der Workspace ist in einem Ordner im Dateisystem. Innerhalb des Workspaces können sehr einfach Projekte referenziert werden. Verschiedene Workspaces sind vor allem für verschiedene Programme oder für verschiedene Zwecke (z.B. ein Workspace für embedded Projekte, ein Workspace für Webdevelopment, ein Workspace für Javaprojekte) sinnvoll. **Environment**: <WRAP round important> Starten von Eclipse per Doppelklick im File-Explorer übernimmt nicht die gesetzten Umgebungsvariablen der Shell. </WRAP> Die erste Möglichkeit um eclipse mit den gesetzten Umgebnungsvariablen zu benutzen ist, eclipse aus einer Konsole heraus zu starten. Eine andere Möglichkeit ist, die relevanten Umgebungsvariablen in eine Datei zu schreiben, z.B. <code bash>user@ubuntu:~$ echo 'PATH=$PATH:/opt/eldk/usr/bin:/opt/eldk/bin export CROSS_COMPILE=arm-linux-' > setup_tqma28</code> Und dann ein Shell-Skript zu schreiben das zuerst die Umgebungsvariablen setzt und dann eclipse startet: <code bash>echo '#!/usr/bin/env sh source ~/setup_tqma28 cd ~/eclipse ./eclipse&' > eclipse_tqma28.sh && chmod u+x eclipse_tqma28.sh</code> Man kann dann auch einen "Launcher" per Rechtsklick und ''Add to Panel...'', dort im Auswahlfenster ''Custom Application Launcher'', in eine Fensterleiste hinzufügen: {{ :eclipse:eclipse_launcher_with_environment.png?nolink&200

(bspw. 
Prefix: arm-none-linux-gnueabi-
Path: /opt/freescale/usr/local/gcc-4.3.3-glibc-2.8-cs2009q1-203/arm-none-linux-gnueabi/bin

* Im nächsten Fenster Finish drücken. ===== Erstellen eines Projektes aus bestehenden Sourcen ===== Vorraussetzungen: * Quelltext vorhanden * Makefile vorhanden * Projekt kann “per Hand” auf der Konsole gebaut werden - Eclipse starten: user@ubuntu:~/Downloads/eclipse$ ./eclipse& - Neues Projekt erstellen: im Menü mit File > New > C Project - Im Assistenten einen Projektnamen vergeben (z.B. Hello World) und das Häkchen bei use default location entfernen. Daraufhin die Location des existierenden Projekts angeben z.B. /home/user/src/hello_world/. - Als Project type Cross-Compile Project und als Toolchain Cross GCC auswählen. - Den Assistenten mit Finish beenden. - Im Project Explorer links sollte jetzt das Projekt mit den bestehenden Quelltexten auftauchen. Jetzt muss noch in den Projekteigenschaften das automatische Makefile deaktiviert werden. - Dazu per Rechtsklick auf den Projektnamen im Kontextmenü Properties auswählen. In dem Einstelldialog den Menüpunkt C/CBuild'' auswählen. Dort die Option ''Generate Makefiles automatically'' deaktivieren.{{ :eclipse:screenshot-properties_for_hello_world.png?200

Wenn statt arm als Architektur die Hostarchitektur steht (z.B. x86), dann wurde der falsche Compiler gewählt. Siehe auch: Eclipse Konfiguration

===== Cross Compilen mit Eclipse ===== Ein Projekt kann auch in Eclipse für eine andere Plattform kompiliert werden. Es ist dafür ein Aufruf des targetspezifischen Compilers nötig. Hier sollen die dazu vorzunehmenden Einstellungen in Eclipse anhand des C Compilers verdeutlicht werden, der durch das LTIB-Paket mitgeliefert wird. Für dieses Beispiel ist dies der GCC 4.3.3.
1. Pfad zum Compiler notieren:

/opt/freescale/usr/local/gcc-4.3.3-glibc-2.8-cs2009q1-203/arm-none-linux-gnueabi/bin/arm-none-linux-gnueabi-gcc


2. Eigenschaften eines Eclipse-Projektes öffnen (Rechtsklick auf das Projekt im Project Explorer → Properties) und die oben angezeigte Configuration achten.
3. Unter C/C++ Build auf Settings klicken und bei Tool Settings den GCC C Compiler markieren.
4. Das Command gcc ändern in

/opt/freescale/usr/local/gcc-4.3.3-glibc-2.8-cs2009q1-203/arm-none-linux-gnueabi/bin/arm-none-linux-gnueabi-gcc


5. Jetzt muss Eclipse zum Kompilieren das Include-Verzeichnis des Target-Linux gegeben werden. Dazu GCC C Compiler aufklappen und den Eintrag Includes wählen.
6. /opt/ltib/src/kernel/linux-2.6-denx/include hinzufügen.
7. Schritt 4 für den GCC Linker wiederholen.
8. Unter dem GCC Linker auf Libraries klicken.
9. Zum Library search path(-L) das Verzeichnis /opt/ltib/rootfs/lib und /opt/ltib/rootfs/usr/lib hinzufügen.
10. Schritt 4 für den GCC Assembler wiederholen, allerdings mit dem Command

/opt/freescale/usr/local/gcc-4.3.3-glibc-2.8-cs2009q1-203/arm-none-linux-gnueabi/bin/arm-none-linux-gnueabi-as


11. Das Binary Parsers-Tab öffnen und den Elf Parser abwählen, dafür den GNU Elf Parser anwählen.
12. Dessen addr2line Command ändern zu

/opt/freescale/usr/local/gcc-4.3.3-glibc-2.8-cs2009q1-203/arm-none-linux-gnueabi/bin/arm-none-linux-gnueabi-addr2line


13. Dessen c++filt Command ändern zu

/opt/freescale/usr/local/gcc-4.3.3-glibc-2.8-cs2009q1-203/arm-none-linux-gnueabi/bin/arm-none-linux-gnueabi-c++filt


14. Die Änderungen mit Apply und OK übernehmen. Jetzt wird in der gewählten Configuration das Projekt für die Zielhardware gebaut. Zum Kopieren der gebauten Binärdatei in das RootFS ist noch Folgendes zu erledigen: In den Projekteigenschaften unter C/C++ Build → Settings auf Build Steps klicken und bei den Post-build steps das Command

cp /<workspace>/<project>/<Configuration>/<output binary> /opt/ltib/rootfs/home/<user>/

eintragen. Das Kopieren direkt ins LTIB-RootFS funktioniert nur, wenn die Benutzerrechte von Eclipse das Schreiben an diese Stelle erlauben. Notfalls sind vorher die Rechte des Zielverzeichnisses entsprechend anzupassen. ===== Demo-Projekt ===== hello_world.zip Ein Hello World Demoprojekt wurde erstellt. Dieses Projekt sollte bei korrekt installiertem und konfiguriertem ELDK mit Eclipse und CDT kompilieren. Zum Importieren des Projekts einfach im Menü File > Import… auswählen. Im Assistenten Existing Projects into Workspace auswählen. Im nächsten Formular muss nur noch das heruntergeladene ZIP-Archiv ausgewählt werden und mit Finish der Import abgeschlossen werden.

Sollte es beim Kompilieren probleme geben, kann man zuerst das Bauen per direktem Aufruf von make auf der Konsole ausführen. Es wird dann ein ausführbares Programm erstellt.

===== Debuggen ===== * Debuggen mit Eclipse, RSE und gdb * Debuggen mit Eclipse ohne RSE, aber mit gdb ===== Quellen ===== * http://lists.denx.de/pipermail/eldk/2008-February/000079.html * http://cache.freescale.com/files/dsp/doc/app_note/AN3870.pdf * http://lwn.net/images/conf/rtlws11/papers/proc/p09.pdf * http://comments.gmane.org/gmane.comp.embedded.eldk/1 * http://wiki.eclipse.org/CDT/User/FAQ

  • Last modified: 2022/08/04 15:02