Entwicklungsumgebung

## Entwicklung mit der SPiC-IDE

### Starten

- An einem CIP-Rechner mit Benutzername und Passwort anmelden (siehe auch Ich habe keinen Login für den Informatik CIP), als Windowmanager kann der (standardmäßig eingestellte) Xfce4 verwendet werden.
- Im Startmenü unter Development die SPiC-IDE auswählen
- Alternativ kann die IDE auch durch Ausführen des Skripts `/proj/i4spic/bin/editor` gestartet werden.
- Es kann einige Sekunden dauern, bis die IDE gestartet ist, insbesondere beim ersten Start.

### Die Oberfläche

Die SPiC-IDE hat verschiedene Entwicklungsmodi: Für den Mikrocontroller (erste Veranstaltungsteil von SPiC) kann mit SPiCboard die Hardware programmiert werden, während SPiCsim einen Simulator anbietet. Für den zweite Veranstaltungsteil in SPiC gibt es mit Linux einen Modus für die Systemprogrammierung.

Die Bedienung wird unter SPiC-IDE ausführlich erklärt.

## Benutzung ohne IDE

### Die wichtigsten Pfade im CIP

- `/proj/i4spic/pub/` Öffentlicher Ordner mit Aufgabenstellungen, weiterführendes Material und Beispielanwendungen. Zusätzlich sind für viele Aufgaben Beispielimplementierungen verfügbar.
- `/proj/i4spic/LOGIN` Dein SPiC-Projektverzeichnis.
- `/proj/i4spic/bin/` Skripte, u.a. für die Abgabe.

### Aufgabenverzeichnis anlegen

- Terminal öffnen (View -> Tool Views -> Show Terminal)
- In das i4spic-Benutzerverzeichnis wechseln: `cd /proj/i4spic/LOGIN` Hinweis: Mit der Tab-Taste wird der Verzeichis-/dateiname, wenn möglich, automatisch vervollständigt.
- Aufgabenverzeichnis erstellen: `mkdir aufgabeX` (wobei `X` für die Aufgabennummer steht)
- In das Aufgabenverzeichnis wechseln: `cd aufgabeX`
- Aufgabendatei erstellen: `touch aufgabenname.c`
- Das SPiC Makefile in das aktuelle Verzeichnis kopieren: `cp /proj/i4spic/pub/libspicboard/Makefile .`

### Texteditor (Beispiel: Kate)

- In das Aufgabenverzeichnis wechseln: `cd /proj/i4spic/LOGIN/aufgabeX`
- Kate starten `kate aufgabenname.c`

### Flashen unter Linux / im Terminal

- Um das Programm auf das SPiCboard zu flashen wird ein Makefile mit Anweisungen für das Tool make verwendet.
- In das Verzeichnis mit dem zu flashenden Programm wechseln: `cd blink`
- Falls das SPiC Makefile noch nicht in dem Verzeichnis vorhanden ist: `cp /proj/i4spic/pub/libspicboard/Makefile .`
- `make <programmname>.flash` aufrufen; zum Beispiel: `make blink.flash`

### Magisches Makefile (für Mikrocontrollerprojekte)

- Der übliche Weg zum Übersetzen eines C-Quelltextes in eine Binärdatei ist make, welches die in der (im selben Verzeichnis liegenden) `Makefile` beschriebenen Befehle ausführt.
- Damit nicht für jedes SPiCboard-Projekt die Regeln händisch beschrieben werden müssen, bietet sich das Einbeziehen der `debug.mk` aus der libspicboard-Bibliothek in einem eigenen `Makefile` mittels

      LIBSPICBOARDDIR ?= /path/to/libspicboard
      include $(LIBSPICBOARDDIR)/debug.mk

  an. Dadurch werden generische Targets eingebunden, welche für die meisten kleinen Projekte (welche aus nur einer Datei bestehen) ausreichend sind: Eine Datei `blink.c` kann durchaus

      make blink.flash

  übersetzt und auf das angeschlossene SPiCboard übertragen werden.
- Für komplexere Projekte können spezifische Targets angegeben werden, z.B. ein Projekt aus den drei Dateien `main.c`, `display.c` sowie `sensor.c` kann mit der zusätzlichen Abhängigkeitsangabe

      watch.elf: main.c display.c sensor.c

  in der zuvor erstellten Makefile die Binärdatei `watch.elf` kompilieren. Natürlich kann auch alternativ die komplette Regel überschrieben werden, um z.B. eigene Parameter an den Übersetzer zu übergeben

      watch.elf: main.c display.c sensor.c
          $(CC) $(CFLAGS) -Wshadow -DFOO=1 -o $@ $^ $(LDFLAGS)

  Nun können auch für solche Projekte die weiteren Targets wie

      make watch.flash

  aufgerufen werden.
- Eine ausführliche Auflistung der Funktionalität wird mit

      make help

  ausgegeben.