Edit: Damit meine ich, ein ARM Kernel mit den verschiedensten Baugruppen herum auf einem Die. Je nach mit Floatingpoint Unit, Baugruppe, Speicherausbau, I/Os etc. heisst das Ding anders und bei jeden Hersteller etwas anders.
fpc-kompilieren: make install
- af0815
- Lazarusforum e. V.
- Beiträge: 6983
- 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: fpc-kompilieren: make install
Der ARM ist nur ein Kernel, der im Verbund erzeugt wird - dadurch wird die Sache recht unübersichtlich 
Edit: Damit meine ich, ein ARM Kernel mit den verschiedensten Baugruppen herum auf einem Die. Je nach mit Floatingpoint Unit, Baugruppe, Speicherausbau, I/Os etc. heisst das Ding anders und bei jeden Hersteller etwas anders.
Edit: Damit meine ich, ein ARM Kernel mit den verschiedensten Baugruppen herum auf einem Die. Je nach mit Floatingpoint Unit, Baugruppe, Speicherausbau, I/Os etc. heisst das Ding anders und bei jeden Hersteller etwas anders.
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: fpc-kompilieren: make install
Bin eben über die Build-FAQ gestolpert: http://www.stack.nl/~marcov/buildfaq.pdf" onclick="window.open(this.href);return false;
- af0815
- Lazarusforum e. V.
- Beiträge: 6983
- 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: fpc-kompilieren: make install
Hab ich schon im 2. Post in diesen Thread angeregt. Ist immer eine gute Sache, die zu lesen. Zusätzlich kann ich das Freepascalbuch empfehlen. Leider wird dort auf Crosscompiling nicht wirklich eingegangen, dafür aber viele andere wichtige Informationen gegeben. Wa sich zusätzlich mache, das ich probiere das makefile selbst zu verstehen.Scotty hat geschrieben:Bin eben über die Build-FAQ gestolpert: http://www.stack.nl/~marcov/buildfaq.pdf" onclick="window.open(this.href);return false;
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
Socke
- Lazarusforum e. V.
- Beiträge: 3178
- Registriert: Di 22. Jul 2008, 19:27
- OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
- CPU-Target: 32bit x86 armhf
- Wohnort: Köln
- Kontaktdaten:
fpc und ARM920T
Nach einiger Zeit, hab ich mich mal wieder dran gesetzt.
Ergebnis: mein Centrality ARM920T scheint mit den Samsung ARM920T Modellen kompatibel (identisch?) zu sein. Von Samsung gibt es die Modelle S3C2442 und S3C2440, wobei ersterer auch im Neo FreeRunner (OpenMoko) verbaut ist. Wikipedia (ich meine, der Eintrag wäre vor einigen Wochen noch nicht da gewesen) sagt dazu:
Ich habe versucht ein einfaches grafisches Programm (mit Button und ShowMessage) zu erstellen. Heraus kommt nur ein "Application MN6.exe has performed an illegal operation and will be shut down... Program: MN6.exe, Exception: 0xC00000FD, Address: 8CE81F24". Die Exception soll angeblich ein Stack Overflow sein.
Die Compiler-Einstellungen sind: Ich benutze sie sowohl als CROSSOPT für den Compiler als auch für LCL und mein Test-Programm.
Ist das vom FPC genutzte Instruction Set "armv4" mit "armv4t" kompatibel? Habt ihr noch irgendwelche Ideen? af0815, laufen deine Programme schon auf dem FreeRunner und welche Parameter verwendest du?
Ergebnis: mein Centrality ARM920T scheint mit den Samsung ARM920T Modellen kompatibel (identisch?) zu sein. Von Samsung gibt es die Modelle S3C2442 und S3C2440, wobei ersterer auch im Neo FreeRunner (OpenMoko) verbaut ist. Wikipedia (ich meine, der Eintrag wäre vor einigen Wochen noch nicht da gewesen) sagt dazu:
Code: Alles auswählen
Family: ARM9TDMI
Architecture Version: ARMv4T
Core: ARM920TDie Compiler-Einstellungen sind:
Code: Alles auswählen
-CfSOFT -dFPC_ARMEL -Cparmv4Ist das vom FPC genutzte Instruction Set "armv4" mit "armv4t" kompatibel? Habt ihr noch irgendwelche Ideen? af0815, laufen deine Programme schon auf dem FreeRunner und welche Parameter verwendest du?
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
- af0815
- Lazarusforum e. V.
- Beiträge: 6983
- 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: fpc-kompilieren: make install
Ich habe mir meinen FreeRunner (derzeit) abgestochen. Beim installieren von Debian ist was schiefgelaufen 
Die Optionen schauen gleich aus, mit meinen letzten Versuchen, dort bin ich dann in den Tiefen des abi/eabi und deren Versionen hängen geblieben.
Die Optionen schauen gleich aus, mit meinen letzten Versuchen, dort bin ich dann in den Tiefen des abi/eabi und deren Versionen hängen geblieben.
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: fpc-kompilieren: make install
Ich würde vergleichen, was file <program> bzw. readelf <program> des eigenen Programms im Vergleich zu installierten wie /usr/bin/as ausgeben. Bei readelf kann man mit dem Schalter -a Zusatzinformationen bekommen. Bei mir steht dort u.a.
Code: Alles auswählen
ELF Header:
Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00
Class: ELF32
Data: 2's complement, little endian
Version: 1 (current)
OS/ABI: UNIX - System V
ABI Version: 0
Type: EXEC (Executable file)
Machine: ARM
Version: 0x1
...
File Attributes
Tag_CPU_name: "ARM10TDMI"
Tag_CPU_arch: v5TE
Tag_ARM_ISA_use: Yes
Tag_ABI_PCS_wchar_t: 4
Tag_ABI_FP_denormal: Needed
Tag_ABI_FP_exceptions: Needed
Tag_ABI_FP_number_model: IEEE 754
Tag_ABI_align8_needed: Yes
Tag_ABI_align8_preserved: Yes, except leaf SP
Tag_ABI_enum_size: int-
Marcovaldo
- Beiträge: 43
- Registriert: Mo 20. Okt 2008, 21:08
Re: fpc-kompilieren: make install
Scotty hat geschrieben:Ich würde vergleichen, was file <program> bzw. readelf <program> des eigenen Programms im Vergleich zu installierten wie /usr/bin/as ausgeben. Bei readelf kann man mit dem Schalter -a Zusatzinformationen bekommen. Bei mir steht dort u.a.Code: Alles auswählen
Hallo alle! Hab endlich ein wenig(noch zuwenig) Zeit gefunden und mir basierend auf den Skripten von Kjow (das Konvertieren aus dem RPM lief bei mir schief, habe statt dessen inoffizielle .debs installiert) einen Ubuntu nach ARM-LINUX Crosscompiler zu bauen. Das damit (cross-) kompilierte 'Hello ARM' liefert einen segmentation fault.... Ich habe jetzt 1) einen ARM Linux native compiler (bei dem zumindest die Textbeispiele rennen) 2) Den oben beschriebenen (FPC 2.5.1 basierenden) crosscompiler. readelf -a liefert bei mir unter anderem(nur Unterschiede): NATIVE ARM-LINUX FPC CROSS-FPC SCOTTY's Beispiel läuft segmentation fault OS/ABI: ARM UNIX - System V UNIX - System V Machine: ARM ARM ARM Tag_CPU_name: Eintrag fehlt ?? Eintrag fehlt ??? "ARM10TDMI" Tag_CPU_arch: Eintrag fehlt ?? v5TE v5TE Tag_ARM_ISA_use: Eintrag fehlt ?? Yes Yes Tag_THUMB_ISA_use " Thumb-1 Tag_ABI_PCS_wchar_t: " 4 Tag_ABI_FP_denormal: " Needed Tag_ABI_FP_exceptions: " Needed Tag_ABI_FP_number_model: " IEEE 754 Tag_ABI_align8_needed: " Yes Tag_ABI_align8_preserved: " Yes, except leaf SP Tag_ABI_enum_size: " int
Warum fehlen ein Teil der Tags? Wo sind die zu konfigurieren?
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: fpc-kompilieren: make install
Die Angaben hängen natürlich von der Hardware ab. Und selbst wenn du auch ein Sheeva-Plug hast, könnten die verbauten Komponenten bei dir aktueller sein und andere Werte liefern. Es war eher eine Idee, wie man Hinweise auf die verbaute Hardware bekommen kann. Ich habe außerdem empfohlen, eines der zum OS des ARM-Gerätes gehörenden Executables (z.B. /usr/bin/as, das sollte überall zu finden sein) mit dem eigenen Programm zu vergleichen.
-
Socke
- Lazarusforum e. V.
- Beiträge: 3178
- Registriert: Di 22. Jul 2008, 19:27
- OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
- CPU-Target: 32bit x86 armhf
- Wohnort: Köln
- Kontaktdaten:
Re: fpc-kompilieren: make install
Schade. Mit dem Debug-Board kannst du den doch wieder neu flashen?af0815 hat geschrieben:Ich habe mir meinen FreeRunner (derzeit) abgestochen. Beim installieren von Debian ist was schiefgelaufen
Die Optionen schauen gleich aus, mit meinen letzten Versuchen, dort bin ich dann in den Tiefen des abi/eabi und deren Versionen hängen geblieben.
Scotty: Gute Idee. file liefert leider nur die Information, dass bei mir ein Win32-PE-Image im Einsatz ist
Code: Alles auswählen
FPC-Programm
Machine: 0x01C0 -> IMAGE_FILE_MACHINE_ARM -> ARM little endian
Linker Version: 0x2802 -> 2.40
Operating System Version: 4.0
Image Version: 1.0
Subsystem Version: 3.0
Win32 Version Value: Reserved
Subsystem: 0x0009 -> WinCE GUI
Navi-Software
Machine: 0x01C2 -> IMAGE_FILE_MACHINE_THUMB -> Thumb
Linker Version: 0x1806 -> 6.24
Operating System Version: 4.0
Image Version: 0.0
Subsystem Version: 4.20
Win32 Version Value: Reserved
Subsystem: 0x0009 -> WinCE GUIMfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
-
Socke
- Lazarusforum e. V.
- Beiträge: 3178
- Registriert: Di 22. Jul 2008, 19:27
- OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
- CPU-Target: 32bit x86 armhf
- Wohnort: Köln
- Kontaktdaten:
Re: fpc-kompilieren: make install
Nachtrag zu den Instruction Sets:
Die ARM920T-Architektur scheint ein armv4-Kern mit Thumb-Erweiterung zu sein. Das heißt: normaler armv4-Code (32 bit) kann ganz normal ausgeführt werden. Das Thumb Instruction Set ist eine Zusammenfassung von einigen 32bit-Befehlen, die auf 16-Opcode komprimiert sind. Sprich ein 16 bit-Programm wird intern als 32 bit-Programm ausgeführt. Quelle: http://www.arm.com/products/processors/ ... tab=Thumb+
Die ARM920T-Architektur scheint ein armv4-Kern mit Thumb-Erweiterung zu sein. Das heißt: normaler armv4-Code (32 bit) kann ganz normal ausgeführt werden. Das Thumb Instruction Set ist eine Zusammenfassung von einigen 32bit-Befehlen, die auf 16-Opcode komprimiert sind. Sprich ein 16 bit-Programm wird intern als 32 bit-Programm ausgeführt. Quelle: http://www.arm.com/products/processors/ ... tab=Thumb+
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
- af0815
- Lazarusforum e. V.
- Beiträge: 6983
- 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: fpc-kompilieren: make install
Lazarus/FPC können nicht Thumb kompilieren, sondern nur arm. Quelle: Freepascal 2 bzw. Lazarus Buch.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
Socke
- Lazarusforum e. V.
- Beiträge: 3178
- Registriert: Di 22. Jul 2008, 19:27
- OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
- CPU-Target: 32bit x86 armhf
- Wohnort: Köln
- Kontaktdaten:
Re: fpc-kompilieren: make install
Thumb ist ja mehr oder weniger nur ein 16bit-Instructionset, das in Hardware auf 32bit ausgeführt wird. Trotzdem sollte laut der genannten Beschreibung auch normaler ARM-Code ausgeführt werden können.af0815 hat geschrieben:Lazarus/FPC können nicht Thumb kompilieren, sondern nur arm. Quelle: Freepascal 2 bzw. Lazarus Buch.
Jemand hat aber wohl schon ein FPC-Programm auf dem Neo FreeRunner zum Laufen gebracht: http://bugs.freepascal.org/view.php?id=14100
Ich habe mal ein kleines Testtextprogramm geschrieben (es soll nur eine Datei schreiben) und mit diesen Einstellungen getestet: WinCE lässt nach einiger Zeit ein Fehler-Pling ertönen und reagiert nur noch auf den Reset-Knopf
Edit: Das ist mein Compiler-make-Aufruf:
Code: Alles auswählen
make all crossinstall OS_TARGET=wince CPU_TARGET=arm INSTALL_PREFIX=/opt/fpc BINUTILSPREFIX=arm-wince-pe- FPC=/usr/lib/fpc/2.4.0/ppc386 CROSSOPT='-CfSOFT -CaEABI -darm -dFPC_ARMEL -gl -O- -dFPC_ABI_EABI -CpARMV4'MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
-
marcov
- Beiträge: 1104
- Registriert: Di 5. Aug 2008, 09:37
- OS, Lazarus, FPC: Windows ,Linux,FreeBSD,Dos (L trunk FPC trunk)
- CPU-Target: 32/64,PPC(+64), ARM
- Wohnort: Eindhoven (Niederlande)
Re: fpc-kompilieren: make install
Das ist 2.4.0, Altaf0815 hat geschrieben:Lazarus/FPC können nicht Thumb kompilieren, sondern nur arm. Quelle: Freepascal 2 bzw. Lazarus Buch.
Auf 2009-10-04 11:03:4 (r13801) ist eine Arm-thumb Branche eingemerged. Also es konnte das 2.5.1 es schon unterstützt. Ob es genügt kann nur testen ausweisen.
Re: fpc-kompilieren: make install
nein, braucht man nicht testenmarcov hat geschrieben:Das ist 2.4.0, Altaf0815 hat geschrieben:Lazarus/FPC können nicht Thumb kompilieren, sondern nur arm. Quelle: Freepascal 2 bzw. Lazarus Buch.
Auf 2009-10-04 11:03:4 (r13801) ist eine Arm-thumb Branche eingemerged. Also es konnte das 2.5.1 es schon unterstützt. Ob es genügt kann nur testen ausweisen.
fpc kann Thumb-2, das läuft nicht auf den hier erwähnten ARM-cores (ARM920T o. ä.). Diese verwenden Thumb-1.
Gruß, Bernd.
-
Socke
- Lazarusforum e. V.
- Beiträge: 3178
- Registriert: Di 22. Jul 2008, 19:27
- OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
- CPU-Target: 32bit x86 armhf
- Wohnort: Köln
- Kontaktdaten:
Re: fpc-kompilieren: make install
Ich benutze lieber hoffnungslos veraltete Software, die stabil läuft als welche die immer abstürzt. Wenn ich aber neuere Software brauche, damit es überhaupt funktioniert, wäre das eine Option, wenn nichtmarcov hat geschrieben:Das ist 2.4.0, Alt
Auf 2009-10-04 11:03:4 (r13801) ist eine Arm-thumb Branche eingemerged. Also es konnte das 2.5.1 es schon unterstützt. Ob es genügt kann nur testen ausweisen.
Ich hatte gerade wieder Hoffnung bekommen, das hier doch noch irgendwann zum Laufen zu bringen... vielleicht ist das auch nur ein subtiler Hinweis des Schicksals, dass ich doch C oder C++ lernen soll_Bernd hat geschrieben:nein, braucht man nicht testen
fpc kann Thumb-2, das läuft nicht auf den hier erwähnten ARM-cores (ARM920T o. ä.). Diese verwenden Thumb-1.
Gruß, Bernd.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein