Bibliothek zum schreiben von Testfällen. Enthält z.B. Makros
und Funktionen zum gezielten Auslösen von Unterbrechungen, zur
Zeitmessung oder um eine bestimmte Zeitspanne zu warten.
devices
Gerätetreiber. Hier finden sich alle Gerätetreiber, sowohl
abstrakte Geräte, die eine einheitliche Schnittstelle zur Anwendung
ermöglichen, als auch die Abbildung von real existierender
Peripherie auf Software-Konstrukte.
gen
In diesem Verzeichnis landet alles, was in durch einen Aufruf von
make erzeugt wird - Objektdateien, Doxygen-Dokumentation
...
infra
Typdefinitionen für EZStubs und andere kleine Helfer, die in den
Implementierungsdateien von EZStubs verwendet werden, sich aber nicht
sinnvoll zu anderen Modulen zuordnen lassen.
interrupt
Unterbrechungsbehandlung und Unterbrechungssynchronisation.
make
Alles was nötig ist, um EZStubs zu bauen.
object
Eine kleine Hilfsbiblothek für EZStubs, enthält z.B. eine
verkettete Liste.
shutdown
Alles was EZStubs herunterfährt.
startup
Alles was EZStubs zum starten benötigt.
tests
Testfälle
thread
Der Thread-Abstraction-Layer. Hier findet man die Fadenimplementierung,
den Dispatcher, den Scheduler ...
Für alle Header- und Implementierungsdateien in diesem Verzeichnisbaum
sind Dateiendungen wie folgt zu verwenden: .h für
Header-Dateien, .cc für C++-Implementierungsdateien und
.s für Assembler-Implementierungsdateien.
Zum übersetzen, Binden und Ausführen von EZStubs und den
enstprechenden Testfällen steht eine Makefile zur Verfügung. Bevor
diese Makefile jedoch benutzt werden kann, müssen noch einige Parameter
eingetragen werden:
In der Datei make/variables_arm.mk:
Die Variable TOOL_PATH enthält den Pfad, in sich dem der
ARM-Cross-Compiler befindet, d.h. TOOL_PATH = <pfad> und
der Pfad für den arm-elf-gcc lautet
<pfad>/bin/arm-elf-gcc, im CIP-Pool wäre das dann
/proj/i4ezs/tools/gnuarm.
In der Datei make/variables_arm_nds.mk:
Die Variable DESMUME_DIR deutet auf das Verzeichnis, in dem der
Nintendo DS Lite Simulator DeSmuME zu finden ist, im CIP-Pool wäre das dann
/proj/i4ezs/tools/desmume.
Die Variable GBA_DIR deutet auf das Verzeichnis, in dem
diverse Tools für den Gameboy Advance und den Nintendo DS Lite zu finden
sind, im CIP-Pool wäre das dann /proj/i4ezs/tools/GBA.
Es stehen folgende Make-Targets zur Verfügung:
Target
Beschreibung
help
Gibt die verfügbaren Make-Targets zusammen mit einer
Erläuterung auf der Konsole aus (entspricht in etwa dieser
Tabelle).
all
übersetzt den Quelltext von EZStubs und erzeugt die
EZStubs-Bibliothek.
abgabe
Eine Aufgabe abgeben - welche Aufgabe gerade abgegeben wird, wird durch
die Variable EXERCISE bestimmt, die entsprechend auf
aufgabex, x = {1,2,3,4,5} zu setzen ist.
doxygen
Erzeugt die HTML-Quelltext-Dokumentation.
showtests
Zeigt die verfügbaren Testfälle an.
buildtests
Übersetzt und bindet alle verfügbaren Testfälle.
<test>.elf
übersetzt und bindet den Testfall <test>.
<test>.clean
Räumt den Testfall <test> auf.
<test>.sim_exec
Führt den Testfall <test> auf dem
VisualBoyAdvance aus.
<test>.sim_gdb
startet den VisualBoyAdvance, startet den GDB-Debugger und lädt den
Testfall <test> in den VisualBoyAdvance.
<test>.sim_ddd
startet den VisualBoyAdvance, startet den DDD-Debugger und lädt den
Testfall <test> in den VisualBoyAdvance.
<test>.target_exec
Lädt den Testfall <test> auf den GameboyAdvance
und führt in dort aus.
<test>.target_debug
Startet den
DDD-Debugger und lädt den Testfall <test> in den
Gameboy Advance (diese Option steht für den Gameboy Advance leider
NICHT zur Verfügung).
Das Fragment <test> ist der Pfad zu einer
Testfallimplementierung ohne die entsprechende Dateiendung. Hat man z.B. in
der Datei tests/test1/test1.cc einen Testfall implementiert, so
ist <test> durch tests/test1/test1 zu
ersetzen.