FPC fit für PIC & AVR
-
- 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
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.
Hoffe auf Positive Ressonanz eurerseits und jeder, der sich mit µC auskennt ist willkommen. auch die, die damit anfangen wollen.
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.
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
-
- 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
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. )
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. )
- Dateianhänge
-
- stm32f10x.h
- (619.07 KiB) 113-mal heruntergeladen
EleLa - Elektronik Lagerverwaltung - www.elela.de
-
- 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
Maik81ftl hat geschrieben:. Mein Ziel ist es sämtliche µC in Lazarus zu Programmieren.
Das ist ja wohl ein Witz
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
-
- 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
Als Themenfremder gebe ich auch mal meinen Senf dazu …
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.
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.
Ist der noch brauchbar? Neu Sprachkonstrukte wird man damit nicht verwenden können, aber vielleicht das, was damals implementiert war.
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
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
-
- 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
Ich habe das mal mit h2pas getestet:
Er kann die #ifdef nicht bearbeiten und davon sind jede Menge drin, die auch gebraucht werden.
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
- 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
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. )
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
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'
windows 10 (L 3.99.0.0 FPC 3.2.0)
-
- 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
@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.
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.
EleLa - Elektronik Lagerverwaltung - www.elela.de
- 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
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".
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
Just try it
-
- 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
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
-
- 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
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
-
- 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
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
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
-
- 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
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
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
-
- 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
Ich weiß dass das nicht geht.Socke hat geschrieben:Meinst du, man könne Lazarus nicht mit alten FPC-Versionen bauen
Du kannst die aktuelle LCL nicht mit einem alten Compiler übersetzen. Wenn nichts aus der LCL verwendet wird, geht das vielleicht irgendwie.Socke hat geschrieben:oder man könne alte FPC-Versionen nicht als Compiler für eigene Projekte verwenden?
-Michael
-
- 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
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.Socke hat geschrieben:Nächste Idee: an einigen wenigen Stellen im FPC-/RTL-Quelltext habe ich ein {$IFDEF CPU16}
-Michael
-
- 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
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/