|
|
|
|
Echtzeitsysteme (EZS) - WS 2007/08
Entwickklungsumgebung
Übersicht
Werkzeuge
Entwicklungsbaum
Make
GDB
Als Werkzeuge kommen zum Einsatz:
- GNU ARM-Cross-Toolchain
- GNU make
- VisualBoyAdvance
- Xport/xpcomm von Charmed Labs
- Subversion
Verzeichnis |
Beschreibung |
debug |
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_gba.mk :
-
Die Variable
VBA_DIR deutet auf das Verzeichnis, in dem der
VisualBoyAdvance zu finden ist, im CIP-Pool wäre das dann
/usr .
-
Die Variable
GBA_DIR deutet auf das Verzeichnis, in dem
diverse Tools für den Gameboy Advance 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.
|
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.
|
|
|
|