Fakultät Elektrotechnik und Informationstechnik, Professur für Prozessleittechnik Mikrorechentechnik 1 Organisation Professur für Prozessleittechnik Wintersemester 2013/2014 Qualifikationsziele • Sie können – sich in neue hardware- und projektspezifische Befehlssatzarchitekturen und Werkzeugketten einarbeiten, – Algorithmen, Datenstrukturen und Programme in 80x86 Assembler und C lesen, entwerfen, implementieren und debuggen, – Projekte, die die Programmierung von Mikrocontrollern beinhalten, planen, bewerten und durchführen. TU Dresden, 14.10.2013 MRT1 (c) Urbas 2007-2013 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, 14.10.2013 MRT1 (c) Urbas 2007-2013 Folie 3 Java, C, C++ oder Assembler? • Java: – Hardwareunabhängig / Denken in Objekten / „bequem“ – Aber: Speicherabdruck des Laufzeitsystems – Zeitlich nicht deterministische Speicherverwaltung (GC) • C / C++: – C = portable Sprache, hardwarenah → einfache AT-Projekte – C++ = C mit Objekten & deterministisches Verhalten & generische Programmierung → komplexe AT-Projekte • Assembler: – Maschinennahe Sprache (für jede CPU-Familie 1..n) – Ganz nahe an der Hardware TU Dresden, 14.10.2013 MRT1 (c) Urbas 2007-2013 Folie 4 Was muss ich für die hardwarenahe Programmierung eines µControllers 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, 14.10.2013 MRT1 (c) Urbas 2007-2013 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, 14.10.2013 MRT1 (c) Urbas 2007-2013 Folie 6 Organisation • Vorlesung: Grundlagen (2 DS/Woche bis Anfang Dez) – 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, 14.10.2013 MRT1 (c) Urbas 2007-2013 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, 14.10.2013 MRT1 (c) Urbas 2007-2013 Folie 8 Zeiten und Termine • Vorlesung 14.10.2013 bis 4.12.2009 – – – – Montag 5.DS 14.50 - 16.20 Uhr, BAR/SCHÖ Mittwoch 5.DS 14.50 - 16.20 Uhr, BAR/SCHÖ Sprechstunde: nach Vereinbarung, BAR/E24 E-Mail: [email protected] • Einschreibung Praktikumstermine per WWW – Gruppen á 4 Personen (bitte jetzt schon zusammenfinden) – Einweisung voraussichtlich KW45 durch Dr. Schingnitz WS08/09 Vorlesung PR Simulator PR Assembler PR C/Grafik TU Dresden, 14.10.2013 Okt Nov Dez MRT1 (c) Urbas 2007-2013 Jan Folie 9 Grobplanung Vorlesung 14.10.2013 Rechnerarchitekturen (Steuerwerke, v.Neumann) 16.10.2013 Befehlssatzarchitektur 80x86 21.10.2013 BMBF-Kongress 23.10.2013 Register, Speicheradressierung 28.10.2013 Felder, Strukturen, Bedingte Steuerung des Programmflusses 30.10.2013 Interrupts, Anbindung von Prozessperipherie 04.11.2013 Grundelemente der Programmiersprache C 06.11.2013 Namur Hauptsitzung 11.11.2013 ComVantage Review 13.11.2013 Felder, Strukturen 18.11.2013 Zeiger I 20.11.2013 Bußtag 25.11.2013 Zeiger II 27.11.2013 SPS/IPC/Drives 02.12.2013 Echtzeitverarbeitung: Scheduling 04.12.2013 Synchronisation TU Dresden,Echtzeitverarbeitung: 14.10.2013 MRT1 (c) Urbas 2007-2013 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, 14.10.2013 MRT1 (c) Urbas 2007-2013 Folie 11 Virtual Appliance für MRT 1 und 2 • Virtual Appliance für 80x86 Rechner – Linux (ubuntu Oneiric Ocelot 11.10) – Lediglich Installation einer VirtualBox – Unabhängig von Betriebssystem und persönlichem Customizing • Integrierte Entwicklungsumgebung Eclipse/CDT – gnu Werkzeugkette mit NASM-Assembler für Linux – dosbox mit MASM (für zweiten Praktikumsversuch) – Eclipse/CDT IDE für • Erweiterbar – OpenOffice, Spiele, ... TU Dresden, 14.10.2013 MRT1 (c) Urbas 2007-2013 Folie 12 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 (in MRT1 werden diese mit Hilfe von einfachen Adressierungsarten hardwarenah implementiert ) TU Dresden, 14.10.2013 MRT1 (c) Urbas 2007-2013 Folie 13 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, 14.10.2013 MRT1 (c) Urbas 2007-2013 Folie 14