Echtzeitsysteme (EZS) - Getting Started (WS 2008/09)
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>
Einen Branch (time_tiggered
) erstellen
faui48b:/home/scheler> cd ezstubs/
faui48b:~/ezstubs> svn copy . https://www4.informatik.uni-erlangen.de:8088/i4ezs/test/branches/time_triggered
Auf den neu erstellten Branch (time_tiggered) wechseln
faui48b:~/ezstubs> svn switch https://www4.informatik.uni-erlangen.de:8088/i4ezs/test/branches/time_triggered
Die Datei vorgabe_1.tar.bz2 in das ezstubs-Verzeichnis entpacken
faui48b:~/ezstubs> tar xjf vorgabe1.tar.bz2
Die Dateien aus vorgabe_1.tar.bz2 zum Repository hinzufügen
faui48b:~/ezstubs> svn status .
? ...
...
? ...
faui48b:~/ezstubs> svn add ...
A ...
...
A ...
faui48b:~/ezstubs> svn commit . -m 'Dateien aus vorgabe_1.tar.bz2'
Hinzufügen ...
...
Ü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 im SVN-Repository erstellt werden. Die Erstellung des Tags erfolgt mit Hilfe
von make
:
faui48b:~/ezstubs> make EXERCISE=aufgabe1 abgabe
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).
Das in den Folien zu EZStubs angesprochene Tutorial-EZStubs-System: tutorial.tar.bz2