SPiCsim
Vorwort
Die SPiC-IDE (Integrated Development Environment) wurde für die Benutzung unter Linux entwickelt und basiert auf dem freien Editor Atom. Ziel ist ein einfacher und intuitiver Einstieg in die systemnahe Programmierung in C: alle notwendigen Werkzeuge sollen schnell zur Hand sein ohne von zu viel Funktionalität erschlagen zu werden. Schließlich sollst du dich komplett auf die Programmierung konzentrieren können, ohne dich mit der Arbeitsumgebung herumärgern zu müssen.
Jedoch hat die SPiC-IDE vermutlich wie alle neuen Projekte noch etwas Verbesserungsbedarf. Wenn dir Fehler auffallen oder du hilfreiche Vorschläge für Änderungen hast, würden wir uns über eine Mail an i4spic@lists.cs.fau.de freuen.
Starten der IDE
- 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 (erster Veranstaltungsteil von SPiC) kann mit
die Hardware programmiert werden, während einen Simulator anbietet. Für den zweite Veranstaltungsteil in SPiC gibt es mit einen Modus für die Systemprogrammierung. Das Beispiel zeigt die Oberfläche im SPiCboard Modus.- Auf der linken Seite ist unter Project dein SPiC-Projektverzeichnis (statt uj66ojab sollte hier dein Login stehen).
- Für jede Aufgabe musst du hier einen Unterordner
aufgabeX
anlegen, wobeiX
die entsprechende Aufgabennummer ist - Im Unterordner
korrektur
befinden sich deine korrigierten Abgaben als PDF - Der Unterordner
pub
ist eine symbolische Verknüpfung auf den öffentlichen Ordner, welcher unter anderem Beispiele, Folien und Aufgabenstellungen beinhaltet. Du kannst nur lesend auf diesen Ordner zugreifen!
- Für jede Aufgabe musst du hier einen Unterordner
- In der obersten Zeile befindet sich die Werkzeugleiste, welche dir einen schnellen Zugriff auf häufige Funktionen bietet.
- Im Zentrum ist die eigentliche Arbeitsfläche, primär wird hier die Texteditoroberfläche angezeigt.
- Es können mehrere Tabs gleichzeitig geöffnet sein (auch eine side-by-side-Darstellung ist möglich).
- Neben Quelltextdateien können auch PDFs (z.B. Aufgabe, Folien oder Korrektur) oder HTML-Dokumente (wie diese Hilfe) angezeigt werden
- Darunter werden bei Bedarf weitere Fenster eingeblendet
- Atom Shell Commands zeigt die Ausgabe von den Befehlen der Werkzeugleiste an - sofern z.B. ein Fehler beim Übersetzen auftritt wird hier die Fehlermeldung und die Stelle (Datei sowie Zeile) angezeigt
- In dem Terminal wird eine Shell ausgeführt
- Bei der Fehlersuche lässt sich der Debugger hier über die eingeblendeten Tasten steuern, während rechts der Aufrufstapel sowie die relevanten Variablenwerte angezeigt werden.
- Über die
Alt
-Taste kann die Menüleiste eingeblendet werden - dies ist jedoch im normalen SPiC -Übungsbetrieb nicht notwendig.
Die Werkzeugleiste
- Auf der linken Seite befinden sich die zur Textbearbeitung üblichen Buttons:
- Neuen Aufgabenordner erstellen. Als Name sollte
aufgabeX/
gewählt werden, wobei stattX
die Aufgabennummer steht. Beachte: Kleinschreibung und keine Leerzeichen! - Neue (leere) Datei öffnen.
- Datei speichern. Der Name der Quelltextdatei wird durch die Aufgabenstellung vorgegeben und ist für eine erfolgreiche Abgabe wichtig. Wird eine ungespeicherte Änderung erkannt, so wird das Symbol eingefärbt.
- Aktuelle Lösung abgeben (der Ordnername muss entsprechend
aufgabeX
lauten und der Dateiname muss mit der Aufgabenstellung übereinstimmen). Mehrfache Abgaben sind möglich (und werden empfohlen). Gewertet wird die letzte Abgabe vor dem Abgabeende. Wird erkannt, dass die lokal gespeicherte Datei sich von der abgegebenen Lösung unterscheidet, so wird das Symbol eingefärbt (diese Anzeige ist unter Umständen bei hoher Serverlast nicht verfügbar und dient nur als zusätzlicher Hinweis - es liegt in eurer Verantwortung Änderungen erneut abzugeben, im Zweifel einfach nochmals abgeben!). - Zeige die zuletzt abgegebene Lösung der gerade bearbeiteten Aufgabe an (sofern vorhanden)
- Frage die verbleibende Zeit für die gerade bearbeitete Aufgabe ab.
- Letzte Änderung rückgängig machen.
- Rückgängig gemachte Änderung wiederherstellen.
- Markierten Quelltext (anhand der geschweiften Klammern) einrücken (formatieren). Sofern kein Quelltext markiert ist, wird die gesamte Datei formatiert.
- Aktuelles Fenster in eine neue Anzeigefläche rechts von der aktuellen Anzeigefläche verschieben (side-by-side Anzeige). Diese geteilte Ansicht empfiehlt sich z.B. um gleichzeitig die Aufgabenstellung (oder Dokumentation) neben dem Quelltext anzuzeigen.
- Den Editor für einen entfernten Zugriff freigeben – es wird ein Zugriffscode im Format SPiCxxxxxxx generiert, welcher an Tutoren weitergeben werden kann, damit diese einen Fernzugriff auf deinen Editor erhalten. Mittels kann die Freigabe wieder aufgehoben werden.
- Zeige eine Bildschirmtastatur mit englischem (US) Layout.
- Zwischen hellem und dunklem Design umschalten
- Neuen Aufgabenordner erstellen. Als Name sollte
- C-Quelltext in optimierten Maschinencode für den Atmega328pb übersetzen (gut, um Syntaxfehler zu finden)
- Programm auf das angeschlossene SPiCboard übertragen (übersetzt den C-Quelltext automatisch, wenn nötig)
- C-Quelltext ohne Optimierungen mit Debuginformationen übersetzen und auf das angeschlossene SPiCboard übertragen, anschließend in den Debugmodus wechseln. Haltepunkte können zuvor durch einen Klick vor der entsprechenden Zeilennummer im C-Quelltext bestimmt werden (roter Punkt vor der Zeilennummer)
- Überträgt die Musterlösung der jeweiligen Aufgabe auf das angeschlossene SPiCboard
- Zeige die Hilfe zur IDE bzw. die Dokumentation der libspicboard an. Dabei werden zusätzliche Buttons zur Navigation angezeigt ( und um in der Historie zurück respektive vorwärts zu navigieren und um die aktuelle Seite neu zu laden)
Umschalter zwischen den Entwicklungsmodi; Für den Mikrocontroller stehen folgende Buttons zur Auswahl:- C-Quelltext in optimierten Maschinencode für den Atmega328pb übersetzen
- (neuen) SPiCsim ausführen (Übersetzen geschieht ebenfalls automatisch, wenn nötig) Programm im
- bewährten (Legacy) SPiCsim ausführen (Übersetzen geschieht auch hier automatisch, wenn nötig) Programm im
- SPiCsim Fehlersuchmodus ausführen. Haltepunkte können zuvor durch einen Klick vor der entsprechenden Zeilennummer im C-Quelltext bestimmt werden (roter Punkt vor der Zeilennummer) Quelltext ohne Optimierungen mit Debuginformationen übersetzen und im
- Musterlösung der jeweiligen Aufgabe im Simulator starten
- Zeigt die Hilfe zur IDE bzw. die Dokumentation der libspicboard an.
Umschalter zwischen den Entwicklungsmodi. Für den Simulation des Mikrocontrollers stehen folgende Buttons zur Auswahl:make Dateiname
zum Übersetzen des C-Quelltextes auf. Der Button ist ausgegraut, wenn im jeweiligen Ordner kein Makefile liegt und wird nach kurzer Zeit aktiv, sobald ein Makefile im Ordner angelegt ist Ruft das gleichnamige Build-Management-Tool mit - Wechsel in den Debugmodus, zeigt zu Beginn eine Oberfläche für die Konfiguration des GDB an
- Integriertes Terminalfenster ein- bzw. ausblenden
- Zeige die Hilfe zur Entwicklung unter Linux an (insbesondere die SPiC-Zettel zur C Standard Library [libc])
Umschalter zwischen den Entwicklungsmodi. Für die Systemprogrammierung unter Linux stehen folgende Buttons zur Verfügung:
Bei einer Shell-Skriptdatei wird ein Button angezeigt, durch die Ausführung erlaubt. Es Skripte aus nicht vertrauenswürdige Quelle sollten nicht ausgeführt werden, denn diese könnten unerwünschte Programme installieren oder zu einem kompletten Datenverlust führen!
Die Vorlesungs- und Übungsfolien (aus dem pub
-Ordner) können ebenfalls im Editor angezeigt werden, dafür stehen folgende Buttons zur Verfügung:
- Vorherige Seite anzeigen
- Nachfolgende Seite anzeigen
- Die ursprüngliche Standardvergrößerungsstufe wiederherstellen
- Dokumentenansicht vergrößern
- Dokumentenansicht verkleinern
- In das Fenster einpassen (Breite)
Für viele Aktionen (wie
) werden weiterführende Informationen und Fehler auf der automatisch eingeblendeten Konsole (mit den Namen Atom Shell Commands) angezeigt, ggf. ist auch eine Benutzerinteraktion notwendig (wie z.B. bei der Abgabe von Gruppenaufgaben)