Friedrich-Alexander-Universität UnivisSuche FAU-Logo
Techn. Fakultät Willkommen am Department Informatik FAU-Logo
Logo I4
Lehrstuhl für Informatik 4
Echtzeitsysteme
 
  Vorlesungsüberblick
  Voraussetzungen
  Vorlesungsfolien
  Übungen
   Getting Started
   Docs
   Environment
   svn
   Gruppeneinteilung
  Schein, Prüfung
  Evaluation
Department Informatik  >  Informatik 4  >  Lehre  >  WS 2007/08  >  EZS  >  Übung  >  Environment

Echtzeitsysteme (EZS) - WS 2007/08

Entwickklungsumgebung

Übersicht

Werkzeuge
Entwicklungsbaum
Make
GDB

Werkzeuge

Als Werkzeuge kommen zum Einsatz:

  • GNU ARM-Cross-Toolchain
  • GNU make
  • VisualBoyAdvance
  • Xport/xpcomm von Charmed Labs
  • Subversion

Entwicklungsbaum

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.

Make

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.

  Impressum   Datenschutz Stand: 2007-10-04 16:19   scheler