Fakultät Elektrotechnik und Informationstechnik, Professur für Prozessleittechnik Mikrorechentechnik 1 Organisation Professur für Prozessleittechnik Wintersemester 2010/2011 Qualifikationsziele • Sie können – Algorithmen, Datenstrukturen und Programme in 80x86 Assembler und C lesen, entwerfen, implementieren und debuggen, – sich in neue hardware- und projektspezifische Befehlssatzarchitekturen und Werkzeugketten einarbeiten, – Projekte, die die Programmierung von Mikrocontrollern beinhalten, planen, bewerten und durchführen. TU Dresden, 11.10.2010 MRT1 (c) Urbas 2007-2011 Folie 2 Hypothetisches Beispiel: Anti-Blockier-System • Mechatronische Komponenten: – 1 = Steuereinheit, 2 = Druckmodulator, 3 = Induktionsgeber, 4 = Bremssattel, 5 = Hydraulikleitung • Steuereinheit auf Microcontroller – Ansteuerung der Aktoren, Erfassung des Sensorsignals – Algorithmus zur Steuerung der Bremskraft – Parameter zur Anpassung an verschiedene Konfigurationen – Aufzeichnen der „Geschichte“ – Kommunikation für Parametrierung und Abfrage über CAN-Bus (Bildquelle: http://commons.wikimedia.org/wiki/File:ABS.jpg) TU Dresden, 11.10.2010 MRT1 (c) Urbas 2007-2011 Folie 3 Java, C, C++ oder Assembler? • Java: – Hardwareunabhängig / Denken in Objekten / „bequem“ – Aber: Viel Speicherbedarf für RTE! • C / C++: – Portable Sprache. In Automatisierungsprojekten sehr häufig eingesetzt – C++ = C mit Objekten & deterministisches Verhalten & generische Programmierung --> komplexe AT-Projekte • Assembler: – Maschinennahe Sprache (für jede CPU-familie eine oder mehrere) – Ganz nahe an der Hardware. TU Dresden, 11.10.2010 MRT1 (c) Urbas 2007-2011 Folie 4 Was muss ich für die Programmierung mit Assembler alles wissen? • Hardwarearchitektur – CPU, Register, Speicher, Peripherie • Befehlssatzarchitektur – Operationen und Operanden, – Register, Adressierung des Speichers – Stapelspeicher, Interrupts • Programmiersprache ( Assembler ) – Syntax (Operanden, Variablen, Register, Adressangaben) – Sprünge, Schleifen, Unterprogramme – Makros (Textersetzung) • Algorithmen und Datenstrukturen TU Dresden, 11.10.2009 MRT1 (c) Urbas 2007-2011 Folie 5 Lehrinhalte • Mikrorechnerkonzepte – Architekturen (Stack, Akkumulator, Register) – Befehlssätze, Adressierungsarten • Hardwarenahe Programmierung mit Assembler – – – – Intel 80x86 Prozessorfamilie x86-Assembler (NASM) Datenstrukturen und Algorithmen Kopplung mit technischen Prozessen • Hardwarenahe Programmierung mit C – Portable Programmierung – Datenstrukturen und Algorithmen, Echtzeitverarbeitung TU Dresden, 11.10.2010 MRT1 (c) Urbas 2007-2011 Folie 6 Organisation • Vorlesung: Grundlagen (2 DS/Woche) – Folienvortrag und Tafelbilder – Lauffähige Code-Beispiele – Kontrollfragen • Selbststudium: Vertiefung (30-60 Minuten/Woche) – Folien und Code-Beispiele zur Vorlesung – Kurzreferenz 80x86-Assembler, C – Übungsbeispiele (mit Musterlösungen) • 3 x Praktika (1 DS, 5-10 Std. Vorbereitung/Termin) – Eingangstest, Implementierung, Protokoll TU Dresden, 11.10.2010 MRT1 (c) Urbas 2007-2011 Folie 7 Praktika (ab Mitte November) • μP-Simulator – Modellprozessor mit Akkumulator-Architektur – Visualisierung innerer Arbeitsabläufe • Assembler – Ansteuerung eines Matrix-Displays – Hardwarenahe Programmierung • C-Programmierung – Portable Grafikausgabe in C mit einer Grafikbibliothek für Linux/Mac/Windows TU Dresden, 11.10.2010 MRT1 (c) Urbas 2007-2011 Folie 8 Zeiten und Termine • Vorlesung 11.10.2010 bis 8.12.2009 – – – – Montag 5.DS 14.50 - 16.20 Uhr, BAR/SCHÖ Mittwoch 5.DS 14.50 - 16.20 Uhr, BAR/SCHÖ Sprechstunde: Dienstag 3.DS 11.10 – 12.40, BAR/E24 E-Mail: [email protected] • Einschreibung Praktikumstermine per WWW – Gruppen á 4 Personen (bitte jetzt schon zusammenfinden) – Einweisung voraussichtlich 1.11, 16:10 durch Dr. Schingnitz – Einschreibung WS08/09 Okt Nov Dez bis 5.11 Vorlesung Jan PR Simulator PR Assembler PR C/Grafik TU Dresden, 11.10.2010 MRT1 (c) Urbas 2007-2011 Folie 9 Datum LfdNr Planung 11.10.2010 1 Einführung, Prozessorkonzepte, i80x86 18.10.2010 2 Familie i80x86: Register, Adressierungsarten; Werkzeugkette 20.10.2010 3 Speicheraddressierung, Datentransfer, Operationen 25.10.2010 4 Installation Live-CD; Bedingte Steuerung des Programmflusses 27.10.2010 5 Unterprogramme, Stacks, Interrupts 01.11.2010 6 Makros, Pseudobefehle und Steueranweisungen 03.11.2010 7 Anbindung Prozessperipherie / 16-bit real mode 13.10.2010 HÜ Hausübung Wiederholung INF1 (+INF2) Grobplanung Vorlesung 08.11.2010 HÜ Hausübung Progammentwurf ASM 10.11.2010 8 Grundelemente der Programmiersprache C 15.11.2010 9 Datentypen, Ausdrücke und Typumwandlung 17.11.2010 - Buß- und Bettag 22.11.2010 10 Steuerung des Programmflusses, Felder, Strukturen & Zeiger 24.11.2010 11 Dynamische Datenstrukturen in C 29.11.2010 HÜ 01.12.2010 06.12.2010 08.12.2010 Hausübung Programmentwurf C 12 HÜ Einsatz von Funktionssammlungen Hausübung Funktionssammlungen 13 TU Dresden, 11.10.2010 Einführung in die Echtzeitverarbeitung mit posix-threads MRT1 (c) Urbas 2007-2011 Folie 10 Vorlesungsbegleitende Materialien • Folien • Übungsbeispiele • Kurzreferenzen • Software • Bedienungs- und Installationshinweise http://www.et.tu-dresden.de/typo3/ifa/index.php?id=628 TU Dresden, 11.10.2010 MRT1 (c) Urbas 2007-2011 Folie 11 Linux Live-DVD für MRT 1 und 2 • Bootfähiges ISO-Image für 80x86 Rechner – Linux (ubuntu 8.04) – Direkt von DVD/USB-Stick bootbar – Installation als alternatives Betriebssystem oder in VirtualBox • Integrierte Entwicklungsumgebung Eclipse/CDT – gnu Werkzeugkette mit NASM-Assembler für Linux – dosbox mit MASM (für zweiten Praktikumsversuch) • Erweiterbar – OpenOffice, Spiele, ... TU Dresden, 11.10.2010 MRT1 (c) Urbas 2007-2011 Folie 12 Literatur • Mikrorechentechnik Grundlagen – Flik, T. (2001) Mikroprozessortechnik und Rechnerstrukturen. Berlin : Springer. – Bähring, H. (2002) Mikrorechner-Technik. Berlin: Springer. • Assembler – Backer, R. (2003) Assembler. Maschinennahes Programmieren von Anfang an. Reinbeck : rororo (9.90 EUR) – Carter, P.A. (2006) PC Assembly Tutorial. Deutsche Übersetzung von U. Bicheler. http://www.drpaulcarter.com/pcasm/ • C-Programmierung – Tondo, C.L. & Gimpel, S.E. (1990) Das C-Lösungsbuch. München: Hanser TU Dresden, 11.10.2010 MRT1 (c) Urbas 2007-2011 Folie 13 Voraussetzung Informatik für ET/MT • Informatik 1 – Zahlensysteme, Kodierung, Codes – Boolsche Algebra, Einfache Schaltungen, Rechenwerke – Architektur, Befehlssätze, Adressierung • Informatik 2 – Abstraktion und Modellierung – Felder und Strukturen statt komplizierter Adressierungsarten (rückwärtsgedacht :-) TU Dresden, 11.10.2010 MRT1 (c) Urbas 2007-2011 Folie 14