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 2005/06  >  EZS  >  Übung  >  Environment

Echtzeitsysteme (EZS) - WS 2005/06

Entwickklungsumgebung

Übersicht

Werkzeuge
Entwicklungsbaum
Make

Werkzeuge

Als Werkzeuge kommen zum Einsatz:

  • GNU H8/300-Cross-Toolchain von KPIT/Cummins
  • GNU make
  • RCXSimulator
  • 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 EZ-Stubs und andere kleine Helfer, die in den Implementierungsdateien von EZ-Stubs verwendet werden, sich aber nicht sinnvoll zu anderen Modulen zuordnen lassen.
interrupt Unterbrechungsbehandlung und Unterbrechungssynchronisation.
make Alles was nötig ist, um EZ-Stubs zu bauen.
object Eine kleine Hilfsbiblothek für EZ-Stubs, enthält z.B. eine verkettete Liste.
shutdown Alles was EZ-Stubs herunterfährt.
startup Alles was EZ-Stubs 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 EZ-Stubs 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_h8.mk:

Die Variable TOOL_PATH enthält den Pfad, in sich dem der H8/300-Cross-Compiler befindet, d.h. TOOL_PATH = <pfad> und der Pfad für den h8300-elf-gcc lautet <pfad>/bin/h8300-elf-gcc, im CIP-Pool wäre das dann /proj/i4ezs/tools/gcc.

In der Datei make/variables_h8_rcx.mk:
  • Die Variable RCX_DIR deutet auf das Verzeichnis, in dem alles für den RCX zu finden ist, im CIP-Pool wäre das dann /proj/i4ezs/tools/RCX.
  • Die Variable RCXTTY gibt das Linux-Gerät an, über das man den Lego-USB-Tower ansprechen kann. Diese Variable muss nicht unbedingt gesetzt sein, wenn man das Testprogramm nur auf dem Simulator ausführen bzw. debuggen will, weil es dafür nicht notwendig ist, das Programm über irgendeine Schnittstelle auf die Zielplattform zu laden.
  • Die Variable JAVA deutet auf die JVM, die zum Ausführen des RCXSimulator verwendet wird, wenn eine Java-JVM im Pfad liegt, wird diese Variable automatisch richtig gesetzt (Achtung Java-Version => 1.4).
  • Die Variable GDBPORT gibt an, auf welchem Port der RCXSimulator auf eine Verbindung vom GDB wartet, diese Variable ist auf die eigene User-Id zu setzen (die erfährt man mittels id).

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 EZ-Stubs und erzeugt die EZ-Stubs-Bibliothek.
doxygen Erzeugt die HTML-Quelltext-Dokumentation.
showtests Zeigt die verfügbaren Testfälle an.
<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 RCXSimulator aus.
<test>.sim_gdb Führt den Testfall <test> auf dem RCXSimulator aus und startet den GDB-Debugger.
<test>.sim_ddd Führt den Testfall <test> auf dem RCXSimulator aus und startet den DDD-Debugger.
<test>.target_exec Lädt den Testfall <test> auf den RCX und führt in dort aus.
<test>.target_debug Lädt den Testfall <test> auf den RCX und startet den Debugger (Steht für den RCX 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: 2006-02-07 14:03   scheler