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  >  Getting Started

Echtzeitsysteme (EZS) - WS 2005/06

Übersicht

Getting started
Aufgaben abgeben
Testfälle

Getting started

Für alle hier genannten Hinweise wird davon ausgegangen, dass der Gruppenname test ist, test ist also durch den eigenen Gruppennamen zu ersetzen. Für die Subversion-Komnmandos ist eine Authentifizierung erforderlich. Die entsprechenden Daten hierfür bekommt ihr in den Tafelübungen.

  1. Struktur des Subversion-Repository anlegen

    scheler/temp> mkdir tmpdir
    scheler/temp> cd tmpdir/
    temp/tmpdir> mkdir ezstubs
    temp/tmpdir> mkdir ezstubs/trunk
    temp/tmpdir> mkdir ezstubs/branches
    temp/tmpdir> mkdir ezstubs/tags
  2. vorgabe0.tar.bz2 in das Unterverzeichnis trunk entpacken

    temp/tmpdir> tar xjf vorgabe0.tar.bz2 -C ezstubs/trunk
    temp/tmpdir> ll ezstubs/trunk/
    insgesamt 5
    drwxr-xr-x 2 scheler users 184 2005-10-27 09:59 debug
    drwxr-xr-x 2 scheler users 408 2005-10-27 10:31 devices
    drwxr-xr-x 4 scheler users 96 2005-10-27 09:59 gen
    drwxr-xr-x 2 scheler users 200 2005-10-27 09:59 infra
    drwxr-xr-x 2 scheler users 296 2005-10-27 10:05 interrupt
    drwxr-xr-x 2 scheler users 472 2005-10-27 09:59 make
    -rw-r--r-- 1 scheler users 1774 2005-10-27 09:59 Makefile
    drwxr-xr-x 2 scheler users 120 2005-10-27 10:06 object
    drwxr-xr-x 2 scheler users 152 2005-10-27 09:59 shutdown
    drwxr-xr-x 2 scheler users 296 2005-10-27 09:59 startup
    drwxr-xr-x 2 scheler users 48 2005-10-27 10:58 tests
    drwxr-xr-x 2 scheler users 176 2005-10-27 10:16 thread
    temp/tmpdir> rm vorgabe0.tar.bz2
  3. Die Verzeichnisstruktur in das Subversion-Repository importieren

    temp/tmpdir> svn import . https://www4.informatik.uni-erlangen.de:8088/i4ezs/test -m 'Initial Repository Layout'
    Hinzufügen ezstubs
    Hinzufügen ezstubs/trunk
    ...
    Hinzufügen ezstubs/trunk/Makefile
    Hinzufügen ezstubs/branches
    Hinzufügen ezstubs/tags

    Revision 1 übertragen.
  4. Das Subversion-Repository auschecken

    Das Verzeichnis, das man in das Repository importiert hat, ist nicht versioniert! Bevor man mit dem versionierten Repository arbeiten kann, muss man es noch auschecken.

    /home/scheler> svn co https://www4.informatik.uni-erlangen.de:8088/i4ezs/test/ezstubs/trunk ezstubs
    A ezstubs/infra
    ...
    A ezstubs/make/variables.mk
    Ausgecheckt, Revision 1.
    /home/scheler> ll ezstubs/
    insgesamt 5
    drwxr-xr-x 3 scheler users 208 2005-10-27 15:14 debug
    drwxr-xr-x 3 scheler users 432 2005-10-27 15:14 devices
    drwxr-xr-x 5 scheler users 120 2005-10-27 15:14 gen
    drwxr-xr-x 3 scheler users 224 2005-10-27 15:14 infra
    drwxr-xr-x 3 scheler users 320 2005-10-27 15:14 interrupt
    drwxr-xr-x 3 scheler users 496 2005-10-27 15:14 make
    -rw-r--r-- 1 scheler users 1774 2005-10-27 15:14 Makefile
    drwxr-xr-x 3 scheler users 144 2005-10-27 15:14 object
    drwxr-xr-x 3 scheler users 176 2005-10-27 15:14 shutdown
    drwxr-xr-x 3 scheler users 320 2005-10-27 15:14 startup
    drwxr-xr-x 3 scheler users 72 2005-10-27 15:14 tests
    drwxr-xr-x 3 scheler users 200 2005-10-27 15:14 thread
    /home/scheler>
  5. Die Datei vorgabe1.tar.bz2 in das ezstubs-Verzeichnis entpacken

    /home/scheler> tar xjf vorgabe1.tar.bz2 -C ezstubs/
  6. Die Dateien aus vorgabe1.tar.bz2 zum Repository hinzufügen

    /home/scheler> cd ezstubs/thread/
    ezstubs/thread> ll
    insgesamt 52
    -rw-r--r-- 1 scheler users 4111 2005-10-27 10:34 abstract_schedule_table.h
    -rw-r--r-- 1 scheler users 2518 2005-10-27 15:14 context.h
    -rw-r--r-- 1 scheler users 160 2005-10-27 10:21 guarded_scheduler.cc
    -rw-r--r-- 1 scheler users 1683 2005-10-27 10:30 guarded_scheduler.h
    -rw-r--r-- 1 scheler users 1271 2005-10-27 10:37 guarded_schedule_table_scheduler.h
    -rw-r--r-- 1 scheler users 1108 2005-10-27 15:14 kickoff.h
    -rw-r--r-- 1 scheler users 1506 2005-10-27 15:14 runnable.h
    -rw-r--r-- 1 scheler users 1307 2005-10-27 15:14 scheduler_base.h
    -rw-r--r-- 1 scheler users 2776 2005-10-27 10:38 schedule_table.h
    -rw-r--r-- 1 scheler users 4398 2005-10-27 10:39 schedule_table_scheduler.h
    -rw-r--r-- 1 scheler users 1398 2005-10-27 10:21 thread.h
    ezstubs/thread> svn add abstract_schedule_table.h guarded_scheduler.* guarded_schedule_table_scheduler.h schedule_table.h schedule_table_scheduler.h thread.h
    A abstract_schedule_table.h
    A guarded_scheduler.cc
    A guarded_scheduler.h
    A guarded_schedule_table_scheduler.h
    A schedule_table.h
    A schedule_table_scheduler.h
    A thread.h
    ezstubs/thread> svn commit . -m 'Dateien aus vorgabe1.tar.bz2'
    Hinzufügen thread/abstract_schedule_table.h
    Hinzufügen thread/guarded_schedule_table_scheduler.h
    Hinzufügen thread/guarded_scheduler.cc
    Hinzufügen thread/guarded_scheduler.h
    Hinzufügen thread/schedule_table.h
    Hinzufügen thread/schedule_table_scheduler.h
    Hinzufügen thread/thread.h
    Übertrage Daten .......
    Revision 2 übertragen.
    ezstubs/thread>
  7. Die Pfade in den make-Dateien anpassen

    siehe Environment
  8. Nun sollten sich die Quelltextdateien im ezstubs-Verzeichnis übersetzen lassen

    ezstubs/thread> cd ..
    scheler/ezstubs> make all
    CXX gen/obj/devices/derivate_implementation.o
    CXX gen/obj/devices/rom.o
    CXX gen/obj/devices/derivate.o
    CXX gen/obj/debug/testing.o
    CXX gen/obj/shutdown/stop_loop.o
    CXX gen/obj/shutdown/invoke_destructors.o
    CXX gen/obj/startup/crt0.o
    CXX gen/obj/startup/main.o
    CXX gen/obj/startup/arch_init.o
    CXX gen/obj/startup/derivate_init.o
    CXX gen/obj/startup/invoke_constructors.o
    CXX gen/obj/thread/guarded_scheduler.o
    AS gen/obj/interrupt/setup_IDT.o
    AR gen/lib/libezstubs.a
    scheler/ezstubs>
  9. Happy Hacking ...

Aufgaben abgeben

Für die Abgabe einer Aufgabe muss nur ein entsprechender Tag erstellt werden, die Erstellung des Tags erfolgt mit dem Subversion-Befehl copy:

scheler/ezstubs> svn info | grep URL
URL: https://www4.informatik.uni-erlangen.de:8088/i4ezs/test/ezstubs/trunk
scheler/ezstubs> svn copy . https://www4.informatik.uni-erlangen.de:8088/i4ezs/test/ezstubs/tags/aufgabe1 -m 'Abgabe Aufgabe1'

Revision 3 übertragen.
scheler/ezstubs>

Testfälle

Testfälle sind einfache, kleine Anwendungen für das EZ-Stubs-Betriebssystem und C++-Programme. Für das Übersetzen und die Ausführung von Testfällen sollten die Hinweise hier eigentlich ausreichend sein. Ein Beispiel für einen solchen Testfall findet ihr hier (diesen Testfall könnt ihr übrigens auch als Testfall für die erste Übungsaufgabe verwenden).