Übung

Inhalt der Übungen

Im Rahmen der Übungen soll eine virtuelle Maschine für einen vereinfachten ATMEGA32-Mikrokontroller entwickelt werden. Dafür gibt es vorgegebene Aufgabenstellungen, anhand derer im Laufe des Semesters Schritt für Schritt zusätzliche Komponenten und Funktionalität implementiert werden soll. Die Bearbeitung erfolgt einzeln oder in Gruppen und die Abgaben sind per E-Mail einzureichen. Informationen über den ATMEGA32-Mikrokontroller gibt es von der Firma ATMEL: Nach Absprache kann ggf. auch eine Virtuelle Maschine für eine andere Hardware-Architektur entwickelt werden.

Module

Die Veranstaltung Virtuelle Maschinen wird alternativ als Modul mit 5 bzw. 7,5 ECTS angeboten. Die Termine zu Vorlesung und Übungen finden für beide Varianten gemeinsam statt. Für 7,5 ECTS muss aber zusätzlich in den Erweiterten Übungen zu Virtuellen Maschinen auch eine eigene virtuelle Maschine implementiert werden. Die Modulnote wird in einer 30-minütigen mündlichen Prüfung über den Stoff der Vorlesung und der Übung ermittelt. Für 7,5 ECTS ist dabei die erfolgreiche Abgabe der Aufgaben Voraussetzung für das Bestehen der mündlichen Prüfung.

Aufgaben

  1. Implementierung (eines Teils) der ATmega32-CPU (Abgabe: 15.11.2024)
  2. Implementierung (eines Teils) der ATmega32-I/O-Komponenten (Abgabe: 6.12.2024)
  3. Implementierung (eines Teils) der ATmega32-Interrupts/-Timer (Abgabe: 10.01.2025)
  4. Implementierung (eines einfachen) ATmega32-Just-in-Time-Compilers (Abgabe: 7.02.2025)
  • Hier finden Sie das vorgegebene Framework.
  • Hier gibt es die vorgegebenen Tests für die erste Aufgabe.
  • Hier gibt es die vorgegebenen Tests für die zweite Aufgabe.
  • Und hier die für die dritte Aufgabe.

Folien

...werden nach und nach zur Verfügung gestellt...
  1. Einführung
  2. Aufgabenbeschreibung (Überblick)
  3. Assembler-Programmierung
  4. x86-Assembler-Programmierung
  5. AVR-Assembler-Programmierung
  6. Instruktions-Dekodierung
  7. Aufgabenbeschreibung (Aufgabe 1)
  8. Hinweise C-Programmierung
  9. VHDL / std_logic
  10. Aufgabenbeschreibung (Aufgabe 2)
  11. Hinweise Aufgabe 3
  12. Just-In-Time-Compiler
  13. Hardware-basierte Virtualisierung
  14. Linux KVM-Modul
  15. Hinweise Aufgabe 4
HINWEIS: Weitere Folien werden zur Zeit noch überarbeitet!