C++ Embedded Tutorial

Schnelle objektorientierte, kompilierende Programmiersprache.
Antworten
Xeon
Beiträge: 169
Registriert: So Dez 17, 2017 4:10 pm

C++ Embedded Tutorial

Beitrag von Xeon » Mi Nov 17, 2021 1:28 pm

Hallo zusammen

Kennt jemand ein Tutorial über C++ Embedded Programmierung?


Liebe Grüße
Von Xeon

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8858
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: C++ Embedded Tutorial

Beitrag von Xin » Mi Nov 17, 2021 5:25 pm

Leider nicht, weil ich (noch?) keine Embedded Systems programmiere.

Ich kenne das bisher nur vom Arduino, wo ich mal ein wenig zugesehen habe, um Loreley, die twitternde Bürste (sic) zu implementieren.

Entsprechend wäre hier erstmal die Frage, welches Embedded System Du eigentlich programmieren möchtest. :-)
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Xeon
Beiträge: 169
Registriert: So Dez 17, 2017 4:10 pm

Re: C++ Embedded Tutorial

Beitrag von Xeon » Mi Nov 24, 2021 3:19 pm

Du ich habe keine Ahnung von Embedded, vielleicht eine Kaffeemaschine? Vielleicht gibt im Embedded-Bereich so etwas wie Grundlagen. Es muss nicht ein Tutorial sein, ein Buch wäre auch gut. Vielleicht kennt da jemand etwas.


Liebe Grüße
Von Xeon

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8858
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: C++ Embedded Tutorial

Beitrag von Xin » Mi Nov 24, 2021 7:42 pm

Mit einem Arduino hast Du schonmal ein grundlegendes System.

Die anzusteuernden Adressen sollte es im Internet geben. Ansonsten ist vielleicht auch Retro-Computing eine Interessante Sache. Ich habe mal einen C64-Emulator installiert und dann per PEEK und POKE ein bisschen Grafik programmiert. Der C64 geht heute quasi als embedded System mit Tastatur und Monitoranschluss durch. ;-)
Der C64 ist in jedem Fall hervorragend dokumentiert und es gibt meines Wissens auch C-Compiler dafür.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Benutzeravatar
naums
Beiträge: 740
Registriert: Sa Jan 02, 2010 10:40 pm
Kontaktdaten:

Re: C++ Embedded Tutorial

Beitrag von naums » Do Dez 09, 2021 8:12 pm

Moin,

die Frage ist ja auch, was du programmieren willst. Hast du ein Betriebssystem drunter, oder programmierst du bare-metal? Was für Prozessoren, welche Peripherie?

Willst du einen ESP32 benutzen, gibt es das offizielle IoT Development Framework, aber wohl auch irgendwas in Arduino Richtung. Das offizielle SDK bringt ein FreeRTOS mit, ein recht ausgefeiltes Echtzeit-Betriebssystem.

Der Raspberry Pi Pico bringt auch ein SDK mit, aber afaik ist das dort kein FreeRTOS. Da könnte man sich wunderbar die Frage stellen, was eigentlich ein Betriebssystem ist.

Jedenfalls. Schnapp dir dein Board, gibs in die Suchmaschine deiner Wahl ein, schau was es SDK mäßiges schon so gibt. Dann überleg dir, was du eigentlich brauchst. Muss es eine volle Speicherverwaltung sein, oder reicht dir Stack + ein paar globals? Brauchst du mehrere Tasks, brauchst du Echtzeit. Dann kannst du deine Suche präzisieren.

"Allgemein" über embedded ist schwierig. Ein 8-Bit AVR unterscheidet sich eben zu stark von einem 32 Bit ARM. Du solltest drauf achten, dass du nicht heimlich deinen Stack überschreibst, und dir wird niemand auf die Finger hauen, wenn du random im Speicher rumackerst. Das kann ganz nett sein, ist aber auch sehr freundlich(tm) zu debuggen.

Oh, lerne Debuggen. Ich bin eher Minimalist und empfehle OpenOCD und GDB direkt zu benutzen, die Lernkurve ist aber recht steil. Die IDEs sind mittlerweile wohl aber auch recht brauchbar.

Cheers.
.globl truth
truth:
mov r0, #42
mov pc, lr

Xeon
Beiträge: 169
Registriert: So Dez 17, 2017 4:10 pm

C++ Embedded Arduino

Beitrag von Xeon » Mi Feb 02, 2022 3:00 pm

Hallo zusammen

Ich möchte gerne was mit Arduion machen. Was hält ihr davon:
https://www.rheinwerk-verlag.de/arduino ... -handbuch/

Währe das was für den Anfang?


Liebe Grüße
Xeon

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8858
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: C++ Embedded Arduino

Beitrag von Xin » Sa Feb 05, 2022 7:15 pm

Xeon hat geschrieben:
Mi Feb 02, 2022 3:00 pm
Hallo zusammen

Ich möchte gerne was mit Arduion machen. Was hält ihr davon:
https://www.rheinwerk-verlag.de/arduino ... -handbuch/

Währe das was für den Anfang?
Da ich noch nichts selbst mit einem Arduino gemacht habe, kann ich da keine brauchbare Antwort für geben.

Das Buch ist recht neu, es kostet nur 40 Euro, es ist bei Amazon gut bewertet. Das spricht für das Buch.

Aber... es hat 750 Seiten. Bücher, die über 300 oder 400 Seiten haben, bestehen in der Regel aus viel Füllmaterial, aber nicht unbedingt aus detailverliebter Tiefe. Ich würde erwarten, dass 2/3 des Buches aus ausführlich beschriebenen Selbstverständlichkeiten besteht.
Und schaut man sich diverse Bewertungen an, liege ich damit wohl auch nicht so verkehrt.

Trotzdem können in einem solchen Buch auch Stichworte finden, die beim Googlen helfen oder helfen, Texte aus dem Internet besser zu verstehen. Du wirst diese 750 Seiten aber nie lesen.
Ich würde keine Erwartungen an das Buch stellen und dann kann das Buch Deine Erwartungen sicherlich übertreffen. Denn da ist ja noch das eine Drittel, was möglicherweise Informationen liefert, die Dir weiterhelfen, Details zu finden.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3123
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: C++ Embedded Tutorial

Beitrag von cloidnerux » Mo Feb 07, 2022 6:03 pm

Generell sind die Bücher über Arduino meist nur ein C Tutorial mit etwas drum herum, aber das verlinkte sieht ganz gut aus, da es auch auf einige spezifische Mikrocontroller Themen eingeht.
Der große Unterschied zwischen Programmieren für den Computer und Mikrocontroller ist, dass die Hardware eine zentrale Rolle einnimmt. Daher bringt dir ein Buch nur begrenzt viel, wenn du die Hardware nicht hast. Daher ist es egt viel Besser statt einem Buch sich ein Starter-Kit zu kaufen, wo nebem dem Arduino noch viel Kram dabei ist. Es gibt ein "offizielles" von Arduino selber, das aber recht Teuer ist. Bei Amazon und Konsorten gibt es welche für 40€, die ganz gut sind. Dann einfach mal loslegen was zu basteln und den Code dafür zu schreiben. Es gibt extrem viele Tutorials im Internet zu den Einsteigerthemen mit Code und Schaltplan, sodass man alles beim Basteln lernen kann.

Zur Programmierung selber ist die Embedded-Welt sehr divers. Viele Anwendungen sind extrem einfach im Sinne von: "Warte auf Benutzereingabe(Taster) und führe dann eine Aktion aus(Zählen, Schalten, etc)" was sich in 20 Zeilen Code niederschlägt. Etwas schwieriger wird es, wenn man die Peripherie des MCU selber nutzt. Diese muss konfiguriert werden, was durch setzen von Bits im Speicher passiert. Die Herausforderung ist dabei natürlich zu wissen, was wo wie gesetzt werden muss, dafür muss man dann Datenblätter wälzen. Die größte Herausforderung ist dann asynchrone Programmabläufe, Interrupts, Energieeffizienz und robuste Programme. Eine LED blinken zu lassen kann man sehr einfach, indem man im Code einfach "wartet", daher so viele Taktzyklen nichts macht, bis die entsprechende zeit abgelaufen ist. Aber da die meisten MCUs single core sind, passiert auch nichts anderes in der Zeit während die gesamte CPU läuft und Strom verbraucht. Willst du in der Zeit aber nicht nur einfach warten, sondern auch auf Tastendrücke reagieren, Sensoren auslesen, Daten senden oder Empfangen und ähnliches musst du dein Programm so schreiben, dass du eben nicht stumpf wartest. Dies kann dann über Timer Interrupts passieren oder State-Machines(welche man sehr sehr sehr häufig werdet).
Und dann gibt es für vieles auch die Möglichkeit, das ganze in Hardware abzuwickeln. Statt also per Code entsprechende Signale zu genieren, lassen sich viele Sachen auch direkt mit der Hardware umsetzten. So kannst du einen Timer direkt nutzen, um einen Ausgang zu schalten. Dann muss nichtmal die CPU laufen und man kann Strom spahren.
Redundanz macht wiederholen unnötig.
quod erat expectandum

Xeon
Beiträge: 169
Registriert: So Dez 17, 2017 4:10 pm

Re: C++ Embedded Tutorial

Beitrag von Xeon » Di Feb 15, 2022 3:02 pm

cloidnerux hat geschrieben:
Mo Feb 07, 2022 6:03 pm
Daher bringt dir ein Buch nur begrenzt viel, wenn du die Hardware nicht hast. Daher ist es egt viel Besser statt einem Buch sich ein Starter-Kit zu kaufen, wo nebem dem Arduino noch viel Kram dabei ist. Es gibt ein "offizielles" von Arduino selber, das aber recht Teuer ist. Bei Amazon und Konsorten gibt es welche für 40€, die ganz gut sind. Dann einfach mal loslegen was zu basteln und den Code dafür zu schreiben. Es gibt extrem viele Tutorials im Internet zu den Einsteigerthemen mit Code und Schaltplan, sodass man alles beim Basteln lernen kann.
Danke für deine Antwort cloidnerux.

Was meinst du dazu:
https://www.amazon.de/Elegoo-Vollst%C3% ... ljaz10cnVl

Währe das gut für den Anfang?

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3123
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: C++ Embedded Tutorial

Beitrag von cloidnerux » Fr Feb 18, 2022 10:13 pm

Das sieht gut aus. Spielt auch im Endeffekt nicht die größte Rolle, man fängt recht schnell an mehr zu Basteln und sich die fehlenden Bauteile einfach so zu kaufen.
Redundanz macht wiederholen unnötig.
quod erat expectandum

Antworten