Very giftable deals
Deliver to Austria
Added to

Sorry, there was a problem.

There was an error retrieving your Wish Lists. Please try again.

Sorry, there was a problem.

List unavailable.
Kindle app logo image

Download the free Kindle app and start reading Kindle books instantly on your smartphone, tablet or computer – no Kindle device required.

Read instantly on your browser with Kindle for Web.

Using your mobile phone camera - scan the code below and download the Kindle app.

QR code to download the Kindle App

Systemprogrammierung für AVR-Mikrocontroller: Interrupts, Multitasking, Fließkommaarithmetik und Zufallszahlen Paperback – 9 Feb. 2009

5.0 5.0 out of 5 stars 6 ratings

Das Buch ist im Wesentlichen zweigeteilt: Im ersten Teil werden Techniken vorgestellt, mit denen parallele Programmabläufe realisiert werden können. Diese reichen von der einfachen automatischen Ablaufsteuerung eines Hintergrundprozesses durch Interrupts bis zur Implementierung eines an die beschränkten Möglichkeiten von AVR-Mikrocontrollern angepassten RTOS. Die Realisierung von Hintergrundprozessen lässt sich auf bequeme Weise mit Interrupts durchführen. Auf die Probleme der Synchronisierung mit Hintergrundprozessen wird ausführlich eingegangen. Interrupts werden zwar auch in ihrer „natürlichen“ Umgebung vorgestellt, aber es werden auch „exotische“ Einsätze von Interrupts beschrieben, z. B. der Einsatz eines Timer-Interrupts als Programmschleifenzähler. Dass sinnvolles Multitasking auch für die kleineren Mikrocontroller der AVR-Serie möglich ist, wird mit Kleinsystemen demonstriert, die auch auf einem ATtiny2313 ablaufen können. Für Controller mit besserer Ausstattung ist das System SLIMOS gedacht – in dem Prozesse dynamische Objekte sind – in dem Prozesse mit Semaphoren und Ereignissen synchronisiert werden können – welches Interrupts als Ereignisse integriert und eine Zeitablaufsteuerung für inaktive Prozesse besitzt. Der zweite Teil des Buches ist der Numerik gewidmet. Höhepunkt ist die Implementierung einer AVR-freundlichen Fließkommaarithmetik, die dennoch den Standard IEEE 754 soweit umsetzt, wie das bei den kleinen AVR-Prozessoren sinnvoll erscheint. Der Vorstellung und Erläuterung dieses Standards ist ein eigenes Kapitel gewidmet. Zusätzlich gibt es noch ein vorbereitendes Kapitel, in dem die Grundbegriffe der Fließkommaarithmetik erklärt werden, das aber auch esoterische Aspekte erläutert, wie etwa das vom Standard geforderte Rechnen mit Unendlichkeiten. Ein weiteres Kapitel beschreibt die Erzeugung von Zufallszahlen. Es wird gezeigt, wie Zufallszahlen mit diskreter Verteilung, Gleichverteilung, Exponentialverteilung und Normalverteilung berechnet werden können. Sie werden als sehr schnelle Versionen in Fixkommaarithmetik bereit gestellt, woraus dann Fließkommaversionen entwickelt werden. Ein Beispiel für ihren Einsatz ist im Simulationsabschnitt des SLIMOS-Kapitels zu finden. Der Anhang bietet u. a. eine sehr AVR-freundliche Realisierung der Methode von Fletcher und die Implementierung von Funktoren, die elegante Problemlösungen gestatten. Alle Programme sind so ausführlich erläutert und kommentiert, dass der Leser keine Schwierigkeiten damit haben dürfte, sie an eigene Bedürfnisse anzupassen. Der für alle Programme verwendete Assembler wird vom Hersteller der AVR-Mikrocontroller kostenlos zur Verfügung gestellt.
Popular paperback recommendations of the month
Browse through our selection of popular books from different genres, such as crime fiction, thrillers, historical novels or romance novels Browse here
Safety and product resources
Images and contacts

Safety and product resources

Images and contacts

Product details

  • Publisher ‏ : ‎ Elektor; 1st edition (9 Feb. 2009)
  • Language ‏ : ‎ German
  • Paperback ‏ : ‎ 404 pages
  • ISBN-10 ‏ : ‎ 3895762180
  • ISBN-13 ‏ : ‎ 978-3895762185
  • Dimensions ‏ : ‎ 17.1 x 2.1 x 23.8 cm
  • Customer reviews:
    5.0 5.0 out of 5 stars 6 ratings

Customer reviews

5 out of 5 stars
6 global ratings

Top reviews from Germany

Reviewed in Germany on 1 April 2009
Beim ersten Durchblättern muß man doch schlucken, denn das Buch ist ganz kompromißlos angelegt. Keine längeren Einführungen, kein Ausruhen bei 10 Seiten über die Geschichte des Multitasking etc. etc. Und der Umfang täuscht! Es sind zwar 400 Seiten, aber die Seiten sind so dicht beschrieben (offenkundig mit TeX), daß bei der bei manchen Büchern üblichen großzügigen Formatierung gut und gerne 500 Seiten herausgekommen wären.
Die Erläuterungen der (vielen) Programme und Programmiertechniken sind detailliert und auch mit Skizzen versehen. Man findet sich zurecht. Aber: Es ist durchweg, 100%tig Assembler. Auch das ein Zeichen der Kompromißlosigkeit. Man begreift aber nach einer Weile, warum das so gemacht worden ist. Z.B. das Kapitel über SLIMOS (slim OS). Da wurde nicht einfach ein Mini-OS aus irgendeinem Lehrbuch genommen und so lange verkleinert, bis es auf AVR paßte. Anscheinend umgekehrt: Ausgangsbasis waren die Fähigkeiten und Schwachheiten eines AVR, die den Aufbau des(mageren) OS bestimmen. Trotzdem ist Vieles, z.B. die Einbettung von Interrupts in das System, elegant gelöst worden.
Kompromißlosigkeit auch hier: An einer Stelle (Abschnitt über die Schläfer) wird die Implementierung künstlich verkompliziert, damit sie an anderer Stelle vereinfacht werden kann. Der Grund: An der ersten Stelle ist mehr Komplexität leicht zu verkraften, an der zweiten Stelle ist weniger Komplexität dringend geboten. Gesteuert wird das von den Defiziten des Befehlssatzes! Solch eine Art der Programmierung ist wohl nur in Assembler möglich. Das Kapitel über Interrupts ist eine Fundgrube! Auf die Idee, den Interrupt des nicht gebrauchten ADC dazu zu verwenden, ein Programm im Hintergrund ablaufen zu lassen, muß man erst mal kommen! Daß man für Multitasking nicht unbedingt ein OS braucht zeigt das Kapitel 5. Dort wird Multitasking für große und kleine AVR implementiert, selbst ein ATtiny2313 wird noch mit 3 parallelen Prozessen ausgestattet!
Die Kapitel mit Fließkomma (3 Kapitel!) enthalten die gründlichste Analyse des IEEE-Standards die ich je zu Gesicht bekommen habe. Ich bin nicht alle IEEE-Implementierungen durchgegangen, aber was ich gesehen habe, hat mich doch in Erstaunen versetzt. Wenn man wie ich vom Standard nur die Bitstruktur der Zahlen kannte (viele andere Bücher gehen kaum darüber hinaus) muß man sich auf trickreiches Programmieren gefaßt machen. Die Implementierung des Standards "nach Geist und Buchstaben" (wie es im Buch heißt) ist aber nicht nur ein schwieriges Unterfangen für den Programmierer, sie verlangt auch einem AVR einiges ab! Zu viel, meint der Autor, und realisiert eine (wie der Autor es nennt) AVR-freundliche IEEE-Teilversion. Hier ist wieder diese Kompromißlosikeit am Werk. Betrachtet man z.B. die Programme für die Multiplikation beider Versionen nebeneinander, so kann man nur sagen: Der Autor hat Recht! Ich jedenfalls könnte mit einem NaN als Rechenergebnis nichts anfangen, und auf das Rechnen mit Unendlich kann ich nach dem Beispiel auf Seite 223 ganz gut verzichten! Übrigens ist die Implementierung komplett, mit Vergleichen (trickreich) und Umsetzung Fließpunkt -> Dezimal(trickreicher!).
Das Beispielprogramm für SLIMOS ist übrigens die Simulation einer Tankstelle mit Semaphoren! Die Synchronisation paralleler Prozesse wird im Buch auch behandelt, sowohl ohne OS (spin-lock) als auch mit OS (Event, Semaphor).
Dann ist da noch der Anhang. Ich kann jedem nur empfehlen, das Kapitel B im Anhang zu lesen. Dort steht, was sich der Autor ausgedacht hat, um mit dem AVR-Assembler modular programmieren zu können und wie man es nicht zu Namenskonflikten kommen läßt. Kapitel A im Anhang hat es noch einmal in sich. Der Abschnitt über Fletcher ist ein Paradebeispiel dafür, was nur mit Assembler gemacht werden kann, aber technisch anspruchsvoll, das steht zu Recht im Anhang. Was aber hat sich der Autor bei Abschnitt A.2 über Funktore gedacht? Es dauert eine Weile, bis man das abstrakte Konzept begriffen hat, und dann dauert es noch mal, bis man die Implementierung begriffen hat. Da hätten echt praktische Beispiele gegeben werden müssen. Der Abschnitt über Speicherverwaltung im Stack läßt sich dann wieder sehr schön verwerten.
Das Buch wird einen Anfänger sicher nur frustrieren, ansonsten aber kann ich das Buch nur dringend empfehlen. Und hier noch eine Empfehlung an den Autor: Schreibe doch ein Buch über Assembler-Programmierung für AVR! Darin könnten alle diejenigen Einführungen und Erläuterungen stehen, die aus guten Gründen im vorliegenden Buch weggelassen wurden.
31 people found this helpful
Report
Reviewed in Germany on 10 October 2013
Ich kann mich den vorgehenden Rezensionen nur anschließen.
Dieses Buch ist ein Muss für jeden der komplexere Programme (mehrere Tasks "parallel") in Assembler programmiert.
Dort wo andere Bücher aufhören geht es hier erst los (klingt jetzt ein bisschen reißerisch, aber im Gegensatz zu manch anderem Buch findet man die hier vorgestellten und sehr gut umgesetzten Konzepte nicht ohne weiteres im Internet).
Was man in der Uni über Multitasking (cooperativ, preemptiv, Semaphore, usw.) lernt, wird hier sauber in Assembler umgesetzt.
Den Teil über Fließkommaarithmetik hab ich in der Praxis bisher nur angekratzt, aber auch der is sehr brauchbar.

Meine einzige Kritik: Dieses Buch hätte ein Hardcover verdient!
One person found this helpful
Report
Reviewed in Germany on 23 July 2009
Anfänger seien gewarnt: Das Buch ist keine Einführung in AVR-Programmierung, sondern hier werden genau die Themen behandelt, die schon im Titel stehen. Und das auf einem fachlich recht anspruchsvollem Niveau. Dinge die bereits z.B. in den AVR-Datenblättern stehen (Befehlssatz, Ansteuerung der HW-Module etc) werden schlicht vorausgesetzt. Ich habe mir das Buch vor allem wg. der Implementation einer Fliesskomma-Arithmetik gekauft, und bin nicht enttäuscht worden. Die Implementation wird präzise an die Besonderheiten der AVR-Familie angepasst, sämtlicher Code ist in AVR-Assembler geschrieben und nachvollziehbar, weil ausführlich kommentiert.
Fazit: Wer die Grundlagen beherrscht und nun anspruchsvollere Programme für Atmels AVR-Controller schreiben möchte (auch mit mathematischem Hintergrund), für den ist dieses Buch eine Fundgrube, zumal man vergleichbare Literatur, v.a. in Deutsch mit der Lupe suchen kann.
20 people found this helpful
Report