Programm für µC Schreiben

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

Programm für µC Schreiben

Beitrag von Maik81ftl »

Moin Moin,

Weiß nicht, ob sich schon mal jemand mir den Thema µC-Programmierung unter pascal auseinandergesetz hat, deshalb frag ich mal so in den Raum rein.

Wäre ex Möglich firmware für ein Gerät unter Verwendung z.B. eines ATmega128 oder PIC 16f84(A) in Lazarus zu schreiben?

Wenn ja, wie müste man denne in Etwa dem Programm sagen, das es ein 8Bit System ist.

Nicht lachen, ist eine Erst gemeinte Frage, Sonst muß ich ein Prog suchen, welches in Modula schreibfähig ist und unter Linux läuft.
Ubuntu 10.04 LTS ist meine Heimat. Lazarus ist meine Sprache :D und der Kreis Segeberg meine LIEBE :D

carli
Beiträge: 657
Registriert: Sa 9. Jan 2010, 17:32
OS, Lazarus, FPC: Linux 2.6.x, SVN-Lazarus, FPC 2.4.0-2
CPU-Target: 64Bit

Re: Programm für µC Schreiben

Beitrag von carli »

Maik81ftl hat geschrieben: Wenn ja, wie müste man denne in Etwa dem Programm sagen, das es ein 8Bit System ist.
Du meinst einen Emulator? Schau mal nach QEMU.

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

Re: Programm für µC Schreiben

Beitrag von MmVisual »

Mich würde das auch interessieren, und zwar für den Prozessor Cortex-M3 (z.B. STM32F103).
Derzeit programmiere ich den mit dem GCC ARM NONE EABI Compiler von Coudesourcery. Also auf dem Prozessor gibt es kein Betriebssystem.
Aus dem Code wird Assember generiert und der wird in das Flash geladen und läuft. Ganz simpel.
Allerdings habe ich noch keinen Pascal-Compiler gefunden, der diesen Prozessor unterstützt.

Eine Grafik geht natürlich nicht, da kein Display dran ist, auf geht keine Klassen-Hirarchie, da kein Betriebssystem mit Speichermanager da ist.
EleLa - Elektronik Lagerverwaltung - www.elela.de

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

Re: Programm für µC Schreiben

Beitrag von Maik81ftl »

MmVisual hat geschrieben:Mich würde das auch interessieren, und zwar für den Prozessor Cortex-M3 (z.B. STM32F103).
Derzeit programmiere ich den mit dem GCC ARM NONE EABI Compiler von Coudesourcery. Also auf dem Prozessor gibt es kein Betriebssystem.
Aus dem Code wird Assember generiert und der wird in das Flash geladen und läuft. Ganz simpel.
Allerdings habe ich noch keinen Pascal-Compiler gefunden, der diesen Prozessor unterstützt.

Eine Grafik geht natürlich nicht, da kein Display dran ist, auf geht keine Klassen-Hirarchie, da kein Betriebssystem mit Speichermanager da ist.
wie ich sehe ist das bei dir ein 32Bit µC. ich könnte auch AVRco IDE verwenden, aber leider ist dieses Nur für Windows geeingnet. unter Wine bei Linux läuft es leider nicht :( Bei der Verwendung von AVR Studio bekomme ich unter Ubuntu ebenfalls Probleme. wenn ich allerdings Wüste, wie ich die Version von AVRco IDE auf meinem Lahmen system komplett rausbekomme, ohne die Codes für die Vollversion zu verlieren, bin ich für jeden tipp offen..., da proge ich die unter Xp/Win7 wenn meine Möhre wieder sauber läuft.
Was die Programmierung der Pic reihe angeht, kann ich unter Linux getrost auf MPLap zurückgreifen
carli hat geschrieben:
Maik81ftl hat geschrieben: Wenn ja, wie müste man denne in Etwa dem Programm sagen, das es ein 8Bit System ist.
Du meinst einen Emulator? Schau mal nach QEMU.
Ähmm wie dein nachposter schon richtig erkannt hat, sind die µCs leer und Ohne BS. Zieh ist es das BS (Firmeware) mit Lazarus zuerstellen. :D

Edit

HIer mal für die, die sich auch damit befassen wollen der Grundgedanke inkl. Zielsetzung.

a) Entwicklung einer eingenen PC-Mess-karte (Oszi, DMM, u.s.w.)
b) USB-Schnittstelle
c) Automatisches erkennen des BS, welches auf dem PC läuft
d) Hot-Plug&-Play Installation ähnlich der Heutigen Handys unter Windows.

zu d) die Messsoftware für den Rechner soll z.B. auf einer SD-card in dem Gerät liegen und automatisch über die Rüchantword des PC's/Nootbook's ausgewählt und installiert werden.
Ubuntu 10.04 LTS ist meine Heimat. Lazarus ist meine Sprache :D und der Kreis Segeberg meine LIEBE :D

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: Programm für µC Schreiben

Beitrag von Christian »

Für den AVR gibts ein Target beim fpc welches aber noch nicht fertiggestellt ist.
Den Cortex M3 sollte der fpc bereits können.

@Maik

Punkt C ist seehr schwirig. Von einem USB gerät aus kannst du sehr schwer erkennen welches BS du vor dir hast. Das wird fast nur möglich sein wenn du ein Gerät das alle Betriebsysteme kennen emulierst z.b. eine Maus und dann schaust was für Eigenheiten die entsprechenden Treiber haben also in welcher Reihenfolge Daten Descriptoren usw abgefragt werden z.b.

D wird ebenso schwierig sein, du musst separate Endpunkte für Mass Storage Devices vorhalten und darauf ein komplettes SCSI gerät emulieren.
Mit dem Atmega128 kannst du das ganze vergessen, der hat 1. kein Hardware USB 2. wirst du mit dem Speicher bei den Anforderungen nicht auskommen.
Allerdings hast du bei den Anforderungen wenn du gut mit den Mikrocontrollern kannst auch ca 8 Mannjahre Programmierung vor dir, und bis dahin funktioniert zumindest Punkt C nicht mehr weil es mit sicherheit andere Treiber gibt warscheinlich auch andere Betriebsysteme.

Punkt A und B hakt übrigends mein USB AVR Lab schon ab. Das kannst du auch von der PC Seite mit Lazarus ansprechen.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

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

Re: Programm für µC Schreiben

Beitrag von Maik81ftl »

Christian hat geschrieben:Für den AVR gibts ein Target beim fpc welches aber noch nicht fertiggestellt ist.
Den Cortex M3 sollte der fpc bereits können.

@Maik

Punkt C ist seehr schwirig. Von einem USB gerät aus kannst du sehr schwer erkennen welches BS du vor dir hast. Das wird fast nur möglich sein wenn du ein Gerät das alle Betriebsysteme kennen emulierst z.b. eine Maus und dann schaust was für Eigenheiten die entsprechenden Treiber haben also in welcher Reihenfolge Daten Descriptoren usw abgefragt werden z.b.

D wird ebenso schwierig sein, du musst separate Endpunkte für Mass Storage Devices vorhalten und darauf ein komplettes SCSI gerät emulieren.
Mit dem Atmega128 kannst du das ganze vergessen, der hat 1. kein Hardware USB 2. wirst du mit dem Speicher bei den Anforderungen nicht auskommen.
Allerdings hast du bei den Anforderungen wenn du gut mit den Mikrocontrollern kannst auch ca 8 Mannjahre Programmierung vor dir, und bis dahin funktioniert zumindest Punkt C nicht mehr weil es mit sicherheit andere Treiber gibt warscheinlich auch andere Betriebsysteme.

Punkt A und B hakt übrigends mein USB AVR Lab schon ab. Das kannst du auch von der PC Seite mit Lazarus ansprechen.
Hmmm was C) angeht, habe ich die nacht ausch schon mal drüber geschlafen... :D ok! daher denne CD mitliefern :D

Was D) angeht. das der Kein Hardware USB hat weiß ich, ergo kann ich auch dies vergessen. Bleiben somit nur noch Punkt a und b.

Dennoch hab ich den Kern des Projektes noch nicht gelöst. Die Software für den ATmega / Pic würde ich gerne via lazarus schreiben, aber wie du schon gesagt hast, wird der Target bei FPC noch nicht fertig sein. :(

könnte ich dennoch mal ggf ein hinweis bekommen, wo ich den finde?
Ubuntu 10.04 LTS ist meine Heimat. Lazarus ist meine Sprache :D und der Kreis Segeberg meine LIEBE :D

Benutzeravatar
corpsman
Lazarusforum e. V.
Beiträge: 1645
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: Programm für µC Schreiben

Beitrag von corpsman »

Nicht dass ich eine Ahnung von dem habe was ihr hier schreibt, will eigentlich nur das mein Forumprofil diesen Thread hier beobachtet...

Einen Atmega32 und Atmega8 habe ich aber auch, und steuere diese zur Zeit mittels avr-gcc an.

Das geht natürlich aber eine Entwicklung via FPC und Lazarus wäre der Hammer.

Dort müsste man dann doch sicher eine "Konsolen Anwendung" machen, oder ?

Gruß

Corpsman
--
Just try it

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

Re: Programm für µC Schreiben

Beitrag von Maik81ftl »

corpsman hat geschrieben:Nicht dass ich eine Ahnung von dem habe was ihr hier schreibt, will eigentlich nur das mein Forumprofil diesen Thread hier beobachtet...

Einen Atmega32 und Atmega8 habe ich aber auch, und steuere diese zur Zeit mittels avr-gcc an.

Das geht natürlich aber eine Entwicklung via FPC und Lazarus wäre der Hammer.

Dort müsste man dann doch sicher eine "Konsolen Anwendung" machen, oder ?

Gruß

Corpsman
Sicher... ich werd mich mal mit darüber schlau machen. und eine Prof kontaktieren. hoffe, das ich da hilfe bekommen kann.
Ubuntu 10.04 LTS ist meine Heimat. Lazarus ist meine Sprache :D und der Kreis Segeberg meine LIEBE :D

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: Programm für µC Schreiben

Beitrag von Christian »

Dennoch hab ich den Kern des Projektes noch nicht gelöst. Die Software für den ATmega / Pic würde ich gerne via lazarus schreiben, aber wie du schon gesagt hast, wird der Target bei FPC noch nicht fertig sein.
könnte ich dennoch mal ggf ein hinweis bekommen, wo ich den finde?
Klar, im FPC. Wo würdest du sonst suchen ?
Musst den Compiler halt für das Target neubaun also avr-embedded
http://wiki.freepascal.org/AVR" onclick="window.open(this.href);return false;
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

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

Re: Programm für µC Schreiben

Beitrag von MmVisual »

Hier:
http://wiki.freepascal.org/FPC_New_Features_Trunk" onclick="window.open(this.href);return false;

Habe ich gefunden "Support for Thumb-2" (für meinen Cortex-M3 Prozi)

Aber wo/wie kann ich denn diese CPU auswählen?
Muss ich da noch was zusätzlich installieren?
(Ich hab Windwos)

Gleich als nächstes kommt dann die Frage: Kann ich den GDB von Lazarus über TCP/IP zu einem GDB-Server (z.B. OpenOCD) verbinden, damit ich meine CPU auch debuggen kann?

Gruß Markus
EleLa - Elektronik Lagerverwaltung - www.elela.de

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: Programm für µC Schreiben

Beitrag von Christian »

Naja hast du denn den fpc aus dem trunk ?
Hast du das hier schonmal gelesen ?
http://wiki.freepascal.org/Setup_Cross_Compile_For_ARM" onclick="window.open(this.href);return false;
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

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

Re: Programm für µC Schreiben

Beitrag von MmVisual »

Ich denke, das benötigt ein Betriebssystem(Linux) auf dem ARM Prozessor. Aber ich habe nur 128K Flash / 20K RAM, da geht kein Linux drauf.
Oder hab ich das jetzt falsch gelesen?
EleLa - Elektronik Lagerverwaltung - www.elela.de

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: Programm für µC Schreiben

Beitrag von Christian »

Hm ? Cross Compile sagt das du auf einer Maschiene für eine andere Kompilierst. Hast du überhaupt was gelesen ? ;)
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

carli
Beiträge: 657
Registriert: Sa 9. Jan 2010, 17:32
OS, Lazarus, FPC: Linux 2.6.x, SVN-Lazarus, FPC 2.4.0-2
CPU-Target: 64Bit

Re: Programm für µC Schreiben

Beitrag von carli »

Die Frage ist aber, ob der FPC auch das RAM-Image ausspucken kann, oder ob der FPC nur Linux-Executables erstellt.

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: Programm für µC Schreiben

Beitrag von Christian »

Der fpc hat ein embedded Target, das dafür passt. Ob dort nun ein .elf rauskommt das du hinterher noch strippen musst oder direkt ein hex file weissich leider auch nicht aus dem stand. Ich hab noch nicht damit gearbeitet. Vllt sterhts ja da ;) http://wiki.freepascal.org/Embedded" onclick="window.open(this.href);return false;
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Antworten