Projektpräsentation Lukas Büchele Alfred Olschnögger Atanas Dimitrov Sebastian Quandt Sandra Mayer Bojan Zarkovic
Übersicht Aufgabenstellung / Ziel Architektur Prozessmanagement IPC Projektpräsentation Übersicht Aufgabenstellung / Ziel Architektur Prozessmanagement IPC MMU HAL FAT Scrum
Aufgabenstellung / Ziel Projektpräsentation Aufgabenstellung / Ziel Single-User Betriebssystem Präemptives Betriebssystem Multi-Prozess Single-Threaded Verwendungszweck Webserver Zielplattform AVR32-AP7000 (UC3) 3
Aufgabenstellung / Ziel Projektpräsentation Aufgabenstellung / Ziel Webserver TCP/IP-Stack SD-Karte Remote command line zum Konfigurieren 4
Projektpräsentation Architektur
Prozessmanagement Die Prozessdatenstruktur 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
IPC Shared Memory IPC mit Pipes Monitors Message Passing Message Queue Projektpräsentation IPC Shared Memory IPC mit Pipes Monitors Message Passing Message Queue Semaphoren
Memory Management Paging mit 64 KB Seiten Page Table 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
Memory Management Translation Lookaside Buffer 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
Memory Management ELF-Parser Interpretiert Elf und Programm Headers 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
HAL PowerManager LED Initialisiert und startet Hardwarekomponenten 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 Debug- Ausgaben LED Statusanzeigen SDRAM Für DMA und virtuellen Speicher für Prozesse SDCard Laden von Dateien/ Programmen (Shell) Ethernet Senden / Empfangen von Paketen
HAL Probleme Fehler im Software Framework 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
Performance-Messung bei Prozesswechsel Projektpräsentation Performance-Messung bei Prozesswechsel Zeit: 832 Anweisungen: 333 (Mittelwerte aus 200 Messungen)
HAL Erweiterungen SDCard über DMA Generische Device Treiber 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,…)
FAT Fertiges Framework: „FAT File System Module“ 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.
Scrum Vorteile Taskboard Jeder weiß, woran der andere arbeitet 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)
Lesson‘s Learned Speicheradressierung Beschränkte Debugmöglichkeiten 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
für eure Aufmerksamkeit! Projektpräsentation Vielen Dank für eure Aufmerksamkeit!