Hallo alle zusammen,
mein Arbeitsgeber möchte mir eine Programmierkurs für Embedded C++
bezahlen, aber ich soll mir selbst eins finden.
Zu meinem Person:
Dip Ing ET aber hauptsächlich fast nur Java ,Qt, C++ (Visual Studio
2008-2015) und Labview.
In Embedded Bereich habe ich nur kleine Projekte (Pic 8 Bit oder AVR 8
Bit) gemachte. Dazu habe ich auch meinem Diplomarbeit in Emebedded
Bereich gemacht(Es ist schon lange her (2008)).
In Embedded habe ich mich ne wirklich 100% sicher gefühlt deswegen suche
ich mir auch eine Schulung in diesem Bereich.
Die Frage: Warum den C++ (Embedded)?
In C++ bin ich seit Jahren und fühle ich mich auch sicher und ich denke
was man mit C programmieren kann, könnte es auch in C++ gemacht werden.
C++ lässt sich besser warten und erweitern im gegensatz zu C.
Des weiteren möchte ich auch von meinem C++ wissen Nutzen.
Kann mir jemend einen Tipp geben?
Danke
Daniel
Hallo DanielBerlin,
ich bin selbst C++ Entwickler, wobei ich beruflich nicht auf Embedded
Systemen arbeite, aber trotzdem Performance kritische Anwendungen habe.
Privat habe ich schon an Atmega und ARM gebastelt und erfolgreich C++
verwendet.
Ich bin auch deiner Meinung, dass wenn man C++ kann, es auch im Embedded
Bereich gut anwenden kann. Allerdings kann es sein, dass ein Embedded
Compiler kein C++ unterstützt oder der Startup Code nicht C++ konform
ist. Dann kann es passieren, dass Konstruktoren von statischen Variablen
nicht aufgerufen werden (die Suche macht dann richtig Spaß).
Zu dem Thema hatte ich in München die Schulung "Design Patterns Schulung
(nicht nur) für Embedded-Systeme" bei MicroConsult. In der Schulung
wurde besonders auf die Kosten für Speicher und Laufzeit eingegangen,
also im Prinzip das was bei C++ unter der Haube passiert.
Im Prinzip erklärt die Schulung aber nur, was Patterns in Embedded
kosten und man kann dann selbst entscheiden, ob es das einem Wert ist.
Wenn du allerdings eine Schulung suchst, die dir sagt, wie man C++ auf
einen Mikrocontroller bringt, dann ist die Schulung die falsche.
Grüße
MKB
@Daniel: Deine Rechtschreibung ist... interessant und lässt auf
mangelnde Sorgfalt beim Schreiben schließen. Nur so als Hinweis.
M.K. B. schrieb:> Wenn du allerdings eine Schulung suchst, die dir sagt, wie man C++ auf> einen Mikrocontroller bringt, dann ist die Schulung die falsche.
Naja, Daniel sagt ja, er könne schon C++. Viel wichtiger wäre da
vermutlich eine Schulung, die vermittelt, wie man C++ auf einem
Mikrocontroller nicht macht (und warum). An "den einen richtigen Weg"
glaube ich nicht.
DanielBerlin schrieb:> mein Arbeitsgeber möchte mir eine Programmierkurs für Embedded C++> bezahlen, aber ich soll mir selbst eins finden.> Kann mir jemend einen Tipp geben?
Guckst Du hier:
http://www.hilf.de/schulung.aspx
ich hab da eine Veranstaltung in Löbau besucht (Geheimtipp)... da gibt's
ne Durchführungsgaranie LOL ... wir waren damals zwei, das war praktisch
ne Individualschulung :-o ... alles in C++ und dann auch direkt mit UML
programmieren wenn gewünscht
http://shop.mymcu.de/?sp=schulungen.sp.php
LG
DanielBerlin schrieb:> In Embedded habe ich mich ne wirklich 100% sicher gefühlt deswegen suche> ich mir auch eine Schulung in diesem Bereich.
Es gibt halt etliche Dinge, die man embedded vermeiden sollte, darunter
ist im Normalfall auch alles, was mit dynamischer Speicherverwaltung zu
tun hat. Initialisierung bei Allokation kann auch Probleme machen.
Exceptions sind auch nicht sonderlich beliebt.
Zudem kann man nicht erwarten, daß jeder Compiler den neusten Standard
unterstützt - schon deswegen nicht, weil man oftmals uralte Compiler
einsetzt, deren Code aber praxiserprobt ist.
Da C++ als Konzept hat, eine Menge compilermagic zu veranstalten (nichts
anderes ist die höhere Abstraktion ja), muß man eben diesen ganzen
Abstraktionsweg zu Fuß nachvollziehen und eben nicht nur wissen, wie man
was macht, sondern auch, was genau am Ende der Kette wie umgesetzt wird
und was das kostet. API-Kleber-Entwicklungsstil reicht da nicht. Und wie
man Dinge, die man auf dem PC so machen würde, aus Ressourcengründen auf
einem Controller anders macht.
Angesichts des Grundprinzips von C++, daß man nicht bezahlt, was man
nicht benutzt (bis dahin, daß man sich auf C beschränken kann), läuft es
vor allem darauf hinaus, daß man weiß, was man meiden sollte.
Normalerweise ist embedded C++ nicht allzuviel mehr als "C mit Klassen".
Andererseits gibt's ja embedded auch Systeme etwa mit Cortex-A, wo ein
ausgewachsenes Linux drauf läuft, da gelten solche Beschränkungen dann
nicht mehr so.
Zudem könnte ein embedded-Seminar auch noch Sachen vorstellen wie IO,
Interrupts (mitsamt Datenhandling zwischen Interrupts und Applikation),
Linkerscripte für die Speicherzuteilung und so. Anders als beim PC hat
man oftmals nicht einen linearen Adreßraum, sondern muß selber Variablen
und u.U. sogar Code platzieren.
Ich denke, man muss sich schon die potentielle Schulung genau ansehen,
denn mit C++17 hat man doch einige wichtige features für Embedded-C++
bekommen. Und das ist in so mancher Schulung einfach noch nicht drin.
Ein Kurs mit dem alten EC++ scheidet deswegen schon mal aus (das war
oben wohl mal erwähnt worden)
Wer jedoch von sich meint, er könne C++ (und das schließt jetzt hier
extensive C++-Template-Meta-Programmierung ein), der kann sich auch
anhand einiger guter Online-Beiträge die notwendigen Ideen und Tipps
holen. Es ist mit einem fundierten C++-Wissen nicht so schwer, ggf. nur
ungewohnt.
Schwieriger finde ich die Frage, ob man alles selbst erstellt oder auf
irgendeiner bestehen Bibliothek aufsetzt. Das hängt aber auch sehr von
der/den Zielplattform/en ab.
Man muss aber nicht alles komplett auf den Kopf stellen: hier im Forum
sieht man immer wieder Beiträge der Programmierung in C, in denen Leute
Probleme haben, die sie in C++ einfach nicht hätten (oft betrifft es den
Umgang mit Arrays und Strings, aber auch Code-Struktur und
Wiederverwendbarkeit).
Summa summarum: in meinen Augen lohnt der Umstieg auf jeden Fall, auch
wenn es kein radikaler sondern ein schrittweiser ist ...
Feedback? ... ich hab da leider keine Vergleichsmöglichkeit aber die
Jungs machten einen kompetenten Eindruck und sind sehr bereitwillig auf
individuelle Fragen und Problemstellungen eingegangen... Ich hatte meine
eigene Schaltung mit und flups hat der Dozent noch einen Kollegen (war
wohl mehr der Elektroniker) ran geholt und wir haben zu dritt drüber
geschaut was da los ist... Der erste Tag waren Grundlagen in C wie die
hier auch in den Tutorials beschrieben sind. Vorteil ist meiner Meinung
nach, dass man in einer Schulung jemanden hat der einem über die kleinen
Denkblockaden weg hilft ;-) Leider werden "dumme" Fragen im Netz all zu
oft mit dem Wegweiser ins Tut beantwortet aus dem man ja gerade mit der
Frage kam :-/ Jemanden an der Seite zu haben der einem das plausibel
erklärt beschleunigt die Lernkurve enorm. Der zweite Tag war dann die
objektorientierte Geschichte vor allem mit UML. Ehrlich gesagt ist das
schon beeindruckend was man mit dieser Vorgehensweise in kurzer Zeit
schaffen kann. Was den Ressourcenverbrauch betrifft gilt das oben
geschriebene, man muss halt wissen was man tut und wenn man den Komfort
eine String-Klassen nutzen möchte sollte einem klar sein dass man sich
da memalloc mit einhandelt LOL ... Also ich bin mit positiven Gefühlen
in meinen Zug zurück gen Westen gestiegen :-D
LG
I am working in Germany since 6 months. I would like to attend an
Embedded Programming Training. Since my German language skills have not
developped enough to follow a technical training in German language, I
am looking for such a course in English.
Therefore could you please advice to me any Embedded Programming
Training in English given in Germany (much better) or in other European
country. Unfortunately, up to know I have not come across any.