Cross Compiler für Arm Installieren Linux

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
ArmFPC1
Beiträge: 33
Registriert: Do 19. Mär 2015, 18:18

Cross Compiler für Arm Installieren Linux

Beitrag von ArmFPC1 »

Hey Leute,

ich hab die ehre mit mit Freepascal und Arm-linux Entwicklung mich zu beschäftigen. Ich bin versuche schon seit mehrere Wochen dran Freepascal und Lazarus unter Ubuntu richtig zum laufen bekommen, so dass ich für einem Arm Prozessor Programmcode entwickeln.

Ich habe schon mit mehreren Anleitungen es versucht zu konfigurieren, war denn noch bis jetzt erfolglos. Es lassen sich die Binutils zwar installieren und alles aber sie können dann von dem Lazarus Kompiler nicht gefunden werden. Mir würde es vollkommen reichen eine Consolen Kompiler zuhaben um dann einfach per SSH das Programm dann auf das Target zu kopieren.

Kann mir da jemand von euch da weiterhelfen oder mir eine Anleitung geben.

Schon verwendet:
http://wiki.lazarus.freepascal.org/Setu ... le_For_ARM
http://wiki.freepascal.org/Cross_compiling
http://askubuntu.com/questions/250696/c ... le-for-arm

Wenn ich im Lazarus unter Kompiler das BS Ziel Linux und dann Arm und Armv7 wähle kommt dieser Fehler. Das Verwendete CPU ist ein Arm AM3517 armv7.




Was mach ich da falsch oder was hab ich vergessen zu Konfigurieren. Kann mir bitte jemand weiterhelfen!


VIELEN DANKE im voraus !!!!!!
Dateianhänge
Fehlermeldung
Fehlermeldung

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: Cross Compiler für Arm Installieren Linux

Beitrag von mschnell »

Ich kann Dir leider nicht helfen, sondern nur sagen, dass ich das vor einiger Zeit - zusammen mit einem anderen User dieses Forums - auch versucht und schließlich aufgegeben habe.

1) Cross-Compile.
Haben wir hinbekommen nachdem wir die komplette ARM-Cross-Toolchain von Code-Sourcey installiert haben. Ein Riesen-Ding inclusive Eclipse etc. Eine kleiner Arm-Cross-Tool Installation haben wir nicht gefunden. Könnte man daraus aber natürlich extrahieren, wenn man Zeit und Lust hat. Im Endeffekt war es möglich mit Lazarus auf Linux-PC ARM-Linux-Programme zu erzeugen

2) Zum Cross-Kompilieren gehört sinnvoller Weise Remote Debuggen mit Lazarus.
Das haben wir nicht hinbekommen.

Prinzipiell gibt es zwei Möglichkeiten:
(A) Remote-GDB und GDB-Server. Das wird von Lazarus unterstützt (weil Lazarus gar nicht merkt, dass da Remote gearbeitet wird). Hat aber diverse Nachteile/Probleme. Außerdem muss man erst einmal das richtige Remote-GDB/GDB-Server - Pärchen mit dem C-Compiler übersetzte. Das ist alles andere als trivial.
(B) Lazarus spricht den normalen GDB auf dem Zielsystem via SSH an. Der Code dafür ist bei Lazarus auskommentiert und müsste vermutlich erst einmal korrigiert werden.

Im Endeffekt haben wir die Programme für das ARM NAS auf PC-Linux mit Lazarus entwickelt und dann mit dem nativen Kommandozeilen-Kompiler auf dem Zielsystem übersetzt.

Das geht so:
1) Gedanklich das Projekt in eine (bei der Entwicklung verwendete) Oberfläche und eine Funktionalitäts-Einheit trennen und die beiden teile in einzelnen Units halten.
2) Mit Lazarus entwickeln und testen
3) Ein Kommandozeilen - Projekt machen, in dem die Funktionalitäts-Units verwendet werden. Ist schlechter zu testen, als mit GUI sollte aber nach dem bisherigen Vorgehen auf Anhieb funktionieren. Auf PC testen.
4) den Sourcecode dieses Projektes auf das ARM-Zielsystem kopieren und da übersetzen. Sollte nach dem bisherigen Vorgehen auf Anhieb funktionieren.

-Michael

mse
Beiträge: 2013
Registriert: Do 16. Okt 2008, 10:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
CPU-Target: x86,x64,ARM

Re: Cross Compiler für Arm Installieren Linux

Beitrag von mse »


ArmFPC1
Beiträge: 33
Registriert: Do 19. Mär 2015, 18:18

Re: Cross Compiler für Arm Installieren Linux

Beitrag von ArmFPC1 »

Vielen Dank für die schnelle Antwort.

@mschnell
wie hast du das hinbekommen den Cross-Compiler mit Pascal zu konfigurieren / einzurichten.
Mir persönlich würde es schon vollkommen reichen wenn ich über die Kommandozeile den Compiler aufrufen kann und die compilierte Datei dann per SSH auf das Target kopieren kann.
Es muss nicht in Lazarus integriert sein.

Was für mich relativ unwichtig ist, ist das mit dem Remote Debugging.

Ich wurde einfach gerne ein Cross Compiler installieren den ich dann Per Konsole Aufruf und sage welche Pascal Source Code Datei er mit Kompilieren soll. Dann wäre ich vorerst glücklich hat mit jemand ein Hinweis wo ich das Finden kann? Entweder bin ich gerade zu blöd was zu finden oder sehe es nicht durch die "Betriebsblindheit" :?

Danke schon mal

mse
Beiträge: 2013
Registriert: Do 16. Okt 2008, 10:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
CPU-Target: x86,x64,ARM

Re: Cross Compiler für Arm Installieren Linux

Beitrag von mse »

ArmFPC1 hat geschrieben:Ich wurde einfach gerne ein Cross Compiler installieren den ich dann Per Konsole Aufruf und sage welche Pascal Source Code Datei er mit Kompilieren soll. Dann wäre ich vorerst glücklich hat mit jemand ein Hinweis wo ich das Finden kann?

Habe ich doch schon gemacht? Siehe den ersten Beitrag des link.

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: Cross Compiler für Arm Installieren Linux

Beitrag von mschnell »

ArmFPC1 hat geschrieben:@mschnell
wie hast du das hinbekommen den Cross-Compiler mit Pascal zu konfigurieren / einzurichten.

mse's Anleitung ist besser !
-Michael

ArmFPC1
Beiträge: 33
Registriert: Do 19. Mär 2015, 18:18

Re: Cross Compiler für Arm Installieren Linux

Beitrag von ArmFPC1 »

Ok

vielen Danke.

Ich weiß nicht aber ich glaub ich bin zu dumm das umzusetzen. Ich hab das versucht aber ich verstehe das nicht ganz.

Ist es nicht irgendwie möglich einen Aufruf aus der Console zu machen wie z.B. bei C/C++. arm-linux-gnueabihf-gcc dateiname.c :?:

ich versteh nicht ganz was ich falsch mache! :|

mse
Beiträge: 2013
Registriert: Do 16. Okt 2008, 10:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
CPU-Target: x86,x64,ARM

Re: Cross Compiler für Arm Installieren Linux

Beitrag von mse »

ArmFPC1 hat geschrieben:ich versteh nicht ganz was ich falsch mache! :|

Meine Beiträge werden hier nicht gerne gesehen, darum halte ich mich so kurz wie möglich.
Die Kommandozeile von FPC ist hier beschrieben:
http://www.freepascal.org/docs-html/user/user.html
Die cross-Compiler Umgebung linux-i386 -> linux-arm ist hier:
http://sourceforge.net/projects/mseide- ... pcrossarm/

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: Cross Compiler für Arm Installieren Linux

Beitrag von mschnell »

mse hat geschrieben:Meine Beiträge werden hier nicht gerne gesehen,

Quatsch !

-Michael

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6209
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Cross Compiler für Arm Installieren Linux

Beitrag von af0815 »

mse hat geschrieben:Meine Beiträge werden hier nicht gerne gesehen, darum halte ich mich so kurz wie möglich.

Nicht richtig wenn es um Lazarus und fpc geht.

Bezüglich des threads wo es um das compilieren für ARM (QNAP TS212 u.ä.) geht - Crosscompiling für QNAP (Arm) dort gibt es auch Hinweise welche Toolchains und Parameter verwendet worden sind.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Scotty
Beiträge: 768
Registriert: Mo 4. Mai 2009, 13:24
OS, Lazarus, FPC: Arch Linux, Lazarus 1.3 r44426M FPC 2.6.4
CPU-Target: x86_64-linux-qt/gtk2
Kontaktdaten:

Re: Cross Compiler für Arm Installieren Linux

Beitrag von Scotty »

ArmFPC1 hat geschrieben:Ist es nicht irgendwie möglich einen Aufruf aus der Console zu machen wie z.B. bei C/C++. arm-linux-gnueabihf-gcc dateiname.c :?:

Kompilieren per gcc erzeugt noch lange kein Binary. Die Toolchain ist eine Chain. :-)

ArmFPC1 hat geschrieben:Es lassen sich die Binutils zwar installieren und alles aber sie können dann von dem Lazarus Kompiler nicht gefunden werden.

Was verstehst du unter "installiert"? Gibt es ein binary ppcrossarm (wahrscheinlich unter /usr/local/bin)? Wenn ja, dann fehlt wohl nur der entsprechende Eintrag in der Konfiguration ("Create custom fpc.cfg" im Wiki). Falls nicht, dann solltest du genauer beschreiben, was du gemacht hast, um die Toolchain zu kompilieren und wie das Ergebnis aussieht.

mse
Beiträge: 2013
Registriert: Do 16. Okt 2008, 10:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
CPU-Target: x86,x64,ARM

Re: Cross Compiler für Arm Installieren Linux

Beitrag von mse »

Habe eine neue Version mit binutils 2.25.51 und gdb 7.9.0 hochgeladen:
https://sourceforge.net/projects/mseide ... pcrossarm/

ArmFPC1
Beiträge: 33
Registriert: Do 19. Mär 2015, 18:18

Re: Cross Compiler für Arm Installieren Linux

Beitrag von ArmFPC1 »

vielen Dank schon mal für eure Antworten. Ich bin noch nicht dazu gekommen diese Aufzuarbeiten.

Ich halte auch auf dem Laufenden und teile euch wenn Fehlermeldungen auftreten dann mit.

ArmFPC1
Beiträge: 33
Registriert: Do 19. Mär 2015, 18:18

Re: Cross Compiler für Arm Installieren Linux

Beitrag von ArmFPC1 »

Hallo,

ich hab mir es nochmal angeschaut und ein eine neue VM aufgelegt mit Ubuntu 14.10. Nun hab ich noch mal FPC installiert und die "Konfiguration" gemacht! Ich hab nach dem Besagten Corsscompiler (ppcrossarm) geschaut dieser ist auch in dem Verzeichnis von FPC vorhanden.

Nun verstehe ich nicht ganz wie ich das in der fp.cfg Datei eintragen soll.

Müsste ich diesen Block bei der fp.cfg mit den richtigen path hinzufügen oder die conf damit ersetzen?

#INCLUDE /etc/fpc.cfg
#DEFINE DEMOTEST
#DEFINE DEMOTEST1
#DEFINE LAZARUS

-Fu/usr/lib/fpc/2.5.1/units/$fpctarget/*
-Fl/usr/lib/fpc/2.5.1/units/$fpctarget/rtl/

-a
-Sd
-Xd
-Xs

-O-

#IFDEF CPUARM
-XP/home/user/lazarus/fpc/binutils/
-Xr/usr/lib/fpc/2.5.1/units/arm-linux/rtl/
-Xr/home/user/lazarus/fpc/libcross
-XR/home/user/lazarus/fpc/
-darm
-Tlinux
#ENDIF

mfg

ArmFPC1
Beiträge: 33
Registriert: Do 19. Mär 2015, 18:18

Re: Cross Compiler für Arm Installieren Linux

Beitrag von ArmFPC1 »

Hey noch eine weitere Information zu dem letzten Beitrag.

Ich hab gesehen das ich die zwei Verzeichnisse nicht habe.
-Xr/usr/lib/fpc/2.6.4/units/arm-linux/rtl/
-Xr/home/user/lazarus/fpc/libcross

Jetzt muss ja wohl etwas schief gelaufen sein bei der Installation der Lazarus Pakete vermute ich. Kann mir jemand von euch sagen bei welchem genau das für mich irgendwie nicht ersichtlich.
Das Verzeichnis /home/user/lazarus ist vorhanden, sowie auch das usr/lib/fpc/2.6.4/units/ nur hier ist nur die unit von dem i386 vorhanden.

Habe eine neue Version mit binutils 2.25.51 und gdb 7.9.0 hochgeladen:
https://sourceforge.net/projects/mseide ... pcrossarm/


was mach ich mit diesem Paket. Verstehe ich das richtig das dies die Dateien für den Crosscompiler sind?

Antworten