• Navigation überspringen
  • Zur Navigation
  • Zum Seitenende
Organisationsmenü öffnen Organisationsmenü schließen
Lehrstuhl für Informatik 4 & 16
  • FAUZur zentralen FAU Website
  1. Friedrich-Alexander-Universität
  2. Technische Fakultät
  3. Department Informatik
  • English
  • Campo
  • UnivIS
  • Stellenangebote
  • Lageplan
  • Hilfe im Notfall
  1. Friedrich-Alexander-Universität
  2. Technische Fakultät
  3. Department Informatik

Lehrstuhl für Informatik 4 & 16

Menu Menu schließen
  • Lehrstuhl
    • Leitbild
    • Team
    • Kontakt und Anfahrt
    • 50-jähriges Jubiläum
    Portal Lehrstuhl
  • Forschung
    • Forschungsbereiche
      • Betriebssysteme
      • Echtzeitsysteme
      • Energiebewusste Systeme
      • Verteilte Systeme
    • Projekte
      • BFT2Chain
      • e.LARN
      • NEON
      • PAVE
      • PRIMaTE
      • REFIT
      • ResPECT
      • SURESOFT
      • TRR 89 C1: iRTSS
      • TRR 89 C5
      • Watwa
    • Projektkampagnen
      • DOSS
      • maRE
    • Forschungsgruppen
      • ergoo
    Portal Forschung
  • Publikationen
  • Lehre
    • Wintersemester 2022/23
      • Ausgewählte Kapitel der Systemsoftware
      • Betriebssysteme
      • Middleware – Cloud Computing
      • Systemnahe Programmierung in C (für Wiederholer)
      • Systemprogrammierung 1 (für Wiederholer)
      • Systemprogrammierung 2
      • Verlässliche Echtzeitsysteme
      • Virtuelle Maschinen
      • Web-basierte Systeme
    • Sommersemester 2023
      • Ausgewählte Kapitel der Systemsoftware
      • Betriebssystemtechnik
      • Projekt angewandte Systemsoftwaretechnik
      • Systemnahe Programmierung in C
      • Systemprogrammierung 1
      • Verteilte Systeme
    Portal Lehre
  • Examensarbeiten
  1. Startseite
  2. Lehre
  3. Sommersemester 2022
  4. Systemnahe Programmierung in C
  5. Übung
  6. SPiCboard
  7. Programmieren im CIP

Programmieren im CIP

Bereichsnavigation: Lehre
  • Systemnahe Programmierung in C
    • Vorlesung
      • Übung
        • Folien
        • Aufgaben
        • SPiCboard
          • Bauanleitung
            • Programmieren im CIP
              • Programmieren von zu Hause
                • libspicboard-Doku
                  • SPiC-IDE
                    • SPiCsim
                      • FAQ
                        • Projekte
                        • Linux libc-Doku
                        • Prüfung
                          • Klausurergebnisse
                          • Evaluation
                            • Intern

                            Programmieren im CIP

                            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.

                            Friedrich-Alexander-Universität
                            Erlangen-Nürnberg

                            Schlossplatz 4
                            91054 Erlangen
                            • Impressum
                            • Datenschutz
                            • Barrierefreiheit
                            Nach oben