FPC fit für PIC & AVR

Für alles, was in den übrigen Lazarusthemen keinen Platz, aber mit Lazarus zutun hat.
Maik81ftl
Beiträge: 619
Registriert: Mi 9. Mär 2011, 16:34
OS, Lazarus, FPC: Ubuntu10.04 LTS (L 0.9.31.0 FPC 2.4.4)
CPU-Target: 64Bit
Wohnort: seit 01.06.2011 in Wahlstedt

FPC fit für PIC & AVR

Beitrag von Maik81ftl »

Moin zusammen,

o.g. Thema läst wohl schon erahnen, was ich vorhabe und suche dafür noch freiwillige, welche sich daran mit beteiligen wollen. Mein Ziel ist es sämtliche µC in Lazarus zu Programmieren.

Fragen, Anregungen sowie weitere punkte könnt Ihr mir gerne an meinem Berufacc (Maik81SE) schicken oder via mail (mg@to-labsystems.de) zu schicken.

was über diesen Acc rein kommt, landet auf jeden in meinem Berufs acc. :D

Hoffe auf Positive Ressonanz eurerseits und jeder, der sich mit µC auskennt ist willkommen. auch die, die damit anfangen wollen.
Ubuntu 10.04 LTS ist meine Heimat. Lazarus ist meine Sprache :D und der Kreis Segeberg meine LIEBE :D

MmVisual
Beiträge: 1445
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winuxarm (L 3.0 FPC 3.2)
CPU-Target: 32/64Bit

Re: FPC fit für PIC & AVR

Beitrag von MmVisual »

Mich würde es auch reizen den STM32 (Cortex-M3) mit dem FPC zu proggen. Aber wenn ich erst mal anfangen muss die 600KB Header-Datei mit allen Definitionen um zu schreiben damit es Pascal tauglich wird, lasse ich das ganz schnell wieder und nutze lieber C / GCC.
Da wäre wohl die aller erste Aufgabe einen Parser zu schreiben, der aus einer .c/.h eine Unit macht, denn die µC's werden nunmal zu 95% in C programmiert und im WWW und von den Herstellern der Prozessoren sind alle Demos entweder in Assembler (bei AVR/PIC) oder in C (ARM).
Im Anhang die Datei die ich meine.

(natürlich sollte das Ergebnis des Parsers auch funktionieren. :wink: )
Dateianhänge
stm32f10x.h
(619.07 KiB) 113-mal heruntergeladen
EleLa - Elektronik Lagerverwaltung - www.elela.de

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: FPC fit für PIC & AVR

Beitrag von mschnell »

Maik81ftl hat geschrieben:. Mein Ziel ist es sämtliche µC in Lazarus zu Programmieren.

Das ist ja wohl ein Witz :evil:

Ich vermute, 8 und 16 - Bitter geht gar nicht. 32 - Bitter sollte machbar sein.

PIC 32 ist eine MIPS Architektur. Das gibt es auf jeden Fall bereits Ansätze.

Ich wäre interessiert an einem Compiler für 68 K. Den gab es mal. Aber danach wurde die Compiler-Infrastruktur komplett umgestellt und um die 68KArchitektur hat sich keiner mehr gekümmert.

-Michael

Socke
Lazarusforum e. V.
Beiträge: 3158
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 fit für PIC & AVR

Beitrag von Socke »

Als Themenfremder gebe ich auch mal meinen Senf dazu …
MmVisual hat geschrieben:Da wäre wohl die aller erste Aufgabe einen Parser zu schreiben, der aus einer .c/.h eine Unit macht

Gibt es schon, siehe h2pas oder das Lazarus-Package dazu. Das arbeitet zwar nicht perfekt, kann aber helfen. Ansonsten ist das eine Feißarbeit, mit Kenntnissen in C und Pascal aber relativ einfach.

mschnell hat geschrieben:Ich vermute, 8 und 16 - Bitter geht gar nicht. 32 - Bitter sollte machbar sein.

Der FPC kann für einige ARM-Prozessoren auch den Thumb-Befehlssatz ausgeben (habe ich gelesen, aber nie getestet); Der Thumb-Befehlssatz ist eine 16-Bit Variante des eigentlich 32-bittigen Befehlssatzes.

mschnell hat geschrieben:Ich wäre interessiert an einem Compiler für 68 K. Den gab es mal. Aber danach wurde die Compiler-Infrastruktur komplett umgestellt und um die 68KArchitektur hat sich keiner mehr gekümmert.

Ist der noch brauchbar? Neu Sprachkonstrukte wird man damit nicht verwenden können, aber vielleicht das, was damals implementiert war.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

MmVisual
Beiträge: 1445
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winuxarm (L 3.0 FPC 3.2)
CPU-Target: 32/64Bit

Re: FPC fit für PIC & AVR

Beitrag von MmVisual »

Ich habe das mal mit h2pas getestet:

Code: Alles auswählen

D:\WinARM\Test__>h2pas stm32f10x.h
at line 223 error : syntax error
at line 495 error : syntax error
An unhandled exception occurred at $00408E25 :
EAccessViolation : Access violation
  $00408E25
  $00405B15
  $0040DD01


Er kann die #ifdef nicht bearbeiten und davon sind jede Menge drin, die auch gebraucht werden.
EleLa - Elektronik Lagerverwaltung - www.elela.de

Benutzeravatar
Maik81SE
Beiträge: 308
Registriert: Fr 30. Sep 2011, 14:07
OS, Lazarus, FPC: Debian 12 (L 3.0.0.3 FPC 3.2.2); Windows 10 (L 3.99.0.0 FPC 3.2.0)
CPU-Target: x86-64; arm; avr
Wohnort: Lübeck
Kontaktdaten:

Re: FPC fit für PIC & AVR

Beitrag von Maik81SE »

MmVisual hat geschrieben:Mich würde es auch reizen den STM32 (Cortex-M3) mit dem FPC zu proggen. Aber wenn ich erst mal anfangen muss die 600KB Header-Datei mit allen Definitionen um zu schreiben damit es Pascal tauglich wird, lasse ich das ganz schnell wieder und nutze lieber C / GCC.
Da wäre wohl die aller erste Aufgabe einen Parser zu schreiben, der aus einer .c/.h eine Unit macht, denn die µC's werden nunmal zu 95% in C programmiert und im WWW und von den Herstellern der Prozessoren sind alle Demos entweder in Assembler (bei AVR/PIC) oder in C (ARM).
Im Anhang die Datei die ich meine.

(natürlich sollte das Ergebnis des Parsers auch funktionieren. :wink: )


nun da muß ich dir recht geben. hab die mir gerade mal angeschaut und nunja wirklich etwas arbbeit.
mschnell hat geschrieben:
Maik81ftl hat geschrieben:. Mein Ziel ist es sämtliche µC in Lazarus zu Programmieren.

Das ist ja wohl ein Witz :evil:

Ich vermute, 8 und 16 - Bitter geht gar nicht. 32 - Bitter sollte machbar sein.

PIC 32 ist eine MIPS Architektur. Das gibt es auf jeden Fall bereits Ansätze.

Ich wäre interessiert an einem Compiler für 68 K. Den gab es mal. Aber danach wurde die Compiler-Infrastruktur komplett umgestellt und um die 68KArchitektur hat sich keiner mehr gekümmert.

-Michael


Hast du's denne schon mal versucht???

Zusammeengefasst:

Klar ist dabei erst mal eine Menge arbeit damit verbunden. würde selber meinen PIC16F6680 /AT90CAN64 auch lieber in ASM/Modula/AVRDUDE schreiben, aber a) weis ich nicht, ob mein wissen für dieses Projekt ausreicht und b) AVRDUD läuft nicht. werd ich wohl zur Not damit auf Win arbeiten müßen .

Code: Alles auswählen

label.caption:= 'gnublin.no-ip.info'
Debian 12 (L 3.0.0.3 FPC 3.2.2);
windows 10 (L 3.99.0.0 FPC 3.2.0)

MmVisual
Beiträge: 1445
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winuxarm (L 3.0 FPC 3.2)
CPU-Target: 32/64Bit

Re: FPC fit für PIC & AVR

Beitrag von MmVisual »

@Maik81SE

Nehme lieber Eclipse und programmiere in C. Eclipse ist der beste Editor überhaupt, sogar besser als der von Lazarus (und der ist der zweitbeste).
Dann nehme anstatt den AVR/PIC besser einen STM32. Mehr Leistung, und Möglichkeiten (ohne dass ich jetzt einen Glaubenskrieg anzetteln will).

So viel ich weiß kann FPC schon für den STM32 (Cortex-M3) übersetzen (ich hab mal was im www gesehen: http://j-software.dk/stm32f103.php).

Eclipse ist aber so gut, dass man wirklich nicht mehr das Bedürfnis hat den µC in Pascal zu programmieren. Und C ist nicht so arg viel anders. :mrgreen:
EleLa - Elektronik Lagerverwaltung - www.elela.de

Benutzeravatar
corpsman
Lazarusforum e. V.
Beiträge: 1496
Registriert: Sa 28. Feb 2009, 08:54
OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
CPU-Target: 64Bit
Wohnort: Stuttgart
Kontaktdaten:

Re: FPC fit für PIC & AVR

Beitrag von corpsman »

Also ich Programmiere privat einige unterschiedliche Atmegas und beruflich die Pics. Im "Job" nutze ich auch Eclipse, es ist zugegeben nicht schlecht, aber Lazarus ist mir trotzdem um einiges Lieber, somit dürfte die Ansicht welche IDE die "beste" ist wohl eher persönliche Meinung sein :)

Privat nutzte ich bis Kubuntu 11.04 Kontrollerlab, welches echt nicht schlecht war ( das ist natürlich auch alles in C ). Kontrollerlab ist leider von KDE3 Abhängig, dass gibts nu unter 11.10 nicht mehr. Deshalb habe ich angefangen mein eigenes KLab zu Proggen ( siehe entsprechende Threads die von mir zu Zeit gestartet werden *g* )

Einen Eigenen Crosscompiler zu schreiben, halte ich hier auch für etwas overkill. Auch wenn ich C nun wirklich nicht ausstehen kann, für die µ-Kontroller ist es akzeptabel und bietet eine Saubere Trennung zwischen "Low" Level µ-Kontroller und "High" Level Linux / Windows Programmierung.

Solltet ihr es aber tatsächlich hinbekommen, würde ich es nur zu gern "testen".
--
Just try it

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: FPC fit für PIC & AVR

Beitrag von mschnell »

Socke hat geschrieben:Der FPC kann für einige ARM-Prozessoren auch den Thumb-Befehlssatz ausgeben (habe ich gelesen, aber nie getestet); Der Thumb-Befehlssatz ist eine 16-Bit Variante des eigentlich 32-bittigen Befehlssatzes.

Nö. "Thumb" ist eine astreine 32 Bit Architektur. Die Bitzahl der Architektur wird durch die Größe der Register (im allgemeinen der für Adressierung verwendbaren Register) bestimmt. Die Größe der Codes für Befehle (die Bei Thumb 16 Bit und bei "big" ARM 32 Bit ist) spielt keine Rolle (die ist bei X86 variabel 8, 16, 24, 23,... Bit).

-Michael

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: FPC fit für PIC & AVR

Beitrag von mschnell »

Socke hat geschrieben:Ist der noch brauchbar? Neu Sprachkonstrukte wird man damit nicht verwenden können, aber vielleicht das, was damals implementiert war.

Auf Nachfrage wurde mir gesagt, dass die alte Compiler-Variante durchaus funktionsfähig ist. Wenn man aber einen Compiler aus den aktuellen Sourcen bauen will, muss man die 68K-Unterstützung aber quasi von Null an wieder aufbauen, wobei man aber sicher ein bisschen bei der alten Version abgucken kann.

Eine aktuelle Lazarus-Version läuft mit der alten FPC-Version nicht.

-Michael

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: FPC fit für PIC & AVR

Beitrag von mschnell »

Fazit:

Man arbeite mit den GNU-Leuten zusammen und mache ein Frontend für gcc, das die FPC/Delphi/ObjectPascal - Sprache in den gcc-Zwischencode übersetzt. das gcc-Backend übernimmt dann die Code-Generierung für jeden von gcc unterstützten µP.

Als Editor/Debugger ist dann natürlich Eclipse angesagt.

Das wurde auch schon in den Englischen Foren diskutiert.

Das "kleine" Problem ist, das der gcc-Zwischencode erweitert werden müsste um die Object-Pascal spezifische Objekt-Struktur (die recht anders als die von c++ ist) zu unterstützen. Es dürfte schwierig sein, das gcc-Team dafür zu begeistern ("never change a running system"). Und die FPC- und Lazarus Jungs sind natürlich auch nicht interessiert.

-Michael

Socke
Lazarusforum e. V.
Beiträge: 3158
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 fit für PIC & AVR

Beitrag von Socke »

mschnell hat geschrieben:Man arbeite mit den GNU-Leuten zusammen und mache ein Frontend für gcc, das die FPC/Delphi/ObjectPascal - Sprache in den gcc-Zwischencode übersetzt. das gcc-Backend übernimmt dann die Code-Generierung für jeden von gcc unterstützten µP.

Es gibt ein GNU Pascal Frontend für den gcc; der arbeitet aber nicht objektorientert.

mschnell hat geschrieben:Eine aktuelle Lazarus-Version läuft mit der alten FPC-Version nicht.

Meinst du, man könne Lazarus nicht mit alten FPC-Versionen bauen oder man könne alte FPC-Versionen nicht als Compiler für eigene Projekte verwenden?
Bei ersterem stimme ich dir zu und letzteres möchte ich stark bezweifeln, da sich hier doch nur die Compiler-Schalter geändert haben können, welche man ganz einfach abschalten und manuell einschalten kann. Bei Debugging kann das wieder etwas anders aussehen.

mschnell hat geschrieben:Nö. "Thumb" ist eine astreine 32 Bit Architektur. Die Bitzahl der Architektur wird durch die Größe der Register (im allgemeinen der für Adressierung verwendbaren Register) bestimmt. Die Größe der Codes für Befehle (die Bei Thumb 16 Bit und bei "big" ARM 32 Bit ist) spielt keine Rolle (die ist bei X86 variabel 8, 16, 24, 23,... Bit).

Danke für die Erklärung; an die Register hatte ich gar nicht gedacht (mit denen habe ich aber auch selten was zu tun).
Nächste Idee: an einigen wenigen Stellen im FPC-/RTL-Quelltext habe ich ein {$IFDEF CPU16} gesehen; wahrscheinlich sind das nur Überreste von wirklich alten Versionen; aber vielleicht gibts da ja noch mehr?
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

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: FPC fit für PIC & AVR

Beitrag von mschnell »

Socke hat geschrieben:Meinst du, man könne Lazarus nicht mit alten FPC-Versionen bauen
Ich weiß dass das nicht geht.
Socke hat geschrieben:oder man könne alte FPC-Versionen nicht als Compiler für eigene Projekte verwenden?
Du kannst die aktuelle LCL nicht mit einem alten Compiler übersetzen. Wenn nichts aus der LCL verwendet wird, geht das vielleicht irgendwie.
-Michael

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: FPC fit für PIC & AVR

Beitrag von mschnell »

Socke hat geschrieben:Nächste Idee: an einigen wenigen Stellen im FPC-/RTL-Quelltext habe ich ein {$IFDEF CPU16}
Vielleicht täusche ich mich ja, und man kann doch für irgendwelche 16 Bit CPUs übersetzen. Habe ich aber noch nicht von gehört.

-Michael

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: FPC fit für PIC & AVR

Beitrag von Christian »

Ich hab letztens erst n bissl was am avr Port für den fpc gemacht, hab aber leider etwas wenig zeit dafür. Der fpc ist durchaus in der lage für nen 8bitter Code zu generiern. Er generiert auch schon AVR Code was fehlt ist startupcode und Registerdefinitionen. Letztere habich fürn Atmega128 schonmal fertig gemacht.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Antworten