Freepascal-Thread

Diskussionen über Pascal-Programmierung (und Varianten davon)
Autor
Nachricht
Benutzeravatar
Chris_S
8 Bit
Beiträge: 346
Registriert: Mo Dez 14, 2009 17:53
Wohnort: Remptendorf
Kontaktdaten:

Re: Freepascal-Thread

#46 Beitrag von Chris_S » Mo Feb 14, 2011 18:17

Hi Leute,
sry aber ich blicke gerade nicht durch, seid ihr dabei einen FPC für Cannoo/WIZ oder für die Pandora aufzusetzen, vllt. kann ich ja in Sachen Pandora helfen, hab ja jetzt eine..
Schonmal richtig klasse das ihr euch die Arbeit macht, ich dachte trotz FPC sei Pascal tot^^ schön das es nicht so ist... MfG
"Wer die Freiheit aufgibt, um Sicherheit zu gewinnen, wird am Ende beides verlieren." Benjamin Franklin


going indie : www.roughnightsoftwares.de check it out!

Kaworu
6 Bit
Beiträge: 78
Registriert: Sa Okt 03, 2009 21:11
Wohnort: Duisburg

Re: Freepascal-Thread

#47 Beitrag von Kaworu » Mo Feb 14, 2011 18:26

@KidPaddle gemacht:

Code: Alles auswählen

XXX:/bin$ file busybox
busybox: setuid ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), stripped
XXX:/bin$ cd /media/data/sdltest01
XXX:/media/data/sdltest01$ file ./sdltest01
./sdltest01: ELF 32-bit LSB executeable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.0.0, stripped
@Dr.Damn Fist

Herzlich Willkommen :D
Freut mich dass nun noch einer im Bunde ist, der an FPC auf der Pandora interessiert ist ;)

KidPaddle
8 Bit
Beiträge: 265
Registriert: So Mai 14, 2006 12:18
Wohnort: Bayern

Re: Freepascal-Thread

#48 Beitrag von KidPaddle » Mo Feb 14, 2011 19:27

Scheint also identisch zu sein, tja, dann muss ich wo anders suchen.

Danke und Gruß
Thomas

xyta
9 Bit
Beiträge: 826
Registriert: Fr Aug 28, 2009 21:58

Re: Freepascal-Thread

#49 Beitrag von xyta » Di Feb 15, 2011 00:35

Also nach dieser Seite:

http://andre.stechert.org/urwhatu/2005/ ... xso2_.html

Ist der ldd-Fehler 139 eine Schutzverletzung. (SIGSEGV)

http://en.wikipedia.org/wiki/SIGSEGV
http://de.wikipedia.org/wiki/Schutzverletzung

ich vermute, dass diese beim Zugriffsversuch auf die SDL-Bibliothek auftritt. Statt den Code der Bibliothek wird vermutlich eine Speicherstelle angesprungen, wo das Programm nicht hin darf...

Das Hallo-Welt-Programm linkt ja keine Bibliotheken, und es funktioniert offenbar. :-???

Also das Problem tritt sowohl beim Canoo als auch auf der p&|a auf?

KidPaddle
8 Bit
Beiträge: 265
Registriert: So Mai 14, 2006 12:18
Wohnort: Bayern

Re: Freepascal-Thread

#50 Beitrag von KidPaddle » Di Feb 15, 2011 12:24

Ja, es tritt bei beiden auf. Der Befehl ldd sollte nur die einzubindenden Bibliotheken auflisten, das Programm sollte dabei nicht gestartet werden, soweit mir bekannt ist. "ldd" kann nur auf dem Caanoo nicht so einfach installiert werden, daher der Test auf der Pandora.

Auch das "HalloWelt!" verwendet Bibliotheken, z. B. die libc.so.XXXX, da sonst keine Ausgabe auf dem Terminal möglich wäre.

Ich versuche jetzt mal die Bibliothek dynamisch zu binden um den die prinzipielle Vorgehensweise zu testen.

Gruß
Thomas

xyta
9 Bit
Beiträge: 826
Registriert: Fr Aug 28, 2009 21:58

Re: Freepascal-Thread

#51 Beitrag von xyta » Di Feb 15, 2011 18:15

Bei Hallo Welt müsste die Textausgabe ja über die System-Unit/RTL laufen. Entsprechend dem Pascal-Konzept ist diese ja schon vorkompiliert. D.h. System/RTL enthält erfolgreiche vorbereitete Linkings, während es bei eigenen Programmen scheitert. :-???

Was du auch noch testen könntest wäre das Linken anderer Bibliotheken...

KidPaddle
8 Bit
Beiträge: 265
Registriert: So Mai 14, 2006 12:18
Wohnort: Bayern

Re: Freepascal-Thread

#52 Beitrag von KidPaddle » Di Feb 15, 2011 18:42

Das stimmt, es geht über die RTL, aber dort wird unter Unix die Unit libc.pp eingebunden, welche aus der Bibliothek libc.so etliche Funktionen importiert. Die "libc" ist eine der zentralen Bibliotheken unter Linux, ohne diese geht fast gar nichts.

Wollte dynamisch die Funktionen einbinden, leider muss ich mich jetzt um zwei nicht auffindbare Funktionen "_fini" und "_init" kümmern.

Gruß
Thomas

-- Sa Feb 19, 2011 12:38 --

So, etwas weiter gekommen bin ich in den letzten Tagen. Es wurde unter Caanoo und Pandora die falsche Bibliothek zum laden von dynamischen Bibliotheken verwendet, "ld-linux.so.2" anstelle von "ld-linux.so.3". Ursache war das fehlerhaften Setzen einer Konstante bei der Erstellung des Crosscompilers.

Nun kommt die Meldung über eine nicht gefundene Dateien nicht mehr, jedoch wird eine "Segment - Fault" Exception beim starten des Testprogrammes erzeugt. Leider habe ich keine passenden dbg für den caanoo und den gdbserver kann ich wegen mangelnder Unterstützung des WLAN USB - Stick nicht einsetzen. Wird also noch etwas dauern, bis ich das hin bekommen werden.

Ich habe das Testprogramm angehängt, kann jemand das auf der Pandora bitte probieren und falls jemand mit dem dbg umgehen kann, testen was dieser beim ausführen des Programmes meldet.

Gruß
Thomas

-- Sa Feb 19, 2011 13:07 --

Hab noch meinen N800 ausgegraben und kann den Fehler dort nachvollziehen. Jetzt nur noch gdb für den finden und dann kann das testen weiter gehen.

Thomas
Dateianhänge
SDLTest01.zip
(61.83 KiB) 74-mal heruntergeladen

Kaworu
6 Bit
Beiträge: 78
Registriert: Sa Okt 03, 2009 21:11
Wohnort: Duisburg

Re: Freepascal-Thread

#53 Beitrag von Kaworu » Di Feb 22, 2011 11:48

Oh mein Gott.. vor 3 Tagen hätte ich das schon testen können O_o
Und ich warte auf eine eMail Benachrichtung -_-

Ich hatte versucht durch "sudo opkg install dbg" "dbg" zu installieren, falls es überhaupt vorhanden ist ^^
Klappte aber nicht mit der Quittung "Cannot install package dbg". Ausserdem kenne ich mich ohnehin nicht
damit aus. Kann diesbezüglich nur mit Anleitung helfen.

Anonsten kann ich die Ausgabe "Segmentation fault" auf Seiten der Pandora auch bestätigen.
Schön dass der alte Fehler behoben wurde :)

Übrigens kommt bei "ldd ./sdltest01" die Ausgabe "not a dynamic executable"
Ich nehme aber an dass das auch so gewollt ist..


Wenn ich sonst noch irgendwas testen kann, bin ich bereit ;)
vielleicht wäre es was, einen VNC-Server auf der Pandora laufen zu lassen und dich machen lassen ^^

KidPaddle
8 Bit
Beiträge: 265
Registriert: So Mai 14, 2006 12:18
Wohnort: Bayern

Re: Freepascal-Thread

#54 Beitrag von KidPaddle » Sa Mär 12, 2011 11:23

Es ist geschafft!!!!

Ich habe erfolgreich ein 2.51 Freepascal - Compiler für die Erstellung von Programm für den Caanoo und N800(!) erstellt. Wenn jemand noch den Test für die Pandora machen könnte, wäre das klasse. Ihr müsst die Dateien sdltest01 und sdltest02 starten. Auf dem Caanoo könnt Ihr die Programme direkt über den Explorer aufrufen, entsprechende INI-Dateien sind mit im Archiv enthalten.

Beide Dateien machen das gleiche, anzeigen eines Bildes für ca. 2,5 Sekunden und automatisches Beenden. Nichts besonderes, aber damit konnte ich die Einbindung von SDL testen. Nur der Art des Einbindens unterscheiden sich die Programme, sdltest01 macht eine späte Bindung, d. h. ich lade die benötigten Funktionen dynamisch zur Laufzeit, sdltest02 macht eine frühe Bindung und damit übernimmt der Linker die Arbeit.

Um Feedback wird gebeten :)

Gruß
Thomas

Edit:

Sogar auf dem Palm Pre mit WebOS 1.4.5 lief das Programm mit einer kleinen Anpassung, Doublebuffer wird nicht unterstützt. Cool.
Dateianhänge
fpceabi.zip
(151.94 KiB) 78-mal heruntergeladen

Kaworu
6 Bit
Beiträge: 78
Registriert: Sa Okt 03, 2009 21:11
Wohnort: Duisburg

Re: Freepascal-Thread

#55 Beitrag von Kaworu » Sa Mär 12, 2011 15:08

WOOOOOW XD

GZ, du hast es tatsächlich geschafft!!

Es laufen auf der Pandora beide Versionen des SDLtests!
Es werden in beiden Fällen ohne erkenntlichen Unterschied jeweils das Bild anzeigt und
auf der Konsole "Starting" und "closing" ausgegeben ohne irgendwelche Fehlermeldungen :)

Du bist mein Held^^

Jetzt bin ich aber sehr gespannt wie du das geschafft hast..
Ich sehe dass du auf den aktuellsten Sourcecode umgestiegen bist, der Änderung bezüglich der EABI Unterstützung aufweist.
Hat das vielleicht sogar laut Anleitung zum Kompilieren ohne weitere Probleme funktioniert?

Meine Güte, haben wir ein Glück dass du dich für den FPC interessierst.. ohne dich würde es bestimmt noch mindestens 2 Monate TM dauern :)
Aufjedemfall schonmal ein großes Dankeschön von mir!

Achja, noch etwas..... her damit ;p

KidPaddle
8 Bit
Beiträge: 265
Registriert: So Mai 14, 2006 12:18
Wohnort: Bayern

Re: Freepascal-Thread

#56 Beitrag von KidPaddle » So Mär 13, 2011 06:44

Sehr gut, das war die erhoffte Antwort, vielen Dank für die Rückmeldung. Dann wird der Compiler auch auf dem Beagleboard und IGEPv2 laufen, letzteres habe ich hier noch herum liegen.

Ich habe ein erstes Baller - Spiel mit Sound und TTF - Fonts probeweise kompiliert, ein eigenes Beispiel von mir, und das lief sauber auf dem Caanoo. Zwar stimmen noch die Bildabmessungen nicht, war auf 640x480 ausgelegt, aber es funktioniert. Enthält auch ein "Mini" - Framework für SDL.

Die Vorgehensweise ist im nach hinein recht einfach. Schwierigkeiten machte nicht der FPC - Kompiler, nachdem man -dFPC_ARM_EABI und -dFPC_ARMEL beim erstellen des Kompiliers mit auf den Weg gibt, sondern der externe Linker, der aufgerufen wird, wenn dann das eigene Programm kompiliert wird. Der wollte partout nicht den korrekten Linux - Linker setzen und das herauszubekommen hat recht lange gedauert. Zum Glück konnte ich mittels cygwin das Programm "readelf" und "file" unter Windows zum laufen bekommen, was die Kontrolle des Ergebnisses sehr vereinfacht hat.

Bei den GPH SDK für Caanoo ist auch ein Debugger für den Caanoo vorhanden, Einzelschritt durch das Programm auf einer seriellen Console, yeah, alte Zeiten kommen zurück :).

Ich werde versuchen eine fertige Umgebung bereit zustellen. Dazu wird ein Teil des Caanoo GPH SDK verwendet, die erstellten Bibliotheken für Win32 und arm-linux, und 2 oder 3 Beispiele. Es soll möglichst aus dem Stand laufen, ohne das etwas eingerichtet werden muss und auch gleich alles benötigte für die ersten Schritte beinhalten. Sollte ich bis morgen hin bekommen, wenn nichts dazwischen kommt.

Tja, die Pandora kann kommen :)

Thomas

Der nächste Schritt heißt: Android, wir kommen ....

-- Sa Mär 12, 2011 21:59 --

So, hab da mal was gebastelt und die Installation ist recht einfach. Datei entpacken und den Anweisungen in der readme.txt folgen. Jeder sollte sich auf jeden Fall das SDK von GPH besorgen, damit er die eventuell benötigten Bibliotheken einfach in das ToolChains\GPH_Caanoo\Libs - Verzeichnis packen kann.

http://www.seban.de/download/crosscompi ... C4ARMv2.7z

Unterstützt werden in der DOS - Bach, nach dem Aufruf von setenv.bat:
Windows: Aufruf mit make_win.bat projekt.dpr
GP2X: Aufruf mit make_gp2x.bat projekt.dpr
GP2XWIZ: Aufruf mit make_wiz.bat projekt.dpr
Caanoo/Pandora: Aufruf mit make_armel.bat projekt.dpr

Caanoo/Pandora/Palm Pre und N800 werden immer mit make_armel kompiliert, da es bei allen Geräten um den gleichen Crosscompiler handelt. Eigentlich könnten auch N8X0 und N9X0, gehen, da die gleiche Linux-Architektur haben, bin mir aber da nicht sicher.

Werde das noch ausbauen und eine Oberfläche schrieben, mit der man Kompilieren und Installationspakete erstellen kann, aber das wird nichts in den nächsten Wochen.

Gruß
Thomas

-- So Mär 13, 2011 13:30 --

Auf dem IGEPv2 - Board läuft auch der Compiler, mein Testprogramm wurde auf meinem Fernseher angezeigt, wird cool ein 320x240 Spiel auf ne 37er Mattscheibe anzuschauen, gott was für ein Pixelsalat. :)

Thomas
Zuletzt geändert von KidPaddle am Do Mai 26, 2011 16:05, insgesamt 1-mal geändert.

Kaworu
6 Bit
Beiträge: 78
Registriert: Sa Okt 03, 2009 21:11
Wohnort: Duisburg

Re: Freepascal-Thread

#57 Beitrag von Kaworu » So Mär 13, 2011 16:02

Hallo Thomas..

Nur ne kleine Zwischenmeldung:

War bis vor kurzem nicht zu Hause und hab mir bereits die 2. Version deines Paketes runtergeladen.
Wollt nur bescheid geben warum ich mich dazu noch nicht geäussert habe und danke dir nochmals
für deine Mühe! :)

Eine Frage habe ich aber noch.. wäre es dir mit deinem Know-How auch möglich den FPC
direkt auf der Pandora lauffähig zu bekommen? also im Grunde ja nur den Compiler, da
der Rest bereits funktioniert - oder kommen da wieder andere Schwierigkeiten ins Spiel?

Ich melde mich wieder sobald ich deine Werke bestaunt habe ;)


Mit freundlichen und dankbaren Grüßen: Arthur

KidPaddle
8 Bit
Beiträge: 265
Registriert: So Mai 14, 2006 12:18
Wohnort: Bayern

Re: Freepascal-Thread

#58 Beitrag von KidPaddle » So Mär 13, 2011 18:41

Kaworu hat geschrieben:Eine Frage habe ich aber noch.. wäre es dir mit deinem Know-How auch möglich den FPC direkt auf der Pandora lauffähig zu bekommen? also im Grunde ja nur den Compiler, da der Rest bereits funktioniert - oder kommen da wieder andere Schwierigkeiten ins Spiel?
Laut den Beschreibungen im Internet sollte es machbar sein, aber da ich es noch nie getan habe, wird es wohl Zeit das mal zu machen. Ob Pandora oder mein IGEPv2 sollte keinen Unterschied machen.

Gruß
Thomas

Kaworu
6 Bit
Beiträge: 78
Registriert: Sa Okt 03, 2009 21:11
Wohnort: Duisburg

Re: Freepascal-Thread

#59 Beitrag von Kaworu » Mo Mär 14, 2011 03:02

Hallo nochmal..

Hab mir jetzt dein Paket genauer angeschaut und muss sagen
dass alles von vornherein bestens funktioniert hat!

Hab auch ne Art HelloWorld geschrieben und dein SDLtest etwas abgeändert
(nur ein Raumschiff des Bildes wird vom linken zum rechten Bildschirmrand hin und her bewegt)

Sogar das gles_tutorial von carli lies sich anstandslos für die Pandora kompilieren!
Zwar gibts beim Ausführen des Tutorials noch einen Fehler, aber dieser wird sicher nichts mit dem Kompiler zu tun haben :D
Genauere Infos dazu poste ich gleich im entsprechenden Thread ^^

Super.. es funktioniert auf der Pandora tatsächlich genauso wie das Windows-kompilat :juhu:

KidPaddle
8 Bit
Beiträge: 265
Registriert: So Mai 14, 2006 12:18
Wohnort: Bayern

Re: Freepascal-Thread

#60 Beitrag von KidPaddle » Mo Mär 14, 2011 07:30

Danke für die Rückmeldung. Werde das Teil weiter ausbauen und Support für iPhone und Windows CE hinzufügen. Solange SDL in dem Zielsystem vorhanden ist, sollte es keine Probleme geben.

Kannst Du mir die OpenGL ES Header und das Testprogramm bereit stellen? Zum Testen, ob es auch auf den anderen Maschinen läuft. Ich würde es gerne in die "Suite" integrieren.

Gruß
Thomas

Antworten

Zurück zu „Pascal“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast