Read Systemprogrammierung für AVR-Mikrocontroller: Interrupts, Multitasking, Fließkommaarithmetik und Zufallszahlen by Manfred Schwabl-Schmidt Online

systemprogrammierung-fr-avr-mikrocontroller-interrupts-multitasking-fliesskommaarithmetik-und-zufallszahlen

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....

Title : Systemprogrammierung für AVR-Mikrocontroller: Interrupts, Multitasking, Fließkommaarithmetik und Zufallszahlen
Author :
Rating :
ISBN : 3895762180
ISBN13 : 978-3895762185
Format Type : Other Book
Language : Deutsch
Publisher : Elektor Auflage 1., 9 Februar 2009
Number of Pages : 199 Pages
File Size : 567 KB
Status : Available For Download
Last checked : 21 Minutes ago!

Systemprogrammierung für AVR-Mikrocontroller: Interrupts, Multitasking, Fließkommaarithmetik und Zufallszahlen Reviews

  • Ayanami Rei
    2019-07-23 22:11

    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.

  • Chris
    2019-07-24 04:20

    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!

  • H. Schmidt
    2019-08-15 04:07

    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.