 |
Echtzeitsysteme (EZS) - WS 2005/06
Übersicht
Getting started
Aufgaben abgeben
Testfälle
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.
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
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
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.
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>
Die Datei vorgabe1.tar.bz2 in das ezstubs-Verzeichnis entpacken
/home/scheler> tar xjf vorgabe1.tar.bz2 -C ezstubs/
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>
Die Pfade in den make-Dateien anpassen
siehe Environment
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>
Happy Hacking ...
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 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).
|