Vorlesung Programmierung von Mikrokontrollern
Erwünschte Vorkenntnisse | LV Rechnerarchitektur |
Zulassungsbedingung zur Prüfung: | keine |
Leistungsnachweis: | Leistungsnachweis als mündliche Prüfung vorgesehen. |
Hinweise auf Studienmaterial: | Die offizellen SpartanMC Seiten und die internen SpartanMC Seiten. |
Fortsetzung dieser Lehrveranstaltung: | Forschungsseminar »Entwurf von Rechnersystemen« |
Ziel: | Die Lehrveranstaltung »Programmierung von Mikrokontrollern« vermittelt ein Übersichts- und Spezialwissen auf dem Gebiet der Programmierung von Mikrokontroller. Es sollen Erfahrungen gesammelt werden, die beim Programmieren von Prozessoren mit stark begrenztem Speicher und der Aufteilung in flüchtigen Speicher (RAM) und nichtflüchtigen Speicher der aber nur lesbar ist (EEPROM) gewonnen werden. |
Laufende Informationen
- Aktuelles zur Lehrveranstaltung
- Programme für das Praktikum
- Entwickung des SoC SpartanMC an der TU-Dresden
Gliederung
1 Mikrokontroller und ihre Einsatzgebiete
1.1 Mikrokontrolleranwendungen
1.2 Vorstellung einiger Mikrokontrollertypen
2 Der Mikrokontroller SpartanMC - ein SoC Kit für Xilinx FPGAs
2.1 Die Register und der Speicher des SpartanMC
2.2 Die Adressierungsarten des SpartanMC
2.3 Die Befehle des SpartanMC
2.3.1 Arithmetikbefehle
2.3.2 Logik- und Schiebebefehle
2.3.3 Sprungbefehle
2.3.4 Transportbefehle
2.3.5 Steuerbefehle
2.4 Einige wichtige Interfaces des SpartanMC
2.4.1 Parallele Ein- und Ausgabe
2.4.2 Serielle Ein- und Ausgabe
2.4.2.1 Die UART des SpartanMC
2.4.2.2 Das serielle Peripherie-Interface (SPI)
2.4.2.3 Das IIC Interface
2.4.3 Programmierbare Zeitgeber
2.4.4 DMA Interfaces des SpartanMC
2.4.4.1 USB
2.4.4.2 CAN
2.4.4.3 Der Profi BUS
2.4.4.4 Display Kontroller
2.4.5 Spezial Interface für den SpartanMC
2.4.5.1 Rotationstaster
2.4.5.2 JTAG
2.4.5.3 Schrittmotoren Interface
3 Werkzeuge zur Programmierung und Konfigurierung des SpartanMC
3.1 Der Assembler
3.1.1 Direktiven
3.1.2 Include
3.1.3 Macros
3.1.4 Bedingungen
3.1.5 Prioritäten
3.1.6 Spezielle Unterprogramme
3.2 Der C-Compiler
3.2.1 Datentypen und Kompatibilität
3.2.2 Start des Compiler in der Kommandozeile oder im Make
3.2.3 Einbinden von Assembler Kode
3.2.4 Verwendung der Register des SpartanMC in C-Programmen
3.2.5 Behandlung von Interrupts in C-Programmen
3.2.6 Spezielle Stukturen für C-Programme
3.3 Der SpartanMC Simulator
3.3.1 Fehlersuche in Programmen
3.3.2 Zeitmessung von Programmschleifen
3.3.3 Ermittlung der Schachtelungstiefe von UP und ISR in einem Programm
3.4 Die Konfiguration des SpartanMC
4 Spezielle Programmiertechniken auf dem SpartanMC
4.1 Polling
4.1.1 Konzept
4.1.2 Anwendbarkeit
4.1.3 Beispiele
4.1.3.1 Ermittlung der Reaktionszeiten unter Verwendung des Simulators
4.1.3.2 Polling der UART.
4.1.3.3 Polling einer LCD mit dem HD44780U von Hitachi
4.2 Interrupt
4.2.1 Konzept
4.2.2 Anwendbarkeit
4.2.3 Beispiele
4.2.3.1 Tastaturmatrix mit 3*4 Anordnung der Tasten.
4.2.3.2 Realisierung einer Uhr mit Sekunden Interrupt durch Timer und RTI Modul.
4.2.3.3 USB-Tastatur.
4.3 State machine
4.3.1 Der Zustands Graph
4.3.2 CASE in der Realisierung der State machine
4.3.3 Sortierung von Paketen in einer Praktikumsaufgabe.
4.4 Multi Thread
4.4.1 Datenstrukturen
4.4.1.1 Thread Erzeugen Beenden
4.4.1.2 Stack Bedarf - Liste mit Stackpositionen
4.4.1.3 Liste der wartenden Thread (wait)
4.4.1.4 Liste der lauffähigen Thread (ready)
4.4.1.5 Zeiger auf aktiven Thread (run)
4.4.2 Kontext-Wechsel
4.4.2.1 PC und Register (R0 bis R3 und R4 bis R15)
4.4.2.2 SF Status-Register
4.4.2.3 SF MUL-Register
4.4.3 Synchronisation - Semaphore
Up - Down Beispiel
4.4.4 Priorität
4.5 Programme mit Speicherschutz
- Warum
- Formen
- Umsetzung