| Spricht man über Programmierung, denken viele Leute immer noch an Datenbanken und Internetanwendungen. Die stillen Helfer im Alltag werden oft vergessen - aber in jedem Auto befinden sich zahlreiche Microcontroller für Steuerungen und Regelungen von Motorkomponenten oder Zubehör im Innenraum. Durch die sinkenden Kosten der Microcontroller werden diese in immer mehr Geräten eingebaut, wobei die Komplexität der Software ständig zunimmt. Kein Wunder, daß immer mehr Firmen die Microcontroller in Hochsprachen programmieren wollen - reines Assembler ist in vielen Fällen zu aufwendig.
Im vorliegenden Buch stellen die Autoren einige grundsätzliche Dinge vor, die man als Softwareentwickler beachten muß, um mit den Unterschieden zur klassischen PC-basierten Softwareentwicklung fertig zu werden.
Im Anfangsteil beschreiben die Autoren zunächst einige wesentliche Unterschiede in den Programmiersprachen, bzw. die Abweichungen von den üblichen ISO-Standards. Denn Sprachen für Microcontroller müssen Möglichkeiten anbieten wie man feste Adressen oder Register ansprechen kann, oder auch Möglichkeiten bieten um Funktionen auf ganz bestimmte Adressen im Speicher zu legen (z.B. für Interruptvektoren). Ebenfalls gibt es in vielen Fällen keine Heap-Verwaltung, dafür kommen Möglichkeiten der Echtzeitsteuerung hinzu. Dies führt dazu, daß man mit Standard-C oder C++ alleine nicht weiterkommt. Ebenso wichtig ist die Einbindung von Assemblermodulen in die Hochsprachen, auch dafür finden sich entsprechende Beispiele.
Danach werden einigen weit verbreitete Architekturen für Microcontroller vorgestellt und deren Hardware erläutert.
Anschliessend wird ein Zusammenhang zu C++ hergestellt und erläutert, welche Einschränkungen die häufig zu findenden Sprachen compactC++ und Embedded C++ gegenüber dem normalen ISO-C++ aufweisen.
Der restliche Teil des Buchs widmet sich einigen Programmbeispielen für ein Embedded System, in denen alltägliche Aufgaben aus dem Embedded-Bereich vorgestellt werden: die Bedienung serieller Schnittstellen, die Einbindung von Timer-Interrupts, die Ausgabe von Text auf LCD-Displays über verschiedene Schnittstellen und die Reaktion auf externe Hardware-Interrupts. Ebenso wird vorgeführt, wie man komplexere Pixelgrafik auf Displays erzeugt oder Umrechnungen durchführt, sowie Tastaturen abfragt.
Das Buch enthält viele typische Aufgaben, denen man zu Beginn einer Microcontroller-Karriere begegnet - es ist ideal für alle, die in diese Welt einsteigen wollen oder müssen. Die Beispiele sind gut dokumentiert, zum Teil auch unter Verwendung von UML, und nachvollziehbar. Zunächst muß man sich als echter C++ler daran gewöhnen, daß die Autoren natürlich viele Dinge aus der Hochsprachenwelt erstmal als unnötig und zeitfressend ablehnen, aber Microcontrollerentwickler haben eben andere Prioritäten. ;)
|