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
  Schein, Prüfung
  Übungen
Übung
 
  UnivIS Information
  Ziel der Übungen
  Durchführung
  Fragen und Antworten
  Testarena
  Übungsaufgaben
 
Weitere Informationen  
  Getting Started
  Dokumentation
  Entwicklungsumgebung
  SVN
  Gruppeneinteilung
Department Informatik  >  Informatik 4  >  Lehre  >  WS 2010/11  >  EZS  >  Übung  >  Entwicklungsumgebung

Echtzeitsysteme (EZS) - Entwicklungsumgebung (WS 2010/11)

Werkzeuge

Als Werkzeuge kommen zum Einsatz:

  • GNU ARM-Cross-Toolchain
  • GNU make
  • DeSmuME
  • 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_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.

  Impressum   Datenschutz Stand: 2008-09-30 12:42   scheler