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
Installation
Download Komplettpaket
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
(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