Hallo Marcov,
Ich habe cross ARM FPC und Lazarus erfolgreich gebaut* :
- VM-ware Ubuntu 9.10 image von
http://chrysaor.info/?page=images&filter=Ubuntu" onclick="window.open(this.href);return false;
(desktop Version, aktualisiert)
- Zusätzlicher Benutzer hinzugefügt (mit dem Default-benutzer 'user' lief das Skript nicht durch, vielleicht irgend ein String-Ersetzungsproblem)
- Kjow's Skript auf
http://wiki.lazarus.freepascal.org/Setu ... le_For_ARM" onclick="window.open(this.href);return false;
- die Aufrufparameter -XParm-linux- hinzugefügt (Dein Hinweis)
=> Damit sollte EABI-5 out of the box passen
1) Ich bin noch immer im Rätseln, was für einen Code ich auf meinen Plattformen wirklich brauche - und melde mich hierzu wieder.
Auf dem ALEKTO habe ich unter Debian programme mit dem nativen FPC 2.2.2 erzeugen können, die laufen:
readelf of output
ELF Header:
Magic: 7f 45 4c 46 01 01 01 61 00 00 00 00 00 00 00 00
Class: ELF32
Data: 2's complement, little endian
Version: 1 (current)
OS/ABI: ARM
ABI Version: 0
Type: EXEC (Executable file)
Machine: ARM
Version: 0x1
Flags: 0x2, has entry point, GNU EABI
=> fpc.cfg auf dieser Installation (Architektur 4DTMI!!)
-TLinux
-Mfpc free pascal dialect (default)
-Sg allow LABEL and GOTO
-Si support C++ styled INLINE
-Os generate smaller code
-CpARMV3 Select instruction set (ARMV3!!!)
-OpARMV3 set target cpu for optimizing (ARMV3!!!)
-g-
-p-
-b-
Irgendwo las ich mal dass die 4T auch V3 opcode ausführen kann, allerdings weniger effizient.
Auf dem DNP-9200 habe ich mir mit readelf die busybox angesehen:
ELF Header:
Magic: 7f 45 4c 46 01 01 01 61 00 00 00 00 00 00 00 00
Class: ELF32
Data: 2's complement, little endian
Version: 1 (current)
OS/ABI: ARM
ABI Version: 0
Type: EXEC (Executable file)
Machine: ARM
Version: 0x1
Flags: 0x2, has entry point, GNU EABI
Das schaut auch genauso aus wie das native FPC 2.2.2 Kompilat.
ABI-Version 0 , entspricht wahrscheinlich OABI (Old ABI ) in der
Debian Nomenklatur. Das ganze entspricht, wenn ich es richtig verstehe der
(in kürze aufgekündigten) 'alten' Debian ARM distribution, während die
neue EABI basierende Version 'ARMEL' eventuell(???) hierzu nicht kompatibel ist.
(Little Endian ist es aber auch)
Ich werde jetzt versuchen:
- Ob ich rausfinden kann ob die entprechenden Kernel/Distris V4 UND thumb code unterstützen
(ARM internetworking). Und ob die obigen Beispiele jetzt V4 oder Thumb(1) code sind.
- An der EABI/arch/cpu Schraube zu drehen, um ein ähnliches Kompilat zu erhalten.
2) Ich habe jetzt auch noch ein PAC-5010 als Plattform, und kann in Kürze auch auf diesem Tests durchführen
http://www.artila.com/dshtml/PAC-5010.html" onclick="window.open(this.href);return false;
LG,
Marcovaldo
*Dank Kjow selbst für solche Greenhorns wie mich möglich...