Hallo, ich befinde mich gerade im Semester 4 (fast 5) im Bachelor Informatik an einer FH. Ich möchte mich im Bereich Embedded Systems spezialisieren und habe ab dem 1. August mein erstes Praktikum in der automotive Branche. Dort werde ich Systemnahe SW programmieren und auch (natürlich) mit der HW in Verbindung kommen. Der Schwerpunkt liegt aber auf der SW Programmierung. Nun möchte ich meine C Kenntnisse verbessern und nochmal mein Rechnerarchitektur-Wissen auffrischen. (Theoretische) Erfahrung mit Betriebssystemen und Rechnerarchitektur konnte ich bereits während meines Studiums sammeln. Ich habe mir einenen Mikroprozssor mit ARM Cortex M4 Architektur gekauft und bin nun dabei damit etwas rumzuspielen. Zur eigenetlichen Fragen *(tl;dr)*: Welche Bücher könnt ihr mir empfehlen um mein Mikroprozessortechnik/Betriebssysteme Wissen aufzufrischen oder zu erweitern? Wäre super wenn die Bücher sich auf ARM Cortex M4 beziehen, ist aber nur optional. Vielen Dank!
Das beste Buch ist meiner Meinung nach immer das Datenblatt des Prozessors, Evalboard whatever selbst. Da steht eigentlich alles drin was Du wissen musst.
H05 schrieb: > Das beste Buch ist meiner Meinung nach immer das Datenblatt des > Prozessors, Evalboard whatever selbst. Da steht eigentlich alles drin > was Du wissen musst. Das stimmt wohl ;) trotzdessen würde es mich interessieren ob mir jemand abseits davon noch ein Buch empfehlen kann auf das er/sie zurückgreift oder das im Selbststudium geholfen hat.
Matthias Z. schrieb: > Das stimmt wohl ;) trotzdessen würde es mich interessieren ob mir jemand > abseits davon noch ein Buch empfehlen kann auf das er/sie zurückgreift > oder das im Selbststudium geholfen hat. Nein, keine Buchempfehlung. Mach dich nicht verrückt und geh dein Praktikum locker an, sei motiviert und interessiert, stelle kluge Fragen, aber nerve deine Praktikumsbetreuer nicht.
Matthias Z. schrieb: > Dort werde ich Systemnahe SW programmieren und auch (natürlich) mit der > HW in Verbindung kommen. Der Schwerpunkt liegt aber auf der SW > Programmierung. > > Nun möchte ich meine C Kenntnisse verbessern und nochmal mein > Rechnerarchitektur-Wissen auffrischen. Streiche C, was du brauchst ist ein grundsätzliches Verständniss von Embedded System. mit dem Fokus auf eine Programmiersprache besteht das hohe Risiko das du Dich in "syntaktischen Zucker" und anderen Nebensächlichkeiten verlierst. Empfehlung: ISBN-13: 9783898646383 , ISBN-13: 978-1856176057 (starker Focus auf FPGA7ASIC u.ä.) ISBN-13: 978-3864901430 (auch im embedded spielen HighLevel_OS wie Linux eine grosse Rolle)
Interpretationskonventionen und Semiose schrieb: > Streiche C Naja, für effektive Embedded-Programmierung auf Mikrocontrollern sollte man sich gut mit C auskennen. Aber einfach nur die GCC-Spezifika zu lesen ist auch keine gute Idee, denn was macht man wenn man mit dem ARMCC arbeiten muss? Kloppo's Barbier schrieb: > man gcc Daher: Mit einem normalen C-Buch standardkonformes C auf dem PC lernen. Wenn man das beherrscht, funktioniert das zu großen Teilen auch auf µCs, und man hat eine große Problemquelle abgedeckt. Dann kann man sich mit den Details von Mikrocontrollern beschäftigen.
> Streiche C, was du brauchst ist ein grundsätzliches Verständniss von > Embedded System. mit dem Fokus auf eine Programmiersprache besteht das > hohe Risiko das du Dich in "syntaktischen Zucker" und anderen > Nebensächlichkeiten verlierst. > > Empfehlung: > ISBN-13: 9783898646383 , > ISBN-13: 978-1856176057 (starker Focus auf FPGA7ASIC u.ä.) > ISBN-13: 978-3864901430 (auch im embedded spielen HighLevel_OS wie > Linux eine grosse Rolle) Vielen Dank für den Tipp!
Dr. Sommer schrieb: > Daher: Mit einem normalen C-Buch standardkonformes C auf dem PC lernen. > Wenn man das beherrscht, funktioniert das zu großen Teilen auch auf µCs, /Zynismus on Klar weil hello World, bubble sort, GUI aufsetzen, und sonstige PC-C programmiertaktate super relevant für Kaffemaschinensteuerung und andere Embedded Applikationen sind ... /Zynismus off Neee, ein Buch "C auf dem PC" für Embedded Programmierung zu verwenden ist eine Scheiss-Idee. Insbesonders bei den Unmengen Controller-Programmierung büchern und erst recht für cand. inf. im 4. semester.
Interpretationskonventionen und Semiose schrieb: > hello World Kommt immer am Anfang. Interpretationskonventionen und Semiose schrieb: > bubble sort, Algorithmen gibt's überall. Interpretationskonventionen und Semiose schrieb: > GUI aufsetzen Kommt in den wenigsten C-Büchern vor. Ist nämlich nicht Teil von C. Interpretationskonventionen und Semiose schrieb: > und sonstige PC-C > programmiertaktate super relevant für Kaffemaschinensteuerung und andere > Embedded Applikationen sind ... Ja, die ganzen fiesen Details der Speicherverwaltung & Co lernt man besser am PC, wo man komfortable Debugger hat. Wenn man direkt mit "C auf uC" anfängt, hat man 3 Baustellen gleichzeitig: Hardware-Drumherum, der Mikrocontroller selbst und die Programmiersprache. Da ist es besser, wenn man in der Programmiersprache sattelfest ist. Interpretationskonventionen und Semiose schrieb: > und erst recht für cand. inf. im 4. > semester. An vielen Hochschulen wird kein C gelehrt - aus gutem Grund, sofern man kein Embedded macht.
Dr. Sommer schrieb: > Interpretationskonventionen und Semiose schrieb: >> hello World > > Kommt immer am Anfang. Nope, nur dort wo es stdio.h hat. >Interpretationskonventionen und Semiose schrieb: >> bubble sort, >Algorithmen gibt's überall. Nope, speicherintensive Algos nur dort wo es intensiv speicher hat. Und im Embedded geht es selten ums sortieren von Datensätzen, weil es diese Datensätze in einer Kaffeemaschine nicht gibt. >Interpretationskonventionen und Semiose schrieb: >> GUI aufsetzen >Kommt in den wenigsten C-Büchern vor. Ist nämlich nicht Teil von C. Kommt in dem meisten PC-C Büchern vor, insbesonders wenn es um microsoft studio und geschiss geht. Weil heutzutage ist GUI-Programmierung Teil der PC-programmierung. Aber die wenigsten embedded Anwendungen benötigen eine GUI. >Ja, die ganzen fiesen Details der Speicherverwaltung & Co lernt man >besser am PC, wo man komfortable Debugger hat. Oder man nimmt eine dem single purpose/task einer Embedded App genügenden Speicherverwaltung und spart sich die Details - "Keep it simple, Stupid!"
"The Definitive Guide to ARM® Cortex®-M3 and Cortex®-M4 Processors" von Joseph Yiu in der 4. Auflage. Wenn man die 3. Auflage gelesen hat, meint man zwar, daran gäbe es wenig zu verbessern - aber er hat es geschafft.
Interpretationskonventionen und Semiose schrieb: > Nope, nur dort wo es stdio.h hat. Hat es auf Cortex-M mit Semihosting oder SWO. Interpretationskonventionen und Semiose schrieb: > Nope, speicherintensive Algos nur dort wo es intensiv speicher hat Bubblesort ist unter den Sortieralgorithmen minimal speicherintensiv. Interpretationskonventionen und Semiose schrieb: > Und > im Embedded geht es selten ums sortieren von Datensätzen, weil es diese > Datensätze in einer Kaffeemaschine nicht gibt. Bubblesort & Co wird nicht gelehrt, damit man das produktiv so einsetzt, sondern damit man ein Gefühl für Algorithmen und Komplexität entwickelt. In der Praxis sortiert man sowieso mit qsort(). Komplexität ist gerade bei Embedded wichtig, wo Leistung knapp ist. Daher ist das schon ok. Interpretationskonventionen und Semiose schrieb: > Kommt in dem meisten PC-C Büchern vor, insbesonders wenn es um microsoft > studio und geschiss geht. Meinst du Visual C? Damit man keiner mehr GUIs. Wenn schon in C++, worum es hier nicht geht. Außerdem ist es erlaubt, die entsprechenden Kapitel zu überspringen oder ein Buch ohne GUI-Programmierung zu wählen. Außerdem sprach ich von Standard-C - das kennt keine GUI. Interpretationskonventionen und Semiose schrieb: > Oder man nimmt eine dem single purpose/task einer Embedded App > genügenden Speicherverwaltung Ja, aber dazu muss man erstmal verstehen, was Stack, Heap, Automatic Storage, Zeiger usw sind! Damit haben Anfänger erfahrungsgemäß viele Probleme. Das muss man nicht alles auf dem Controller austüfteln.
Walter T. schrieb: > n der 4. Auflage. Wenn man die 3. Auflage Korrektur: die 3. ist die aktuelle Auflage, die 2., die als PDF im Netz herumgeistert.
Dr. Sommer schrieb: > Ja, aber dazu muss man erstmal verstehen, was Stack, Heap, Automatic > Storage, Zeiger usw sind! Damit haben Anfänger erfahrungsgemäß viele > Probleme. Das muss man nicht alles auf dem Controller austüfteln. Dazu braucht es aber kein C oder gar PC-C buch sondern einen Grundkurs an Hardwarearchitektur. Das hat der TO ja auch erkannt.
Interpretationskonventionen und Semiose schrieb: > Dazu braucht es aber kein C oder gar PC-C buch sondern einen Grundkurs > an Hardwarearchitektur. C abstrahiert/generalisiert aber die Hardware und bietet eine andere Sichtweise. Wenn man mit C arbeitet, sollte man die C-Sichtweise kennen, welche in C-Büchern gelehrt wird.
Matthias Z. schrieb: > Nun möchte ich meine C Kenntnisse verbessern und nochmal mein > Rechnerarchitektur-Wissen auffrischen. (Theoretische) Erfahrung mit > Betriebssystemen und Rechnerarchitektur konnte ich bereits während > meines Studiums sammeln. Ich habe mir einenen Mikroprozssor mit ARM > Cortex M4 Architektur gekauft und bin nun dabei damit etwas > rumzuspielen. Datenblätter zu Hand nehmen und sich mal mit den Standardsachen wie Timer, Interrupts beschäftigen. Auch mal mit dem ADC getaktet ein paar Werte erfassen, vielleicht eine NF- aus einem Cd-Spieler etc., dann einen Tiefpassfilter über die Werte jagen (Pointer-Arithmetik!) und auf dem DAC wieder ausgeben. Das ganze dann mal in einem Oszi anschauen. Eventuell mal ein Display an den STM32 hängen und eine FFT darauf zeichnen. Auf der anderen Seite kann man auch mal einen PID auf dem STM32 implementieren. Wenn Du das alles durch hast, dann bist Du eigentlich gut gerüstet für Aufgaben in einem Praktikum.
Dr. Sommer schrieb: > Interpretationskonventionen und Semiose schrieb: >> Dazu braucht es aber kein C oder gar PC-C buch sondern einen Grundkurs >> an Hardwarearchitektur. > > C abstrahiert/generalisiert aber die Hardware und bietet eine andere > Sichtweise. Wenn man mit C arbeitet, sollte man die C-Sichtweise kennen, > welche in C-Büchern gelehrt wird. Diese in den C-PC propagierte "andere" Sichtweise lenkt aber von einer im embedded Bereich hilfreichen weil zweckgerichteten Vorgehensweise ab. Deshalb nochmals: " ein Buch "C auf dem PC" für Embedded Programmierung zu verwenden ist eine Scheiss-Idee." Und Basta!
Interpretationskonventionen und Semiose schrieb: > Diese in den C-PC propagierte "andere" Sichtweise lenkt aber von einer > im embedded Bereich hilfreichen weil zweckgerichteten Vorgehensweise ab. Wenn man C die hardwarenahe controllerspezifische Sichtweise aufzwängen will, wird der Compiler(Optimizer) einem einen Strich durch die Rechnung machen. z.B. durch strict aliasing. Interpretationskonventionen und Semiose schrieb: > " ein Buch "C auf dem PC" für Embedded Programmierung zu verwenden > ist eine Scheiss-Idee." Ohne C-Kenntnisse direkt mit einem Controller rumzufrickeln und irgendwie aus der Hardware/Assembler-Sicht auf C-Programme zu schließen ist eine schlechte Idee. Da kommen unportable, instabile und unwartbare Programme raus. Wenn man in der Lage ist, in Standard-C korrekte Programme zu schreiben, funktionieren die auf allen Plattformen. Sinnlos, sich mental so auf eine Plattform einzuschießen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.