Projektpräsentation
Lukas Büchele
Atanas Dimitrov
Sandra Mayer
Alfred Olschnögger
Sebastian Quandt
Bojan Zarkovic
Projektpräsentation
Übersicht
• Aufgabenstellung / Ziel
• Architektur
• Prozessmanagement
• IPC
• MMU
• HAL
• FAT
• Scrum
Projektpräsentation
Aufgabenstellung / Ziel
• Single-User Betriebssystem
• Präemptives Betriebssystem
• Multi-Prozess
• Single-Threaded
• Verwendungszweck
• Webserver
• Zielplattform
• AVR32-AP7000 (UC3)
Projektpräsentation
Aufgabenstellung / Ziel
• Webserver
• TCP/IP-Stack
• SD-Karte
• Remote command line zum Konfigurieren
Projektpräsentation
Architektur
Projektpräsentation
Prozessmanagement
• Die Prozessdatenstruktur
besteht im Wesentlichen aus
dem PCB und zusätzlichen
Informationen für Scheduling /
Kommunikation
• Prozesswechsel
– Round Robin
– FCFS
– SPN
– Priority Scheduling
Projektpräsentation
Prozessmanagement
• Zustandsdiagramm
Projektpräsentation
IPC
•
•
•
•
•
•
Shared Memory
IPC mit Pipes
Monitors
Message Passing
Message Queue
Semaphoren
Projektpräsentation
Memory Management
• Paging mit 64 KB Seiten
• Page Table
– Einstufige Page Table
• Einträge im TLBELO Format
• Virt. Adresse als Index
– Mehrstufige Page Table
– Inverted Page Table
• Virtueller Speicher begrenzt auf 64 MB
• Adressumsetzung mit MMU
– Segmentation und Paging
– TLB mit 64 Einträgen
– Private Virtual Memory Mode
Projektpräsentation
Memory Management
• Virtueller Speicher
Projektpräsentation
Memory Management
• Translation Lookaside Buffer
• Seitenersetzungsalgorithmen
– Zufällige Seitenersetzung
– Not Recently Used
• Memory Manager
– Frame Table
– Referenzen auf alle Page Tables (nicht Verwendung des
PTBR)
– Globale Page für SRAM in ersten TLB Eintrag schreiben
Projektpräsentation
Memory Management
• ELF-Parser
Interpretiert Elf und Programm Headers
• Prozess-Lader
Lädt abhängig von Informationen des Elf Parsers in den
virtuellen Speicher bzw. setzt Prozessinformationen
Projektpräsentation
HAL
PowerManager
• Initialisiert und startet
Hardwarekomponenten
• Bietet Soft-Reset an
SystemClock / Timer
• SystemClock für
Prozesswechsel
• Timer verfügbar (sleep / wait)
USART
• Für Shell- und DebugAusgaben
LED
• Statusanzeigen
SDRAM
• Für DMA und virtuellen
Speicher für Prozesse
SDCard
• Laden von Dateien/
Programmen (Shell)
Ethernet
• Senden / Empfangen von
Paketen
Projektpräsentation
HAL
Probleme
• Fehler im Software Framework
• Unterstützte maximale Taktung
• SDRAM
• Größe/ Vorbelegung
• SDCard
• Lese-/Schreibfehler
• Dateigröße
• Netzwerk
Lösungen
 Register falsch ausgelesen
 120MHz statt 150MHz
 Einheitenverwechslung
32MB da 256Mbit (Manual)
 Erste vier Bytes ignorieren
 Delay zwischen Kommandos
ermitteln
 Reduktion der Dateigrößen
Projektpräsentation
Performance-Messung bei Prozesswechsel
Zeit: 832
Anweisungen: 333
(Mittelwerte aus 200 Messungen)
Projektpräsentation
HAL
Erweiterungen
SDCard über DMA
Generische Device Treiber
Netzwerk (Pakete senden/ empfangen)
TCP/IP Stack integrieren/ implementieren
Weitere Ein- /Ausgabegeräte unterstützen (Keyboard, LCD, Sound,…)
Projektpräsentation
FAT
Fertiges Framework: „FAT File System Module“
http://elm-chan.org/fsw/ff/00index_e.html
Lizenz:
The FatFs module is a free software opened for education, research and
development. You can use, modify and/or redistribute it for personal, non-profit
use or commercial products without any restriction under your responsibility.
For further information, refer to the application note.
Projektpräsentation
Scrum
• Vorteile
– Taskboard
– Jeder weiß, woran der andere arbeitet
– Jeder weiß zu Beginn, was ungefähr getan werden muss
– Tolle Tools für Umsetzung
• Nachteile
– Wenn Team verteilt, dann schlecht durchzuführen
– Zeitaufwändig
– Besser, wenn man die ganze Woche zusammen arbeitet
– Projekt zu kurz für Scrum (nur 3 Sprints)
Projektpräsentation
Lesson‘s Learned
•
•
•
•
•
•
•
•
Speicheradressierung
Beschränkte Debugmöglichkeiten
Sparsame Ressourcennutzung
Sinnvolle Modularisierung
Modulkommunikation über Register
Linkerskript und Elf-Aufbau
AVR Studio
AVR Dokumentation unvollständig und sehr kompakt
– z. B. ASID in TLBEHI bei Prozesswechsel
Projektpräsentation
Vielen Dank
für eure Aufmerksamkeit!

Private Virtual Memory - fhv