Praktikumsversuch 1:
Transcription
Praktikumsversuch 1:
Rechnertechnik Fachbereich Informatik Prof. Dr. Bayer/ Prof. Dr. Högl Anleitung zum Praktikum „Rechnertechnik“ Im Praktikum wird ein Experimentierboard (Evaluationboard) verwendet, das im wesentlichen den Mikrocontroller 68332 von Motorola sowie Peripheriekomponenten enthält. Folgende Peripherie ist auf dem Eval-Board vorhanden: • • • • • • • • • • • LCD-Zeilendisplay 8Bit Analog/Digital-Wandler 8Bit Digital/Analog-Wandler RTC (Real Time Clock) RS232 Schnittstelle Communication Schnittstelle (QSPI) TPU-Kanäle an Buchsenleiste Infrarotschnittstelle 4 Taster 4 LEDs Der Microcontroller sowie SRAM und Flash-Speicherbausteine befinden sich auf einem separatem Board (NF300), das auf das Eval-Board aufgesteckt wird. Eval-Board: Eval-Board mit NF-300 und LCD-Display 1/10 Rechnertechnik Fachbereich Informatik Prof. Dr. Bayer/ Prof. Dr. Högl NF300 Als Praktikumssystem benützen wir den NF-300 Rechner der Fachhochschule Nürnberg. Dieser Rechner ist im wesentlichen der MC 68332, ergänzt mit Resetlogik , mit einem SRAMSpeicher (1 MByte) und mit einem Flash-Eprom (). Sämtliche Pins des 68332 sind über seitliche Steckleisten nach außen geführt. Dieser Mikrocontroller besteht aus einer 32-Bit CPU und integrierten Peripheriebausteinen (serieller Schnittstelle, parallele I/0- Ports, Timer). Als Dokumentation steht Ihnen das Buch „Mikrocomputertechnik“ von Prof. Urbanek zur Verfügung, das eine detaillierte Beschreibung des NF300 enthält. Außerdem sind auf der beigefügten CD die im Praktikum verwendeten Entwicklungsprogramme sowie Manuals zum 68332 enthalten. 1 Die Entwicklungsumgebung Der NF-300 wird über eine 10-poliges Kabel und einen PC-Adapter an einen PC mit dem Betriebssystem Windows95 angeschlossen (Host-Rechner). Über diese BDM-Verbindung (BDM = Background Debug Mode) wird der 68332 während der Programmentwicklung von einem Monitorprogramm überwacht und kontrolliert. Damit können Programme geladen werden, Register und Speicherinhalte geschrieben und gelesen werden und Breakpoints gesetzt werden. Anschluß des NF300-Rechners an den PC PC Par. Port 10-poliges Kabel NF300-Rechner BDM-Stecker PC-Adapter Die Bedienung des Systems und die Programmentwicklung erfolgt am Host-Rechner. Dazu werden drei verschiedene Programme verwendet. 2/10 Rechnertechnik Fachbereich Informatik Prof. Dr. Bayer/ Prof. Dr. Högl Mit dem Editor wird der Programmtext erstellt. Als Editor ist jeder beliebige Editor verwendbar, der ASCII-Text erzeugt. Die sog. Source-Dateien erhalten die Extension „src“. Im Praktikum wird der frei verfügbare Editor „PFE“ (Programmers File Editor) eingesetzt. ( Download von http://www.winsite.com/info/pc/win95/misc/pfe101i.zip/) Dieser Editor erlaubt es, die beiden anderen Programme, nämlich Assembler und Debugger, direkt von der Eingabeebene zu starten. Der Assembler (As32.exe) überprüft die Syntax des Programms und übersetzt das im Textformat erstellte Programm in den Maschinencode des Prozessors. Das übersetzte Programm wird im Motorola-spezifischen S-Format in einer Datei mit der Extension „s19“ abgelegt. Mit Hilfe des Debug-Programms (Bd32.exe) wird das Programm in den Speicher des NF300 geladen und gestartet. Die Ausführung des Programms kann ebenfalls mit dem Debugger überwacht werden. Idee Editor Source-Datei "test.src" As32 S-Datei "test.s19" Bd32 NF300 3/10 Rechnertechnik Fachbereich Informatik Prof. Dr. Bayer/ Prof. Dr. Högl Bedienung des Editors Der Editor PFE (pfe32.exe) hält sich bei der Bedienung an die Windowskonventionen und verfügt über ein gutes Hilfesystem (in Englisch), so daß hier auf eine detaillierte Anleitung verzichtet werden kann. Folgende Hinweise sind für das Praktikum hilfreich: • Die Zeilennumerierung sollte aktiviert werden, da bei Fehlermeldungen des Assemblers immer die Zeilennummer angegeben wird. • Unter dem Menüeintrag „Execute“ kann direkt der Debugger/Monitor und der Assembler gestartet werden 4/10 Rechnertechnik Fachbereich Informatik Prof. Dr. Bayer/ Prof. Dr. Högl 1.1 Assembler Alle Eingaben in Assembler erfolgen von einem normalen Texteditor aus. Jede Zeile wird mit RETURN abgeschlossen. Das Assemblerformat für die Eingabe der Quellcodes ist wie folgt: [Labelfeld] OpCode Quelle,Ziel [; Kommentar] ACHTUNG: Zwischen Quelle und Ziel darf NUR ein Komma stehen. Dieses darf NICHT aus optischen Gründen durch ein Leerzeichen ergänzt werden, sonst erzeugt der AS32 einen falschen Code ! Die Felder in eckigen Klammern sind optional. Wird kein Label verwendet, so muß die erste Spalte frei bleiben. Nach dem Assemblieren hat der Assembler davor eine Spalte für die generierten Hexcodes eingefügt. Die EQU (:= EQUate) Anweisung ist eine Pseudoassembler Anweisung. Sie ermöglicht das Arbeiten mit verständlichen Namen. Allen Adressen und Konstanten gibt man vor dem eigentlichen Programmstart Namen, sog. Labels. Damit hat man leicht zu merkende Namen gegen schwer zu merkende Hexzahlen eingetauscht. Der Assembler ersetzt während des Assemblierens alle Namen durch die ursprünglichen Werte. 5/10 Rechnertechnik Fachbereich Informatik Prof. Dr. Bayer/ Prof. Dr. Högl 1.2 Kommandos des Debuggers BD 32 BF <start> <end> <data> [;<option>] (Block Fill) Füllt einen Bereich mit einem definierten Inhalt. Mögliche Optionen: „;b“ (byteweise), „;w“ (word = default), und „;l“ (long-word) MD [<address>] [<count>] [;<option>] (Memoy Display) Zeigt eine definierte Anzahl von Speicheinhalten an. MM [<address>] [;<option>] (Memoy Modify) Zeigt Speicheinhalte an, und ermöglicht die Veränderung derselben. Mit „.“ kann die Eingabe abgeschlossen werden. LO <filename> [<offset>] (Load) Lädt ein Object-Code-File in den Speicher des Zielsystems. Es werden Motorola S1, S2 und S3-Record´s akzeptiert. ASM [<address>] (Assembler) Disassembliert zuerst den Programmcode an der spezifizierten Adresse, und ermöglicht die Eingabe eines neuen Codes. Dieser wird assembliert und in den Speicher abgelegt. Anschließend wird der nächste Befehl angezeigt. Beenden durch Eingabe von „.“. DASM [<address> [count]] (Disassembler) Disassembliert eine Anzahl von von Befehlen ab der angegebenen Adresse. Anzeige / Veränderung von Registerinhalten RD (Register Display) Zeigt die Inhalte der CPU-Register und disassembliert den Befehl, auf den der Programmzähler zeigt. RM [<registername>] (Register Modify) Erlaubt es, die CPU-Registerinhalte zu verändern. Optional kann eines der folgenden Zeichen eingegeben werden: ´=´ schreiben ohne zum nächsten Register zu gehen. ´^´ schreiben und zum vorigen Register gehen. ´v´ schreiben und zum nächsten Register gehen. ´.´ beenden 6/10 Rechnertechnik Fachbereich Informatik Prof. Dr. Bayer/ Prof. Dr. Högl Breakpoints BR [<address> [<mask>]] Setzt an der spezifizierten Adresse einen Breakpoint. Es sind maximal 4 möglich. Die Eingabe von „BR“ zeigt alle gesetzten Breakpoints an. NOBR [<address1> [address2> [<address3> [address4>]]]] Entfernt die entsprechenden Breakpoints. Wurde keine Adresse angegeben, so folgt die Frage „Kill all breakpoints (Y/N)?“. Prozessor Control GO [<address>] Startet die Programmausführung an der angegebenen Adresse. Wurde auf die Adressangabe verzichtet, erfolgt Programmstart ab Programmcounteradresse. RESET Restart wie bei Power-On. RESTART Wie Hardware Reset durch ext. Taster. STOP Stoppt den Prozessor am Ende des aktuellen Befehls. T [<Bedingung>] (Trace) Trace (Unterprogramme werden ebenfalls im Trace-Mode durchlaufen). S [<Bedingung>] (Step) Step (Unterprogramme werden in Echtzeit durchlaufen). Beispiele: T PC==$4004 Trace, bis <PC> = HEX 4004 S *LoopCounter <23 Step, bis die Variable unter der Adresse „LoopCounter“ kleiner als 23 wird. Mit „ESC“ wird die TRACE/STEP Ausführung beendet. 7/10 Rechnertechnik Fachbereich Informatik Prof. Dr. Bayer/ Prof. Dr. Högl Sonstige Kommandos * <Kommentar> Mit „*“ beginnende Zeilen werden als Kommentarzeilen gewertet. CLS Löscht den Bildschirminhalt und positioniert der Cursor in die erste Zeile. DO <filename> Öffnet das angegebene File, liest den Text und führt die Befehle aus, wie wenn sie von der Tastatur eingegeben werden. DOS [<kommandozeile>] Unterbricht den Debugger vorübergehend um DOS-Kommandos eingeben zu können. Rückkehr mit „exit“ möglich. EXIT oder QUIT Beenden den Debugger. Das Zielsystem bleibt in dem Zustand wie vor Ausführung des Befehls. LOG [<filename> / OFF] Zeichnet eine Reihe von Debug-Kommandos in einem File auf. PORT [<port> <speed>] Ohne angegebene Parameter wird der aktuelle Port (LPT1..,COM1..) mit dessen Einstellung angezeigt. Wird ein neuer Port angegeben, so wechselt der Debugger zu diesem. SD [<start> [<end>]] Listet den Inhalt der Symboltabelle auf. SET [<symbolname> <ausdruck>] Nimmt den angegebenen Symbolnamen in die Symboltabelle auf. 8/10 Rechnertechnik Fachbereich Informatik Prof. Dr. Bayer/ Prof. Dr. Högl NF300 Das Praktikumsboard (NF300) besteht im wesentlichen aus • Mikrocontroller M68332 • externem SRAM-Speicher mit 256 Kbyte • externem FEPROM mit 1 Mbyte Der Mikrocontroller selbst ist ein komplettes Rechensystem und enthält • internes RAM • serielle Schnittstellen (SCI und QSCI) • 8 Bit Parallelports E und F • einfacher Timer • Timerprozessor (TPU) • SIM (System Integration Modul) 9/10 Rechnertechnik Fachbereich Informatik Prof. Dr. Bayer/ Prof. Dr. Högl 1.3 Die Lage der externen Speicher wird durch Konfigurationsregister im SIM-Block des 68332 bestimmt. Im Praktikum beginnt das SRAM an der Adresse $0, das FEPROM beginnt ab Adresse $800000. Der Adreßraum des 68332 umfasst 16 Mbyte und ist für das Praktikum folgendermaßen aufgeteilt: Belegung des Adressraums: $FFFFFF $FFFA00 Register $8FFFFF FEPROM $800000 Daten Programm $C00 Stack $3FFFF SRAM Vektortabelle $0 $0 10/10