| Inhalt Fußnoten |

# Fußnoten

## Fußnote 7.1-1 |

Die gleiche Entwicklung kann man natürlich auch bei den universellen Mikroprozessoren und den Mikrocontrollern beobachten.

## Fußnote 7.1-2 |

vgl. Abschnitt 6.2.1 in KE6.

## Fußnote 7.1-3 |

vgl. K1705, KE7, A5.8

## Fußnote 7.1-4 |

Zum DMA-Verfahren vgl. K1705, KE4, A3.7.

## Fußnote 7.1-5 |

Z.B. Texas Instruments TMS320C4x, Analog Devices ADSP-2106x SHARC.

## Fußnote 7.1-6 |

TPERIOD entspricht den Latches der Zähler im MC6840, s. KE5.

## Fußnote 7.1-7 |

Dies unterscheidet ihn von vielen Zeitgeber-Modulen anderer Prozessoren, die als freilaufende Zähler realisiert sind.

## Fußnote 7.1-8 |

Z.B der Baustein AD1847 (SoundPort) von Analog Devices mit einer Abtastrate von 5,5-48 Mhz, Verstärker- und Mikrophoneingang sowie einem Verstärkerausgang.

## Fußnote 7.1-9 |

Es sind natürlich auch Anwendungen denkbar, in denen die Richtungen - gesteuert durch eine Absprache der Partner - wechseln können.

## Fußnote 7.1-10 |

Zur synchronen Übertragung vgl. K1705, KE7, A5.7.

## Fußnote 7.1-11 |

Dennoch soll darauf hingewiesen werden, daß die SPORTs keine universellen, synchronen/asynchronen seriellen Schnittstellen (USART - Universal Synchronous/Asynchronous Receiver/Transmitter) darstellen. Die Übertragung wird insbesondere nicht durch ein Start-Stop-Protokoll - wie bei der V.24-Schnittstelle - gesichert. Sofern Sie solch ein Protokoll benötigen, müssen Sie es selbst durch Software nachbilden.

## Fußnote 7.1-12 |

Ihre Bezeichnungen sind im Assembler bekannte und "geschützte" Namen.

## Fußnote 7.1-13 |

Für Kenner: Umwandlung nach der CCITT-Empfehlung G.711 (µ-law, A-law).

## Fußnote 7.1-14 |

Diese Register werden wir weiter unten im Detail besprechen.

## Fußnote 7.1-15 |

IF (NOT) FLAG_IN bzw. SET/RESET/TOGGLE FLAG_OUT.

## Fußnote 7.1-16 |

Beide Algorithmen komprimieren vor dem Senden 13-bit-Werte in 8-bit-Zahlen und dekomprimieren beim Empfangen diese 8-bit-Zahlen wiederum zu 13-bit-Zahlen.

## Fußnote 7.1-17 |

Nicht eingerechnet sind hier Wartezyklen, die u.U. beim Zugriff auf einen Puffer im externen Speicher benötigt werden.

## Fußnote 7.1-18 |

Sie können in speziellen Anwendungen für das Senden und Empfangen auch identisch sein.

## Fußnote 7.1-19 |

Insbesondere darf jedes Steuersignal zur Vermeidung von Kurzschlüssen nur von einem der Partner erzeugt, von allen anderen jedoch nur ausgewertet werden.

## Fußnote 7.1-20 |

Dieses Signal kann von externen Bausteinen ausgewertet werden.

## Fußnote 7.1-21 |

Bei der Dateieingabe muß der richtige Pfad mit angegeben werden.

## Fußnote 7.1-22 |

Vor einem eventuellen Neustart müssen Sie den Prozessor durch den Befehl RE im Befehls-Eingabefenster zurücksetzen.

## Fußnote 7.1-23 |

U.U müssen Sie dazu leider den Simulator verlassen (Fehlermeldung: File empty).

## Fußnote 7.1-24 |

Wie bereits gesagt, spricht man hier vom Mikrorechner-Modus.

## Fußnote 7.1-25 |

Hier liegt der sog. Mikroprozessor-Modus vor.

## Fußnote 7.1-26 |

Im Unterschied dazu besitzt der MC6809 ein kombiniertes Lese-/Schreibsignal R/W.

## Fußnote 7.1-27 |

Während dieser Zeit arbeiten die seriellen Schnittstellen jedoch weiter.

## Fußnote 7.1-28 |

Wir sprechen im weiteren vom Booten in Ermangelung eines besseren deutschen Begriffs.

## Fußnote 7.1-29 |

Dies können mehrere Speicherbausteine, aber auch ein einziger 64-kbyte-Baustein sein.

## Fußnote 7.1-30 |

Diese sind in den Registerdarstellungen der Anhänge zu KE6 und KE7 nachzulesen.

## Fußnote 7.1-31 |

Diese Adresse ist (nach Tabelle 6.3-10 in KE6) die Anfangsadresse des RESET-Interruptvektors (Reset/Restart Vector). Spätestens in der Speicherzelle 0x003 muß ein Sprungbefehl zum Beginn des auszuführenden Programms stehen. Die unteren Wörter der Boot-Seite enthalten i.d.R. die Interrupt-Vektortabelle.

## Fußnote 7.1-32 |

Die Seitenlänge 0 bedeutet einen Boot-Bereich von 32 Bytes, von denen 24 übertragen werden.

## Fußnote 7.1-33 |

Verändern Sie vorher zur Kontrolle einige Wörter im Programmspeicher.

## Fußnote 7.2-1 |

Die folgenden Ausführungen gelten weitgehend für alle Mitglieder der ADSP-21xx-Familie.

## Fußnote 7.2-2 |

Das ist das Hardware-System, auf dem das Programm als Anwendung laufen soll.

## Fußnote 7.2-3 |

Natürlich bieten auch die anderen DSP-Hersteller vergleichbare Systeme für ihre Prozessoren an.

## Fußnote 7.2-4 |

Zur Erinnerung: Die eckigen Klammern bezeichnen optional angebbare Befehlsteile.

## Fußnote 7.2-5 |

Sofern Sie diese Fehlermeldungen speichern wollen, müssen Sie sie durch einen DOS-Befehl in eine Datei umleiten.

## Fußnote 7.2-6 |

Neben den hier aufgeführten Direktiven gibt es noch einige weitere, auf die wir nicht eingehen wollen.

## Fußnote 7.2-7 |

Achtung: Hier kennzeichnen die eckigen Klammern keinen optionalen Parameter, sondern - wie in vielen höheren Programmiersprachen - die Feldlänge.

## Fußnote 7.2-8 |

Legen Sie sich zunächst eine Sicherungskopie der Originaldatei an.

## Fußnote 7.2-9 |

Den Fall, daß das Assembler-Modul vom C-Compiler erzeugt wird, wollen wir hier nicht weiter betrachten.

## Fußnote 7.2-10 |

Die ausgegebenen Objektcode-Module werden vom Linker (s. Abschnitt 7.2.4) zu einem ausführbaren Programm zusammengefügt.

## Fußnote 7.2-11 |

verkürzend oft mit 'OpCodes' bezeichnet.

## Fußnote 7.2-12 |

Das Programmlisting ist auch die einfachste Form der Programm-Dokumentation.

## Fußnote 7.2-13 |

Korrekt heißt es wohl Präprozessor.

## Fußnote 7.2-14 |

Dadurch wird die gemischte Programmierung einer Anwendung in Assembler und C sehr erleichtert.

## Fußnote 7.2-15 |

Einige Direktiven existieren sowohl in C- wie in Assembler-Notation (s.u.).

## Fußnote 7.2-16 |

Zur Wirkung eines Macro-Aufrufes s. KE2.

## Fußnote 7.2-17 |

Der Schrägstrich - Backslash - zeigt an, das die Macro-Definition in der nächsten Zeile fortgesetzt wird.

## Fußnote 7.2-18 |

Assemblerbefehle werden durch ein Semikolon abgeschlossen; Kommentare in diesen Zeilen durch '{....}' geklammert.

## Fußnote 7.2-19 |

Korrekt muß es wohl 'Präprozessor' heißen.

## Fußnote 7.2-20 |

Das Segment muß in der Systemspezifikations-Datei zum System Builder beschrieben worden sein.

## Fußnote 7.2-21 |

Dies liefert eine Alternative zur Angabe mehrerer Boot-Seiten über BOOT=0 ... 7.

## Fußnote 7.2-22 |

Beachten Sie, daß hier die spitzen Klammern gesetzt werden müssen und nicht nur zur Beschreibung der Befehlssyntax dienen.

## Fußnote 7.2-23 |

Dies kann auch eine Bibliothek von Macros sein.

## Fußnote 7.2-24 |

Beachten Sie, daß die spitzen Klammern um den Dateinamen gesetzt werden müssen.

## Fußnote 7.2-25 |

vgl. auch die C-Prozessor-Direktive #DEFINE.

## Fußnote 7.2-26 |

Die Regeln zum Aufbau von symbolischen Konstanten werden wir im Abschnitt 7.2.3.4 beschreiben.

## Fußnote 7.2-27 |

Dieser Switch sollte immer gesetzt werden, wenn der C-Compiler benutzt wird, da dieser stets kontext-sensitiv ist.

## Fußnote 7.2-28 |

Dieser Switch ist daher mit der #DEFINE-Direktive vergleichbar.

## Fußnote 7.2-29 |

Der Assembler erzeugt dennoch stets den richtigen OpCode, solange die Teiloperation korrekt angegeben wurden.

## Fußnote 7.2-30 |

Zwischen Groß- und Kleinbuchstaben wird nur unterschieden, wenn beim Assembleraufruf der Switch '-c' gesetzt wird.

## Fußnote 7.2-31 |

im Unterschied zum Simulator

## Fußnote 7.2-32 |

Sie werden merken, daß diese Meldungen leider nicht sehr aussagekräftig sind.

## Fußnote 7.2-33 |

vgl. die Assembler-Direktiven .EXTERNAL, .ENTRY, .GLOBAL.

## Fußnote 7.2-34 |

RAM oder ROM, Daten- oder Programmspeicher, interner oder externer Speicher

## Fußnote 7.2-35 |

vgl. die Assembler-Direktive .INIT.

## Fußnote 7.2-36 |

bzw. Emulator

## Fußnote 7.2-37 |

bzw. Emulator

## Fußnote 7.2-38 |

Eine Reihe anderer Switches wird nur im Zusammenhang mit dem C-Compiler benötigt.

## Fußnote 7.2-39 |

d.h. wenn sie nicht im gleichen Unterverzeichnis wie LD21 liegen,

## Fußnote 7.2-40 |

Hierauf wollen wir nicht weiter eingehen.

## Fußnote 7.2-41 |

Das Booten von Datenpuffern in den externen Speicher geschieht sinngemäß.

## Fußnote 7.2-42 |

Auf eine genaue Erklärung der einzelnen Einträge wollen wir hier verzichten, da der Linker im Rahmen des Praktikums nur "Mittel zum Zweck" ist.

## Fußnote 7.2-43 |

Genau betrachtet, erzeugt er stets alle drei Dateien, von denen aber jeweils nur die im Bild dargestellten von Bedeutung sind.

## Fußnote 7.2-44 |

In dieser Datei '.BNM' sind - wie beschrieben - Programm- und Daten-Bytes gemeinsam gespeichert.

## Fußnote 7.2-45 |

.BNM enthält das höherwertige, .BNL das niederwertige Byte.

## Fußnote 7.2-46 |

Die Endung '.EXE' muß nicht angegeben werden, da sie vom PROM-Splitter als Voreinstellung genommen wird.

## Fußnote 7.2-47 |

Der Simulator SIM2101 unterstützt keine Boot-Seiten mit weniger als 2048 Wörtern.

## Fußnote 7.2-48 |

nur sinnvoll für Boot-Seiten mit weniger als 2048 Wörtern.

## Fußnote 7.2-49 |

Dies ist für Prozessoren der ADSP-21xx-Familie unerläßlich, die über einen internen Programmspeicher geringerer Kapazität verfügen.

## Fußnote 7.2-50 |

8 Boot-Seiten der Länge 512 (=2048 byte) passen in ein 16-kbyte-EPROM.

## Fußnote 7.2-51 |

Natürlich kann sie der Benutzer auch selbst schreiben.

## Fußnote 7.2-52 |

Jede Boot-Seite besteht aus 2048 32-bit-Wörtern, vgl. Abschnitt 7.1.4.

## Fußnote 7.2-53 |

vgl. Abschnitt 7.1.4

## Fußnote 7.2-54 |

vgl. die Direktive '.PORT'.

## Fußnote 7.2-55 |

eine sog. I/O-Page, vgl. K1705, A1.10

## Fußnote 7.2-56 |

s. Abschnitt 7.2.6.5.

## Fußnote 7.2-57 |

Die Simulatoren SIM21xx für die anderen Mitglieder der DSP-Familie ADSP-21xx unterscheiden sich nur in den Funktionen für die jeweils implementierten Komponenten und Speichermodule.

## Fußnote 7.2-58 |

Dies ist leider während der Präsenzphase des Praktikums der Fall.

## Fußnote 7.2-59 |

Diese Dateien werden beim normalen Beenden des Simulators gelöscht, können aber nach einem Programmabbruch im Fehlerfall bestehen bleiben und sollten dann gelöscht werden.

## Fußnote 7.2-60 |

gegeben durch den Zustand aller Register und Speicherbereiche, durch die Symbole und festgelegten Unterbrechungspunkte (Breakpoints). S. Befehl 'STATE'

## Fußnote 7.2-61 |

Beenden des Programms mit 'Quit' unterdrückt die Abspeicherung der Fensterkonfiguration.

## Fußnote 7.2-62 |

Dieser Switch sollte immer gesetzt werden, wenn der C-Compiler benutzt wird, da dieser stets kontext-sensitiv ist.

## Fußnote 7.2-63 |

Es handelt sich um die vollständige Menge der C-Operatoren.

## Fußnote 7.2-64 |

im Unterschied zum Assembler

## Fußnote 7.2-65 |

Menü:Register, Eintrag: Control Register

## Fußnote 7.2-66 |

Selbstverständlich kann anstelle des symbolischen Ausdrucks auch die absolute Adresse angegeben werden.

## Fußnote 7.2-67 |

und der Einsendeaufgaben zu KE6

## Fußnote 7.2-68 |

mit der Ausnahme, daß der Simulator nicht gerade ein Programm ausführen darf (Running).

## Fußnote 7.2-69 |

vgl. auch Anhang C dieser KE

## Fußnote 7.2-70 |

Wenn Sie einige oder alle der beschriebenen Befehle ausprobieren wollen, sollten Sie beide Fenster (Command Window, Command Output Window) öffnen.

## Fußnote 7.2-71 |

Im Rahmen dieses Praktikums werden Sie nur eine kleine Anzahl von Befehlen benötigen. Den Rest beschreiben wir hier nur der Vollständigkeit halber.

## Fußnote 7.2-72 |

Die Auswertung von Ausdrücken mit dem '?'-Operator bietet dem Benutzer die Möglichkeit, den Simulator wie einen "Taschenrechner" zu benutzen.

## Fußnote 7.2-73 |

Das Suchen nach Marken geschieht aber besser durch den Befehl '? Symbol'

## Fußnote 7.2-74 |

Diese Möglichkeiten funktionieren leider nur für Zahlen in dezimaler und hexadezimaler Darstellung.

## Fußnote 7.2-75 |

vgl. Tabelle in Anhang C.

## Fußnote 7.2-76 |

Für die Angabe des Bereichs stehen die beiden Möglichkeiten aus Abschnitt 7.2.6.3 zur Verfügung.

## Fußnote 7.2-77 |

Auf einfache Weise können dadurch insbesondere Abtast- und Ausgabewerte eines Algorithmus der digitalen Signalverarbeitung in Form eines analogen Signals gezeigt werden.

## Fußnote 7.2-78 |

vgl. die Assembler-Direktive '.INIT'.

## Fußnote 7.2-79 |

Der durch den Breakpoint bezeichnete Befehl selbst wird nicht mehr ausgeführt.

## Fußnote 7.2-80 |

Dies ist insbesondere bei Vergleichsausdr¨cken der Fall.

## Fußnote 7.2-81 |

Der einfachste Ausdruck besteht aus der Angabe eines einzigen Registers. Eine Unterbrechung wird bei jeder Änderung des Registerwertes erzeugt.

## Fußnote 7.2-82 |

vgl. die Tabelle im Anhang C.

## Fußnote 7.2-83 |

Beim ADSP-2101 können als Interruptquellen die Signale IRQ0-2 sowie die SPORT-Signale SCLKi, RFSi, TFSi gewählt werden.

## Fußnote 7.2-84 |

Insbesondere muß in SPORT#1 die Festlegung zwischen der Nutzung als serielle Schnittstelle (mit ihren Rahmen-Synchronisiersignalen) und der alternativen Nutzung (mit den Interrupteingängen IRQ0, IRQ1) getroffen werden. Das selektierte Rahmensignal muß außerdem als extern erzeugt definiert sein.

## Fußnote 7.2-85 |

vgl. Tabelle im Anhang C.

## Fußnote 7.2-86 |

Wenn Sie im Defaults Menu (Menu: MISC, Eintrag: Defaults) die Wahl Echo enabled getroffen haben, wird im Befehls-Ausgabefenster (Command Output Window) der jeweils als nächster auszuführende Befehl dargestellt.

## Fußnote 7.2-87 |

Diese Angaben können zur Laufzeit-Optimierung des Programms herangezogen werden.

## Fußnote 7.2-88 |

d.h. solchen mit vielen Verzweigungen im Flußdiagramm,

## Fußnote 7.2-89 |

als ASCII-Zeichen '0' und '1' getrennt durch Leerzeichen oder Wagenrücklauf.

## Fußnote 7.2-90 |

nicht das Schließen !

## Fußnote 7.2-91 |

Start Keystroke Recording, Stop Keystroke Recording, Playback Keystroke File

## Fußnote 7.2-92 |

Dies sollte kein Anwenderprogramm-Aufruf sein, da der Simulator selbst sehr viel Speicherplatz benötigt. Wenn Ihr PC keinen Erweiterungsspeicher (Extended Memory) besitzt, ist auch die Ausführung aller MS-Dos Kommandos nicht sichergestellt.

## Fußnote 7.P-1 |

genauer eigentlich der Auffrischabstand.

## Fußnote 7.P-2 |

Die folgenden NOPs dienen lediglich dazu, die vier Wörter für jeden Interruptvektor zu belegen. Sie werden nicht ausgeführt und können daher durch jeden anderen Befehl ersetzt werden.

## Fußnote 7.3-1 |

das bereits in KE7, Abschnitt 7.2.1, kurz erwähnt wurde

## Fußnote 7.3-2 |

eine Art minimales Betriebssystem

## Fußnote 7.3-3 |

Darüber hinaus steht Im EPROM noch jede Menge Platz für eigene Anwendungsprogramme zu Verfügung.

## Fußnote 7.3-4 |

oder auch Converter/Deconverter

## Fußnote 7.3-5 |

Dies entspricht einer Abtastrate von max. 48 kHz.

## Fußnote 7.3-6 |

Auf die Kopplung der Komponenten untereinander gehen wir in Abschnitt 7.3.2.3 ausführlicher ein.

## Fußnote 7.3-7 |

Die Signale werden jeweils mit L für linker Kanal und R für rechter Kanal bezeichnet.

## Fußnote 7.3-8 |

Die ausgewählten Kanäle müssen nicht aus dem selben Signalpaar stammen.

## Fußnote 7.3-9 |

vgl. K1705, KE7

## Fußnote 7.3-10 |

Sie sind paarweise vorhanden und wandeln die 16-bit-Zahlen nach dem bereits in KE7, Abschnitt 7.1.3, beschriebenen (logarithmischen) Verfahren A-Law bzw. m-Law in 8-bit-Zahlen um.

## Fußnote 7.3-11 |

Auf die möglichen Datenformate gehen wir im nächsten Abschnitt genauer ein.

## Fußnote 7.3-12 |

Dies ist einfach eine Summation der digitalen Werte.

## Fußnote 7.3-13 |

Die Richtung 'Ein'- bzw. 'Aus'-ist hier vom AD1847 aus gesehen.

## Fußnote 7.3-14 |

Darauf werden wir im Abschnitt 7.3.2.3 noch eingehen.

## Fußnote 7.3-15 |

d.h. daß der zulässige Spannungsbereich an diesen Eingängen über- oder unterschritten wird.

## Fußnote 7.3-16 |

Es werden nur vier Bereiche unterschieden und in 2 Bits codiert.

## Fußnote 7.3-17 |

Genauere Informationen finden Sie im Datenblatt zum AD1847.

## Fußnote 7.3-18 |

XX steht fürden Inhalt des adressierten 8-bit-Steuerregisters

## Fußnote 7.3-19 |

Line 1, Line 2, AUX 1 und Line 1 gemischt mit Line Out

## Fußnote 7.3-20 |

VdB = 20 log10V.

## Fußnote 7.3-21 |

1,5 dB entsprechen einer Verstärkung von 1,1885; 22,5 dB einer Verstärkung von 13,335.

## Fußnote 7.3-22 |

Beim Monobetrieb wird nur der linke Kanal gelesen und ein Wert auf beiden Kanälen ausgegeben.

## Fußnote 7.3-23 |

s. Bild 7.3-2 und Datenblatt im Anhang.

## Fußnote 7.3-24 |

16-bit-Zahlen werden vor der Kompression durch Abschneiden (Truncation)der unteren Bits auf 13 bzw. 14 Bits gekürzt, nach der Dekompression durch Auffüllen der unteren Bits mit 0 erweitert.

## Fußnote 7.3-25 |

s. Abschnitt 7.3.2.3.

## Fußnote 7.3-26 |

Ausnahme: Kettenschaltung von mehreren Codecs AD1847.

## Fußnote 7.3-27 |

Beim DSP: 24 oder 32 Kanäle.

## Fußnote 7.3-28 |

48 kHz

## Fußnote 7.3-29 |

für den linken und den rechten Kanal

## Fußnote 7.3-30 |

vgl. dazu Bild 6.3-14 in KE6

## Fußnote 7.3-31 |

Wie beim ADSP-2101 ist die Startadresse beim Reset wiederum 0x0000.

## Fußnote 7.3-32 |

Im Systemsteuer-Register gibt es für den gesamten externen Programmspeicher eine gemeinsame Festlegung der Wartezyklen.

## Fußnote 7.3-33 |

vgl. Bild 7.1-13 in KE7.

## Fußnote 7.3-34 |

Beispiele: AR=IO(0x0000), IO(0x0000)=MR

## Fußnote 7.3-35 |

Interrupt Force and Clear, vgl. Abschnitt 6.3.4.2 in KE6.

| Inhalt Fußnoten |