Programm für µC Schreiben

Für alles, was in den übrigen Lazarusthemen keinen Platz, aber mit Lazarus zutun hat.
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 »

Embedded sind Betriebssysteme, wie z.B. Linux, die auf dem Controller laufen. Dabei sind alle benötigten Programme in einer Flash-Datei zusammen gebunden und die wird beim Boot-Vorgang in das RAM geladen.
Somit: Unbrauchbar für mich, denn ich hab nur 20KB RAM. Außerdem braucht auch das kleinste Linux mehr als 1MB Flash und ich hab nur 128KB davon.
Ich will kein Embedded oder sonst was.

Wenn ich das Programm schreibe:

Code: Alles auswählen

Procedure Main();
Begin
  While(True) Do ;
End;
Dann ist der Maschinencode nur ein paar Byte lang, und genau das sollte dann in den Flash gespeichert werden. Diese paar Byte und kein Linux drum herum. Die CPU macht einen Reset, spring nach Main() und macht die While-Schleife, sonst nichts.
Aber ich glaube hier versteht niemand etwas von der Programmierung eines Mikrocontrollers. Ohne Maus, ohne Bildschirm, ohne sonst was. Nur ein schwarzer kleiner Chip.
Zuletzt geändert von Lori am Fr 22. Apr 2011, 14:46, insgesamt 1-mal geändert.
Grund: Highlighter
EleLa - Elektronik Lagerverwaltung - www.elela.de

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6945
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Programm für µC Schreiben

Beitrag von af0815 »

MmVisual hat geschrieben:Aber ich glaube hier versteht niemand etwas von der Programmierung eines Mikrocontrollers. Ohne Maus, ohne Bildschirm, ohne sonst was. Nur ein schwarzer kleiner Chip.
Das ist nicht das Problem, nur liegst du mit Lazarus hier etwas vom Ziel entfernt. Lazarus sind Bibliotheken + fpc. Was du benötigst liegt auf der Ebene von fpc selbst. Nachdem du keine Standard I/O Routinen verwenden kannst, fallen auch fast alle Bibliotheken des FPC für dich flach oder es ist für deine Plattform ein Port vorhanden.

Was für dich wichtig ist:
-> Kann der fpc dein Target
-> Welchen Toolchain muß/kann benutzt werden um ein binäres Image für den µC zu erzeugen.

In der FPC Wiki ist folgendes verzeichnet: Ziel Embedded ->NXP LPC, ATMEL AT91, TI Stellaris and ST STM32F10x controllers. Es steht aber auch dort wie man ev. das erweitern kann.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

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:Aber ich glaube hier versteht niemand etwas von der Programmierung eines Mikrocontrollers. Ohne Maus, ohne Bildschirm, ohne sonst was. Nur ein schwarzer kleiner Chip.
wenn du damit auf Hex-Ebene-Programmieren meinst, hab ich zum Glück schon einige Erfahrung, allerdings nur mit dem Z80.
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 »

MmVisual hat geschrieben:Embedded sind Betriebssysteme, wie z.B. Linux, die auf dem Controller laufen. Dabei sind alle benötigten Programme in einer Flash-Datei zusammen gebunden und die wird beim Boot-Vorgang in das RAM geladen.
Somit: Unbrauchbar für mich, denn ich hab nur 20KB RAM. Außerdem braucht auch das kleinste Linux mehr als 1MB Flash und ich hab nur 128KB davon.
Ich will kein Embedded oder sonst was.
http://wiki.freepascal.org/TARGET_Embedded" onclick="window.open(this.href);return false;
Das FPC Target Embedded macht genau das was du willst, du musst dich nur mal ein wenig belesen.
Embedded Systems sagt auch nichts darüber aus ob da nun ein Linux drauf läuft oder nicht. Ein einzelner Mikrocontroller ist auch ein Embedded System.
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:
MmVisual hat geschrieben:Embedded sind Betriebssysteme, wie z.B. Linux, die auf dem Controller laufen. Dabei sind alle benötigten Programme in einer Flash-Datei zusammen gebunden und die wird beim Boot-Vorgang in das RAM geladen.
Somit: Unbrauchbar für mich, denn ich hab nur 20KB RAM. Außerdem braucht auch das kleinste Linux mehr als 1MB Flash und ich hab nur 128KB davon.
Ich will kein Embedded oder sonst was.
http://wiki.freepascal.org/TARGET_Embedded" onclick="window.open(this.href);return false;
Das FPC Target Embedded macht genau das was du willst, du musst dich nur mal ein wenig belesen.
Embedded Systems sagt auch nichts darüber aus ob da nun ein Linux drauf läuft oder nicht. Ein einzelner Mikrocontroller ist auch ein Embedded System.
Nicht nur lesen, sondern leider auch noch übersetzen :? Aber egal...

Frage mich sowieso, wieso hier auf einmal, von Embedded-Systemen geredet wird? wo ist da der Unterschied zur Firmware?
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 »

Firmware macht genauso wenig aussage übers System, eine Firmware kannn auch aus Linux bestehen. Ich benutze den Begriff Embedded Systems für sowas weils aus meiener Sicht am üblichsten ist.
Ohne english wirst da leider nicht so weit kommen, das ist wahr.
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 »

Hmmm English leider, aba dafür hab i ja den BESCHIßENEN Trabslator von Google crome und FF.

Fimreware dachte ich immer ist das Grundprogramm eines µC. und ein enbettet system das, was z.B. auf einer SD-Card liegt, welche von der Firmeware verwaltet wird. und so verwende ich das auch in meiner Denkweiße. Beste beispielt dafür... http://myethernet.myavr.de/" onclick="window.open(this.href);return false;
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 »

Das Embedded System ist einfach nur deine Plattform. Ohne Firmware, ohne nix.

Und die Firmware ist die Software, die auf dem Embedded läuft.

Der PC hat z.B. das BIOS als Firmware, welches dann das Betriebssystem/den Bootloader von der Festplatte lädt.

Im embedded-Bereich ist es aber eher üblich, dass die Firmware gleich das komplette System/Betriebssystem enthält.
Wenn du also mit µC schreibst, schreibst du eine Firmware.

corado
Beiträge: 48
Registriert: Mi 7. Aug 2013, 17:00

Re: Programm für µC Schreiben

Beitrag von corado »

Ich habe eben auf die Schnelle nichts gefunden, daher die vielleicht blöde Frage,,,
Wie währe es extra Bereich im Forum etc. für Larzaus/Free Pascal für ARM Cortex 0-4 oder so?
Wo man auch gezielt Librarys (Units) etc tauschen könnte, um diverse Displays, Sensoren etc ansteuern zu können?
Generell denke ich, währe eine extra Entwicklung im bereich embedded für Free Pascal eine super Sache, da erheblich interessanter als Pascal für PCs könnte ich mir vorstellen.

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

Beitrag von mschnell »

Embedded Programmierung scheint in Deutschland heutzutage fast niemanden mehr zu interessieren. Das überlassen wir anscheinend lieber den Indern. Und ob die an Lazarus interessiert sind, weiß ich nicht, halte es aber für wenig wahrscheinlich. Im Deutschen Forum werden sie sicher nicht auftauchen.

Ich für meinen Teil bin aber so ein Exot - und kenne auch noch einige andere Exemplare dieser aussterbenden Gattung.

Ich habe vor kurzem noch ein embedded Programm mit Lazarus und FPC gemacht. Es läuft auf meinem QNAP NAS auf der ARM CPU.

Die praktische Programmier-Methodik (also der Vorteil von Lazarus/FPC gegenüber manchen anderen Programmiersystemen):
- zuerst in Lazarus die Appßlikation "normal" in PC-Manier schreiben. Dabei
. - alle (zum Testen eingebauten) GUI Aktionen in eigene Units auslagern
. - alle Zugriffe auf im PC nicht vorhandene Hardware in eigene Units auslagern
- so gut wie möglich testen
- dann die besagten Spezial-Units durch "Release"- Units ersetzen, die dem embedded System entsprechen.
- für das (oder wenn möglich auf dem) Ziel-System übersetzen
- dann braucht man nur noch rudimentäres Debugging bis es vernünftig läuft

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

Beitrag von Christian »

Son Quark, embedded Programmierung ist viel verbreiteter als die Pascalianer.
nur nutzt kaum jemand Pascal dafür deshalb geht das an dir vorbei.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

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

Beitrag von Socke »

Christian hat geschrieben:Son Quark, embedded Programmierung ist viel verbreiteter als die Pascalianer.
nur nutzt kaum jemand Pascal dafür deshalb geht das an dir vorbei.
Das könnte sich ändern, wenn der FPC endlich Arduinos ATMega unterstützte :cry:
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

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 »

D hast du nicht unrecht, meine Bugreports dazu und unterstützungsangebote werden leider ignoriert.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

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

Beitrag von Socke »

Christian hat geschrieben:D hast du nicht unrecht, meine Bugreports dazu und unterstützungsangebote werden leider ignoriert.
Dann muss ich wohl doch zum Compiler-Entwickler mutieren ... aber dann hab ich nicht mehr genug Zeit den auch anzuwenden ...

Als Alternative zum Arduino sehe ich im Teensy 3 eine Alternative. Wenn auch nicht kompatibel, sollten damit einige interessante Projekte durchführbar sein -- zumal dieser Prozessor vom FPC unterstützt wird.
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: Programm für µC Schreiben

Beitrag von mschnell »

Christian hat geschrieben:nur nutzt kaum jemand Pascal dafür deshalb geht das an dir vorbei.
95 % meiner Zeit mache ich "embedded" in C. Pascal ist nur so nebenbei :D

Aber versuch mal einen "Jungprogrammierer" zu finden, der in embedded einsteigen will und sich also auch mit der Hardware und "politischen" Sachen wie Chip-Verrfügbarkeit, ... auseinandersetzt. Ich sehe da durchaus Probleme.

-Michael
Zuletzt geändert von mschnell am Mo 19. Aug 2013, 22:54, insgesamt 1-mal geändert.

Antworten