FPC fit für PIC & AVR

Für alles, was in den übrigen Lazarusthemen keinen Platz, aber mit Lazarus zutun hat.

FPC fit für PIC & AVR

Beitragvon Maik81ftl » 1. Nov 2011, 21:35 FPC fit für PIC & AVR

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
Maik81ftl
 
Beiträge: 619
Registriert: 9. Mär 2011, 16:34
Wohnort: seit 01.06.2011 in Wahlstedt
OS, Lazarus, FPC: Ubuntu10.04 LTS (L 0.9.31.0 FPC 2.4.4) | 
CPU-Target: 64Bit
Nach oben

Beitragvon MmVisual » 1. Nov 2011, 21:54 Re: FPC fit für PIC & AVR

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: )
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
MmVisual
 
Beiträge: 945
Registriert: 10. Okt 2008, 22:54
OS, Lazarus, FPC: Winux (L 1.6 FPC 3) | 
CPU-Target: 32/64Bit
Nach oben

Beitragvon mschnell » 1. Nov 2011, 22:09 Re: FPC fit für PIC & AVR

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
mschnell
 
Beiträge: 3154
Registriert: 11. Sep 2006, 09:24
Wohnort: Krefeld
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ) | 
CPU-Target: X32 / X64 / ARMv5
Nach oben

Beitragvon Socke » 2. Nov 2011, 00:17 Re: FPC fit für PIC & AVR

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
Socke
 
Beiträge: 2385
Registriert: 22. Jul 2008, 18:27
Wohnort: Köln
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 8.1/Debian GNU/Linux/Raspbian | 
CPU-Target: 32bit x86 armhf
Nach oben

Beitragvon MmVisual » 2. Nov 2011, 07:13 Re: FPC fit für PIC & AVR

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.
MmVisual
 
Beiträge: 945
Registriert: 10. Okt 2008, 22:54
OS, Lazarus, FPC: Winux (L 1.6 FPC 3) | 
CPU-Target: 32/64Bit
Nach oben

Beitragvon Maik81SE » 2. Nov 2011, 07:22 Re: FPC fit für PIC & AVR

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'
Maik81SE
 
Beiträge: 70
Registriert: 30. Sep 2011, 13:07
Wohnort: Lübeck
OS, Lazarus, FPC: Win7/(en)Debian/Ubuntu 14:10 (L 1.2.4+dfsg-1. FPC 2.6.x) | 
CPU-Target: 64bit; arm; avr
Nach oben

Beitragvon MmVisual » 2. Nov 2011, 07:50 Re: FPC fit für PIC & AVR

@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:
MmVisual
 
Beiträge: 945
Registriert: 10. Okt 2008, 22:54
OS, Lazarus, FPC: Winux (L 1.6 FPC 3) | 
CPU-Target: 32/64Bit
Nach oben

Beitragvon corpsman » 2. Nov 2011, 08:00 Re: FPC fit für PIC & AVR

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
corpsman
 
Beiträge: 1018
Registriert: 28. Feb 2009, 08:54
Wohnort: Stuttgart
OS, Lazarus, FPC: Kubuntu 14.04, Lazarus SVN Trunk, FPC 3.0 | 
CPU-Target: 32Bit
Nach oben

Beitragvon mschnell » 2. Nov 2011, 08:36 Re: FPC fit für PIC & AVR

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: 3154
Registriert: 11. Sep 2006, 09:24
Wohnort: Krefeld
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ) | 
CPU-Target: X32 / X64 / ARMv5
Nach oben

Beitragvon mschnell » 2. Nov 2011, 08:40 Re: FPC fit für PIC & AVR

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: 3154
Registriert: 11. Sep 2006, 09:24
Wohnort: Krefeld
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ) | 
CPU-Target: X32 / X64 / ARMv5
Nach oben

Beitragvon mschnell » 2. Nov 2011, 08:50 Re: FPC fit für PIC & AVR

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
mschnell
 
Beiträge: 3154
Registriert: 11. Sep 2006, 09:24
Wohnort: Krefeld
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ) | 
CPU-Target: X32 / X64 / ARMv5
Nach oben

Beitragvon Socke » 2. Nov 2011, 11:22 Re: FPC fit für PIC & AVR

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
Socke
 
Beiträge: 2385
Registriert: 22. Jul 2008, 18:27
Wohnort: Köln
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 8.1/Debian GNU/Linux/Raspbian | 
CPU-Target: 32bit x86 armhf
Nach oben

Beitragvon mschnell » 2. Nov 2011, 12:58 Re: FPC fit für PIC & AVR

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: 3154
Registriert: 11. Sep 2006, 09:24
Wohnort: Krefeld
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ) | 
CPU-Target: X32 / X64 / ARMv5
Nach oben

Beitragvon mschnell » 2. Nov 2011, 13:00 Re: FPC fit für PIC & AVR

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
mschnell
 
Beiträge: 3154
Registriert: 11. Sep 2006, 09:24
Wohnort: Krefeld
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ) | 
CPU-Target: X32 / X64 / ARMv5
Nach oben

Beitragvon Christian » 2. Nov 2011, 18:15 Re: FPC fit für PIC & AVR

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/
Christian
 
Beiträge: 6092
Registriert: 21. Sep 2006, 06:51
Wohnort: Dessau
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z) | 
CPU-Target: AVR,ARM,x86(-64)
Nach oben

» Weitere Beiträge siehe nächste Seite »
Nächste

Zurück zu Sonstiges



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste

porpoises-institution
accuracy-worried