cross compile
-
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:
cross compile
Beim Suchen nach einer Lösung für eine fehlende libpthread bin ich auf diese meiner Meinung nach sehr schöne Anleitung gestoßen: http://www.rpdev.net/home/node/33" onclick="window.open(this.href);return false;. Bei mir war das Problem, dass in /lib32 ein paar softgelinkte .so-Files gefehlt haben (/lib32/libpthread.so -> /lib32/libpthread.so.0). Aber die Anleitung kann vielleicht mal für jemanden hilfreich sein.
-
Marcovaldo
- Beiträge: 43
- Registriert: Mo 20. Okt 2008, 21:08
Wer kann mir einen i386.linux auf arm.linux compiler bauen?
Hallo,
Auf die Gefahr hin dass ich meinen Ruf hier verliere, bevor ich noch einen habe....
(Da will jemand von einer Kita an der Hand genommen werden....)
Hat jemand einen fertig gebauten crosscompiler um unter Ubuntu für arm-linux crosszukompilieren
(die alte arm-linux-fpc-2.0.4.i386-linux.tar ist ja leider offline...)
Dafür möchte ich ein Bounty von Euro 200 ausloben(oder was soll es kosten?)
Marcovaldo
PS:
Warum ich es nicht einfach selbst mache: Ich bin derzeit zeitlich extrem unter Druck, und hab einfach keinen ausreichend klaren Kopf um die HowTos durchzugehen.
Sollte aber eine Grundsatzentscheidung betreffend einer Hardware treffen, wo mir Bauteile auf End of Life kippen und dringend Ersatz gesucht wird...
Auf die Gefahr hin dass ich meinen Ruf hier verliere, bevor ich noch einen habe....
(Da will jemand von einer Kita an der Hand genommen werden....)
Hat jemand einen fertig gebauten crosscompiler um unter Ubuntu für arm-linux crosszukompilieren
(die alte arm-linux-fpc-2.0.4.i386-linux.tar ist ja leider offline...)
Dafür möchte ich ein Bounty von Euro 200 ausloben(oder was soll es kosten?)
Marcovaldo
PS:
Warum ich es nicht einfach selbst mache: Ich bin derzeit zeitlich extrem unter Druck, und hab einfach keinen ausreichend klaren Kopf um die HowTos durchzugehen.
Sollte aber eine Grundsatzentscheidung betreffend einer Hardware treffen, wo mir Bauteile auf End of Life kippen und dringend Ersatz gesucht wird...
- af0815
- Lazarusforum e. V.
- Beiträge: 7043
- 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: Wer kann mir einen i386.linux auf arm.linux compiler bauen?
Hast du eine Testumgebung unter Ubuntu die man verwenden kann (Emulator). Beschreibe bitte die arm-linux Umgebung/Toolchain etwas mehr.Marcovaldo hat geschrieben:Hat jemand einen fertig gebauten crosscompiler um unter Ubuntu für arm-linux crosszukompilieren
(die alte arm-linux-fpc-2.0.4.i386-linux.tar ist ja leider offline...)
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
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 compile
Anscheinend hat hier noch niemand einen Cross Compiler für ARM-Linux aufgesetzt / getestet.
Ich brauche das irgendwann und bin deshalb sehr interessiert...
-Michael
Ich brauche das irgendwann und bin deshalb sehr interessiert...
-Michael
- af0815
- Lazarusforum e. V.
- Beiträge: 7043
- 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 compile
Probiert schon, bin aber an der Version des arm (Openmoko) am Ende gescheitert.mschnell hat geschrieben:Anscheinend hat hier noch niemand einen Cross Compiler für ARM-Linux aufgesetzt / getestet.
Ich brauche das irgendwann und bin deshalb sehr interessiert...
-Michael
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
Marcovaldo
- Beiträge: 43
- Registriert: Mo 20. Okt 2008, 21:08
Re: Wer kann mir einen i386.linux auf arm.linux compiler bauen?
[/quote]af0815 hat geschrieben: Hast du eine Testumgebung unter Ubuntu die man verwenden kann (Emulator). Beschreibe bitte die arm-linux Umgebung/Toolchain etwas mehr.
Hallo af,
Danke mal für die rasche Antwort!
Leider gibt es keine virtuelle Testumgebung, nur Hardware(siehe unten)
Am Laptop habe ich Ubuntu 9.10 oder Debian Lenny zur Verfügung.
Als Target sind zwei Systeme (derzeit) geplant:
1) DIL PC von SSV (Atmel Arm AT91RM9200; ich lese gerade Thumb-Befehlssatz[ist das nicht ein KO -Kriterium :-0 ?)**
http://www.dilnetpc.com/dnp0069.htm" onclick="window.open(this.href);return false;
der dafür erhältliche arm-linux-gcc hat die Version 2.95.2
2) Ein Schienenmontierbares System, Auch Arm9
http://www.vscom.de/6802.htm#top" onclick="window.open(this.href);return false;
Auf diesem läuft ein Debian Etch (dort habe ich den nativen FPC auch schon am laufen, wohingegen
System #1 zu klein ist um den Compiler auch dort laufen zu lassen; Eine der Ideen ist es daher, auf dem Alekto für das kleinere
System zu kompilieren, ein crosscompiler wäre aber natürlich besser)
Für beide Systeme liesse sich die Hardware eventuell wo hin schicken(vorbeibringen, lese gerad NÖ...)
oder ich kann sie ins Netz hängen(um per Fernzugriff zu testen)
((sowas sollte kurzfristig(bis morgen) möglich sein))
Typische Anwendungen für beide sind Protokollkonverter
(zB Ethernet auf Seriell mit speziellen Protokollen auf beiden
Seiten...) - Also (vorerst) kein GUI, kein Xfree, nur serielle
und TCP/IP kommunikation.
**) Laut Datenblatt kann er aber beide OPcodes:
– ARM High-performance 32-bit Instruction Set
– Thumb High Code Density 16-bit Instruction Set
ausserdem hat er eine MMU
LG,
Marcovaldo
-
Marcovaldo
- Beiträge: 43
- Registriert: Mo 20. Okt 2008, 21:08
Re: cross compile
Der Arm-9 des Alekto(was der genau verbaut hat kann ich am Abend checken..) dürfte ja kompatibel sein, da der native (arm-linux) FPC läuft.af0815 hat geschrieben:Probiert schon, bin aber an der Version des arm (Openmoko) am Ende gescheitert.mschnell hat geschrieben:Anscheinend hat hier noch niemand einen Cross Compiler für ARM-Linux aufgesetzt / getestet.
Ich brauche das irgendwann und bin deshalb sehr interessiert...
-Michael
So Alektos liessen sich auch für Testzwecke aufstellen (kosten etwa 200-250 Euro).
Eine Frage in diesem Zusammenhang: Läuft ein gdb unter arm-linux schon ? (die installierte FPC version (ist aber nicht mehr taufrisch, da die letzen Tests schon etwa ein Jahr zurückliegen) hat die debug-menüs gesperrt.
Interessant wäre für mich auch ein Win32 auf WindowsCE (allerdings i386, nicht ARM) crosscompiler, da einige Industriesteuerungen sowas verwenden und
ich dort mit Delphi ausgesperrt bin.
Wenn sich jemand fände, hier Hand anzulegen würde ich gerne finanziell dazu beitragen(eventuell die Details per private mail absprechen).
LG,
Marcovaldo
-
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 compile
Mit einem cross compiler allein ist es leider nicht getan. Da wären noch binutils, libraries und fcl/lcl. Sonst wird nur ein "Hello World" funktionieren.
-
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: Wer kann mir einen i386.linux auf arm.linux compiler bauen?
Anscheinend nicht. Hier eine message von soeben aus der fpc-develop Mailing List:Marcovaldo hat geschrieben:1) DIL PC von SSV (Atmel Arm AT91RM9200; ich lese gerade Thumb-Befehlssatz[ist das nicht ein KO -Kriterium :-0 ?)**
Soweit ich mich erinnere, ist AT91RM9200 aber gar nicht Thumb-only (wäre er sonst ein ARM9 ?). Mit einem "nicht-Thumb"-Linux sollte also auch ein nicht-Thumb Lazarus-Programm laufen.fpc-develop hat geschrieben: 1)
stm32f103 is a thumb2 only device, and you cannot generate a rtl for both <=armv5 and thumb2. You need to modify the makefile to generate either a thumb2 rtl or a arm rtl. You can do that by removing the arm core units from CPU_UNITS and overriding the FPC_OPT to include -Cpcortexm3
2)
You don't set the instruction set. You have to override it if you compile for a specific chip, when you call the compiler, otherwise it'll simply default to armv5, no matter what the compiler(rtl) was built for
A short guide, which you probably already knew:
To include a new arm chip, you have to edit compiler/arm/cpuinfo.pas:
-Add an identifier in tcontrollertype
-Add a related name in controllertypestr
-Add a unit name string in controllerunitstr
-Create a unit in rtl/embedded/arm/ with startup code like the other files
-Create a linkerscript in compiler/systems/t_embed.pas which matches the memory map of the target device
-Michael
Zuletzt geändert von mschnell am Mo 19. Apr 2010, 17:00, insgesamt 2-mal geändert.
-
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: Wer kann mir einen i386.linux auf arm.linux compiler bauen?
Genau das habe ich auch vor. Da ich aber eine Toolbox zum Portieren von Delphi-Programm bauen muss, brauche ich eine Simulation für die GUI und für gewisse Delphi/Windows-features. Vor allem Threads, Timer und eine Event-Queue für den Main Thread in Delphi-Kompatibler Art. Eine "Remote-Gui" dafür habe ich auch in Planung. Es ist noch einiges zu tun ...Marcovaldo hat geschrieben:Typische Anwendungen für beide sind Protokollkonverter (zB Ethernet auf Seriell mit speziellen Protokollen auf beiden Seiten...) - Also (vorerst) kein GUI, kein Xfree, nur serielle und TCP/IP kommunikation.
-Michael
Zuletzt geändert von mschnell am Mo 19. Apr 2010, 17:01, insgesamt 1-mal geändert.
-
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 compile
Viel praktischer fände ich Cross-compiling mit remote-gdb (nur ein kleines "gdbhost"-Programm auf dem ARM über TCP/IP gekoppelt mit dem PC, auf dem Lazarus läuft). Das sollte eigentlich mit der neusten Lazarus-Version an's Laufen zu bekommen sein.Marcovaldo hat geschrieben:Eine Frage in diesem Zusammenhang: Läuft ein gdb unter arm-linux schon ? (die installierte FPC version (ist aber nicht mehr taufrisch, da die letzen Tests schon etwa ein Jahr zurückliegen) hat die debug-menüs gesperrt.
-Michael
-
Marcovaldo
- Beiträge: 43
- Registriert: Mo 20. Okt 2008, 21:08
Re: Wer kann mir einen i386.linux auf arm.linux compiler bauen?
Fein, das bestätigt meine Hoffnung, mit FPC dafür bauen zu können(So hab ich das mit dem dual Opcode auch interpretiert, wollte aber eine Bestätigung von
wissender Seite...)
Christian
wissender Seite...)
Christian
-
Marcovaldo
- Beiträge: 43
- Registriert: Mo 20. Okt 2008, 21:08
Re: cross compile
Sehe ich auch so:mschnell hat geschrieben: Viel praktischer fände ich Cross-compiling mit remote-gdb (nur ein kleines "gdbhost"-Programm auf dem ARM über TCP/IP gekoppelt mit dem PC, auf dem Lazarus läuft). Das sollte eigentlich mit der neusten Lazarus-Version an's Laufen zu bekommen sein.
-Michael
Remote Debug besser local Debug besser Leuchtdiode :-O
Betreffend Delphi nach Lazarus:
Da können wir uns eventuell ein wenig Arbeit teilen. Ähnliches steht bei mir (zwar mit geringerer Dringlichkeit) auch an(für Target WinCE/i386 wo ich
derzeit mit Delphi keine chance habe...
Jedenfalls gibt es etwa 15 .. 20 Applikationen (ohne GUI), die von BP7 (Dos) nach FPC gehoben werden wollen. Da muss ich mir auch Emulations-Units etc
bauen.
Ich werde mir die Targets nochmals heute Abend vorknüpfen und melde mich morgen wieder mit mehr Infos, bzw. ob und was ich eventuell
zum laufen brachte.
LG
Christian
-
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 compile
Momentan kreiert mein Widget-Type die Interna eines Form, das im normalen Form-Designer definiert wurde, in "Application.FormCreate" zu Laufzeit und ruft danach OnFormCreate auf.Marcovaldo hat geschrieben:Betreffend Delphi nach Lazarus:
Da können wir uns eventuell ein wenig Arbeit teilen. Ähnliches steht bei mir (zwar mit geringerer Dringlichkeit) auch an(für Target WinCE/i386 wo ich
derzeit mit Delphi keine chance habe...
In "Application.Run" ruft das Form dann auch "OnActivate" auf. Dafür habe ich momentan eine ganz rudimentäre Event-Queue eingebaut.
Später werde ich dann den LCL Event-Queue Sourcecode aus dem GTK-Interface (als Include-Datei) verwenden.
Momentan versuche ich. herauszubekommen, wie "Application.FormCreate" auf dem Form aus den gespeicherten Ressourcen einen Label kreiert.
Ich schicke Dir was zum Testen, sobald ich etwas weiter bin.
Gruß,
-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 compile
Mit MSEide auch, MSEide hat sogar ein eigenes ARM CPU Fenster:mschnell hat geschrieben:Das sollte eigentlich mit der neusten Lazarus-Version an's Laufen zu bekommen sein.
Ich benutze MSEide unter anderem zur Entwicklung von ATMEL AVR32 Programmen, allerdings in C. Debugging mittels gdbproxy, hier die notwendigen Einstellungen: