Dieses Buch behandelt Softwaretechniken, die es gestatten, auch anspruchsvollere Programme fr AVR-Mikrocontroller zu entwickeln. Speziell wird im ersten Teil, welcher den Datenstrukturen gewidmet ist, besonders auf die Harvard-Architektur der Controller und die daraus resultierenden Programmiertechniken eingegangen. Die kleinen Arbeitsspeicher der meisten AVR-Controller erfordern immer wieder angepasste Implementierungsmethoden, davon werden einige im Buch vorgestellt, beispielsweise die verdichtete Speicherung und das Sortieren kurzer Zahlenfolgen mit Sortiernetzwerken. Die Implementierung der Buddy-Methode zur Arbeitsspeicherverwaltung zeigt, dass bei der Programmierung von AVR-Controllern nicht nur simple Algorithmen verwendet werden knnen.
Im zweiten Teil des Buches wird die Arithmetik der Controller analysiert. Diese Analyse ist aber kein Selbstzweck, denn sie fht auf Programmiertechniken, die ohne sie nur schwer zu erlangen oder zu erklren wren. Ferner wird eine Fixkommaarithmetik entwickelt, die der Rechenleistung der Controller in vielen Fllen besser angepasst ist als eine rechenleistungsintensive Fliekommaarithmetik. An zwei Beispielen wird gezeigt, wie auf dieser Basis auch hhere Funktionen implementiert werden knnen.
Fr die Programme wird durchweg der AVR-Assembler eingesetzt, der kostenlos zur Verfgung steht. Der Simulator, welcher Teil der Programmierumgebung ist, der auch der Assembler angehrt, gestattet es, die Programme des Buches nachzuvollziehen oder mit ihnen zu experimentieren, ohne einen echten Controller einzusetzen.
Inhaltsverzeichnis
1 Einfhrung
1.1 Die Prozeduren und Programme
1.2 Der Assembler
1.3 Zweimal Arithmetik
1.4 Die verwendeten Symbole
2 Die CPU
2.1 Speicherorganisation
2.2 Register
2.3 Das Statusregister
2.4 Bedingte Sprnge
2.4.1 Eine Demonstration der Vielfltigkeit
2.4.2 Sortiernetzwerke
2.5 Speicherzugriff
2.5.1 Variablen im Datenspeicher
2.5.1.1 Ein Irrgarten
2.5.1.2 Verdichtete Speicherung
2.5.2 Stapel
2.5.2.1 Der Systemstapel
2.5.2.2 Makros zur Stapelberwachung
2.5.2.3 Stapellose Programme
2.5.2.4 Stapel im Eigenbau
2.5.2.5 Rekursion
2.5.3 Schlangen
2.5.4 Externer Datenspeicher
2.5.5 Konstanten im Programmspeicher
2.5.5.1 WISP — ein Winziger SPrachprozessor
2.5.5.2 Ein Suchbaum
2.5.5.3 Kollisionsfreie gestreute Speicherung
2.5.5.4 Selbstprogrammierung
2.5.5.5 Positionsunabhngige Programme
2.5.5.6 Programmdateien im Intel-IIEX-Format
2.5.5.7 Das Problem der Ausdauer
2.6 Sprnge und Tabellen
2.6.1 Sprungtabellen im Arbeitsspeicher
2.6.2 Sprungtabellen im Programmspeicher
2.6.3 Sprungtabellen statt Schleifen
2.7 Speicherverwaltung
2.7.1 Ein System mit fester Blocklnge
2.7.2 buddies
3 Zahlen
3.1 Ganze Zahlen
3.2 Brche
4 Zahlendarstellungen und Computerarithmetik
4.1 Spezielle Summen
4.2 Ganzzahlige Arithmetik ohne Vorzeichen
4.2.1 Addition und Subtraktion
4.2.2 Multiplikation
4.2.3 Dezimalausgabe
4.3 Fixkommaarithmetik ohne Vorzeichen
4.3.1 Addition und Subtraktion
4.3.2 Multiplikation
4.3.2.1 K8,8
4.3.2.2 K0,16
4.3.2.3 KM1,15
4.3.3 Division
4.3.4 x
4.3.5 exp(—x)
4.3.6 Dezimalausgabe
4.4 Ganzzahlige Arithmetik mit Zweierkomplement
4.4.1 Addition und Subtraktion
4.4.2 Shifts
4.4.3 Multiplikation
4.4.3.1 Alleinige Verwendung von MUL
4.4.3.2 Einsatz von MULS und MULSU
4.4.4 Dezimalausgabe
4.5 Fixkommaarithmetik mit Zweierkomplement
4.6 Fixkomma gegen Fliesskomma
Ключевые теги: AVR
|