Maschinenorientierte Programmierung
Total Page:16
File Type:pdf, Size:1020Kb
Fachbereich VI - Informatik und Medien Technische Informatik Bachelor Prof. Dr.-Ing. Sven-Hendrik Voß Maschinenorientierte Programmierung (136012/3) Skript zur Vorlesung Autor: Prof. Dr. Sven-Hendrik Voß 14. Januar 2018 - vollst¨andige und korrigierte Version Vorwort und Erl¨auterungen Vorwort Das vorliegende Skript dient als Grundlage fur¨ die Vorlesung Maschinenorientierte " Programmierung\ im zweiten Semester des Bachelor-Studiengangs Technische Infor- " matik Embedded Systems\ an der Beuth Hochschule fur¨ Technik Berlin. Es dient als Referenz fur¨ die in der Vorlesung behandelten Themenbereiche, deckt aber nicht alle pe- ripheren Themengebiete ab. Es ist eine reine Vorlesungsausarbeitung, kein Lehrbuch. Entsprechend ist es sprachlich eher knapp gehalten und inhaltlich sicher an einigen Stellen weit weniger umfangreich als es ein entsprechendes Lehrbuch. Ich hoffe, dass es trotzdem den Studierenden bei der Vor- und Nachbereitung des seminaristischen Unterrichts, sowie der Prufungsvorbereitung¨ hilfreich sein wird. Es gilt zu beachten, dass dieses Skript keinesfalls den Vorlesungsbesuch ersetzt. Dieses Skript stellt nur einen Teil der Unterlagen fur¨ die Vorlesung Maschinenorien- " tierte Programmierung\ dar. Zus¨atzlich werden Kopien der Folien aus der Vorlesung, sowie ausgew¨ahlte Dokumente zum Labor (Befehlsliste 8051 Mikrocontroller, Hinwei- se zur Assembler-Programmierung, Datenbl¨atter, Schaltpl¨ane und Handbucher)¨ zur Verfugung¨ gestellt. Vorlesung und Laborubungen¨ sind aufeinander abgestimmt, wo- bei die praktischen Ubungen¨ der Vertiefung des im Unterricht vermittelten Wissens dienen. Die Laborubungen¨ werden in der Regel mit dem Simulator EdSim simuliert und mit Hilfe eines Software-Entwicklungssystems fur¨ Mikrocontroller der Serie 51 (MC- Tools) auf die Hardware gebracht. Die Handhabung der Software (z.B. EdSim, MC- Tools) muss der Studierende mit Eigenengagement bewerkstelligen. Im Internet gibt es dazu eine Vielzahl von Anleitungen. Viele der Tools beinhalten Kompendien und Ubungsbeispiele.¨ Die Vorlesung vermittelt Ihnen Fachwissen, keine Skills! Zum Inhalt: Die Vorlesung Maschinenorientierte Programmierung\ baut inhaltlich auf " der Veranstaltung Grundlagen digitaler Systeme\ auf. So wird empfohlen, die dort ver- " mittelten Stoffinhalte - insbesondere die der Zahlendarstellungen, Rechnerarithmetik und Booleschen Algebra - vor Teilnahme an dieser Veranstaltung zu wiederholen. Auch die empfohlene Fachliteratur ist zur Vertiefung heranzuziehen. Es sei auch noch auf einen weiteren Aspekt hingewiesen. Bei den Kenntnissen der technischen Informatik - insbesondere im Bereich der Digitaltechnik, Programmierung von Mikroprozessoren, Methoden der Algebra, etc. - kommt es fur¨ angehende Inge- nieurinnen und Ingenieure bzw. Informatiker(innen) nicht nur auf das Verst¨andnis der theoretischen Zusammenh¨ange an, sondern insbesondere auf das zuverl¨assige Verste- hen und Bearbeiten von Ubungsaufgaben.¨ Im Rahmen von Unterrichts-, Klausur-, so- wie Laborvor- und -nachbereitungen empfiehlt es sich, ausreichend Ubungsaufgaben¨ zu bearbeiten. So kann aktiv die Ubertragung¨ der Theorie auf die Anwendung geubt¨ und bearbeitungstechnische Routine erlangt werden. Zur Form: Es hat sich im Sprachgebrauch etabliert, die englischen Fachbegriffe zu ver- Beuth Hochschule fur¨ Technik Berlin II Prof. Dr.-Ing. Sven-Hendrik Voß wenden. Teilweise macht eine deutsche Ubersetzung¨ keinen Sinn oder ist nicht m¨oglich. Sind deutsche Fachbegriffe vorhanden, so werden diese verwendet. Der englische Ter- minologie wird meist in Klammern erg¨anzt oder kursiv hervorgehoben. Das vorliegende Skript basiert auf Fachliteratur und teilweise auf im Internet verfugbaren¨ Unterlagen. Es ist nicht m¨oglich alle Quellen im Detail zu benennen. An dieser Stelle sei den Kol- legen, Autoren und Helfern gedankt, die benannt oder unbenannt zum Gelingen dieses Skriptes beigetragen haben. Der Text des Skriptums wurde naturlich¨ mit LATEX geschrieben. Eingesetzt wurde die integrierte Benutzeroberfl¨ache TeXnicCenter 2.0 Alpha 3 zusammen mit TeX Live 2010 unter MS Windows, sowie die Editoren TeXShop und iTeXMac in Verbindung mit MacTeX unter Mac OS. Verbesserungsvorschl¨age, Hinweise auf Fehler und jedwede qualifizierte Kritik sind will- kommen. Berlin, im September 2012 Sven-Hendrik Voß Hinweis Die Informationen in diesem Dokument werden ohne Rucksicht¨ auf einen eventuellen Patentschutz ver¨offentlicht. Die erw¨ahnten Soft- und Hardware-Bezeichnungen k¨onnen auch dann eingetragene Warenzeichen sein, wenn darauf nicht besonders hingewiesen wird. Sie geh¨oren den jeweiligen Warenzeicheninhabern und unterliegen gesetzlichen Bestimmungen. Das Skript wurde mit gr¨oßter Sorgfalt erstellt und korrigiert. Den- noch k¨onnen Fehler und Ungenauigkeiten nicht ausgeschlossen werden. Fur¨ fehlerhafte Angaben oder gar deren Folgen wird keine juristische Verantwortung oder irgendeine Haftung ubernommen.¨ Beuth Hochschule fur¨ Technik Berlin III Prof. Dr.-Ing. Sven-Hendrik Voß Voraussetzungen • Grundlagen digitaler Systeme • Programmieren I Lehrinhalt und Lernziele Das vorliegende Skript erg¨anzt die Vorlesung Maschinenorientierte Programmierung\. " In dieser Veranstaltung steht die Funktionsweise von Mikrocontrollern und ihren Schnittstellen, sowie der Entwurf und die Programmierung von Systemen mit Mikro- controllern im Mittelpunkt. Voraussetzungen fur¨ die Veranstaltung sind im wesentli- chen die Grundlagen digitaler Systeme, sowie Kenntnisse im Programmieren (und nicht zuletzt Ihr Interesse an der Thematik). Lehrinhalt: 1. Rechnerarchitektur, Harvard- und von-Neumann-Architektur 2. Architektur eines einfachen realen Prozessors anhand eines 8051 Mikrocontrollers 3. Instruktionsverarbeitung 4. Programmierung in Assembler 5. Befehlssatz - arithmetische und logische Befehle 6. Adressierungsarten 7. Steuerbefehle: Sprungbefehle und Unterprogrammaufrufe 8. Programmstrukturierung: Flussdiagramm, strukturierte Programmierung 9. Hardware-/Softwareschnittstellen 10. Assemblerdirektiven 11. Aufbau und Programmierung einfacher I/O-Schnittstellen (Parallele/Serielle Schnittstellen) 12. Interrupt-Programmierung (Hard- und Software-Interrupts, Interrupt-Vektor- Tabelle, Interrupt-Service-Routinen) 13. Einfuhrung¨ in die hardwarenahe Programmierung in C Beuth Hochschule fur¨ Technik Berlin IV Prof. Dr.-Ing. Sven-Hendrik Voß Nach der Lehrveranstaltung sollten Sie in der Lage sein, reale Mikrocontrollerapplika- tionen auf Assemblerebene entwerfen, implementieren und testen zu k¨onnen. Sie ler- nen den Umgang mit g¨angiger Prozessorperipherie, I/O-Schnittstellen und Ans¨atze fur¨ Echtzeit- und Interrupt-Programmierung. Schließlich sollten Sie die Kompetenz erlangt haben, die Leistungsf¨ahigkeit einer Architektur und den Aufwand einer gegebenen Pro- blemstellung auf der Ebene der maschinennahen Programmierung abzusch¨atzen und zu beurteilen welchem Aufwand eine gegebene Implementierung in einer Hochsprache auf der Maschinenebene entspricht. Skripte, Bucher¨ etc. Prof. Dr.-Ing. Sven-Hendrik Voß: Folien und Skript 1. M. Mazidi, J. Mazidi, R. McKinlay: The 8051 Microcontroller and Embedded Systems Using Assembly and C, Prentice Hall, ISBN 013119402X 2. I. Scott MacKenzie, Raphael Chung-Wei Phan: The 8051 Microcontroller (4th Edition), Pearson, ISBN 0132059754 3. Rolf Klaus: Die Mikrokontroller 8051, 8052 und 80C517, Vdf Hochschulverlag, ISBN 3728132594 4.J urgen¨ Walter: Mikrocomputertechnik mit der 8051-Controller-Familie, Springer, ISBN 354066758X 5. Thomas Flik: Mikroprozessortechnik und Rechnerstrukturen, Springer, ISBN 3540222707 6. Klaus Wust:¨ Mikroprozessortechnik, Vieweg und Teubner, ISBN 9783834804617 7. Uwe Brinkschulte: Mikrocontroller und Mikroprozessoren, Springer, ISBN 9783540430957 8. David A. Patterson, John LeRoy Hennessy: Rechnerorganisation und Rechner- entwurf, Oldenbourg, ISBN 3486591908 9. Helmut Malz: Rechnerarchitektur - Eine Einfuhrung¨ fur¨ Ingenieure und Informa- tiker, Vieweg und Teubner, ISBN 3528133791 10. Paul Herrmann: Rechnerarchitektur - Aufbau, Organisation und Implementie- rung, inklusive 64-Bit-Technologie und Parallelrechner, Vieweg und Teubner, ISBN 3834815128 11. Andrew S. Tanenbaum: Computerarchitektur, Pearson, ISBN 9783827371515 12. Klaus Beuth: Digitaltechnik, Vogel Buchverlag, ISBN 3834330841 Beuth Hochschule fur¨ Technik Berlin V Prof. Dr.-Ing. Sven-Hendrik Voß Links im Netz Im Netz finden sich zahlreiche Links zur Assemblerprogrammierung und dem 8051 Mikrocontroller. Hier nur eine kleine Auswahl: • http://www.self8051.de/ • http://www.8052.com • http://www.goblack.de/desy/mc8051chip/ • http://www.ipd.uka.de/~buchmann/microcontroller/ • http://mikrocontroller.rahm-home.de/8051.htm • http://www.controllersandpcs.de • http://et-tutorials.de/Mikrocontroller/ Empfohlene Hilfsmittel und Software: • EdSim51 (kostenloser 8051 Simulator) • Asem-51 (kostenloser Macro-Assembler) • MC-51 Vers. 5.5 (IDE fur¨ Asem-51) • Eclipse (IDE zur Entwicklung von Software) • PL2303 Prolific USB-Seriell-Adapter Treiber Beuth Hochschule fur¨ Technik Berlin VI Prof. Dr.-Ing. Sven-Hendrik Voß Inhaltsverzeichnis Abbildungsverzeichnis XV Tabellenverzeichnis XVII 1 Einfuhrung¨ 1 1.1 Ubersicht¨ . .1 1.2 Technische und mathematische Grundlagen . .3 1.2.1 Zahlensysteme . .4 1.2.2 Komplementdarstellung . .6 1.2.3 Zahlencodierung . .8 1.2.4 Zeichencodierung . .9 1.2.5 Fehlererkennung . 12 1.2.6 Elementare Logikverknupfungen¨ . 13 2 Grundlagen der Rechnerarchitektur 16 2.1 Definition und Grundkonzept . 16 2.2 Aufbau und Struktur . 19 2.2.1 Speicherhierarchie . 20 2.2.2 Ein- und Ausgabewerk .