Friedrich-Alexander-Universität UnivisSuche FAU-Logo
Techn. Fakultät Willkommen am Department Informatik FAU-Logo
Logo I4
Lehrstuhl für Informatik 4
Betriebssystemtechnik
 
  Vorlesungsüberblick
  Voraussetzungen
  Vorlesungsfolien
  Übungen
  Tools
  Teamarbeit mit svn
  Schein, Prüfung
  Evaluation
Department Informatik  >  Informatik 4  >  Lehre  >  SS 2007  >  OSE  >  Übung  >  Werkzeuge

Betriebssystemtechnik (OSE) - SS 2007

Folgende Werkzeuge werden zu Verfügung gestellt:

Werkzeuge

Im Verzeichnis /proj/i4ose/tools befinden sich die meisten der Entwicklungswerkzeuge, die im Rahmen der Übungen benötigt werden. Um einen komfortablen Zugriff auf diese Programme zu erhalten, empfiehlt es sich, das /proj/i4ose/tools/bin Verzeichniss dem Suchpfad der verwendeten Shell hinzu zu fügen.


Folgende Werkzeuge werden im Rahmen der Übung verwendet:

LyX: Graphischer zur Erstellung von Dokumenten, verwendet LaTeX als back end
Eclipse: Java basierte IDE
Gcc: Cross-Compiler, Binutils und Gdb für den H8
AspectC++: Aspectweber für C++
RCXSimulator: Simulator für den RCX
simSendRecv: Programm zur Kommunikation über die "serielle Schnittstelle" mit dem RCXSimulator
firmdl: Programm zum Transfer der Firmware auf den RCX
terminal: Programm zur Kommunikation über die serielle Schnittstelle mit dem RCX
pst-featdiag: TeX Packet zum Zeichnen von Featurediagrammen auf der Basis von PSTricks (bereits in Vorgaben enthalten)

LyX

LyX ist in den CIP-Pools installiert und Bestandteil der meisten Linux-Distributionen. Versionen für Windows und OS-X finden sich auf der LyX-Website.

Unter Linux wird LyX einfach durch lyx dokument.lyx gestartet. Das Handbuch ist über das Help-Menü erreichbar.

Eclipse

Bei der Eclipse Version, die im /proj/i4ose/tools/eclipse Verzeichniss zu finden ist, wurden zusätzlich das AspecC++ Plugin (ACDT), das SVN Plugin (Versionsverwaltung) und das pure::variants Plugin installiert. Falls das SVN Plugin Probleme bereitet, sollte auf die kommandzeilen-basierte Version von SVN zurückgegriffen werden.

Einrichtung von Eclipse:

  • pure::variants Plugin konfigurieren
    1. Öffne das "Preferences" Dialogfenster
    2. Wechsle zur Ansicht "Variant Management"->"pure::variants License"
    3. Installiere Lizenzdatei: /proj/i4ose/tools/eclipse/semester.license

Anmerkung: Gelegentlich kommt es vor, dass die .lock Datei nicht entfernt wird. Um Eclipse dann zu starten, muss man im verwendenten "Workspace" Verzeichniss die Datei ./metadata/.lock löschen.

h8300-elf-g++ und binutils

Ein Problem mit den h8300-elf-xxx Tools ist, dass der Compiler standardmäßig Symbole mit einem zusätzlichen Unterstrich generiert, die Binutils die so generierten C++-Symbole aber nicht mehr mit --demangle in lesbare Form übersetzen:

lohmann@faui48b [~/svnunix/stud/ose-2007/aose/config/os]>h8300-elf-nm --demangle test/mem/best-fit.elf
0000ffd9 ? _BRR
00008d9e B __bss_begin
000090ab B __bss_end
...
0000ff97 ? _TOCR
000089ce T __Z4stopv
000089d0 T __ZN6device3Rom5rcallEs
000089da T __ZN6device3Rom5rcallEss
000089e6 T __ZN6device3Rom5rcallEssss
00008940 T __ZN6device7Display14refreshDisplayEv
0000898e T __ZN6device7Display7setIconEib
000089c6 T __ZN6device7Display9setNumberEi
Da die wenigsten von Euch mangled C++-Symbole decodieren wollen, hilft es in diesem Fall das demangling mit c++filt -_ durchführen zu lassen:
lohmann@faui48b [~/svnunix/stud/ose-2007/aose/config/os]>h8300-elf-nm test/mem/best-fit.elf | c++filt -_
0000ffd9 ? _BRR
00008d9e B __bss_begin
000090ab B __bss_end
...
0000ff97 ? _TOCR
000089ce T stop()
00008a2a W mem::Heap<128u, mem::BestFit, 0u>::Alloc(unsigned int)
00008c3c W mem::Heap<256u, mem::Buddy, 0u>::Alloc(unsigned int)
000089d0 T device::Rom::rcall(short)
000089da T device::Rom::rcall(short, short)
000089e6 T device::Rom::rcall(short, short, short, short)
00008940 T device::Display::refreshDisplay()
0000898e T device::Display::setIcon(int, bool)
000089c6 T device::Display::setNumber(int)
00008a1a V vtable for mem::Heap<128u, mem::BestFit, 0u>
00008a22 V vtable for mem::Heap<256u, mem::Buddy, 0u>
Das funktioniert mit allen binutils (also auch objdump, readelf, ...)

RCX Simulator

Der RCX Simulator liegt unter /proj/i4ose/tools/RCXSimulator. Detailierte Informationen zu dessen Verwendung sind auf der RCXSimulator Homepage zu finden.

simSendRecv

Das Shellskript, dass das Kommunikations-Programm startet, liegt im Verzeichniss /proj/i4ose/tools/bin. Um dieses Programm verwenden zu können, muss der RCX Simulator mit der Option -u 8000 gestartet werden.

terminal

Rudimentäres Programm zum Senden und Empfangen von Daten vom RCX. Wer Zeit und Lust hat kann ja mal eine Variante mit größerem Funktionsumfang implementieren.

PST-Featdiag

Das pst-featdiag LaTeX-Paket zur Erstellung von Merkmaldiagrammen und einige Beispiele sind unter /proj/i4ose/tools/pst-featdiag zu finden. Auch eine PDF-Dokumentation ist dort vorhanden.

Hinweise:

  • Ihr müsst das Paket nicht selber installieren. Es ist in der Vorgabe, die ihr aus dem svn "auscheckt" bereits enthalten.
  • pst-featdiag basiert auf pstricks. Für die PDF-Erstellung muss deshalb der Umweg über PS gemacht werden (latex ; dvips ; ps2pdf). In LyX heißt das im Menü PDF (ps2pdf).

svn: kommandozeilen-basierter Programm für Subversion

Um mit svn einen Pfad aus einem Subversion Repository "auszuchecken" (eine lokale Kopie anlegen), gibt man die Quell-URL und ein Zielverzeichniss an. Im Rahmen dieser Übungen sieht das folgendermaßen aus:

svn co https://www4.informatik.uni-erlangen.de:8088/i4ose/ose-2007/trunk ose

Benutzername für das Repository sind identisch mit eurem CIP-Pool Logins. Das zugehörige Passwort bekommt ihr per Mail zugesandt. Falls es mit dem Zugriff Probleme geben sollte, wendet Euch bitte an Horst.

Mit dem Kommando svn add <Datei/Verzeichniss> werden Dateien und Verzeichnisse hinzugefügt. Sämtliche Änderungen werden erst in das Repository übertragen, wenn man ein svn commit Kommando ausführt.

Das Kommando svn status zeigt an, welche Dateien verändert oder noch nicht dem Repository hinzugefügt wurden.

Der wichtigste Befehl ist svn help. Damit bekommt man eine Übersicht aller SVN-Kommandos und mit svn help <Kommando> eine Beschreibung des jeweiligen Kommandos. Mehr Informationen (z.B. zu "braching", "taging") findet man unter Teamarbeit mit svn sowie natürlich im im "Subversion Book" welches auf der Subversion Homepage zu finden ist.



Nützliche Informationen zu den Werkzeugen und zum RCX:

H8 Programming Manual : H8-300 Programming Manual.pdf
H8 Hardware Manual : H8-3297 Series Hardware Manual.pdf
Beschreibung des RCX (inoffizell) : RCX Internals Homepage
Beschreibung des RCX Simulators : RCXSimulator Homepage
Subversion : SVN Homepage
Dokumentation des TeX Packets pst-featdiag : pst-featdiag.pdf

Bei Fragen zu den Werkzeugen kontaktiert bitte Julio.

  Impressum   Datenschutz Stand: 2007-07-05 15:56   OS