Echtzeitsysteme (EZS) - WS 2007/08
Übersicht
Getting started
Aufgaben abgeben
Testfälle
Tutorial
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
faui48b:~temp> mkdir tmpdir
faui48b:~temp> cd tmpdir/
faui48b:~/temp/tmpdir> mkdir
faui48b:~/temp/tmpdir> mkdir trunk
faui48b:~/temp/tmpdir> mkdir branches
faui48b:~/temp/tmpdir> mkdir tags
vorgabe_0.tar.bz2 in das Unterverzeichnis trunk entpacken
faui48b:~/temp/tmpdir> tar xjf vorgabe_0.tar.bz2 -C trunk
faui48b:~/temp/tmpdir> ll trunk
insgesamt 12
drwxr-xr-x 2 scheler i4staff 512 2006-10-27 10:33 debug
drwxr-xr-x 2 scheler i4staff 512 2006-10-27 10:02 devices
drwxr-xr-x 3 scheler i4staff 512 2006-10-27 10:19 gen
drwxr-xr-x 2 scheler i4staff 512 2006-10-13 10:35 infra
drwxr-xr-x 2 scheler i4staff 512 2006-10-27 10:20 interrupt
drwxr-xr-x 2 scheler i4staff 512 2006-10-27 10:11 make
-rw-r--r-- 1 scheler i4staff 1816 2006-10-13 10:35 Makefile
drwxr-xr-x 2 scheler i4staff 512 2006-10-27 10:15 object
drwxr-xr-x 2 scheler i4staff 512 2006-10-13 10:35 shutdown
drwxr-xr-x 2 scheler i4staff 512 2006-10-18 16:09 startup
drwxr-xr-x 2 scheler i4staff 512 2006-10-13 10:35 tests
faui48b:~/temp/tmpdir> rm vorgabe0.tar.bz2
Die Verzeichnisstruktur in das Subversion-Repository importieren
faui48b:~/temp/tmpdir> svn import . https://www4.informatik.uni-erlangen.de:8088/i4ezs/test -m 'initial repository layout'
Hinzufügen trunk
...
Hinzufügen trunk/Makefile
Hinzufügen branches
Hinzufügen 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.
faui48b:/home/scheler> svn co https://www4.informatik.uni-erlangen.de:8088/i4ezs/test/trunk ezstubs
A ezstubs/infra
...
A ezstubs/make/variables.mk
Ausgecheckt, Revision 1.
faui48b:/home/scheler> ll ezstubs/
insgesamt 12
drwxr-xr-x 3 scheler i4staff 512 2006-10-30 17:13 debug
drwxr-xr-x 3 scheler i4staff 512 2006-10-30 17:13 devices
drwxr-xr-x 4 scheler i4staff 512 2006-10-30 17:13 gen
drwxr-xr-x 3 scheler i4staff 512 2006-10-30 17:13 infra
drwxr-xr-x 3 scheler i4staff 512 2006-10-30 17:13 interrupt
drwxr-xr-x 3 scheler i4staff 512 2006-10-30 17:13 make
-rw-r--r-- 1 scheler i4staff 1816 2006-10-30 17:13 Makefile
drwxr-xr-x 3 scheler i4staff 512 2006-10-30 17:13 object
drwxr-xr-x 3 scheler i4staff 512 2006-10-30 17:13 shutdown
drwxr-xr-x 3 scheler i4staff 512 2006-10-30 17:13 startup
drwxr-xr-x 3 scheler i4staff 512 2006-10-30 17:13 tests
/home/scheler>
Die Datei vorgabe_1.tar.bz2 in das ezstubs-Verzeichnis entpacken
/home/scheler> tar xjf vorgabe1.tar.bz2 -C ezstubs/
Die Dateien aus vorgabe_1.tar.bz2 zum Repository hinzufügen
faui48b:/home/scheler> cd ezstubs/
faui48b:~/ezstubs> svn status .
? devices/alarm.cc
? devices/alarm.h
? devices/hardware_counter.h
? devices/tm_0.h
? devices/tm_1.h
? devices/alarm_queue.h
? devices/tm_2.h
? devices/tm_3.h
? devices/guarded_user_counter.h
? devices/user_counter.cc
? devices/user_counter.h
? devices/tm.h
? devices/basic_counter.h
? devices/guarded_alarm.h
? debug/test_interrupt_timer_0.h
? interrupt/dsr_executor.cc
? interrupt/dsr_executor.h
? interrupt/vectors.inc
faui48b:~/ezstubs>
faui48b:~/ezstubs>svn add devices/alarm.cc devices/alarm.h devices/hardware_counter.h devices/tm_0.h devices/tm_1.h devices/alarm_queue.h devices/tm_2.h devices/tm_3.h devices/guarded_user_counter.h devices/user_counter.cc devices/user_counter.h devices/tm.h devices/basic_counter.h devices/guarded_alarm.h debug/test_interrupt_timer_0.h interrupt/dsr_executor.cc interrupt/dsr_executor.h interrupt/vectors.inc
A devices/alarm.cc
...
A interrupt/dsr_executor.cc
A interrupt/dsr_executor.h
A interrupt/vectors.inc
faui48b:~/ezstubs>
faui48b:~/ezstubs>svn commit . -m 'Dateien aus vorgabe_1.tar.bz2'
Hinzufügen debug/test_interrupt_timer_0.h
Hinzufügen devices/alarm.cc
Hinzufügen devices/alarm.h
Hinzufügen devices/alarm_queue.h
...
Übertrage Daten ..................
Revision 2 übertragen.
faui48b:~/ezstubs>
Die Pfade in den make-Dateien anpassen
siehe Environment
Nun sollten sich die Quelltextdateien im ezstubs-Verzeichnis übersetzen lassen
faui48b:~/ezstubs> make all
CXX gen/obj/devices/derivate_implementation.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
faui48b:~/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:
faui48b:~/ezstubs> svn info | grep URL
URL: https://www4.informatik.uni-erlangen.de:8088/i4ezs/test/trunk
faui48b:~/ezstubs> svn copy . https://www4.informatik.uni-erlangen.de:8088/i4ezs/test/tags/aufgabe1 -m 'Abgabe Aufgabe1'
Revision 3 übertragen.
faui48b:~/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 zweite
Übungsaufgabe verwenden).
Das in den Folien zu EZStubs angesprochene Tutorial-EZStubs-System: tutorial.tar.bz2
|