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
- Öffne das "Preferences" Dialogfenster
- Wechsle zur Ansicht "Variant Management"->"pure::variants License"
- 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:
Bei Fragen zu den Werkzeugen kontaktiert bitte Julio.